Trouble getting a SubImage of an Image in Go -
i'm doing image processing in go, , i'm trying subimage of image.
import ( "image/jpeg" "os" ) func main(){ image_file, err := os.open("somefile.jpeg") my_image, err := jpeg.decode(image_file) my_sub_image := my_image.subimage(rect(j, i, j+x_width, i+y_width)).(*image.rgba) } when try compile that, .\img.go:8: picture.subimage undefined (type image.image has no field or method subimage).
any thoughts?
here alternative approach - use type assertion assert my_image has subimage method. work image type has subimage method (all of them except uniform @ quick scan). return image interface of unspecified type.
package main import ( "fmt" "image" "image/jpeg" "log" "os" ) func main() { image_file, err := os.open("somefile.jpeg") if err != nil { log.fatal(err) } my_image, err := jpeg.decode(image_file) if err != nil { log.fatal(err) } my_sub_image := my_image.(interface { subimage(r image.rectangle) image.image }).subimage(image.rect(0, 0, 10, 10)) fmt.printf("bounds %v\n", my_sub_image.bounds()) } if wanted lot create new type subimage interface , use that.
type subimager interface { subimage(r image.rectangle) image.image } my_sub_image := my_image.(subimager).subimage(image.rect(0, 0, 10, 10)) the usual caveats type assertions apply - use ,ok form if don't want panic.
Comments
Post a Comment