咕噜!将 png 图像转换为 jpeg,并默认使 Alpha 变为白色而不是黑色

我尝试了这样的东西,但它只是使图像的背景变白,而不一定是图像的alpha。我想把所有东西都上传为jpg,所以如果我能以某种方式用一些透明地“扁平化”png图像,将其默认为白色,这样我就可以将其用作jpg。感谢任何帮助。谢谢。

$old = imagecreatefrompng($upload);
$background = imagecolorallocate($old,255,255,255);
imagefill($old, 0, 0, $background);
imagealphablending($old, false);
imagesavealpha($old, true);

答案 1
<?php
$input_file = "test.png";
$output_file = "test.jpg";

$input = imagecreatefrompng($input_file);
$width = imagesx($input);
$height = imagesy($input);
$output = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($output,  255, 255, 255);
imagefilledrectangle($output, 0, 0, $width, $height, $white);
imagecopy($output, $input, 0, 0, 0, 0, $width, $height);
imagejpeg($output, $output_file);

答案 2

推荐