我可以知道如何将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
}

可以帮忙吗?新手在这里。 :)

更新:



谢谢。

最佳答案

如果mw的类型为*imagick.MagickWand,则*mw的类型为imagick.MagickWand

也就是说,mw是指向该类型的指针,而*运算符取消了对该类型本身的指针的引用。

mw := imagick.NewMagickWand() // Now mw is a *imagick.MagickWand
*mw // Is a imagick.MagickWand

关于go - 如何传递magickW和功能引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52558495/

10-10 18:21