現在の位置: ホーム> 最新記事一覧> GD2画像のピクセルデータを分析し、色を変更します

GD2画像のピクセルデータを分析し、色を変更します

M66 2025-05-17

PHPでは、GDライブラリは一連の強力な画像処理機能を提供します。ここでは、 ImageCreateeFromGD2は.gd2形式の画像をロードするための重要な機能です。 GD2形式は、高速負荷と高圧縮速度のために設計された画像形式です。 JPEGやPNGほど頻繁ではありませんが、特定のシナリオでは非常に役立ちます。

この記事では、 ImageCreateFromGD2関数を使用してGD2画像を読み取り、各ピクセルの色を分析し、特定の色領域を変更し、画像を新しいファイルとして保存する方法を紹介します。

ステップ1:GD2画像を準備します

まず、 .gd2形式の画像ファイルが必要です。次のように、既存の画像をGDライブラリからGD2形式に保存できます。

 <?php
$image = imagecreatefrompng('example.png');
imagegd2($image, 'example.gd2');
imagedestroy($image);
?>

ステップ2: ImageCreateFromgd2を使用して画像をロードします

<?php
$gdImage = imagecreatefromgd2('example.gd2');
if (!$gdImage) {
    die('ロードできません GD2 画像');
}
?>

ステップ3:ピクセルの色を読み取り、分析します

Imagesx()Imagesy()を介して画像の幅と高さを取得し、各ピクセルポイントを繰り返してImageColorat()を使用して色の値を読み取ります。

 <?php
$width = imagesx($gdImage);
$height = imagesy($gdImage);

for ($y = 0; $y < $height; $y++) {
    for ($x = 0; $x < $width; $x++) {
        $rgb = imagecolorat($gdImage, $x, $y);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;

        // 例:色が白に近い場合,青に変更されました
        if ($r > 200 && $g > 200 && $b > 200) {
            $newColor = imagecolorallocate($gdImage, 0, 0, 255);
            imagesetpixel($gdImage, $x, $y, $newColor);
        }
    }
}
?>

ステップ4:画像を保存して出力します

変更が完了した後、処理された画像を新しいPNGまたはGD2ファイルとして保存するか、ブラウザに直接出力できます。

 <?php
// 新しいものとして保存します GD2 書類
imagegd2($gdImage, 'modified.gd2');

// またはASを保存します PNG
imagepng($gdImage, 'modified.png');

// メモリをきれいにします
imagedestroy($gdImage);
?>

ヒント

  • ImageColorAllocate()色が割り当てられるたびに、色のリソースが複製される場合があります。最適化のために、一般的な色を事前に割り当てることができます。

  • GD2ファイルはオプションで圧縮され、ディレクトリ構造が構成されています。より高度なオプションについては、PHPマニュアルを参照してください。

サンプルファイル

サーバーのサンプルファイルを次のアドレスでダウンロードできます(自分のパスに従って置き換えてください):