MIME Multipart/Related Co... 电子邮件相关的 RFC 文档
sep 27

距上次在 Windows 下编译 Magickwand for PHP 差不多过去快一年了, ImageMagick 升级到了 6.3.x 系列, Magickwand for PHP 也发布了最终的 1.0.5 版本,原先的 DLL 已经不能使用了。这期间,不断有人写信过来索要新版本,而 ImageMagick 官方论坛却始终没有人更新。

说实话,我现在完全在 Linux/FreeBSD 下开发,所以已经彻底不再使用 Magickwand for Windows 了;而且这个编译工作比较费时间,不太愿意做了;今天又花费了我一整天时间生成了一个最新(也是最后的)版本,使用 PHP 5.2.4 + ImageMagick 6.3.5 + MagickWand 1.0.5 + VC6 编译生成。

»» 最终文件请到此页面下载 ««

  • 编译环境:Windows 2000,Visual Studio 6.0,PHP-5.2.4,ImageMagick-6.3.5,Magickwand-1.0.5;
  • 测试环境:在 Windows 2000 + Apache 2.0.59 + PHP 5.2.4 环境下测试通过;

在此郑重申明:这将是我提供的最后一个版本,以后不再花费无谓的时间在这上面(感觉官方论坛对 MagickWand for Windows 没有任何兴趣)。我建议,需要做 MagickWand 开发的朋友,尽量转到 Linux/FreeBSD 下开发,软件的编译和安装更加方便,相关资料也更好找。

Update@2007-09-27 22:03

一个叫 Cully 的新西兰朋友下载我生成的 DLL 后,发现处理上传图片会产生一个错误:

Fatal error: magickreadimage(): C API cannot read the format "D:\PHP5\tempupload\0704I02C0681.jpg" (reason: UnableToOpenBlob `D:E:\PHP5\tempupload\0704I02C0681.jpg':  Invalid argument) [on C source line 217]

研究了一下 MagickWand 的源代码,同时也对比了一下 0.1.9 的旧代码,发现 MagickWand 作者将原先针对 Win32 平台的代码删除了,Windows 下的文件路径带有盘符(冒号),这个和 ImageMagick 辨认图片格式发生冲突,致使新的 MagickWand 会错误的处理文件路径为图像格式,引起读取失败。我将部分旧代码合并到新版本后发现可以修正 Cully 的问题,但我没有把握里面有多少东西需要修正。暂时放弃吧。

我现在不敢断言,但怀疑 MagickWand 的作者可能想要放弃 Windows 平台,或者说,他们就没有在 Windows 下进行测试。That’s bad news.

Update@2007-09-28 09:31

经过排查,发现只有在 read_image 的时候做了特殊处理,所以我直接制作了一个 补丁 ,重新编译后,发给 Cully 测试通过。OK,发布最后一次更新,所有下载文件更新到最新补丁版本。

另外,我也将自己制作的 MSVC6 的工程文件也放到了下载目录中,有兴趣的朋友可以自己拿回去自己编译(自己制作一个工程文件真的那么难么?呵呵)。

dirk 发表于 2007-09-27 Thursday

2 Responses to “Update Magickwand for PHP/Windows (Patched)”

  1. 北緯 Says:1

    博主你好,先聲明我不是來做廣告的。

    我在開發過程中碰到一個問題向你請教,magickwand 在 windows 下如何編譯呢?我是一個web從業人員,使用php5.3,但是google到的那些dll文件基本都是在php5.2以下,如果你有空的話可以教教我不?

    留msn給你:beiwei37.5[at]live.com

    你也可以發mail到我郵箱。

    謝謝先!

    dirk Reply:

    在我提供的下载页面中,有两个Visual Studio的Project文件。虽然是旧版本,但可以参考着修改。

    至于编译magickwand的步骤,你先得在Windows下编译成功PHP本身和ImageMagick,然后作为一个模块加到PHP中。

    相关具体步骤,还请自己摸索。

    最后,我建议你如果用到这个东西,还是把开发环境转移到Linux下吧,还是方便很多。


  2. 北纬 Says:2

    谢谢博主!


Comment »