2012-08-14 22 views
5

से छवि पढ़ें मैं जेएस के साथ छवियों में हेरफेर कर रहा हूं, और मैं इन रूपांतरित छवियों को सहेजना चाहता हूं। मैं ajax के साथ इस डेटा पोस्टिंग कर रहा हूँ:PHP कल्पना - बेस 64

image : canvas.toDataURL('image/jpeg') 

इस तरह, मैं छवि के लिए बेस 64 कोड प्राप्त है, लेकिन मैं Imagick साथ इसे पढ़ने के लिए एक तरह से नहीं मिल रहा।

यह मेरा प्रक्रिया है:

$img = new Imagick(); 
$decoded = base64_decode($_POST['image']); 
$img->readimageblob($decoded); 

लेकिन यह विफल रहता है:

गंभीर त्रुटि: संदेश के साथ न आया हुआ अपवाद 'ImagickException' @ त्रुटि/blob.c 'इस छवि प्रारूप `के लिए कोई डिकोड प्रतिनिधि'/BlobToImage/360 '/Library/WebServer/Documents/test/save.php:7 में स्टैक ट्रेस: ​​

# 0 /Library/WebServer/Documents/test/save.php(7): Imagick-> readimageblob ('यू? जेड? एफ? {?? जेड ????? ...')

कोई विचार क्यों?

उत्तर

10

पता चल।

मुझे पोस्ट स्ट्रिंग से data:image/png;base64, भाग को हटाना पड़ा, और फिर कल्पना इसे ब्लॉब के रूप में समझ सकती है। -

2

इस यूआरएल पढ़ें; -

PHP-Imagemagick image display

या यह कोशिश: -

$thumbnail = $img->getImageBlob(); 
$contents = ob_get_contents(); 
ob_end_clean(); 

echo "<img src='data:image/jpg;base64,".base64_encode($contents)."' />"; 
-1

readImageBlob एक द्विआधारी स्ट्रिंग से छवि पुस्तकें: http://php.net/manual/en/imagick.readimageblob.php

$base64 = "iVBORw0KGgoAAAAN...."; 

$imageBlob = base64_decode($base64); 

$imagick = new Imagick(); 
$imagick->readImageBlob($imageBlob); 

header("Content-Type: image/png"); 
echo $imagick; 
+1

जब एक जवाब यह बेहतर है दे देने के लिए [के रूप में कुछ स्पष्टीकरण क्यों आपका जवाब] (http://stackoverflow.com/help/how उत्तर देने के लिए) एक है। –

संबंधित मुद्दे