如何将 magickWand 引用传递给函数
How to pass magickWand reference to functions
我可以知道如何将 imagick.MagickWand
结构传递给函数并在其上应用方法吗? imagick.NewMagickWand
return 好像是 *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
}
可以帮忙吗?新手在这里。 :)
更新:
The example that I gave is correct. Passing by reference is done correctly in the example above, I received the error because I overlook my code and debug the wrong lines. Sorry for confusion.
谢谢。
如果 mw
的类型为 *imagick.MagickWand
,则 *mw
的类型为 imagick.MagickWand
。
也就是说,mw
是指向该类型的 指针 并且 *
运算符取消引用指向 类型的指针本身.
mw := imagick.NewMagickWand() // Now mw is a *imagick.MagickWand
*mw // Is a imagick.MagickWand
我可以知道如何将 imagick.MagickWand
结构传递给函数并在其上应用方法吗? imagick.NewMagickWand
return 好像是 *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
}
可以帮忙吗?新手在这里。 :)
更新:
The example that I gave is correct. Passing by reference is done correctly in the example above, I received the error because I overlook my code and debug the wrong lines. Sorry for confusion.
谢谢。
如果 mw
的类型为 *imagick.MagickWand
,则 *mw
的类型为 imagick.MagickWand
。
也就是说,mw
是指向该类型的 指针 并且 *
运算符取消引用指向 类型的指针本身.
mw := imagick.NewMagickWand() // Now mw is a *imagick.MagickWand
*mw // Is a imagick.MagickWand