2012-08-14 15 views
5

jsで画像を操作しています。これらの変換画像を保存したいと思います。php imagick - base64から画像を読み取る

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

この方法では、私はイメージのためのbase64コードを取得するが、私はImagickでそれを読むための方法を見つけることができません:私は、Ajaxと、このデータを掲載しています。

これは私のプロセスです:

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

しかし、これは失敗します。

致命的なエラー:メッセージでキャッチされない例外 'にImagickException' @エラー/ blob.c 'この画像形式 `のためノーデコードデリゲート' を/ /Library/WebServer/Documents/test/save.php:7 スタックトレースでBlobToImage/360' :

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

なぜでしょうか?

答えて

10

投稿された文字列からdata:image/png;base64,部分を削除しなければならなかったので、imagickはそれをblobとして解釈できます。

2

このURLを読む; -

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

答えを与えた場合、[WHYあなたの答えになど、いくつかの説明]を得ることが好ましい(http://stackoverflow.com/help/how - 答え)は1つです。 –

関連する問題