开发者

Use PHP to convert JPEGs to transparent PNG

I have a lot of JPEG images that I want to convert to PNG images using PHP. The JPEGs are going to be uploaded by client开发者_如何学Cs so I can't trust them to make sure they are in the right format.

I also want to make their white backgrounds transparent.

Does PHP have any functions I can use to achieve this?


After a few days of trying different solutions and doing some more research, this is what I found worked for me.

 $image = imagecreatefromjpeg( 'image.jpg' );
 imagealphablending($image, true);
 $transparentcolour = imagecolorallocate($image, 255,255,255);
 imagecolortransparent($image, $transparentcolour)

The imagealphablending($image, true); is important.

Using imagesavealpha($f, true); as mentioned in a previous answer definitely doesn't work and seems to actually prevent you from making the background transparent...

To output the transparent image with the correct headers.

<?php
     header( 'Content-Type: image/png' );
     imagepng( $image, null, 1 );
?>


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

More details here


This worked for me:

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


I found this solution at 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');
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