无法让 Imagick 在 Windows + PHP 5.6 (Xampp) 上检测支持的格式
Cannot make Imagick detect supported format on Windows + PHP 5.6 (Xampp)
经过 3 天的研究,google 和挫折让 imagick 在我的 XAMPP 盒子上工作。我可以把它做成 php 模块。但它无法检测支持的格式。
如您所见,我目前安装了 3.1.2,但实际上我从最新的 3.4.1 开始一直工作,并从标有 stable
的那些版本跳转,但我就是做不到让它发挥作用。
当我尝试 运行:
<?php
$handle = fopen('http://xxxxx.png', 'rb');
$img = new Imagick();
$img->readImageFile($handle);
$img->thumbnailImage(100, 0);
echo $image;
我得到:
Uncaught exception 'ImagickException' with message 'Unable to read image from the filehandle' in xxxxx:5 Stack trace: #0 xxxxx\index.php(5): Imagick->readimagefile(Resource id #3) #1 {main} thrown in xxxxx\index.php on line 5
我有的是:
Windows 8.1 64-bit
PHP 5.6.12, x86, TS
(http://i.imgur.com/2pnneqO.png)
就安装而言,这是我到目前为止实际所做的:
- 从以下位置下载任何
-Thread Safe (TS) x86
包
https://pecl.php.net/package/imagick
- 解压缩 .zip (1)
php_imagick.dll
到 C:\_XAMPP\php\ext
(2)
将 CORE_RL_*
个文件提取到 C:\_xampp\apache\bin
- 从
ImageMagick-7.0.1-1-Q16-x86-dll.exe
下载
Link
- 安装在
C:\ImageMagick
- 将 MAGICK_HOME 添加到环境 PATH。 http://i.imgur.com/jQAWl3W.png
- 将
C:\ImageMagick\modules\coders
中的所有*_.dll
文件复制到
C:\_Xampp\apache\bin
- 将
C:\ImageMagick\modules\coders
中的所有*_.dll
文件复制到
C:\ImageMagick\
- 通过Xampp
重启Apache
并且仍然无法让我的 PHP 检测到 Imagick 支持的文件格式,即使它们应该是 http://prntscr.com/b1l54u :((
有人能告诉我我错过了什么吗?请?
你好像走的路有点曲折。
我拿到的时候安装的方法运行是:
- 使用 exe 文件下载并安装 Ghostscript
- 使用 exe 文件下载并安装 imagemagick - 确保将路径添加到环境变量。您可能不需要这一步,但我想使用 Imagemagick 无论如何,我是我的网站和我的电脑。
- 下载 Imagick dll 文件并将其放在推荐的文件夹中 - 我现在不记得是哪个了。
- 取消注释 php.ini 文件中的 Imagick 选项。我有
我的系统上有两个或三个 php.ini 个文件,我在每个文件中都这样做了。
- 关闭计算机并重新启动。开始 XAMPP 并且成功了。
这只适用于几次安装,当我升级操作系统时,由于 php 和 Imagick.dll 的版本不兼容,我无法让它工作。如果我想使用 Imagick,我会在我的服务器上使用它,因为主机已经为我安装了它。
您仍然可以在本地编写代码并在生产服务器上对其进行测试。这有点痛苦,但可能 quicker/easier 比尝试让 Imagick 在您的 PC 上工作。
出于兴趣,我放弃了它并使用带有 exec() 和命令行的 Imagemagick。
经过 3 天的研究,google 和挫折让 imagick 在我的 XAMPP 盒子上工作。我可以把它做成 php 模块。但它无法检测支持的格式。
如您所见,我目前安装了 3.1.2,但实际上我从最新的 3.4.1 开始一直工作,并从标有 stable
的那些版本跳转,但我就是做不到让它发挥作用。
当我尝试 运行:
<?php
$handle = fopen('http://xxxxx.png', 'rb');
$img = new Imagick();
$img->readImageFile($handle);
$img->thumbnailImage(100, 0);
echo $image;
我得到:
Uncaught exception 'ImagickException' with message 'Unable to read image from the filehandle' in xxxxx:5 Stack trace: #0 xxxxx\index.php(5): Imagick->readimagefile(Resource id #3) #1 {main} thrown in xxxxx\index.php on line 5
我有的是:
Windows 8.1 64-bit
PHP 5.6.12, x86, TS
(http://i.imgur.com/2pnneqO.png)
就安装而言,这是我到目前为止实际所做的:
- 从以下位置下载任何
-Thread Safe (TS) x86
包 https://pecl.php.net/package/imagick - 解压缩 .zip (1)
php_imagick.dll
到C:\_XAMPP\php\ext
(2) 将CORE_RL_*
个文件提取到C:\_xampp\apache\bin
- 从
ImageMagick-7.0.1-1-Q16-x86-dll.exe
下载 Link - 安装在
C:\ImageMagick
- 将 MAGICK_HOME 添加到环境 PATH。 http://i.imgur.com/jQAWl3W.png
- 将
C:\ImageMagick\modules\coders
中的所有*_.dll
文件复制到C:\_Xampp\apache\bin
- 将
C:\ImageMagick\modules\coders
中的所有*_.dll
文件复制到C:\ImageMagick\
- 通过Xampp 重启Apache
并且仍然无法让我的 PHP 检测到 Imagick 支持的文件格式,即使它们应该是 http://prntscr.com/b1l54u :((
有人能告诉我我错过了什么吗?请?
你好像走的路有点曲折。
我拿到的时候安装的方法运行是:
- 使用 exe 文件下载并安装 Ghostscript
- 使用 exe 文件下载并安装 imagemagick - 确保将路径添加到环境变量。您可能不需要这一步,但我想使用 Imagemagick 无论如何,我是我的网站和我的电脑。
- 下载 Imagick dll 文件并将其放在推荐的文件夹中 - 我现在不记得是哪个了。
- 取消注释 php.ini 文件中的 Imagick 选项。我有 我的系统上有两个或三个 php.ini 个文件,我在每个文件中都这样做了。
- 关闭计算机并重新启动。开始 XAMPP 并且成功了。
这只适用于几次安装,当我升级操作系统时,由于 php 和 Imagick.dll 的版本不兼容,我无法让它工作。如果我想使用 Imagick,我会在我的服务器上使用它,因为主机已经为我安装了它。 您仍然可以在本地编写代码并在生产服务器上对其进行测试。这有点痛苦,但可能 quicker/easier 比尝试让 Imagick 在您的 PC 上工作。
出于兴趣,我放弃了它并使用带有 exec() 和命令行的 Imagemagick。