imagemagick, imagick和magickwand编译安装

简介:

注意不要忘记,将ImageMagick安装后的函数库所在目录加入到/etc/profile文件中的LD_LIBRARY_PATH环境变量 中,以及/etc/ld.so.conf中同时运行ldconfig,否则一些对ImageMagic的应用可能会出问题。

        imagemagick是一个开源的强大的适用于图形图像开发制作的软件套件,与GD库同等级别的,甚至有些功能是GD所没有的,比如创建动态的gif图 片。它基于命令行操作的,但同时为大量的其它编程语言提供了接口。详细请访问官方网站是http://www.imagemagick.org 
本文主要介绍imagemagick为php语言提供的两个扩展imagick和MagickWand for PHP的安装。IMagick 已经被php最新的版本选为内部的扩展函数库,php的手册已经有了函数说明使用文档。这个扩展是可选安装的。 
imagemagick有两款接口,分别是 MagickWand API  和MagickCore API。MagickCore API 是全面的底层的接口,比较适合高水平的程序员,而MagickWand API  是官方推荐的精选的重要的一些接口。IMagick和MagickWand for PHP就是分别为这两款接口而准备的。 
下载地址 : 
ImageMagick 6.3.6-10  http://sourceforge.net/projects/ImageMagick 
IMagick  http://pecl.php.net/package/imagick 
MagickWand For PHP   http://www.magickwand.org/ 
安装 : 
无论是安装IMagick或者是MagickWand For PHP都需要先安装ImageMagick。 
1.安装ImageMagick

$tar xzvf ImageMagick-6.3.6-10.tar.gz 
$cd ImageMagick-6.3.6 
$./configure 
$make 
$make install

服务器如果没有安装Jpeg v6b、libPng、FreeType 的要在安装imagemagick之前先装好,否则imagemagick没法读取jpeg和png图片,字体文件也读不了。下面是安装 Imagemagick时./configure的结果,可以查看imagickMagick是否支持哪些格式的图片以及一些环境配置:

Host system type : i686-pc-linux-gnu 
Option                        Value 
------------------------------------------------------------------------------- 
Shared libraries  --enable-shared=yes           yes 
Static libraries  --enable-static=yes           yes 
Module support    --with-modules=yes            yes 
GNU ld            --with-gnu-ld=yes             yes 
Quantum depth     --with-quantum-depth=16       16 
High Dynamic Range Imagery 
--enable-hdri=no              no 
Delegate Configuration: 
BZLIB             --with-bzlib=yes              yes 
DJVU              --with-djvu=no                no 
DPS               --with-dps=yes                no 
FlashPIX          --with-fpx=yes                no 
FontConfig        --with-fontconfig=no          no 
FreeType          --with-freetype=yes           yes(支持) 
GhostPCL          None                          pcl6 (unknown) 
Ghostscript       None                          gs (7.07) 
result_ghostscript_font_dir='none' 
Ghostscript fonts --with-gs-font-dir=default 
Ghostscript lib   --with-gslib=yes              no (failed tests) 
Graphviz          --with-gvc=yes                no 
JBIG              --with-jbig=yes               no 
JPEG v1           --with-jpeg=yes               yes(支持) 
JPEG-2000         --with-jp2=yes                no 
LCMS              --with-lcms=yes               no 
Magick++          --with-magick-plus-plus=yes   yes 
OpenEXR           --with-openexr=yes            no 
PERL              --with-perl=yes               /usr/bin/perl 
PNG               --with-png=yes                yes(支持) 
RSVG              --with-rsvg=no                no 
TIFF              --with-tiff=yes               no 
result_windows_font_dir='none' 
Windows fonts     --with-windows-font-dir= 
WMF               --with-wmf=yes                no 
X11               --with-x=                     no 
XML               --with-xml=no         no 
ZLIB              --with-zlib=yes               yes 
X11 Configuration: 
X_CFLAGS        = 
X_PRE_LIBS      = 
X_LIBS          = 
X_EXTRA_LIBS    = 
Options used to compile and link: 
PREFIX          = /usr/local 
EXEC-PREFIX     = /usr/local 
VERSION         = 6.3.6 
CC              = gcc 
CFLAGS          = -g -O2 -Wall -W -pthread 
MAGICK_CFLAGS   = -g -O2 -Wall -W -pthread 
CPPFLAGS        = -I/usr/local/include 
PCFLAGS         = 
DEFS            = -DHAVE_CONFIG_H 
LDFLAGS         = 
MAGICK_LDFLAGS  = -L/usr/local/lib 
LIBS            = -lMagick -ljpeg -lbz2 -lz -lm -lpthread 
CXX             = g++ 
CXXFLAGS        = -g -O2 -Wall -W -pthread

2.安装Imagick 
我们采用不需要php源代码的方法,即不需要重新编译php,直接将Imagick源码编译成so扩展。

$tar xzvf imagick-2.0.1.tgz 
$cd imagick-2.0.1 
$phpize (此命令前提是你已经安装了php,phpize可以通过whereis命令查找出具体路径) 
$./configure 
$make 
$make install

安装完成后系统会产生一个imagick.so文件,并提示路径如下 
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20060613/ 
这个动态文件可以给相同的php环境使用,比如我直接将imagick.so复制到/opt/lampp/lib/php/exention /extension/no-debug-non-zts-20060613/下,xampp环境就可以使用这个动态扩展了,非常方便; 
最后一步需要在php.ini加入extension=imagick.so这行,重启apache.安装完毕。 
如果想编译成php的一个静态模块,方法:

