将image.Image转换为image.NRGBA

时间:2015-07-16 20:17:42

标签: image go

当我致电png.Decode(imageFile)时,它会返回image.Image类型。但我无法找到一种记录方式将其转换为image.NRGBAimage.RGBA,我可以在其中调用At()等方法。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:5)

如果您不需要“转换”图像类型,并且只想从界面中提取基础类型,请使用“类型断言”:

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
}

答案 1 :(得分:1)

可以找到in the Go Blog标题中的问题的解决方案,即如何将图像转换image.NRGBA:诀窍是创建一个新的空白{ {1}},然后将原始图像“绘制”到NRGBA图像中:

image.NRGBA