github.com/vnforks/kid/v5@v5.22.1-0.20200408055009-b89d99c65676/utils/emoji.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See LICENSE.txt for license information.
     3  
     4  package utils
     5  
     6  import (
     7  	"bytes"
     8  	"image"
     9  	"image/color"
    10  	"image/gif"
    11  	"image/jpeg"
    12  	"image/png"
    13  	"testing"
    14  
    15  	"github.com/stretchr/testify/require"
    16  )
    17  
    18  func CreateTestGif(t *testing.T, width int, height int) []byte {
    19  	var buffer bytes.Buffer
    20  
    21  	err := gif.Encode(&buffer, image.NewRGBA(image.Rect(0, 0, width, height)), nil)
    22  	require.NoErrorf(t, err, "failed to create gif: %v", err)
    23  
    24  	return buffer.Bytes()
    25  }
    26  
    27  func CreateTestAnimatedGif(t *testing.T, width int, height int, frames int) []byte {
    28  	var buffer bytes.Buffer
    29  
    30  	img := gif.GIF{
    31  		Image: make([]*image.Paletted, frames),
    32  		Delay: make([]int, frames),
    33  	}
    34  	for i := 0; i < frames; i++ {
    35  		img.Image[i] = image.NewPaletted(image.Rect(0, 0, width, height), color.Palette{color.Black})
    36  		img.Delay[i] = 0
    37  	}
    38  	err := gif.EncodeAll(&buffer, &img)
    39  	require.NoErrorf(t, err, "failed to create animated gif: %v", err)
    40  
    41  	return buffer.Bytes()
    42  }
    43  
    44  func CreateTestJpeg(t *testing.T, width int, height int) []byte {
    45  	var buffer bytes.Buffer
    46  
    47  	err := jpeg.Encode(&buffer, image.NewRGBA(image.Rect(0, 0, width, height)), nil)
    48  	require.NoErrorf(t, err, "failed to create jpeg: %v", err)
    49  
    50  	return buffer.Bytes()
    51  }
    52  
    53  func CreateTestPng(t *testing.T, width int, height int) []byte {
    54  	var buffer bytes.Buffer
    55  
    56  	err := png.Encode(&buffer, image.NewRGBA(image.Rect(0, 0, width, height)))
    57  	require.NoErrorf(t, err, "failed to create png: %v", err)
    58  
    59  	return buffer.Bytes()
    60  }