2016-03-26 18 views
3

私は、クライアントのプロファイルを管理するGUIビルドアプリを持っています。新しいプロファイルが作成されると、写真が撮影されます。パス(String)は、他の情報とともにHashtableに保存されます。コードネームワン - 大きなイメージから小さなイメージを作成して保存する

すべてのクライアントのリストが表示されると、各クライアント情報はマルチボタンに設定され、それぞれにはクライアントの小さな画像が含まれます。その画像は、フォームがロードされるたびに設定されるマスクされた画像で、読み込みが非常に遅くなります(小さな画像がないときは、読み込みが速くなります)。

enter image description here

質問

私は、クライアントの絵保存&を取る直後にマスクされた小さな画像を保存したいと思います。だから私はクライアントのリストを表示するとき、私はちょうどすべての項目のマスキングを行うことなく、小さな画像をフェッチするだろう。これは可能ですか?

私はこれをしようとしています:

String bigPhotoPath = Capture.capturePhoto(width, -1); 
Image bigPhoto = Image.createImage(bigPhotoPath); 
... 
//masking image 
... 
bigPhoto = bigPhoto.applyMask(mask); 

String smallPhotoPath = bigPhotoPath+"Small"; 
Image smallPhoto = bigPhoto.scaled(bigPhoto.getWidth()/8, -1); 
java.io.OutputStream os = Storage.getInstance().createOutputStream(smallPhotoPath); 
ImageIO.getImageIO().save(smallPhoto, os, ImageIO.FORMAT_PNG, 1); 
os.close(); 
+0

今では正常に動作しますか?イメージがプレマスクされている場合は、ラベル/マルチボタンからマスクを削除する必要があることに注意してください。 –

+0

後で "Image.createImage(smallPhotoPath)"を使用して、小さな画像をマルチボタンにロードしようとしたときに動作しなくなり、エラーがキャッチされました – Felipe

+0

Shai、これにEncodedImageを使用できますか?私はあなたのChatAppチュートリアルをチェックしましたが、EncodedImageをURLImageに置き換えました。同じことができますか? Webからのイメージの代わりにキャプチャされたイメージのためのものですか? – Felipe

答えて

2

(私の目標は、作業「smallPhotoPath」を持つことである)多くのことを試した後、私は問題を解決しました。このいずれかの

java.io.OutputStream os = Storage.getInstance().createOutputStream(smallPhotoPath); 

:私は、次の行を変更し

OutputStream os = FileSystemStorage.getInstance().openOutputStream(smallPhotoPath); 

私はあなたのコードスニペットで働いていないのか理解していない:)

関連する問題