2017-01-25 9 views
0

私はBerkeley 61B MOOCからプロジェクトをやっています。ここでは、イメージのピクセルとそれぞれのRGB値を表す配列を作成する必要があります。各ピクセルは0 ... 255が表す範囲内の3つの数字を持っているRGB値を格納するのに短いデータ型を使用するのはなぜですか?

:しかし、私はプロジェクトの説明から、この文に出くわしました

image=new int[width][height][3]; 

:私は同じのための3Dのアレイを使用しています ピクセルの赤、緑、青の強度。これらの3バイトは、画像のRGB値として知られている です。 の3つの値がすべてゼロである画素は純粋な黒であり、3つの値がすべてである画素は明るい白色である。 Javaは "byte"整数型を持っていますが、その の範囲は-128 ... 127です。したがって、通常はRGBパラメータを取るかRGB値を返す方法の場合、Javaの "short"型を メソッドに使用します。

私が知る限り、int型は0-255の値を格納するのに十分です。 短いデータ型の使用を示唆しているのは、単純な英語で理解してください。

+0

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – eldo

+0

代わりに3つの値(3つの下位バイト)に1の整数を使用することをお勧めします。 – rom1v

答えて

-1

intは32ビット、shortは16、byteは8です。[0,255]の範囲では32ビットは必要ありませんが、RGBの表現にはバイトの範囲[-128,127]あなたが持っているものです。

+0

バイトは8ビットですが、必要なすべての範囲があります。符号なしまたは符号付きの値として表現するかどうかは、プログラムの動作には影響しません。 – Kayaman

関連する問題