可能是重复的问题:
使用以下代码将Ruby转换为PHP代码
我发现了一段非常有用的Ruby代码,可以去除图像的白色背景颜色。
请参见下面的参考代码: 从图像中删除白色背景并使其透明
我尝试将代码翻译成php。 但是我得到了一个不想要的结果。 这是我第一次在这里发布问题,能否有人给我一些指导并原谅我的英语不好。
function setTransparency($new_image,$image_source)
{
$transparencyIndex = imagecolortransparent($image_source);
$transparencyColor = array('red' => 255, 'green' => 255, 'blue' => 255);
if ($transparencyIndex >= 0) {
$transparencyColor = imagecolorsforindex($image_source, $transparencyIndex);
}
$transparencyIndex = imagecolorallocate($new_image, $transparencyColor['red'], $transparencyColor['green'], $transparencyColor['blue']);
imagefill($new_image, 0, 0, $transparencyIndex);
imagecolortransparent($new_image, $transparencyIndex);
}
//create image from the source link
$image = imagecreatefrompng('http://i.stack.imgur.com/k7E1F.png');
//create image mask layer
$new_image = ImageCreateTruecolor(imagesx($image), imagesy($image));
//remove white background
setTransparency($new_image,$image);
//merge mask with original image source
ImageCopyMerge($new_image, $image, 0, 0, 0, 0, imagesx($image), imagesy($image), 100);
imagejpeg($new_image, null, 95);