// Copyright (c) 2023-2024 David Vogel // // This software is released under the MIT License. // https://opensource.org/licenses/MIT package main import ( "image" "image/color" ) type SubStitchedImage struct { *StitchedImage // The original stitched image. bounds image.Rectangle // The new bounds of the cropped image. } // Bounds returns the domain for which At can return non-zero color. // The bounds do not necessarily contain the point (0, 0). func (s SubStitchedImage) Bounds() image.Rectangle { return s.bounds } func (s SubStitchedImage) At(x, y int) color.Color { return s.RGBAAt(x, y) } func (s SubStitchedImage) RGBAAt(x, y int) color.RGBA { point := image.Point{X: x, Y: y} if !point.In(s.bounds) { return colorBackground } return s.StitchedImage.RGBAAt(x, y) }