我有一個非常奇怪的錯誤,我還沒有找到解決方案。 更新看到下面的解決方案ImageMagick:通過PHP轉換PNG失敗,並通過bash shell工作
我想要做的是將全尺寸圖片轉換爲160x120縮略圖。它適用於任何尺寸的jpg和jpeg文件,但不適用於png。
ImageMagick的命令:
/opt/local/bin/convert '/WEBSERVER/images/img_0003-192-10.png' -thumbnail x320 -resize '320x<' -resize 50% -gravity center -crop 160x120+0+0 +repage -quality 91 '/WEBSERVER/thumbs/small_img_0003-192-10.png'
PHP函數(縮短)
...
$cmd = "/opt/local/bin/convert '/WEBSERVER/images/img_0003-192-10.png' -thumbnail x320 -resize '320x<' -resize 50% -gravity center -crop 160x120+0+0 +repage -quality 91 '/WEBSERVER/thumbs/small_img_0003-192-10.png'";
exec($cmd, $output, $retval);
$errors += $retval;
if ($errors > 0) {
die(print_r($output));
}
當該函數運行$ RETVAL等於1,這意味着轉換命令失敗(未創建的縮略圖)。
這是它變得有趣的地方,如果我在我的shell中運行完全相同的命令,它的工作原理。
wedbook:~ wedix$ /opt/local/bin/convert '/WEBSERVER/images/img_0003-192-10.png' -thumbnail x320 -resize '320x<' -resize 50% -gravity center -crop 160x120+0+0 +repage -quality 91 '/WEBSERVER/thumbs/small_img_0003-192-10.png'
wedbook:~ wedix$
我試過使用不同的PHP函數,如系統,passthru但它沒有工作。我想也許這裏有人知道解決方案。
我使用
MAMP 1.7.2
Apache/2.0.59
PHP/5.2.6
謝謝!
UPDATE
我更新了以下相關
libpng from 1.2.35 to 1.2.37
libiconv from 1.12_2 to 1.13_0
ImageMagick 6.5.2-4_1 to 6.5.2-9_0
但是,它並沒有解決我的PROBL EM。
月2日更新
我終於找到的東西,也許會有幫助,當函數運行這是被印在Apache日誌:
dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
Referenced from: /opt/local/bin/convert
Reason: Incompatible library version: convert requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
3 UPDATE
libiconv的.2.dylib是8.0.0版本...
bash-3.2$ otool -L /opt/local/lib/libiconv.2.dylib
/opt/local/lib/libiconv.2.dylib:
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
4 UPDATE
問題涉及甲基苯丙胺,見下文
非常感謝! – 2010-12-24 08:24:09