2012-08-14 19 views
5

Manipuluję obrazami za pomocą js i chciałbym zapisać te przekształcone obrazy. Jestem delegowania te dane z AJAX:php imagick - odczyt obrazu z base64

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

ten sposób uzyskać kod base64 dla obrazu, ale nie mogę znaleźć sposób, aby przeczytać ją Imagick.

To jest mój sposób:

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

Ale to się nie powiedzie:

Błąd krytyczny: Uncaught wyjątek 'ImagickException' z komunikatem 'nie delegata dekodowania tego formatu obrazu `' @ błąd/blob.c ślad/BlobToImage/360' w /Library/WebServer/Documents/test/save.php:7 Stos:

# 0 /Library/WebServer/Documents/test/save.php(7): Imagick-> readimageblob ("u? Z? f? {?? z ????? ...")

Jakieś pomysły, dlaczego?

Odpowiedz

10

zorientowali się.

Musiałem usunąć część data:image/png;base64, z przesłanego ciągu, a następnie można ją zinterpretować jako blob.

2

Przeczytaj ten adres; -

PHP-Imagemagick image display

lub spróbuj go: -

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

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

readImageBlob - Czyta obrazu z ciągiem binarnym: 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

Kiedy daje odpowiedź, korzystne jest, aby dać [jakieś wyjaśnienie, dlaczego odpowiedź] (http://stackoverflow.com/help/how -to-answer). –

Powiązane problemy