2012-01-04 5 views
0

Iはtest.phpをする画像を送信するこのコードを持っている:base64 captureVisibleTabからのデコードされた画像。どのようにjpg ot pngにGDライブラリを介してそれを保存するには?

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.captureVisibleTab(null, function(img) { 

    $.ajax({ 
    type: "POST", 
    url: "http://imap24.pl/tests/dom/testy/test.php", 
    data: "img=" + img, 
    success: function(e){ 
    alert(e); 
    }}); 


    }); 
}); 

IMGはbase64である(データ:画像/ JPEG、BASE64、/ 9J/4AAQSkZ ...)。私はtest.phpを

<?php 
if (isset($_POST['img'])) { 
$img = $_POST['img']; 
$data = base64_decode($img); 
$im = imagecreatefromstring($data); 
imagejpeg($im, 'simpletext.jpg'); 
imagedestroy($im); 
} 
?> 

で、このスクリプトを持っており、その結果として、私は認識フォーマット

何が問題になっていますに

データではありません。このメッセージが表示されますか?

+0

このメッセージが表示されません、どのライン?あなたの画像データがbase64でエンコードされていることを100%確信していますか? –

+0

私はtahtはいそれはbase64でエンコードされていると思います。最初のjsコードをデバッグするときimg変数にデータが含まれています:image/jpeg; base64 .... –

答えて

1

あなたは画像を述べたように、次のようになりますdata:image/jpeg;base64,…
ですから、ファイルに直接書き込み、その後、このデータ・URLの最初の部分を取り除く必要があります。

$comma = strpos($img, ','); 
$data = base64_decode(substr($img, $comma+1)); 
file_put_contents("simpletext.jpg", $data); 
+0

GDを使用する必要はありません。不要な 'imagecreatefromstring' /' imagejpeg'ラウンドトリップを削除してください。 – duskwuff

+0

@duskwuff、あなたは確かに、与えられたコンテンツは本当にイメージです。それは平準化された初歩的なものでなければならない。 – TimWolla

+0

TimWolla、duskwuff画像を開こうとするとエラーが出るsimpletext.jpg:/ –

関連する問題