我正在电子商务网站上在线购买iphone案例,客户可以上传和自定义图片。
因此,在magento管理面板中,我将该产品图像转换为jpg并保存。但我想在打印时在图像下方显示订单号,以便在打印图像中我可以打印带有订单号的图像。
我的jQuery代码是:
jQuery.post('https://'+window.location.hostname+'/artmanager/index/pngtojpg',{imagedata:img}).done(
function(data)
{
jimg=data;
window.open(data);
jQuery("#loading-image").hide();
});
我的控制器代码是:
public function pngtojpgAction()
{
//Code to convert png to jpg image
$input = imagecreatefrompng($this->getRequest()->getParam('imagedata'));
$width=imagesx($input);
$height=imagesy($input);
$output = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($output, 255, 255, 255);
imagefilledrectangle($output, 0, 0, $width, $height, $white);
imagecopy($output, $input, 0, 0, 0, 0, $width, $height);
$mypath=Mage::getBaseDir('media').'/custom_product_preview/predefined_images/temporary_processing/test.jpg' ;//Saving file as temporary file
imagejpeg($output,$mypath,100);
$filename = $mypath; //Reading the temporary file
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = 3056;
$newheight = 4861;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
ob_start();
imagejpeg($thumb);
$contents = ob_get_contents();
$contents = substr_replace($contents, pack("cnn", 1, 72, 72), 13, 5); //Converting Image DPI to 72DPI
ob_end_clean();
echo 'data:image/jpeg;base64,'.base64_encode($contents);
}
答案 0 :(得分:0)
您要查找的功能是imagestring
(http://php.net/manual/en/function.imagestring.php)
imagestring($image, $font, $x, $y, $string, $color);
$image
将为$input
$font
是1到5之间的整数(某些内置字体)。
$x
可以为10,或者$width / 2 - $widthOfImageString / 2
可以使其居中。
$y
可以$height - 20
将其置于底部。
$string
将是您的订单ID(或增量ID)
$color
必须是使用imagecolorallocate()创建的颜色标识符。