使用 PHP 将 JPEG 转换为透明 PNG

发布于 2024-12-07 09:51:51 字数 131 浏览 1 评论 0原文

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

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

PHP 有什么函数可以用来实现这个目的吗?

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 clients 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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

不语却知心 2024-12-14 09:51:51

经过几天尝试不同的解决方案并做了更多研究后,
我发现这对我有用。

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

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 );
?>
幽蝶幻影 2024-12-14 09:51:51
$f = imagecreatefromjpeg('path.jpg');
$white = imagecolorallocate($f, 255,255,255);
imagecolortransparent($f, $white);

更多详细信息此处

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

More details here

顾冷 2024-12-14 09:51:51

这对我有用:

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

This worked for me:

 $image = imagecreatefromjpeg( "image.jpg" );
 imagealphablending($image, true);
 imagepng($image, "image.png");
素手挽清风 2024-12-14 09:51:51

我在 Convert jpg image to gif, png 找到了这个解决方案&使用 PHP 的 bmp 格式

$imageObject = imagecreatefromjpeg($imageFile);
imagegif($imageObject, $imageFile . '.gif');
imagepng($imageObject, $imageFile . '.png');
imagewbmp($imageObject, $imageFile . '.bmp');

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');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文