4

与えられた画像ファイルを古い学校の 16 色に変換する最良の方法は何ですか? すなわち、白、オレンジ、マゼンタ、ライトブルー、イエロー、ライム、ピンク、グレー、ライトグレー、シアン、パープル、ブルー、ブラウン、グリーン、レッド、ブラックです。

ソース パレットとして使用できる 16 色すべてを含む 1x16 ピクセルの小さな画像を作成しましたが (そうですか?)、うまく使いこなせません。それimagepalettecopy()は私が望むもののようです(16ピクセルデータ画像のカラーパレットを取り、それを新しい画像にコピーします)が、私が思いついたコードは機能していません:

<?php

$palette = imagecreatefrompng( __DIR__ . '/palette.png' );

$source = imagecreatefromjpeg( __DIR__ . '/testimage.jpg' );

$source_w = imagesx( $source );
$source_h = imagesy( $source );

$image = imagecreate( $source_w, $source_h );

imagepalettecopy( $palette, $image );

imagecopy( $image, $source, 0, 0, 0, 0, $source_w, $source_h );

header('Content-Type: image/png');
imagepng( $image );

選択した16色か何かに変換するだけのようです(よくわかりません)。

私は何が欠けているか、間違っていますか?

編集:私のimagepalettecopy()呼び出しは逆ですが、修正しても役に立ちません。以下のコメントを参照してください。

4

1 に答える 1