No.1
- 回答日時:
「Java2 グラフィックプログラミング入門」
中山茂
技報堂出版
ISBN4-7655-3320-4
が値段もお手ごろですし、サンプルも多く、比較的よくまとまっていたと思います。これあたりから手をつけてみてはいかかでしょうか?
No.2
- 回答日時:
今晩は。
あまり詳しくはないですが、
java.awt.image.SampleModel、
java.awt.image.Raster、
java.awt.image.WritableRaster、
java.awt.image.BufferedImage
等を使うのではないでしょうか。java.awt.image.SampleModel
の解説に、色について少し書いてあります。
No.3ベストアンサー
- 回答日時:
要するに、あるイメージを白黒2階調に変換したイメージを作りたい、ということと考えればいいんでしょうか?
方法はいろいろ考えられますが、まぁフィルターを使うのが一番手っ取り早いでしょう。
イメージをBufferedImageとして用意し、ByteLookupTableを作成、それをもとにLookupOpを作ってフィルター処理します。
あらかじめ、0~255の各輝度の階調ごとに変換する値を指定したbyte配列を用意しておきます。これを使って、BufferedImageの輝度をフィルター処理します。
// import java.awt.Image.*;
BufferedImage img1;
BufferedImage img2;
ing w = 500; // イメージのwidth
int h = 300; // イメージのheight
img = Toolkit.getDafaultToolkit.getImage("hoge.jpg");
try {
img1 = new BufferedImage(w,h,BUfferedImage.TYPE_INT_ARGB);
img2 = new BufferedImage(w,h,BUfferedImage.TYPE_INT_RGB);
Graphics2D g = img1.createGraphics();
g.drawImage(img,0,0,this); // とりあえずthisで
g.dispose();
byte[] arr = new byte[256]; // これが変換用のテーブル
for(int i = 0;i < 256;i++)
arr[i] = (byte)(i < 128 ? 0 : 255); // テーブル準備
ByteLookupTable lt = new ByteLookupTable(0,arr);
LookupOp lo = new LookupOp(lt,null);
lo.filter(img1,img2); // フィルター処理
} catch ・・・以下略・・・
例えば、こんな感じで2階調のイメージにフィルター処理されたimg2ができあがります。階調の感じは、byte配列の値をいろいろと調整すればいいでしょう。
BufferedImage,ByteLookupTable,LookupOpについて調べてみるとよいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Photoshop(フォトショップ) 情報処理の画像生成の問題について 2 2023/05/05 23:56
- C言語・C++・C# 画像の画素値を変えるC言語のプログラムで指定された画像の中に白い三角形を右上に表示させるにはどのよう 3 2022/10/30 01:16
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- Photoshop(フォトショップ) 画像の色変えについて 3 2022/07/01 23:49
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) VB DataGridViewについて 3 2022/06/08 17:20
- 医学 色の錯覚の有名な黒と青のドレスの画像があるじゃないですか、、、最近初めて金と白に見えて満足していたら 4 2022/07/01 03:26
- その他(プログラミング・Web制作) Python画像処理について 1 2022/05/17 17:40
- 数学 数学 数と式 5 2023/04/08 15:47
- メンズ ファッション 3 2023/03/07 18:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
IBM漢字コード⇒SJIS変換方法
-
Path型をString型へ変換する(Java)
-
ダブルクォーテーションのrepla...
-
javaの初歩的な質問です。
-
「C#」文字コードの取得&文字変換
-
error C2440: 'static_cast' : ...
-
数字を読みに変換する方法について
-
javascriptで文字列のsjis利用...
-
char型からアスキーコードへの変換
-
UTF-8とUnicodeの互換性
-
Visual Basic でのコードをASCI...
-
byte型のマイナスの扱いについて
-
int型のゼロ埋め
-
byte[] を long,float とかに...
-
InputStream型のキャスト
-
JavaのStringクラスに「外字」...
-
byte変数の大小を効率よく比較...
-
ソース型、ターゲット型につい...
-
スマホでテキストボックスの随...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
カタカナをローマジに変換する。
-
int型のゼロ埋め
-
javascriptで文字列のsjis利用...
-
byte[] を long,float とかに...
-
C言語32bitから64bitの移行につ...
-
JavaのStringクラスに「外字」...
-
javaの初歩的な質問です。
-
Visual Basic でのコードをASCI...
-
UTF-8とUnicodeの互換性
-
文字列の比較
-
[Javascript]エンターキー押下...
-
下記問題の答えが"D"になる意味...
-
エクセルVBAで「〜」が表現でき...
-
byte配列をImageに変換する
-
javaで「全角が含まれているか...
-
IBM漢字コード⇒SJIS変換方法
-
Windows-31Jからutf-8への変換...
おすすめ情報