imageutils/scale_test.go
2024-09-03 23:07:15 +03:00

46 lines
774 B
Go

package imageutils
import (
"image"
"image/color"
"image/draw"
"image/png"
"io"
"testing"
"github.com/potassium5703/texture"
)
func Render(img image.Image, rect image.Rectangle) image.Image {
newimg := image.NewRGBA(rect)
draw.Draw(newimg, rect, image.White, image.ZP, draw.Src)
draw.Draw(newimg, rect, img, image.ZP, draw.Over)
return newimg
}
func BenchmarkScale(b *testing.B) {
for i := 0; i < b.N; i++ {
err := png.Encode(io.Discard,
Scale(Render(
texture.New(color.White,
color.Black, 2),
image.Rect(0, 0, 64, 64),
), 64),
)
if err != nil {
panic(err)
}
}
}
func BenchmarkSinglePixel(b *testing.B) {
instance := SinglePixel{}
err := png.Encode(io.Discard,
Scale(instance, b.N),
)
if err != nil {
panic(err)
}
}