XAMPP上的ImageMagick正在加载和执行,但不能读取文件

我的networking服务器安装了ImageMagick并且可用(并正常工作),所以我想利用它。 要做到这一点,我需要在我的本地主机上运行它来testing代码等。

我在Windows 8.1上使用Apache / 2.4.17(Win32)和PHP / 5.6.16的当前版本的XAMPP(版本5.6.14)

要在本地安装ImageMagick,我创build了根目录下的这个目录:

C: ImageMagick的

为什么不是Flask给我一个交互式debugging器?

需要帮助将Apache2重写规则转换为Nginx

从htaccess中的URL中删除尾部的斜杠

一台服务器上有多个Zend框架站点

SVN导入:“错误:无法打开请求的SVN文件系统”

那么,从这里:

http://windows.PHP.net/downloads/pecl/deps/

…我下载了X86线程安全的版本,将匹配的DLL(你必须单独获得,这使我神经质)。 我下载的版本是:

ImageMagick-6.9.1-2-vc11-x86.zip

我将它解压缩到C: ImageMagick,然后将其“bin”子文件夹的内容移动到C: ImageMagick,以便所有内容都位于该目录的根目录中。

然后,我添加了C: ImageMagick到我的PATH,并validation它的工作原理是首先执行“转换”命令行在不同的目录,然后导致帮助屏幕信息显示。 然后,我通过从命令行成功调整图像大小,进一步validation了它的工作。 到现在为止还挺好。

然后,按照从其他网上发布有关如何做到这一点剔除的build议,我将CORE_RL_.DLL文件和IM_MOD_RL.DLL文件从C: ImageMagick复制到c: xampp apache bin

然后我添加了这个系统环境variables:

MAGICK_HOME=c:imagemagick

下一步是将PHP_imagemagick.dll添加到XAMPP中的PHP ext文件夹中,但在ImageMagick ZIP文件/ EXE中没有这样的DLL。 为了得到它,我必须去这里:

http://windows.PHP.net/downloads/pecl/releases/imagick/3.3.0rc2/

…并下载:

PHP_imagick-3.3.0rc2-5.6-ts-vc11-x86.zip

…然后我把它解压缩到一个专门的“垃圾”目录,并将其包含的PHP_imagemagick.dll文件复制到c: xampp PHP ext

然后我编辑了c: xampp PHP中的PHP.ini文件来包含这个指令:

extension=PHP_imagemagick.dll

现在…真相的时刻:

我启动了XAMPP并检查了PHP_ERROR_LOG,发现没有错误。 然后我运行PHPInfo.PHP并确认ImageMagick已经加载; 这里是屏幕截图:

现在,当从我的活动服务器(DreamHost)运行以下脚本时,它会成功转换X.JPG图像,如下所示:

<?PHP if (!extension_loaded('imagick')) { echo "imagick not installed..."; } else { echo "imagick installed..."; } echo "Start..."; $uploaded_filename = "x.jpg"; $im = new Imagick(); echo "Created object..."; $im->readImage("x.jpg"); echo "Read JPG..."; $im->resizeImage(528,Imagick::FILTER_lanczos2SHARP,1); $im->stripImage(); $im->writeImage("x_lg.jpg"); $im->clear(); $im->destroy(); echo "Done." ?>

但是,当我从我的本地主机运行它时,它创build$ im(ImageMagick对象),但它不会继续阅读与readImage()函数的图像(“创build的对象…”被写入到屏幕上,但没有任何超出,没有输出文件创build。)

任何关于我可能在我的安装中省略的build议?

Apache RewriteCond中variables的负面比较

如何使用apache nutch docker的rest api

Apacheauthentication规则转换为Nginx服务器

Nginx的模块开发与MysqL posible?

本地开发,Apache与开发人员 – 文件权限

事实证明ImageMagick需要图像文件的完整路径,即使它们与执行ImageMagick的脚本位于相同的目录中。 就这么简单。 以下是如何做到这一点:

假设您的图片保存在网站根目录下的“图片文件夹中。 在XAMPP本地主机上,完整路径可能是:

C:/xampp/htdocs/mysite/images/x.jpg

从而:

$_SERVER['DOCUMENT_ROOT'] would hold "C:/xampp/htdocs/mysite"; $path_to_your_files = "images/"; $image_file_name = "x.jpg";

把这个字符串放在一起:

$my_image = $_SERVER['DOCUMENT_ROOT'] . "/" . $path_to_your_files . $image_file_name;

在实时服务器上,完整路径可能是:

/the_inaccessible_superfolders_of_your_website/mysite.com/images/x.jpg

从而:

$_SERVER['DOCUMENT_ROOT'] would hold "/the_inaccessible_superfolders_of_your_website/mysite.com" $path_to_your_files = "images/"; $image_file_name = "x.jpg";

再次,把这一切与这个字符串一起:

$my_image = $_SERVER['DOCUMENT_ROOT'] . "/" . $path_to_your_files . $image_file_name;

这是必须喂入new Imagick($my_image); 为了它的工作。 我希望这可以帮助别人解决这个问题。

对于完整路径,您可以使用:

realpath('images/x.jpg')

代替

C:/xampp/htdocs/mysite/images/x.jpg

相关文章

可以认为OpenFeign是Feign的增强版,不同的是OpenFeign支持S...
为进一步规范小程序交易生态、提升用户购物体验、满足用户在...
云原生之使用Docker部署Dashdot服务器仪表盘
本文主要描述TensorFlow之回归模型的基本原理
1.漏洞描述Apache Druid 是一个集时间序列数据库、数据仓库和...
内部类(当作类中的一个普通成员变量,只不过此成员变量是cl...