如何在windows vista上安装php的gmagick扩展

时间:2011-12-27 10:25:31

标签: php-extension gmagick

gmagick是imagemagick的更新版本,具有更多功能,资源消耗更少,速度更快但问题是关于网上这个精彩工具的讨论很少我最近遇到过这个问题  http://devzone.zend.com/1559/manipulating-images-with-php-and-graphicsmagick/  但我无法安装它在Windows机器上cos phpize没有工作所以我尝试了一些其他的方式和一些如何设法得到phpinfo页面,但我不能让它进一步工作我colud甚至没有用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类并打开图像,但是我的geeting非常大的错误,如下所示     致命错误:C:\ xampp \ htdocs \ junk \ imgproc \ imgproc1.php中消息'无法打开文件(gallery / img1.jpg)'的未捕获异常'GmagickException':4堆栈跟踪:#0 C:\ xampp \ htdocs \ junk \ imgproc \ imgproc1.php(4):Gmagick-&gt; __ construct('gallery / img1.jp ...')#1 {main}抛出C:\ xampp \ htdocs \ junk \ imgproc \ imgproc1。第4行的php

1 个答案:

答案 0 :(得分:3)

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

可以在此处获取PHP的GraphicsMagick扩展的Windows构建: http://valokuva.org/builds/

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

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

extension=php_gmagick_ts.dll

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

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

B)要解决您的代码问题:

  1. Gmagick构造函数不希望路径作为参数,而是整个图像文件名(可能包含路径)。通常最好将其留空并在readImage()调用中提供文件。
  2. 尝试完整的$ path(从root开始)并在readImage()writeImage()中使用它:
  3. 以下是一段代码的示例:

    <?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' >";
    ?>
    

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