我有很多JPEG图像,我想使用PHP将其转换为PNG图像。 JPEG将由客户端上传,所以我不能相信他们确保它们的格式正确。使用PHP将JPEG转换为透明PNG
我也想让他们的白色背景透明。
PHP有什么功能可以用来实现这个功能吗?
我有很多JPEG图像,我想使用PHP将其转换为PNG图像。 JPEG将由客户端上传,所以我不能相信他们确保它们的格式正确。使用PHP将JPEG转换为透明PNG
我也想让他们的白色背景透明。
PHP有什么功能可以用来实现这个功能吗?
后尝试不同的解决方案,并做一些更多的研究, 几天这就是我发现我工作。
$image = imagecreatefromjpeg('image.jpg');
imagealphablending($image, true);
$transparentcolour = imagecolorallocate($image, 255,255,255);
imagecolortransparent($image, $transparentcolour)
imagealphablending($image, true);
很重要。
使用imagesavealpha($f, true);
在前面的回答中提到的肯定行不通,似乎确实防止您的背景透明...
为了输出正确的标题透明图像。
<?php
header('Content-Type: image/png');
imagepng($image, null, 1);
?>
$f = imagecreatefromjpeg('path.jpg');
$white = imagecolorallocate($f, 255,255,255);
imagecolortransparent($f, $white);
更多细节here
我发现这个解决方案在Convert jpg image to gif, png & bmp format using PHP
$imageObject = imagecreatefromjpeg($imageFile);
imagegif($imageObject, $imageFile . '.gif');
imagepng($imageObject, $imageFile . '.png');
imagewbmp($imageObject, $imageFile . '.bmp');
你还没有回答透明度问题。 – megaflop
这为我工作:
$image = imagecreatefromjpeg("image.jpg");
imagealphablending($image, true);
imagepng($image, "image.png");
假设这会工作,记住,JPG是一种有损格式。这意味着颜色可能稍微偏离一点,特别是在边缘以及颜色从白色变为另一种颜色的地方。寻找简单的白色可能无法找到所有想要透明的像素。 – GolezTrol
只是为了完成这个答案:使用'imagesavealpha($ f,true);'确保alpha通道被保存并且'imagepng($ f,'/path/to/save/file.png');'保存为PNG。 – megaflop
更多详情[here](http://www.php.net/manual/en/ref.image.php)。 – awm