dithering done :)
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
package dithering
|
||||
|
||||
import (
|
||||
"image"
|
||||
"image/color"
|
||||
"image/png"
|
||||
"math/rand"
|
||||
"os"
|
||||
"os/exec"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -11,25 +13,61 @@ import (
|
||||
"git.nkpl.cc/twocookedfaggots/imageutils"
|
||||
)
|
||||
|
||||
func TestGrid(t *testing.T) {
|
||||
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.Error(err)
|
||||
t.Fatal(err)
|
||||
}
|
||||
img := imageutils.Scale(1<<6, grid{color.Gray{uint8(rand.Int() % 64)}})
|
||||
|
||||
go func() {
|
||||
err = png.Encode(w, img)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}()
|
||||
|
||||
err = command.Start()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user