2

使用 PHP GD 库,我生成了不透明的白色图像资源,到处都有一些“洞”,它们是完全透明的圆盘形状。我已将它附在下面,尽管您需要先保存它并使用图像预览应用程序打开它(在 Windows 中)才能看到其中的孔,因为背景是蓝色的。否则你只会看到白色。

原图: 原图资源

从那个 2550 x 3000px 的图像资源中,我需要创建一个较小的版本。我这样做是使用imagecopyresampled(). 生成的图像一切都很好,除了一个例外:到处都是灰色像素(RGB:254,254,254):

调整大小的图像: 调整大小的图像

我使用的部分代码如下:

$previewPxWidth = $this->viewportWidth_;
$previewPxHeight = round($this->viewportWidth_ / $schematic['paper.aspect.ratio']);

$preview = imagecreatetruecolor($previewPxWidth, $previewPxHeight);
$noColor = imagecolorallocatealpha($preview, 255, 255, 255, 127);
imagesavealpha($preview,true);
imagefill($preview, 0, 0, $noColor);

imagecopyresampled($preview, $sheet, 0, 0, 0, 0, $previewPxWidth, $previewPxHeight, $sheetPxWidth, $sheetPxHeight);
imagedestroy($sheet);

header("Content-type: image/png");
header("Content-disposition: inline; filename=image.png");
imagepng($preview);

那些非常轻且(显然)随机定位的灰色像素来自哪里,我该如何摆脱它们?

4

1 回答 1

0

尝试 imageAlphaBlending(),但 ImageMagic 是最好的方法。

于 2013-10-14T16:41:01.833 回答