Go语言imagick 使用总结

imagick 是一个开源的 c语言图片处理库,所以需要本地安装,并且配置 CGO

Mac 安装imagic

brew install imagemagick «««< HEAD:posts/2019-07-16-go语言-imagick-使用总结.md

有的可能需要安装 brew install pkg-config

=======

有的可能需要安装 brew install pkg-config

9b93207d813e2b213031f967612e37c68194cf37:post/Go-imagick.md CGO配置

Initialize()Terminate

根据ImageMagick C API,Initialize()应该只调用一次来设置使用ImageMagick的资源。这通常在您main()init()整个应用程序或库中完成。应用程序可以推迟调用以Terminate()拆除ImageMagick资源。

多次调用特殊方法,导致常见的问题,这是一个错误对于Initialize,和Terminate来说,如死机或丢失代理。除了在程序中对ImageMagick的绝对需求外,不要使用Terminate。

内存管理

由于这是一个CGO绑定,并且Go GC不管理由C API分配的内存,因此必须使用Terminate()和Destroy()方法。

通过New*构造函数(MagickWand,DrawingWand,PixelIterator,PixelWand,…)创建的类型由Go GC通过使用终结器进行管理。

如果使用struct literals,则应手动释放资源: