PHP GD Libraryを使用してPNG画像を作成し、ユーザー入力に基づいてテキストを追加しました。保存する代わりに、ユーザーが変更をコミットするまで表示したいと思います。
彼らはいくつかの単語を追加したり、フォントを変更したりするので、変更を表示する必要があります。これを機能させる唯一の方法は、画像をサーバーに保存することですが、ユーザーが行ったわずかな変更の数十に対して、数十の画像を保存します。ファイルを上書きするか、適切な場合は以下の方法を実行する必要があります。アイデアは、操作する一時ファイルを作成することです。
では、処理した他の変数と同じように、それを「成功コールバック」に送信するにはどうすればよいですか?使い方を読んだob_get_contents()
のですが、どういうわけか一時的に画像を保存することになっていると思います。これはどのように機能しますか?
フォームページ(処理中のPHPページではない)に画像を表示するにはどうすればよいですか?これは、ユーザーがコミットするまでサーバーに保存されないようにするための良い計画ですか?
// more image manipulation code above
ob_start();
imagepng( $my_img );
$imageData = ob_get_contents();
ob_clean();
$results = array(
'price' => $_GET['priceX'],
'imageprocessed' => base64_encode($imageData) <<< EDIT change based on answer.
);
$json = json_encode($results);
echo $json;
?>
編集:これは、base64_encodeを受信するための成功コールバックで使用されるJavaScriptです。
<script type="text/javascript">
function doGen(){
var priceX = $('#couponprice').val();
$.get('processimage.php',
{priceX:priceX},
function(data) {
var imgFldr = '/images/';
data = $.parseJSON(data);
$('.price-placeholder').html(data.price);
var imageCallback = (data.couponnamecall);
$('#couponbuilt img').attr('src', 'data:image/jpeg;base64,' + imageCallback);
// ...
});
return false;
};
</script>