2

PHP GD ライブラリを使用して、不透明な白の画像リソースを生成します。この画像リソースは、あちこちに「穴」があり、完全に透明なディスク形状です。以下に添付しましたが、背景が青っぽいため、最初に保存してイメージプレビューアプリケーションで開く必要があります (Windows の場合)。そうしないと、白しか見えません。

元の画像: 元の画像リソース

2550 x 3000 ピクセルの画像リソースから、小さいバージョンを作成する必要があります。を使用してそうしimagecopyresampled()ます。結果の画像はすべて問題ありませんが、1 つの例外があります。ところどころに灰色のピクセル (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 に答える