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 }