我可以知道如何将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
}能帮忙吗?新手来了。:)
更新:
我给出的例子是正确的。在上面的示例中,通过引用传递是正确的,我收到了错误,因为我忽略了我的代码并调试了错误的行。抱歉搞混了。
谢谢。
发布于 2018-09-28 15:36:03
如果mw有*imagick.MagickWand类型,那么*mw有imagick.MagickWand类型。
也就是说,mw是指向该类型的指针,而*运算符则取消指向类型本身的指针。
mw := imagick.NewMagickWand() // Now mw is a *imagick.MagickWand
*mw // Is a imagick.MagickWandhttps://stackoverflow.com/questions/52558495
复制相似问题