我有很多JPEG图像要使用PHP转换为PNG图像。 JPEG将由客户上传,因此我不相信它们以确保它们的格式正确。
我也想让他们的白色背景透明。
PHP是否具有我可以用来实现此功能的任何功能?
答案 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');