私は、PHPで与えられた画像の正確な "グレイレベル"を取得します。私はいつも[0, 0, 0]
をimagecolorsforindex
を使ってRGB配列として得る理由を理解できません。これは私のコードである:PHP:ピクセルのグレーレベルを取得する(画像)
// load
$img = imagecreatefromjpeg("images/white.jpeg");
// to grayscale
imagefilter($img, IMG_FILTER_GRAYSCALE);
// just 1 pixel that describe the whole image
$grayLevel = resize_image($img, 1, 1);
$gray = imagecolorat($grayLevel, 1, 1);
$readble = imagecolorsforindex($grayLevel, $gray);
print_r($readble);
Iが最初に私の画像をロードする(これは完全に白画像なので、すべての画素があるべきである[255、255、255] thisに従って)、次いで、グレースケールでそれを変換します。私は画像全体を記述する1つのピクセルだけに画像のサイズを変更し、RGB配列を取得します。配列は[0, 0, 0]
です。
イメージがグレースケールで色付きでいつも[0, 0, 0]
になる理由を理解できません。それは1ピクセルのテクニックが間違っていますか?
感謝
PS:https://pastebin.com/HNDzKq5E
へ
$gray = imagecolorat($grayLevel, 1, 1);
を変更してみてください!私は1,1とのサイズ変更の呼び出しで混乱しました。 :) – xdola