Files
imageutils/pkg/dithering/grid_test.go
2026-03-05 00:55:17 +03:00

74 lines
1.1 KiB
Go

package dithering
import (
"image"
"image/color"
"image/png"
"math/rand"
"os"
"os/exec"
"testing"
"time"
"git.nkpl.cc/twocookedfaggots/imageutils"
)
func init() {
rand.Seed(time.Now().UnixNano())
}
func callImage(img image.Image) {
for y := 0; y < img.Bounds().Dy(); y++ {
for x := 0; x < img.Bounds().Dx(); x++ {
_ = img.At(x, y)
}
}
}
func TestGrid(t *testing.T) {
command := exec.Command("imv", "-")
w, err := command.StdinPipe()
if err != nil {
t.Fatal(err)
}
err = command.Start()
if err != nil {
t.Fatal(err)
}
n := uint8(rand.Int() % 256)
t.Log(n)
img := imageutils.Scale(1<<6, grid{color.Gray{n}})
err = png.Encode(w, img)
if err != nil {
t.Fatal(err)
}
callImage(grid{color.Gray{4}})
callImage(grid{color.Gray{0}})
}
func TestDithering(t *testing.T) {
r, err := os.Open("/home/potassium/documents/wallpaper/8.png")
if err != nil {
t.Fatal(err)
}
defer r.Close()
w, err := os.Create("sample.png")
if err != nil {
t.Fatal(err)
}
defer w.Close()
img, err := png.Decode(r)
if err != nil {
t.Fatal(err)
}
err = png.Encode(w, Dithering{img})
if err != nil {
t.Fatal(err)
}
}