質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

336閲覧

imageで読み込んだ画像を何回も読むことは可能?

yasu_abu7

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/10/25 01:30

編集2018/10/25 02:58

簡単な質問かもしれませんが、質問します。
たとえば、撮影ボタンを押して保存される画像をimageで一回読み込みます。それを保存されるたびに一回ずつ読み込むことは可能なのでしょうか?(合計4回読み込む予定)
追記

java

1public class GazouinputStrream extends JFrame{ 2 static int x[] = {205,260,320,390,440,265,320,380,320}; 3 static int y[] = {165,195,170,185,165,270,290,270,360}; 4 5 int x1[] = {425,395,455,425}; 6 int y1[] = {510,450,450,510}; 7 int x2[] = {365,395,425,365}; 8 int y2[] = {390,450,390,390}; 9 int x3[] = {395,425,455,395}; 10 int y3[] = {450,390,450,450}; 11 int x4[] = {425,455,485,425}; 12 int y4[] = {390,450,390,390}; 13 int x5[] = {335,365,395,335}; 14 int y5[] = {330,390,330,330}; 15 int x6[] = {365,395,425,365}; 16 int y6[] = {390,330,390,390}; 17 int x7[] = {395,425,455,395}; 18 int y7[] = {330,390,330,330}; 19 int x8[] = {425,455,485,425}; 20 int y8[] = {390,330,390,390}; 21 int x9[] = {455,485,515,455}; 22 int y9[] = {330,390,330,330}; 23 int x10[] = {335,365,395,335}; 24 int y10[] = {330-2,270-2,330-2,330-2}; 25 int x11[] = {365,395,425,365}; 26 int y11[] = {270-2,330-2,270-2,270-2}; 27 int x12[] = {395,425,455,395}; 28 int y12[] = {330-2,270-2,330-2,330-2}; 29 int x13[] = {425,455,485,425}; 30 int y13[] = {270-2,330-2,270-2,270-2}; 31 int x14[] = {455,485,515,455}; 32 int y14[] = {330-2,270-2,330-2,330-2}; 33 int x15[] = {365,395,425,365}; 34 int y15[] = {270-2,210-2,270-2,270-2}; 35 int x16[] = {395,425,455,395}; 36 int y16[] = {210-2,270-2,210-2,210-2}; 37 int x17[] = {425,455,485,425}; 38 int y17[] = {270-2,210-2,270-2,270-2}; 39 int x18[] = {395,425,455,395}; 40 int y18[] = {210-2,150-2,210-2,210-2}; 41 int x19[] = {515+1,485+1,545+1,515+1}; 42 int y19[] = {330,390,390,330}; 43 int x20[] = {485+1,515+1,545+1,485+1}; 44 int y20[] = {390,450,390,390}; 45 int x21[] = {455+1,485+1,515+1,455+1}; 46 int y21[] = {450,390,450,450}; 47 int x22[] = {455+1,485+1,515+1,455+1}; 48 int y22[] = {450,510,450,450}; 49 int x23[] = {425+1,455+1,485+1,425+1}; 50 int y23[] = {510,450,510,510}; 51 int x24[] = {515+1,545+1,575+1,515+1}; 52 int y24[] = {450,390,450,450}; 53 int x25[] = {515+1,545+1,575+1,515+1}; 54 int y25[] = {450,510,450,450}; 55 int x26[] = {485+1,515+1,545+1,485+1}; 56 int y26[] = {510,450,510,510}; 57 int x27[] = {545+1,575+1,605+1,545+1}; 58 int y27[] = {510,450,510,510}; 59 int x28[] = {395-1,365-1,425-1,395-1}; 60 int y28[] = {450,510,510,450}; 61 int x29[] = {335-1,365-1,395-1,335-1}; 62 int y29[] = {450,510,450,450}; 63 int x30[] = {335-1,365-1,395-1,335-1}; 64 int y30[] = {450,390,450,450}; 65 int x31[] = {305-1,335-1,365-1,305-1}; 66 int y31[] = {390,450,390,390}; 67 int x32[] = {305-1,335-1,365-1,305-1}; 68 int y32[] = {390,330,390,390}; 69 int x33[] = {275-1,305-1,335-1,275-1}; 70 int y33[] = {450,390,450,450}; 71 int x34[] = {275-1,305-1,335-1,275-1}; 72 int y34[] = {450,510,450,450}; 73 int x35[] = {305-1,335-1,365-1,305-1}; 74 int y35[] = {510,450,510,510}; 75 int x36[] = {245-1,275-1,305-1,245-1}; 76 int y36[] = {510,450,510,510}; 77 78 BufferedImage read = null; 79 BufferedImage read1 = null; 80 BufferedImage read2 = null; 81 BufferedImage read3 = null; 82 83 BufferedImage image; 84 BufferedImage imagehairetu[]={}; 85 86 public static void main(String[] args) throws IOException { 87 GazouinputStrream frame = new GazouinputStrream("画像読み込み"); 88 frame.setVisible(true); 89 frame.setBounds(100, 100,700 ,700); 90 } 91 GazouinputStrream(String title) throws IOException{ 92 super(); 93 setTitle(title); 94 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 95 JPanel p = new JPanel(){ 96 public void paintComponent(Graphics g){ 97 g.drawPolygon(x1, y1, 4); 98 g.drawPolygon(x2, y2, 4); 99 g.drawPolygon(x3, y3, 4); 100 g.drawPolygon(x4, y4, 4); 101 g.drawPolygon(x5, y5, 4); 102 g.drawPolygon(x6, y6, 4); 103 g.drawPolygon(x7, y7, 4); 104 g.drawPolygon(x8, y8, 4); 105 g.drawPolygon(x9, y9, 4); 106 g.drawPolygon(x10, y10, 4); 107 g.drawPolygon(x11, y11, 4); 108 g.drawPolygon(x12, y12, 4); 109 g.drawPolygon(x13, y13, 4); 110 g.drawPolygon(x14, y14, 4); 111 g.drawPolygon(x15, y15, 4); 112 g.drawPolygon(x16, y16, 4); 113 g.drawPolygon(x17, y17, 4); 114 g.drawPolygon(x18, y18, 4); 115 g.drawPolygon(x19, y19, 4); 116 g.drawPolygon(x20, y20, 4); 117 g.drawPolygon(x21, y21, 4); 118 g.drawPolygon(x22, y22, 4); 119 g.drawPolygon(x23, y23, 4); 120 g.drawPolygon(x24, y24, 4); 121 g.drawPolygon(x25, y25, 4); 122 g.drawPolygon(x26, y26, 4); 123 g.drawPolygon(x27, y27, 4); 124 g.drawPolygon(x28, y28, 4); 125 g.drawPolygon(x29, y29, 4); 126 g.drawPolygon(x30, y30, 4); 127 g.drawPolygon(x31, y31, 4); 128 g.drawPolygon(x32, y32, 4); 129 g.drawPolygon(x33, y33, 4); 130 g.drawPolygon(x34, y34, 4); 131 g.drawPolygon(x35, y35, 4); 132 g.drawPolygon(x36, y36, 4); 133 } 134 }; 135 File file = new File("gazou.jpg"); 136 if(file.exists()){ 137 System.out.println("画像が存在するよ!"); 138 if(file.canRead()){ 139 System.out.println("画像を読み込めれれるよ!"); 140 BufferedImage image = (BufferedImage) ImageIO.read(file); 141 System.out.println("画像を読みこんだよ!"); 142 for(int i=0;i<4;i++){ 143 imagehairetu[i] = image; 144 } 145 System.out.println(imagehairetu); 146 /*一度byte型配列に変換*/ 147 /*ByteArrayOutputStream baito = new ByteArrayOutputStream(); 148 ImageIO.write( image,"jpg" ,baito ); 149 baito.flush(); 150 byte[] imageInByte = baito.toByteArray(); 151 baito.close(); 152 ByteArrayInputStream in = new ByteArrayInputStream(imageInByte); 153 System.out.println("画像をbyte型の配列に変換したよ");*/ 154 }else{ 155 System.out.println("画像を読み込めないよ!"); 156 } 157 }else{ 158 System.out.println("画像が存在しないよ!"); 159 } 160 Container contentPane = getContentPane(); 161 getContentPane().add(p, BorderLayout.CENTER); 162 } 163 public void paint(Graphics g){ 164 Color color1 = new Color(read.getRGB(x[0], y[0])); 165 Color color2 = new Color(read.getRGB(x[1], y[1] )); 166 Color color3 = new Color(read.getRGB(x[2], y[2])); 167 Color color4 = new Color(read.getRGB(x[3], y[3])); 168 Color color5 = new Color(read.getRGB(x[4], y[4])); 169 Color color6 = new Color(read.getRGB(x[5], y[5] )); 170 Color color7 = new Color(read.getRGB(x[6], y[6] )); 171 Color color8 = new Color(read.getRGB(x[7], y[7] )); 172 Color color9 = new Color(read.getRGB(x[8], y[8] )); 173 Color color10 = new Color(read1.getRGB(x[0], y[0])); 174 Color color11 = new Color(read1.getRGB(x[1], y[1])); 175 Color color12 = new Color(read1.getRGB(x[2], y[2])); 176 Color color13 = new Color(read1.getRGB(x[3], y[3])); 177 Color color14 = new Color(read1.getRGB(x[4], y[4])); 178 Color color15 = new Color(read1.getRGB(x[5], y[5])); 179 Color color16 = new Color(read1.getRGB(x[6], y[6])); 180 Color color17 = new Color(read1.getRGB(x[7], y[7])); 181 Color color18 = new Color(read1.getRGB(x[8], y[8])); 182 Color color19 = new Color(read2.getRGB(x[0], y[0])); 183 Color color20 = new Color(read2.getRGB(x[1], y[1])); 184 Color color21 = new Color(read2.getRGB(x[2], y[2])); 185 Color color22 = new Color(read2.getRGB(x[3], y[3])); 186 Color color23 = new Color(read2.getRGB(x[4], y[4])); 187 Color color24 = new Color(read2.getRGB(x[5], y[5])); 188 Color color25 = new Color(read2.getRGB(x[6], y[6])); 189 Color color26 = new Color(read2.getRGB(x[7], y[7])); 190 Color color27 = new Color(read2.getRGB(x[8], y[8])); 191 Color color28 = new Color(read3.getRGB(x[0], y[0])); 192 Color color29 = new Color(read3.getRGB(x[1], y[1])); 193 Color color30 = new Color(read3.getRGB(x[2], y[2])); 194 Color color31 = new Color(read3.getRGB(x[3], y[3])); 195 Color color32 = new Color(read3.getRGB(x[4], y[4])); 196 Color color33 = new Color(read3.getRGB(x[5], y[5])); 197 Color color34 = new Color(read3.getRGB(x[6], y[6])); 198 Color color35 = new Color(read3.getRGB(x[7], y[7])); 199 Color color36 = new Color(read3.getRGB(x[8], y[8])); 200 201 g.setColor(color9); 202 g.drawPolygon(x1, y1, 4); 203 g.setColor(color6); 204 g.drawPolygon(x2, y2, 4); 205 g.setColor(color7); 206 g.drawPolygon(x3, y3, 4); 207 g.setColor(color8); 208 g.drawPolygon(x4, y4, 4); 209 g.setColor(color1); 210 g.drawPolygon(x5, y5, 4); 211 g.setColor(color2); 212 g.drawPolygon(x6, y6, 4); 213 g.setColor(color3); 214 g.drawPolygon(x7, y7, 4); 215 g.setColor(color4); 216 g.drawPolygon(x8, y8, 4); 217 g.setColor(color5); 218 g.drawPolygon(x9, y9, 4); 219 g.setColor(color14); 220 g.drawPolygon(x10, y10, 4); 221 g.setColor(color13); 222 g.drawPolygon(x11, y11, 4); 223 g.setColor(color12); 224 g.drawPolygon(x12, y12, 4); 225 g.setColor(color11); 226 g.drawPolygon(x13, y13, 4); 227 g.setColor(color10); 228 g.drawPolygon(x14, y14, 4); 229 g.setColor(color17); 230 g.drawPolygon(x15, y15, 4); 231 g.setColor(color16); 232 g.drawPolygon(x16, y16, 4); 233 g.setColor(color15); 234 g.drawPolygon(x17, y17, 4); 235 g.setColor(color18); 236 g.drawPolygon(x18, y18, 4); 237 g.setColor(color23); 238 g.drawPolygon(x19, y19, 4); 239 g.setColor(color22); 240 g.drawPolygon(x20, y20, 4); 241 g.setColor(color21); 242 g.drawPolygon(x21, y21, 4); 243 g.setColor(color20); 244 g.drawPolygon(x22, y22, 4); 245 g.setColor(color19); 246 g.drawPolygon(x23, y23, 4); 247 g.setColor(color26); 248 g.drawPolygon(x24, y24, 4); 249 g.setColor(color25); 250 g.drawPolygon(x25, y25, 4); 251 g.setColor(color24); 252 g.drawPolygon(x26, y26, 4); 253 g.setColor(color27); 254 g.drawPolygon(x27, y27, 4); 255 g.setColor(color32); 256 g.drawPolygon(x28, y28, 4); 257 g.setColor(color31); 258 g.drawPolygon(x29, y29, 4); 259 g.setColor(color30); 260 g.drawPolygon(x30, y30, 4); 261 g.setColor(color29); 262 g.drawPolygon(x31, y31, 4); 263 g.setColor(color28); 264 g.drawPolygon(x32, y32, 4); 265 g.setColor(color33); 266 g.drawPolygon(x33, y33, 4); 267 g.setColor(color34); 268 g.drawPolygon(x34, y34, 4); 269 g.setColor(color35); 270 g.drawPolygon(x35, y35, 4); 271 g.setColor(color36); 272 g.drawPolygon(x36, y36, 4); 273 } 274}

