ImageMagick Magick++ API

Magick++ 是 ImageMagick 图像处理库的面向对象 C++ API,它是目前最全面的开源图像处理软件包。请阅读最新的 NEWSChangeLog 以获取 Magick++ 的更新信息。

Magick++ 支持一个受 PerlMagick 启发的对象模型。图像支持隐式引用计数,因此复制构造函数和赋值几乎不会产生任何开销。只有在修改图像之前才会实际复制图像(如有必要),并且此复制操作由 Magick++ 自动管理。已解除引用的副本将自动删除。图像对象支持值(而不是指针)语义,因此可以轻松地在内存中同时支持图像的多个版本。

Magick++ 提供了对 标准模板库 (STL) 的集成支持,以便可以使用可用的强大容器(例如 dequevectorlistmap)来编写类似于使用 PERL 和 PerlMagick 编写的程序。提供了 ImageMagick 列表样式操作的兼容 STL 的模板版本,以便可以对存储在 STL 容器中的多个图像执行操作。

文档

为构成 API 的所有 Magick++ 类、类方法和模板函数提供了详细的 文档。请参阅 Magick++ 入门教程,以了解 Magick++ 的入门教程。如果您想更正、增强或扩展教程,我们提供了 源代码

获取 Magick++

Magick++ 包含在 ImageMagick 的源代码发行版中,可以通过 ftpGithub 获取。

安装

一旦您拥有了 Magick++ 源代码,请按照这些详细的 安装说明(适用于 UNIX 和 Windows)进行操作。

用法

在 Unix 下安装了一个名为 Magick++-config 的辅助脚本,它有助于回忆编译和链接使用 Magick++ 的程序所需的编译选项。例如,以下命令将编译并链接源文件 example.cpp 以生成可执行文件 example(请注意,引号是反引号)

c++ -O2 -o example example.cpp `Magick++-config --cppflags --cxxflags --ldflags --libs`

Windows 用户可以通过手动编辑 Magick++ 演示程序之一的项目文件来开始使用。

在使用 Magick++ 库之前,请务必初始化 ImageMagick 库。此初始化操作是通过将 ImageMagick DLL 的路径(假定与您的程序位于同一目录中)传递给 InitializeMagick() 函数调用来执行的。这通常通过提供程序的路径 (argv[0]) 来执行,如以下示例所示

int main( ssize_t /*argc*/, char ** argv)
{
InitializeMagick(*argv);

报告错误

请通过 Magick++ 错误跟踪论坛 报告任何错误。有关用法的疑问,请咨询 Magick++ 讨论论坛

相关软件包

有兴趣在各种平台和图形环境(例如 Windows、X11、BeOS 和 Linux/CGI)上以视频游戏的速度显示图像的用户,可能想要尝试使用 PtcMagick,它在 Magick++ 和 OpenPTC 之间提供了一个简单的接口。