Как передать магию и ссылку на функции

Могу ли я знать, как пройти 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
}

Может, пожалуйста, помогите? Новичок здесь.:)


Обновить:

Пример, который я привел, верен. Передача по ссылке выполняется правильно в приведенном выше примере, я получил ошибку, потому что я пропускаю свой код и отлаживаю неправильные строки. Извините за недопонимание.

Благодарю.

1 ответ

Решение

Если mw имеет тип *imagick.MagickWand затем *mw имеет тип imagick.MagickWand,

То есть mw указатель на этот тип и * Оператор разыменовывает указатель на сам тип.

mw := imagick.NewMagickWand() // Now mw is a *imagick.MagickWand
*mw // Is a imagick.MagickWand
Другие вопросы по тегам