繁体   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