Ho un bug molto strano che non ho ancora trovato una soluzione. UPDATE vedi soluzione sottoImageMagick: conversione png fallita via PHP e funziona tramite shell bash
Quello che sto cercando di fare è convertire un'immagine a grandezza naturale in una miniatura 160x120. Funziona alla grande con file jpg e jpeg di qualsiasi dimensione, ma non con png.
comando 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'
funzione PHP (abbreviato)
...
$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));
}
Quando questa funzione viene eseguito $ retval uguale a 1 che significa che il comando di conversione non riuscita (miniatura non è stato creato).
Questo è il punto in cui diventa interessante, se eseguo esattamente lo stesso comando nella mia shell, funziona.
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$
Ho provato con funzione PHP diverso come il sistema, passante ma non ha funzionato. Pensavo che forse qualcuno qui conoscesse la soluzione.
sto usando
MAMP 1.7.2
Apache/2.0.59
PHP/5.2.6
Grazie!
UPDATE
ho aggiornato le seguenti dipendenze
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
Tuttavia, non ha risolto i miei probl em.
2 ° UPDATE
ho finalmente trovato qualcosa che potrebbe aiutare, quando la funzione gestisce questo è ciò che viene stampato nei log di 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 è la versione 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 ° aggiornamento
problema era legato a MAMP, vedere soluzione qui di seguito
Grazie mille! –