【问题标题】:how to install gmagick extension of php on windows vista如何在 windows vista 上安装 gmagick 的 php 扩展
【发布时间】:2011-12-27 10:25:31
【问题描述】:

gmagick 是 imagemagick 的较新版本,具有更多功能,它占用的资源更少且速度更快,但问题是网络上关于这个精彩工具的讨论很少,我最近遇到了这个 http://devzone.zend.com/1559/manipulating-images-with-php-and-graphicsmagick/ 但我无法将它安装在 Windows 机器上,因为 phpize 不起作用,所以我尝试了一些其他方式以及一些如何设法进入 phpinfo 页面,但我无法使其进一步工作,我什至无法使用 gmagick 打开单个图像 这是我使用的代码

     <?php
     $path="gallery/img1.jpg";
     // initialize object
     $image = new Gmagick($path);
     echo $image;
    // read image file
   $file = 'gallery/img1.jpg';
   $image->readImage($file);
   echo '<img src="' . $file . '" width="200" height="150" /> <br/>';
   ?>

我使用此代码来实例化 gmagick 类并打开图像,但我遇到了非常大的错误,如下所示 致命错误:在 C:\xampp\htdocs\junk\imgproc\imgproc1.php:4 中未捕获的异常“GmagickException”和消息“无法打开文件 (gallery/img1.jpg)”堆栈跟踪:#0 C:\xampp\ htdocs\junk\imgproc\imgproc1.php(4): Gmagick->__construct('gallery/img1.jp...') #1 {main} 在 C:\xampp\htdocs\junk\imgproc\imgproc1.php 中抛出在第 4 行

【问题讨论】:

    标签: php-extension gmagick


    【解决方案1】:

    A) 回答标题中的问题(可能会在此处引导其他读者):

    可以在此处获得适用于 PHP 的 GraphicsMagick 扩展的 Windows 版本: http://valokuva.org/builds/

    通过查看您的网络服务器的phpinfo(); 输出来检查您是否需要线程安全版本。查找条目Thread Safety。在条目PHP Extension Build 中,您还应该找到您需要的 VC 版本,例如API20090626,TS,VC9 用于 VC9。

    下载符合您条件的最新版本,将其放入您的 PHP/ext 目录,然后将其添加到您的 php.ini 中,如下所示:

    extension=php_gmagick_ts.dll
    

    如果你使用非 TS 版本,记得更正 dll 的名称。

    重新启动 Apache 并检查 phpinfo();。现在应该有一个gmagick 块..

    B) 纠正代码问题:

    1. Gmagick 构造函数不期望路径作为参数,而是完整的图像文件名(可能包含路径)。大多数情况下,最好将其留空并在 readImage() 调用中提供文件。
    2. 尝试完整的 $path(从 root 开始)并在 readImage()writeImage() 中使用它:

    这里是一个工作代码的例子:

    <?php
    // assuming this is the path to your code and to your image files
    $path = 'C:\xampp\htdocs\junk\imgproc\';
    
    $image = new Gmagick();
    $file = 'img1.jpg';
    $image->readImage($path.$file);
    
    // The rest of your code does not make any use of the GM instance, 
    // so I add something functional here: create a grayscale version and show it
    $fileOut= 'img1_GRAY.jpg';
    $image->setImageType(Gmagick::IMGTYPE_GRAYSCALE);
    $image->writeImage($path.$fileOut);
    $image->destroy();
    echo "<img src='$fileOut' >";
    ?>
    

    它应该显示图像文件的灰度版本。

    【讨论】:

    猜你喜欢
    • 2011-10-24
    • 1970-01-01
    • 2010-09-20
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多