2014-06-29 9 views
6

मैंने अपने एमएएमपी देव पर्यावरण पर छविमैजिक विस्तार स्थापित किया है और PHP जानकारी को छविमैजिक को ठीक से इंस्टॉल किया गया है। हालांकि, मैं निम्न अपवाद प्राप्त कर रहा:Imagemagick फ़ाइल को पढ़ने में असमर्थ (एमएएमपी)

 
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 

स्रोत कोड:

 
$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

संपादित करें 1:

मैं संकुल के प्रबंधन के लिए brew उपयोग कर रहा हूँ।

मेरे MAMP विन्यास:

Imagick विस्तार (php.ini):

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

Envvars:

पथ:

/Applications/MAMP/Library/bin/envvars 

सामग्री:

 
#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

क्या हैं आप सुनिश्चित हैं कि यह फ़ाइल मौजूद है (यह सही पथ है)? क्या आपने पीडीएफ पास करने की कोशिश की है लेकिन कन्स्ट्रक्टर को छवि? क्या कोई त्रुटि थी? यह भी संभव है कि आपको '$ img = new imagick (realpath ($ pdf_file)) का उपयोग करने की आवश्यकता हो;' या आपके पास ghostscript पुस्तकालय स्थापित नहीं हैं –

+0

इसके अलावा सापेक्ष पथ ('$ _SERVER ['DOCUMENT_ROOT']। '/ Image/demo.pdf'')। – klugerama

+0

@ MarcinNabiałek मैंने पथ की जांच की है, यह सही है। मैं ghostscript के बारे में निश्चित नहीं हूँ। हालांकि, मैं कमांड लाइन के माध्यम से छवि को गुप्त कर सकते हैं। – Anam

उत्तर

4

पहली बार अपने पीडीएफ filepath की जाँच करें:

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

यदि फ़ाइल पढ़ी जा सकती है, इस जाँच: https://github.com/delphian/drupal-convert-file/wiki/Installing-ImageMagick-on-Mac-OSX-for-PHP-and-MAMP

+1

आपका उत्तर सही है, +1। उल्लेख करना न भूलें कि पथ ** स्थानीय सिस्टम पथ ** होना चाहिए। जब उपर्युक्त फ़ंक्शन 'echo' इमेज हिट करता है तो कभी काम नहीं करेगा। – GuyT

+0

फ़ाइल पठनीय है और मैंने आपके द्वारा प्रदान किए गए लिंक सहित कई ट्यूटोरियल्स का पालन किया है। मैं पीडीएफ को कमांडलाइन से छवि में परिवर्तित कर सकता हूं लेकिन PHP एक्सटेंशन का उपयोग नहीं कर सकता। – Anam

+0

अंतिम प्रयास: एक से अधिक पीडीएफ विनिर्देश (संस्करण) हैं।Perhabs आप demo.pdf के वर्तमान पीडीएफ संस्करण को खोजने और इसे दूसरे में बदलने की कोशिश कर सकते हैं। क्या आपने demo.pdf की तुलना में अन्य फ़ाइलों की कोशिश की है? –

1

से http://www.php.net/manual/en/imagick.construct.php

apprently जब पीडीएफ फ़ाइलों का उपयोग कर, हम जो पेज का उपयोग करने के लिए निर्दिष्ट कर सकता है, जो बदले में छवि मैगिक एक पीडीएफ फ़ाइल का उपयोग करते समय सही ढंग से निर्माण कर सकते हैं

$pdf_file = '/Applications/MAMP/htdocs/image/demo.pdf'; 
$img = new Imagick($pdf_file.'[0]'); 
//[0] indicate the number of the wanted page 
संबंधित मुद्दे