PHP问题:将imagefill()用于白色背景,对不同的图像以不同的方式工作

PHP Issue with using imagefill() for a white background working differently for different images

提问人:Inderjeet Singh 提问时间:11/11/2023 最后编辑:OlivierInderjeet Singh 更新时间:11/11/2023 访问量:16

问:

我有这段代码,它适用于某些图像,但在其他图像上无法正常工作,需要注释一些代码才能使其适用于其他一些图像。

$xOffset = ($width - $image_width) / 2;

// Resample the image 
$image_p = imagecreatetruecolor($new_width, $new_height); 

//change color
$white_background = imagecolorallocate($image_p, 255, 255, 255);
//imagefill($image_p, 0, 0, $white_background); 

//find right side of image
$rightOffset = ($new_width - $xOffset) + 1;  

$image = imagecreatefrompng($image_file); //formula for png file
    
//insert source file into new image
imagecopyresampled($image_p, $image, $xOffset, 0, 0, 0, $new_width, $new_height, $width, $height); 

//fill image right hand side with white
imagefill($image_p, 0, $rightOffset, $white_background);
 
// Output the image to browser 
header('Content-Type: image/jpeg'); 
//imagejpeg($image_p, $save_to, 100); //if want to save file at mentioned path
imagejpeg($image_p, null, 100); //if don't want to save, only display output on page

如果我不评论这一行,那么我注意到与背景大小不同的小 png 图像,它们的右半边是黑色的。因此,在这种情况下,它需要注释。//imagefill($image_p, 0, 0, $white_background);

如果我注释掉,那么我注意到在带有文本的全宽 png 图像的情况下,“B”的内圈被黑色覆盖。因此,不应注释此行。//imagefill($image_p, 0, 0, $white_background);

对于我测试的两种不同类型的 png 图像,代码中似乎出现了一些故障。

PHP 图像处理 GD

评论


答: 暂无答案