- - PR -
ピクセル値の取得
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-03-24 15:51
質問があります。画像のある座標におけるピクセル値を取得したいのですが、
ソース1では問題なく実行できるのですが, ソース2ではうまく実行できません。 どなたかご教示下さい。よろしくお願いします。 ソース1: for(int loop1 = 1; loop1 < image.getWidth(this); loop1++) { for(int loop2 = 0; loop2 < image.getHeight(this); loop2++) { Color CurPixel = new Color(image.getRGB(loop1,loop2)); } } ソース2: for(int loop1 = 1; loop1 < image.getWidth(this); loop1++) { for(int loop2 = 0; loop2 < image.getHeight(this); loop2++) { Color CurPixel = new Color(image.getRGB(loop1,loop2)); Color PrePixel = new Color(image.getRGB(loop1-1,loop2)); } } エラー内容: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 256 目的は現在のピクセル値とx座標が1つ前のピクセル値を取得したいのですが、 現在のピクセル値は取得できても1つ前のピクセル値は取得できません。 エラー内容を見ると配列をはみ出しているようなのですがloop1を1からまわしているので問題ないような気がします。 | ||||
|
投稿日時: 2005-03-24 16:04
となっているので、単に画像の幅が255までしかないのにはみ出てしまってるんではないでしょうか? | ||||
|
投稿日時: 2005-03-24 16:20
すみません。書き忘れましたが、画像のサイズは320 x 240としています。
| ||||
|
投稿日時: 2005-03-25 00:12
getRGBとColorのコンストラクタのどちらで例外が発生しているのでしょうか?
| ||||
|
投稿日時: 2005-03-25 14:57
返信遅れてすみません。
getRGBでエラーが出ているようです。 for(int loop1 = 1; loop1 < x.getWidth(this); loop1++) { for(int loop2 = 0; loop2 < x.getHeight(this); loop2++) { Color PrePixel = new Color(x.getRGB(loop1- 2 ,loop2)); } ^^^ } とすると、当然ながら Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds! at sun.awt.image.IntegerInterleavedRaster.getDataElements(Unknown Source ) at java.awt.image.BufferedImage.getRGB(Unknown Source) となります。 | ||||
|
投稿日時: 2005-03-25 20:12
[quote]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds! at sun.awt.image.IntegerInterleavedRaster.getDataElements(Unknown Source ) at java.awt.image.BufferedImage.getRGB(Unknown Source) [/quote] このスタックトレースから、むしろIntegerInterleavedRaster#getDataElementsで 例外が発生してるように見えますね。 ということで、少し検索してみたら、それっぽいものが見つかりました http://forum.java.sun.com/thread.jspa?threadID=566301&messageID=2805116 ちゃんと目を通していないですが、もし参考になれば幸いです。 [ メッセージ編集済み 編集者: Odakaz 編集日時 2005-03-25 20:18 ] |
1