Как передать магию и ссылку на функции
Могу ли я знать, как пройти 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