このソースで動かそうとしているのですが、改善点ありましたらご指摘お願いします。
エラー
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at GazouinputStrream.<init>(GazouinputStrream.java:219)
at GazouinputStrream.main(GazouinputStrream.java:148)
とエラー出てしまうのですがどうしてでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

ん?

BufferedImage imagehairetu[]={};

これは可変長配列の作成じゃなく サイズ0の配列の作成ですよ

BufferedImage imagehairetu[]=new BufferedImage[4];

のようにあらかじめ利用する個数を設定してください。

投稿2018/10/25 03:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasu_abu7

2018/10/25 03:55

ご返答ありがとうございます。たしかに配列の宣言の書き方がだめでした。返答ありがとうございました。
guest

0

java.lang.ArrayIndexOutOfBoundsException: 0

これは配列やリストのサイズをオーバーしてアクセスしたことを意味します。
0とはアクセスした要素番号なので、0番目の要素にアクセスしたけど、そんなにサイズがないということですね。

つまりは配列のサイズをきちんと用意してないものにアクセスしているので、
配列を見直してみましょう。
(行番号書いてるのですぐ見つけ出せるかと思います。)

投稿2018/10/25 03:06

dice142

総合スコア5158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasu_abu7

2018/10/25 03:55

たしかに配列の宣言の仕方がだめだったようです。ご返答ありがとうございました。
guest

