我可以知道如何将imagick.MagickWand
结构传递给函数并对其应用方法吗?似乎imagick.NewMagickWand
返回了*imagick.MagickWand
的类型,不是吗?
我做不完,不断收到错误消息: ERROR_WAND:ContainsNoImages`MagickWand-0'。
如何将适当的结构引用传递给函数,以便mw
可以在这些函数中连续使用?
func generateImage() error {
// skip error handling
var err error
mw := imagick.NewMagickWand()
defer mw.Destroy()
err = createCanvas(mw, "red") // create canvas
err = compositeIcon(mw, "c:/icon.png") // add icon
err = addText(mw, "Hello world") // add text
err = mw.WriteImage("c:/output") // get the output
}
func createCanvas(mw *imagick.MagickWand, color string) error {
// skip error handling
var err error
pw := imagick.NewPixelWand()
defer pw.Destroy()
pw.SetColor("blue")
err = mw.NewImage(200, 100, pw)
return nil
}
请帮助?新手在这里。 :)
更新:
我给出的示例是正确。在上面的示例中,通过引用的传递正确完成,我收到错误消息是因为我忽略我的代码并调试了错误的行。抱歉造成混乱。
谢谢。
答案 0 :(得分:3)
如果mw
的类型为*imagick.MagickWand
,则*mw
的类型为imagick.MagickWand
。
也就是说,mw
是该类型的指针,而*
运算符取消引用了类型本身的指针。 / p>
mw := imagick.NewMagickWand() // Now mw is a *imagick.MagickWand
*mw // Is a imagick.MagickWand