2017-06-26 11 views
-1

BufferedImageオブジェクトのVectorに問題があります。 BufferedImageオブジェクトをVectorに追加しようとしていますが、Vectorは常に空です。 ImageIo.read(input1)は動作していないようですが、理由を理解できません。ここでVectorにBufferedImageオブジェクトを追加する

は、私のコードの一部です:

private void drawPixel(int index,String name) throws IOException { 
    File input1 = new File("pince.png"); 
    BufferedImage img = ImageIO.read(input1); 
    Graphics g = this.imagePoints.getGraphics(); 
    imagePixelLabelBuffered.add(img); 
    input1.delete(); 
    changeColorPixelLabel(imagePixelLabelBuffered.get(labelClassesCount-1),labelClassesCount-1); 
    File output = new File("pince.png"); 
    //ImageIO.write(imagePixelLabelBuffered.get(labelClassesCount-1), "PNG", output); 
    int x = (index % this.width); 
    int y = (index/this.width); 
    g.drawImage(imagePixelLabelBuffered.get(labelClassesCount-1),x-20, y-31,100,100, null); 
    repaint(); 
} 

答えて

0

私の推測では、ファイル「pince.png」は現在のディレクトリにないということです。クラスパスにイメージを置いて、Class.getResource()またはgetResourceAsStream()でイメージをロードすることをお勧めします。

+0

ご回答いただきありがとうございますが、問題はありません。 – kazrak

0

imagePixelLabelBuffered.add(img)を使用してBufferedImageをベクターに追加し、変数imgを変更しないようにしてください。問題はベクトルまたはBufferedImageではありません。

あなたの問題は、の行にあり、より具体的にはlabelClassesCount-1と思われます。この変数は決して更新されず、単に役に立たないだけです。リストは、リスト内の要素の数を返しmethod sizeがあり、Javaでは

changeColorPixelLabel(img, imagePixelLabelBuffered.size()-1); 
  • :あなたは、次の行を使用することができます。
  • また、変数imgは決して変更しないので、Vectorに追加するBufferedImage上のポインタです。
  • 並列化(マルチスレッド)操作を行わない場合は、VectorではなくArrayListを使用します。 Vectorは​​操作のArrayListであり、処理速度が遅くなります。

同じことをg.drawImage(imagePixelLabelBuffered.get(labelClassesCount-1),x-20, y-31,100,100, null)行と同じものにすると、変数imgを使用できます。

[編集]ここにはBufferedImage cloningへのリンクがあります。

+0

実際には、オリジナルを参照せずにコピーを作成しようとしているだけなので、Vectorを作成しました。私は画像のすべてのコピーを表示し、それらを別々に操作したいと思いますが、最後のピクセルの色を変更するたびに、他の画像に対しても同じ色で変化します。どのようにして、すべての変更を画像の各コピーに対して行うことができますが、同時にそれらのすべてを変更することはできませんか? 私は初心者です。 – kazrak

+0

イメージをVectorに追加するときに、イメージのポインタをVectorに追加します。すべてがJavaのポインタです。私はクローニング方法へのリンクで私の答えを編集しました。しかし、私が上に書いたことを見て、それはあなたのプログラムの誤りでもあります。 – FiReTiTi

関連する問題