簡體   English   中英

如何從JLabel圖標獲取ByteArray?

[英]How to get ByteArray from JLabel icon?

我正在嘗試從JLabel圖標獲取ByteArray ,然后將其存儲到我的數據庫中。
原因是因為當我在JLabel打開圖像時,圖像的大小調整為300x300像素,因此我想將調整后的圖像保存到數據庫中,以保持數據庫的輕量化。
我想“即時”執行此操作,而不必將調整大小后的圖片保存在磁盤上。

我將磁盤上的文件轉換為ByteArray並將這些ByteArrays存儲在SQLite數據庫中沒有問題。
但是從JLabel的圖標獲取ByteArray對我來說是不可能完成的任務。
我不知道有沒有可能。

伙計們,請幫幫我。
有什么辦法嗎?

JLabel只是圖像的占位符,您仍在使用圖像對象。 簡單地將圖像轉換為字節數組會更容易嗎?

File f = new File("img.jpg");
BufferedImage image = ImageIO.read(fnew);
ByteArrayOutputStream b =new ByteArrayOutputStream();
ImageIO.write(image, "jpg", b );
byte[] imageInByte = b.toByteArray();

或者,如果您想從JLabel檢索圖像,則可以使用:

Icon icon = label.getIcon();
BufferedImage image = new BufferedImage(icon.getIconWidth(),
            icon.getIconHeight(),BufferedImage.TYPE_INT_RGB);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM