8

私は js で画像を操作しており、これらの変換された画像を保存したいと考えています。このデータをajaxで投稿しています:

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

このようにして、画像の base64 コードを取得しますが、Imagick で読み取る方法が見つかりません。

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

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

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

致命的なエラー: /Library/WebServer/Documents/test/save.php:7 で、メッセージ「この画像形式のデコード デリゲートがありません」@ error/blob.c/BlobToImage/360 を含む例外「ImagickException」がキャッチされませんでした:7 スタック トレース:

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

理由はありますか?

4

3 に答える 3

14

理解した。

投稿された文字列からパーツを削除するdata:image/png;base64,必要がありました。そうすると、imagickはそれをblobとして解釈できました。

于 2012-08-14T17:40:23.867 に答える
3

このURLを読んでください;-

PHP-Imagemagick画像表示

または試してみてください:-

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

echo "<img src='data:image/jpg;base64,".base64_encode($contents)."' />";
于 2012-08-14T17:32:27.403 に答える