2 回答
TA贡献1963条经验 获得超6个赞
最终,我最终写了一个博客文章,该文章是PhilipD删除的帖子的重新发布,该帖子以错误的格式发布且未得到更正。所以问题被删除了。
我在这里重新发布PhilipD的答案,这样可以使遇到相同问题的人更容易找到它,因为花了半天的时间才找到有效的博客文章。这些步骤详细介绍了32位安装。我为我的64位php执行了64位安装。
该服务器位于Windows Server 2012R2(64位)服务器上,使用IIS作为Web服务器应用程序。但是,我安装了所有与ImageMagick相关的软件的32位版本,因为Web服务器应用程序(IIS)是32位的。以下显示了截至2017年10月的最新/最新版本。
1.下载ImageMagick安装程序
点击菜单栏中的“下载”
然后,顶部链接中的“ Windows Binary Releases ”或向下滚动
选择“ Win32动态像素每像素16位”,请确保选择动态组件而不是静态组件。
2.下载用于ImageMagick的php模块
选择不是“ RC”(发行候选)版本的最高版本–当前为3.4.3
选择用于VC14,x86和IIS的“ NTS”(非线程安全)的PHP(7.1)版本的条目
下载并保存ZIP文件。
3.下载PHP的依赖包,以加载/使用ImageMagick
选择具有最高版本号的“ ImageMagick”程序包
*请注意,该版本可能与上述(1.)中的版本不同
选择“ vc14”和“ x86”版本*
4.取消阻止每个下载的文件
根据下载方式的不同,这可能有必要,也可能没有必要,但是如果需要,应始终检查并“取消阻止”下载的文件。
右键单击每个文件,然后从弹出菜单中选择“属性”
如果属性对话框显示文本“此文件来自另一台计算机,可能被阻止以帮助保护此计算机”,
点击“取消阻止”按钮
单击确定。
如果您不“取消阻止”下载的文件,尤其是ZIP文件,则仍可以将已安装或复制的单个文件标记为“阻止”,这有时会在运行软件时引起一些奇怪的问题。
5.安装Imagick应用程序
运行ImageMagick-7.0.7-8-Q16-x86-dll.exe进行安装
接受许可协议
在安装过程中的每个屏幕上接受默认设置。
安装完成后,要测试安装是否成功,请打开命令提示符并运行以下两个命令:
magick wizard: wizard.jpg magick wizard.jpg win:
这将显示一个“ IMDisplay”窗口,该窗口显示在画架上创建蒙娜丽莎肖像的向导的素描/图像。
6.安装依赖项
解压缩您在步骤3中下载的文件。
进入bin目录
将
IM_MOD_RL_*.dll
文件(125个文件)复制到ImageMagick的已安装版本的文件夹中,例如C:\Program Files (x86)\ImageMagick-7.0.7-Q16
返回到bin目录
将
CORE_RL_*.dll
文件(20个文件)复制到ImageMagick的已安装版本的文件夹中,例如C:\Program Files (x86)\ImageMagick-7.0.7-Q16
* *在提示您要覆盖/重命名的情况下,选择“覆盖”请注意,这将破坏Imagick的命令版本。magick:错误的JPEG库版本:库为80,呼叫者期望为62
7.安装Imagick php扩展dll
解压在步骤2中下载的文件。
将文件复制
php_imagick.dll
到服务器上已安装版本的PHP的“ ext”文件夹中,例如C:\php\7.1\ext
。
不要复制CORE_RL_ *文件
在Web上的某些文章中,您将看到也从该工具包复制CORE_RL_ *文件以替换ImageMagick文件夹中的文件的说明,但这是不正确的。在步骤6中复制了这些文件的适当版本。
8.修改PHP.ini
编辑PHP软件文件夹中的php.ini文件,例如“ C:\ PHP \ 7.1 \ php.ini”
将以下行添加到包含其他扩展名的部分:
extension=php_imagick.dll
9.重新启动服务器。
重新启动IIS似乎还不够,您需要重新启动整个计算机。这可能与IIS无法识别Imagick输入的PATH条目有关。
10.测试PHPINFO
在Web根目录中创建一个PHP文件,其中包含以下内容:
在网络浏览器中访问此文件,
搜索现在应该存在于PHPINFO输出中的“ Imagick”部分。
它应如下所示:
imagick imagick模块:启用了imagick模块版本3.4.3
imagick类Imagick,ImagickDraw,ImagickPixel,ImagickPixelIterator,ImagickKernel
Imagick使用ImageMagick版本ImageMagick编译的版本6.9.3-7 Q16 x86 2016-03-27 http://www.imagemagick.org
Imagick使用ImageMagick库版本ImageMagick 6.9.3-7 Q16 x86 2016-03-27 http://www.imagemagick.org
ImageMagick版权所有(C)1999-2015 ImageMagick Studio LLC
ImageMagick发布日期2016-03-27
ImageMagick支持的数量格式:216
ImageMagick支持的格式3FR,AAI,AI,ART,ARW,AVI,AVS,BGR,BGRA,BGRO,BIE,BMP,BMP2,BMP3,BRF,CAL,CALS,CANVAS,CAPTION,CIN,CIP,CLIP,CLIPBOARD,CMYK ,CMYKA,CR2,CRW,CUR,剪切,数据,DCM,DCR,DCX,DDS,DFONT,DJVU,DNG,DOT,DPS,DPX,DXT1,DXT5,EMF,EPDF,EPI,EPS,EPS2,EPS3,EPSF ,EPSI,EPT,EPT2,EPT3,ERF,EXR,传真,FITS,FPX,分形,FTS,G3,GIF,GIF87,梯度,灰色,GROUP4,GV,H,HALD,HDR,直方图,HRZ,HTM,HTML ,ICB,ICO,ICON,IIQ,INFO,INLINE,IPL,ISOBRL,ISOBRL6,J2C,J2K,JBG,JBIG,JNX,JP2,JPC,JPM,JPT,JSON,K25,KDC,LABEL,M2V,M4V,MAC ,MAGICK,MAP,MASK,MAT,MATTE,MEF,MIFF,MKV,MONO,MOV,MP4,MPC,MPEG,MPG,MRW,MSL,MTV,MVG,NEF,NRW,NULL,ORF,OTB,OTF,PAL ,PALM,PAM,PATTERN,PBM,PCD,PCDS,PCL,PCT,PCX,PDB,PDF,PDFA,PEF,PES,PFA,PFB,PFM,PGM,PICON,PICT,PIX,PLASMA,PNM,PPM,预览,PS,PS2,PS3,PSB,PSD,PTIF,PWP,径向梯度,RAF,RAS,RAW,RGB,RGBA,RGBO,RGF,RLA,RLE,RMF,RW2,SCR,SCREENSHOT,SCT, SFW,SGI,SHTML,SIX,SIXEL,稀疏颜色,SR2,SRF,STEGANO,SUN,TEXT,TGA,THUMBNAIL,TIFF,TIFF64,TILE,TIM,TTC,TTF,TXT,UBT,UBRL6,UIL,UYVY, VDA,VICAR,VID,VIFF,VIPS,VST,WBMP,WEBP,WMF,WMV,WPG,X3F,XBM,XC,XCF,XPM,XPS,XV,YCbCr,YCbCrA,YUV
重要说明:
如果“受支持的格式”部分未显示任何格式,或仅显示了少量格式,则最可能的原因是您错过了将一个或多个IM_MOD_RL_ *或CORE_RL_ * DLL文件复制到ImageMagick文件夹中的操作,或者您从“ php_magick”工具包中复制了它们。
11.在PHP中使用ImageMagick测试图像生成
在Web根目录中创建一个PHP文件,其中包含以下内容(我从“验证ImageMagick安装”此项中的一项输入中复制了该文件):
<?php
error_reporting(E_ALL);
ini_set( 'display_errors','1');
/* Create a new imagick object */
$im = new Imagick();
/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");
/* Create imagickdraw object */
$draw = new ImagickDraw();
/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);
/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);
/* Close the pattern */
$draw->popPattern();
/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');
/* Set font size to 52 */
$draw->setFontSize(52);
/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");
/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");
/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);
/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);
/* Set the format to PNG */
$canvas->setImageFormat('png');
/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>
在浏览器中运行此PHP文件。它应该显示一个包含文本“ Hello World!”的图像。
12.检查错误
检查php-errors.log文件是否有任何错误。
您可以在php.ini文件中找到php-errors.log文件的定义位置。检查此文件中是否有与ImageMagick安装相关的最新错误。
PDF文件需要Ghostscript
安装并完成上述所有操作后,ImageMagick可以在PHP中用于转换图像,但不能用于将PDF文件转换为图像。对于最后一步,似乎也有必要从https://www.ghostscript.com/download/gsdnld.html安装Ghostscript,并且只有在我安装了64位版本的Ghostscript的情况下,它才能正常工作(即使一切否则我安装的是32位版本)。仅需安装Ghostscript。无需更改php.ini或任何其他配置。
- 2 回答
- 0 关注
- 291 浏览
添加回答
举报