$tar xzvf  imagick-2.0.1.tgz $PHP_SOURCE_DIR/ext/imagick 
$rm configure && ./buildconf --force 
$./configure (重新编译php,在你其它选项最后加上) --with-imagick 
$make && make install

3.安装magickwand 
我们采用跟imagick相同的方法:

$tar xzvf MagickWandForPHP-1.0.5.tar.gz 
$cd MagickWandForPHP-1.0.5 
$phpize (此命令前提是你已经安装了php,phpize可以通过whereis命令查找出具体路径) 
$./configure 
$make 
$make install

安装完成后系统会产生一个magickwand.so文件,并提示路径如下 
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20060613/ 
最后一步需要在php.ini加入extension=magickwand.so这行,重启apache.安装完毕。 
如果想编译成php静态模块: 
PHP_SRC_DIR代表机器上的php源代码路径,例如/root/php-5.2.2

$tar xzvf MagickWandForPHP-1.0.5.tar.gz PHP_SRC_DIR/ext/magickwand/ 
$cd PHP_SRC_DIR/ext/magickwand/ 
$phpize (此命令前提是你已经安装了php,phpize可以通过whereis命令查找出具体路径) 
$cd PHP_SRC_DIR 
$rm ./configure 
$./buildconf --force 
$./configure (重新编译php,在你其它选项最后加上) --with-magickwand=/usr

最后通过phpinfo去查看安装是否成功,关于使用待续。



本文转自    geekwolf   51CTO博客,原文链接:http://blog.51cto.com/linuxgeek/998346

相关文章
|
关系型数据库 MySQL 应用服务中间件
LNMP详解(四)——LNMP原理与简单部署
LNMP详解(四)——LNMP原理与简单部署
719 1
|
7月前
|
存储 缓存 人工智能
《从木偶江湖到活色长安:NPC行为失控的架构级解决方案》
本文聚焦武侠开放世界游戏《江湖余烬》内测时,长安城高NPC密度、高交互场景下的NPC行为崩坏问题—25%的NPC出现动作重复、卡墙、剧情“失忆”等异常,仅在极限场景触发且常规修复无效。文章梳理了“主状态机+子行为树”的NPC技术架构,通过三层排查锁定核心矛盾:主线程卡顿致状态切换时序错乱,内存碎片引发数据串扰,事件总线拥堵形成恶性循环。经“状态协同重构+内存总线优化+监控容灾搭建”的三层解决方案,最终将NPC崩坏率降至0.3%,玩家投诉大幅下降,同步总结出开放世界NPC系统设计的五大核心教训,揭示架构协同稳定性对游戏沉浸感的关键意义。
306 1
|
机器学习/深度学习 JSON 自然语言处理
Flutter敏感词过滤实战:基于AC自动机的高效解决方案
在社交、直播等场景中,敏感词过滤至关重要。本文介绍基于AC自动机的Flutter高效敏感词过滤方案,通过构建Trie树与失败指针实现线性时间复杂度的多模式匹配,支持干扰字符处理与动态优化。代码实战结合性能对比,助你打造毫秒级响应的过滤系统,适用于聊天、评论、内容审核等场景,保障平台安全。
575 69
|
缓存 C# Windows
C#程序如何编译成Native代码
【10月更文挑战第15天】在C#中,可以通过.NET Native和第三方工具(如Ngen.exe)将程序编译成Native代码,以提升性能和启动速度。.NET Native适用于UWP应用,而Ngen.exe则通过预编译托管程序集为本地机器代码来加速启动。不过,这些方法也可能增加编译时间和部署复杂度。
886 2
|
JavaScript 前端开发 API
Vue 3新特性详解:Composition API的威力
【10月更文挑战第25天】Vue 3 引入的 Composition API 是一组用于组织和复用组件逻辑的新 API。相比 Options API,它提供了更灵活的结构,便于逻辑复用和代码组织,特别适合复杂组件。本文将探讨 Composition API 的优势,并通过示例代码展示其基本用法,帮助开发者更好地理解和应用这一强大工具。
407 2
|
机器学习/深度学习 人工智能 物联网
智能家居技术的未来:从自动化到智能化的跨越
本文将探讨智能家居技术的发展趋势,从早期的自动化设备到现代的智能系统,分析其背后的技术驱动因素和市场动态。文章将详细讨论物联网(IoT)、人工智能(AI)、机器学习等技术如何推动智能家居的发展,并展望智能家居未来的发展方向。
|
数据采集 JavaScript 前端开发
Puppeteer-py:Python 中的无头浏览器自动化
Puppeteer-py:Python 中的无头浏览器自动化
|
JSON 安全 Java
Star 28.2k!这个开源库真是好用
阅读Hutool的源码是深入理解其工作原理的有效方式。通过阅读源码,你可以学习到Hutool的实现细节,了解其内部的逻辑和设计模式。这对于提高自己的编程技能和理解Hutool的精髓非常有帮助。由于分析源码需要更大的文章篇幅,后续有时间,V 哥再单独写一篇文章来解释这些好用工具类的源码分析。
361 1
|
网络协议 网络安全 网络架构
网络路由之静态路由学习资料整理
静态路由是由网络管理员手动配置的固定路由表项,不受动态路由协议的影响,用于指定网络目标及其下一跳,提供网络控制和管理的手动路由选择。
922 0