我使用 PHP GD 库创建了一个 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>