使用PHP将JPEG转换为透明PNG

时间:2011-09-30 12:09:05

标签: php png image-manipulation gd jpeg

我有很多JPEG图像要使用PHP转换为PNG图像。 JPEG将由客户上传,因此我不相信它们以确保它们的格式正确。

我也想让他们的白色背景透明。

PHP是否具有我可以用来实现此功能的任何功能?

4 个答案:

答案 0 :(得分:8)

经过几天尝试不同的解决方案并进行更多的研究, 这是我发现为我工作的。

 $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 );
?>

答案 1 :(得分:6)

$f = imagecreatefromjpeg('path.jpg');
$white = imagecolorallocate($f, 255,255,255);
imagecolortransparent($f, $white);

更多详情here

答案 2 :(得分:0)

这对我有用:

 $image = imagecreatefromjpeg( "image.jpg" );
 imagealphablending($image, true);
 imagepng($image, "image.png");

答案 3 :(得分:-3)

我在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');