デフォルトでは値渡し参照であることがわかっているため、ImageIcon インスタンスを値渡ししたいと考えています。この問題を整理する方法はありますか?
ImageIcon img1 = new ImageIcon();
ImageIcon img2 = new ImageIcon();
img1 = img2; // both share the same reference.......
ImageIcon のgetImage()
とを使ってみsetImage()
ました。
しかし、実際には私のプログラムにはファイルへの画像の書き込みが含まれており、画像の品質が変わるようです。
要するに、関数を使用する方法はありますか
img1 = func(img2); // both do not share the same refernce. But the value is copied
少なくとも、またはを使用して正確な画質を維持するにはどうすればよいですgetImage()
かsetImage()
?
リクエストによるいくつかの追加情報。
私が使用しているのは jpg 画像で、関数を正確に image = img1.getimage(); として含めました。
img2.setImage(画像);
jpg画像を含むデフォルトのImageIconを保持する別のJavaクラスを維持しており、次のようなクラスメソッドのいくつかを使用してそこから画像を取得しています
ImageIcon defaulticon = new ImageIcon("d:\\default.jpg");
public void getdefaultimage(ImageIcon img)
{
img.setImage(defaulticon.getImage());
}
// The class which I maintained specifically for this purpose is a pure java class.