[英]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.