Tôi có một lỗi rất lạ mà tôi chưa tìm được giải pháp. CẬP NHẬT xem giải pháp bên dướiImageMagick: chuyển đổi png không thành công qua PHP và hoạt động qua bash shell
Điều tôi đang cố gắng thực hiện là chuyển đổi ảnh có kích thước đầy đủ thành hình thu nhỏ 160x120. Nó hoạt động tốt với các tệp jpg và jpeg có kích thước bất kỳ nhưng không phải với png.
lệnh 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 function (rút ngắn)
...
$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));
}
Khi chức năng này chạy $ retval bằng 1 có nghĩa là lệnh chuyển đổi thất bại (thumbnail không được tạo ra).
Đây là nơi nó trở nên thú vị, nếu tôi chạy chính xác cùng một lệnh trong trình bao của tôi, nó hoạt động.
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$
Tôi đã thử sử dụng chức năng PHP khác như hệ thống, passthru nhưng không hoạt động. Tôi nghĩ có lẽ ai đó ở đây biết giải pháp.
Tôi đang sử dụng
MAMP 1.7.2
Apache/2.0.59
PHP/5.2.6
Cảm ơn!
CẬP NHẬT
tôi cập nhật các phụ thuộc sau
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
Tuy nhiên, nó không khắc phục được probl của tôi em.
CẬP NHẬT 2
cuối cùng tôi đã tìm thấy một cái gì đó mà có thể giúp đỡ, khi các chức năng chạy này là những gì được in bằng các bản ghi 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 CẬP NHẬT
libiconv .2.dylib là phiên bản 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)
CẬP NHẬT 4 Vấn đề
có liên quan đến MAMP, xem giải pháp dưới đây
Cảm ơn bạn rất nhiều! –