1 package imagefn // import "vimagination.zapto.org/imagefn" 2 3 import ( 4 "image" 5 "image/color" 6 ) 7 8 type empty struct { 9 color.Model 10 Min image.Point 11 } 12 13 func newEmpty(i image.Image) image.Image { 14 e := empty{ 15 Model: i.ColorModel(), 16 Min: i.Bounds().Min, 17 } 18 if _, ok := i.(setter); ok { 19 return &emptySet{ 20 empty: e, 21 } 22 } 23 return &e 24 } 25 26 func (e empty) ColorModel() color.Model { 27 return e.Model 28 } 29 30 func (e empty) Bounds() image.Rectangle { 31 return image.Rectangle{e.Min, e.Min} 32 } 33 34 func (e empty) At(x, y int) color.Color { 35 return e.Model.Convert(color.Alpha{}) 36 } 37 38 type emptySet struct { 39 empty 40 } 41 42 func (emptySet) Set(_, _ int, _ color.Color) {}