diff --git a/data.go b/data.go index 035e80dd60ef6d3639ae7cc6b5b852fd07eb5ee9..5cb1d6d1470b7da404d2e7480d9b0369757e8b0d 100644 --- a/data.go +++ b/data.go @@ -160,11 +160,13 @@ func verticalFlip(nrgba *image.NRGBA) { // // The resulting PictureData's Bounds will be the equivalent of the supplied image.Image's Bounds. func PictureDataFromImage(img image.Image) PictureData { - nrgba := image.NewNRGBA(image.Rect( - 0, 0, - img.Bounds().Dx(), img.Bounds().Dy(), - )) - draw.Draw(nrgba, nrgba.Bounds(), img, img.Bounds().Min, draw.Src) + var nrgba *image.NRGBA + if img, ok := img.(*image.NRGBA); ok { + nrgba = img + } else { + nrgba = image.NewNRGBA(img.Bounds()) + draw.Draw(nrgba, nrgba.Bounds(), img, img.Bounds().Min, draw.Src) + } verticalFlip(nrgba)