2014-06-29 9 views
6

Ho installato l'estensione Imagemagick sul mio ambiente di sviluppo MAMP e informazioni su PHP che mostrano imagemagick installato correttamente. Tuttavia, sto ricevendo la seguente eccezione: codiceImagemagick non riesce a leggere il file (MAMP)

 
PHP Fatal error: Uncaught exception 'ImagickException' with message 
'Unable to read the file: 
/Applications/MAMP/htdocs/image/demo.pdf' 
in /Applications/MAMP/htdocs/image/index.php:8 
Stack trace: 
#0 /Applications/MAMP/htdocs/image/index.php(8): Imagick->__construct('/Applications/M...') 
#1 {main} 
    thrown in /Applications/MAMP/htdocs/image/index.php on line 8 

Fonte:

 
$pdf_file = '/Applications/MAMP/htdocs/image/demo.pdf'; 

echo $pdf_file; 

$save_to = '/Applications/MAMP/htdocs/image/demo.jpg'; 

$img = new imagick($pdf_file); 

//reduce the dimensions - scaling will lead to black color in transparent regions 
$img->scaleImage(800,0); 

//set new format 
$img->setImageFormat('jpg'); 

//save image file 
$img->writeImages($save_to, false); 

Screen short- imagemagick installed on MAMP

Edit 1:

Sto usando brew per la gestione dei pacchetti.

La mia configurazione MAMP:

Imagick estensione (php.ini):

 
[imagick] 
extension="/usr/local/Cellar/php55-imagick/3.1.0RC2/imagick.so" 

Envvars:

percorso:

/Applications/MAMP/Library/bin/envvars 

Content:

 
#if test "x$DYLD_LIBRARY_PATH" != "x" ; then 
# DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" 
#else 
    #DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib" 
#fi 
#export DYLD_LIBRARY_PATH 


#DYLD_LIBRARY_PATH="/Applications/MAMP/bin/ImageMagick/ImageMagick-6.8.9/lib:/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" 
#export DYLD_LIBRARY_PATH 

+0

Sono sei sicuro che questo file esista (è il percorso corretto)? Hai provato a passare non PDF ma immagine al costruttore? Ci sono stati errori? È anche possibile che tu abbia bisogno di usare '$ img = new imagick (realpath ($ pdf_file)) o' non hai librerie ghostscript installate –

+0

Prova anche path relativo ('$ _SERVER ['DOCUMENT_ROOT']. '/ Image/demo.pdf''). – klugerama

+0

@ MarcinNabiałek Ho controllato il percorso, è corretto. Non sono sicuro del ghostscript. Tuttavia, posso nascondere l'immagine tramite la riga di comando. – Anam

risposta

4

prima verificare il pdf filepath:

if (! is_readable('/Applications/MAMP/htdocs/image/demo.pdf')) { 
    echo 'file not readable'; 
    exit(); 
} 

se il file è leggibile, controllare questo: https://github.com/delphian/drupal-convert-file/wiki/Installing-ImageMagick-on-Mac-OSX-for-PHP-and-MAMP

+1

La tua risposta è corretta, +1. Non dimenticare di menzionare che il percorso deve essere il ** percorso del sistema locale **. Quando la funzione di cui sopra colpisce l'immaginario 'echo' non funzionerà mai. – GuyT

+0

Il file è leggibile e ho seguito molti tutorial tra cui il link che hai fornito. Posso convertire pdf in immagine da linea di comando ma non usare l'estensione php. – Anam

+0

Ultimo tentativo: ci sono più di una specifica pdf (versioni).Perhabs puoi provare a scoprire l'attuale versione pdf di demo.pdf e convertirla in un'altra. Hai provato altri file oltre a demo.pdf? –

1

Da http://www.php.net/manual/en/imagick.construct.php

apprently quando si utilizzano i file pdf, si può specificare la pagina da utilizzare, che può a sua volta aiutare imageMagick costruire correttamente quando si utilizza un file pdf

$pdf_file = '/Applications/MAMP/htdocs/image/demo.pdf'; 
$img = new Imagick($pdf_file.'[0]'); 
//[0] indicate the number of the wanted page 
Problemi correlati