php imagecopyresampled添加黑色背景 [英] php imagecopyresampled adds black background

查看:126
本文介绍了php imagecopyresampled添加黑色背景的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个调整大小的图像脚本,该脚本可以拍摄130x81的图像并将其添加到130x130的图像中,当imagecopyresampled函数运行时,即使基础图像是白色,它也会在剩余的空间中添加黑色背景.在下面的代码中,我非常感谢您的帮助.

I have a resize image script that takes a 130x81 image and adds it to a 130x130 image, when the imagecopyresampled function runs it adds a black background into the space that is left over, even though the base image is white. Code below, I could really appreciate some help.

我要合并到PHP创建的130x130文件中的图像是:

The image I am trying to merge onto the 130x130 file php created is:

$width = 130;
$height = 130;
$filename = 'process-add.jpg'; //130x81px jpg
$this->_image = imagecreatefromjpeg($filename);

$background = imagecreatetruecolor(130,130);//create the background 130x130
$whiteBackground = imagecolorallocate($background, 255, 255, 255); 
imagefill($background,0,0,$whiteBackground); // fill the background with white

imagecopyresampled($background, $this->_image,(130-$width)/2,(130-$height)/2, 0, 0, $width, $height, $width, $height); // copy the image to the background

ImageJpeg ($background,null,100); //display

我已阅读多个帖子以添加:

I have read on multiple posts to add:

imagealphablending($background, false);

插入应该修复它的代码,但是没有任何区别.

into the code which should fix it, but it doesn't make any difference.

提前谢谢!

推荐答案

此问题已解决.问题在于imagecopyresampled调用上的宽度和高度.请参见下面的代码块:

This has been solved. The issue was with teh width and height on the imagecopyresampled call. See the code block below:

<?

ini_set('allow_url_fopen', true);
$filename = 'http://img.yessy.com/1402152287-17201a.jpg'; // 130x81
$image = imagecreatefromjpeg($filename);
list($originalWidth, $originalHeight) = getimagesize($filename);

// Size of image to create
$width = 130;
$height = 130;

$background = imagecreatetruecolor($width, $height);//create the background 130x130
$whiteBackground = imagecolorallocate($background, 255, 255, 255); 
imagefill($background,0,0,$whiteBackground); // fill the background with white

imagecopyresampled($background, $image, 0, ($height - $originalHeight) / 2, 0, 0, $originalWidth, $originalHeight, $originalWidth, $originalHeight); // copy the image to the background

header("Content-type: image/jpeg");
ImageJpeg ($background,null,100); //display
?>

这篇关于php imagecopyresampled添加黑色背景的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