0

保存したならそこから読むのに制限はないと思いますが、どういうことを想定されてますか?
あるいはどういう事が起きると思っているんでしょうか

投稿2018/10/25 02:11

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasu_abu7

2018/10/25 02:26

返答ありがとうございます。 今、メインプログラムでカメラをスレッドを利用して起動しています。そして、そのカメラで撮影した写真を保存するのもスレッドで起動したプログラムでしています。その保存した画像を読み込みたいのですが、画像を保存する際に一回ずつ更新するようにしているんですけども、その画像を読み込むのにfor文とかで読む込みたいんです。なにかいい方法ないでしょうか?
y_waiwai

2018/10/25 02:50

ふつーにfor文で読み込んでなにか不都合はあるんでしょうか。 ちとなにが問題なのか、なにを聞こうとしてるのかが見えません。 もしかして、ファイルの読み込み方法がわからないというはなしでしょうか?
yasu_abu7

2018/10/25 03:02

今ソースを追記したのですが、自分もfor文で一個ずつ読み取れると思っているのですが、なぜかエラーに引っかかってしまいます。考えているのは、保存した画像があるかチェックして読み取れれるか確認してから配列に一個ずつ読み取る。それから読み取った画像を座標をもとに色を抽出する。というのを作りたいんですが、なぜか読み取る部分でエラーに引っかかってします。改善点のご指示とかありましたらお願いします。
yasu_abu7

2018/10/25 03:56

上記に書いていただいたお二人かたのやり方でうまくいきました。ご返答ありがとうございました。
y_waiwai

2018/10/25 03:58

トラブルの解決には、持っている情報をすべて出すことが必要ですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問