当我调用png.Decode(imageFile)
时,它返回一个image.Image
类型。但是,我无法找到一种文档化的方法将其转换为image.NRGBA
或image.RGBA
,在这些方法上,我可以调用像At()
这样的方法。
我怎样才能做到这一点?
发布于 2015-07-16 20:34:08
如果不需要“转换”图像类型,而只想从接口中提取底层类型,请使用“类型断言”:
if img, ok := i.(*image.RGBA); ok {
// img is now an *image.RGBA
}
或使用类型开关:
switch i := i.(type) {
case *image.RGBA:
// i in an *image.RGBA
case *image.NRGBA:
// i in an *image.NRBGA
}
发布于 2019-10-06 18:05:57
标题中如何将图像转换为image.NRGBA
的问题的解决方案可以找到在Go博客上:诀窍是创建一个新的空image.NRGBA
,然后将原始图像“绘制”到NRGBA映像中:
import "image/draw"
...
src := ...image to be converted...
b := src.Bounds()
m := image.NewNRGBA(image.Rect(0, 0, b.Dx(), b.Dy()))
draw.Draw(m, m.Bounds(), src, b.Min, draw.Src)
https://stackoverflow.com/questions/31463756
复制相似问题