PHP通过Imagick扩展来实现对图片的处理,Imagick扩展是基于ImageMagick的,但Imagick扩展不是PHP自带的,如果用户想使用它,要么寻找Windows的Binary文件,要么自己编译一个。如果在Linux上,这些都不是问题。但Windows上相关的资料少之又少。下面简单介绍一下本人的编译过程。
准备过程:
1. 下载PHP源代码和编译工具
PHP的源代码可以从www.php.net上下载,具体的下载地址可以到download页面(http://www.php.net/downloads.php)上寻找。
然后到documentation页面(http://www.php.net/docs.php)上寻找编译过程的帮助,具体页面是:http://www.php.net/manual/zh/install.windows.building.php。
可以从这个页面上下载相关的编译工具:win32build和bindlib_w32,并将他们解压缩到源代码放在同级的目录中,具体目录结构如下:
+--BuildRootDir | | | +--bindlib_w32 | | | | | +--arpa | | | | | +--conf | | | | | +--... | | | +--php-5.x.x | | | | | +--build | | | | | +--... | | | | | +--win32 | | | | | +--... | | | +--win32build | | | | | +--bin | | | | | +--include | | | | | +--lib
将win32build\bin目录添加到系统环境变量Path中,这一步也可以在编译的时候指定。此外,需要在C盘建一个目录C:\usr\local\bin,将win32build\bin\目录下的bison.simple拷贝到此目录中。
完成上述工作后,编译resolv.lib。此文件的VC工程文件位于:bindlib_w32下,可以使用VC打开工程文件然后编译即可,将编译产生的resolv.lib拷贝到win32build\lib目录下(如果此文件已存在,覆盖之)。
至此,PHP的编译准备工作已完成。
2. 下载ImageMagick安装包并安装
到ImageMagick主页(http://www.imagemagick.org/script/index.php)上下载Windows的Binary文件(http://www.imagemagick.org/script/binary-releases.php?ImageMagick=ir9ijldaeppff0fudjv4kmfcj0#windows),请选择dll版本,因为只有dll版中有development相关的文件。安装dll版本,安装过程中一定要勾选:install development headers and libraries for C and C++和Add application directory into your system path两个选项。
3. 下载Imagick源代码
到ImageMagick的Program interface页面上(http://www.imagemagick.org/script/api.php)寻找PHP接口Imagick。然后下载(http://pecl.php.net/package/imagick)并解压到php源代码目录下的ext目录中(BuildRootDir/php-5.x.x/ext/imagick)。打开imagick目录下的config.w32文件,替换imagick_read.c为imagick_file.c。此处很可能是imagick的一个Bug。切记。
4. 配置Windows
如果你的Windows系统不是英文版或者默认打开文件的编码不是English(US),编译过程很可能会fail。因此需要对Windows系统的配置稍作改动,具体为:打开控制面板,选择区域与语言,找到非Unicode程序的语言项,然后配置默认使用语言为英语(美国)/English(US)。
经过以上4步之后,终于可以进行编译了。
编译过程:
使用VC的Command Prombt进入字符界面(cmd界面),然后cd到php的目录,检查一下path,看系统path中是否包括win32build\bin目录,如果没有包含进来,需要执行:set path=BuildRootDir\win32build\bin;%path%.
然后在php的源代码目录下执行buildconf.bat文件用于产生configure.js文件。然后系统提示键入"configure --help”.此时可以直接键入configure --enable-snapshot-build --disable-zip --disable-zlib --with-imagick=shared
注意以下最后生成的报告中是否包含imagick shared这样的一行。如果有,表示configure已经成功。可以键入nmake snap进行编译了。建议使用nmake snap >build.log将编译输出重定向到一个文件中。因为编译过程太长,使用日志文件方便日后检查。
编译完成之后会有一个Release_TS目录,下面会有php-5.x.x(5.x.x是你的php版本号)和3个zip文件。
编译的最终结果就位于php-5.x.x目录中。可以将它Copy到你需要的位置使用它。
测试编译结果:
以下是phpinfo()返回的关于imagick的相关信息。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

드림위버 CS6
시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
