new simple downscaling ideas
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
package main
|
||||
|
||||
var Opaque, Transparent = color.Alpha{0xff}, color.Alpha{0}
|
||||
|
||||
type xor struct{ dst, src image.Image }
|
||||
|
||||
func (t xor) ColorModel() color.Model { return t.dst.ColorModel() }
|
||||
func (t xor) Bounds() image.Rectangle { return t.src.Bounds() }
|
||||
func (t xor) At(x, y int) color.Color {
|
||||
dstColor := t.ColorModel().Convert(t.dst.At(x, y))
|
||||
srcColor := t.ColorModel().Convert(t.src.At(x, y))
|
||||
|
||||
// xor operation (a || b) && !(a && b)
|
||||
if ((dstColor == color.Opaque) || (srcColor == color.Opaque)) &&
|
||||
!((dstColor == color.Opaque) && (srcColor == color.Opaque)) {
|
||||
return color.Opaque
|
||||
}
|
||||
return color.Transparent
|
||||
}
|
||||
Reference in New Issue
Block a user