画像のピクセルに色の変更を適用する際に問題があります。Javafxでカラー画像を赤、緑、青に変更
for (int x = 0; x < w; x++) {
for (int y = 0; y < h; y++) {
int pixel = pixelReader.getArgb(x, y);
int alpha = ((pixel >> 24) & 0xff);
int red = ((pixel >> 16) & 0xff);
int green = ((pixel >> 8) & 0xff);
int blue = (pixel & 0xff);
int avg = (int)(red + green + blue)/3;
pixel = (alpha << 24) | (avg << 16) | (avg << 8) | avg;
writer.setArgb(x, y, pixel);
}
}
kittenImage.setImage(newImage);
私が言ったように、正常に動作します:これは正常に動作し、グレースケールのために私が使用しているコードは、例えば、演算によって行われなければなりません。私はまた、赤、緑、青に画像を変更する必要があり、私はそれを調整するためにそのコードで遊んだ。ここでは、赤フィルタのコードは次のとおりです。
for (int x = 0; x < w; x++) {
for (int y = 0; y < h; y++) {
int pixel = pixelReader.getArgb(x, y);
int alpha = ((pixel >> 24) & 0xff);
int red = ((pixel >> 16) & 0xff);
int green = ((pixel >> 8) & 0xff);
int blue = (pixel & 0xff);
int redLevel = (0 << 24) | (red << 16) | (0 << 8) | 0;
writer.setArgb(x, y, -redLevel);
}
}
kittenImage.setImage(newImage);
私はちょうど最も顕著であったものを色の周りに変更される可能性があることを望んでいたが、そのコードは私が必要なものではありませんネガティブ探し赤画像を取得します。
私はこれを明らかに写真に載せることができないので、私が意味することを示すためにそれを行う方法を理解する必要があります。私はこれを研究しており、グレースケールで豊富に見つかりましたが、赤、青、緑のすべてが、私が探しているものではない組み込みの関数やメソッドを指しているようです。
これは私の2番目の質問ですので、追加情報を含める必要がある場合はお知らせください。
EDIT:これはグレースケールを取得した場所で、RGBの代わりにArgbを使用した別のバージョンで修正しました。 (私はバッファリングされたイメージを使用していません)。 convert a RGB image to grayscale Image reducing the memory in java
これはARGBバージョンです:http://skrb.hatenablog.com/entry/2013/01/07/171901