Files
photoview/api/scanner/perf_test.go
2025-07-09 22:25:44 +02:00

78 lines
1.4 KiB
Go

package scanner
import (
"image"
"image/jpeg"
_ "image/png"
"os"
"path/filepath"
"testing"
"gopkg.in/gographics/imagick.v3/imagick"
)
func BenchmarkStdlib(b *testing.B) {
dir := b.TempDir()
for b.Loop() {
func() {
input, err := os.Open("./test_media/real_media/png.png")
if err != nil {
b.Fatal("open error:", err)
}
defer input.Close()
img, _, err := image.Decode(input)
if err != nil {
b.Fatal("decode error:", err)
}
outfile := filepath.Join(dir, "test.jpg")
defer os.Remove(outfile)
output, err := os.Create(outfile)
if err != nil {
b.Fatal("create error:", err)
}
defer output.Close()
if err := jpeg.Encode(output, img, &jpeg.Options{Quality: 70}); err != nil {
b.Fatal("encode error:", err)
}
}()
}
}
func BenchmarkMagickWand(b *testing.B) {
dir := b.TempDir()
imagick.Initialize()
defer imagick.Terminate()
for b.Loop() {
func() {
mw := imagick.NewMagickWand()
defer mw.Destroy()
if err := mw.ReadImage("./test_media/real_media/png.png"); err != nil {
b.Fatal("read error:", err)
}
output := filepath.Join(dir, "test.jpg")
defer os.Remove(output)
if err := mw.SetFormat("JPEG"); err != nil {
b.Fatal("set format error:", err)
}
if err := mw.SetImageCompressionQuality(70); err != nil {
b.Fatal("set quality error:", err)
}
if err := mw.WriteImage(output); err != nil {
b.Fatal("write error:", err)
}
}()
}
}