0

Java EDIT の使用: および優れた画像ライブラリ BESIDES ImageMagick/JMagick:

すべてのピクセルの RGB 値からスカラー (100 など) を減算したい(ゼロで底をつく)。これにより、効果的に画像が暗くなります。

たとえば、R: 20 G: 103 B: 200の特定のピクセルの場合、この減算の後、そのピクセルはR: 0 G: 3 B: 100になります (ここでも、これをすべてのピクセルに対して迅速かつ効率的に実行したいと考えています。 1)

私はすでに ImageMagick を使ってみましたが、不正確な結果が得られました。減算が正確で、丸め誤差などがないことが重要です。これが得意な他のライブラリはありますか?RGB 値の配列の反復を処理しない他のオプションはありますか?

4

2 に答える 2

2

このBufferedImageクラスには、個々のピクセルまたはピクセルの配列に作用するgetRGB()とメソッドの両方があります。setRGB()

http://docs.oracle.com/javase/6/docs/api/java/awt/image/BufferedImage.html

于 2012-08-14T19:04:21.300 に答える
2

これを試してみてください: R または G または B が負の場合、0 にすることができます。

//At first get the RGB value
int RGB=getRGB(x,y);
int R=RGB>>>16-100; //shift by 16 bit to get the R value
if(R<0) R=0;
int G=(RGB<<<8)>>>16-100;//clear the preceding numbers than shift 16 bit
if(G<0) G=0;
int B=(RGB<<<16)>>>16-100;
if(B<0)B=0;
int newRGB=R<<<16+G<<<8+B;
setRGB(x,y,newRGB);
于 2012-08-14T19:58:03.367 に答える