gpt4 book ai didi

java - 如何将 ImageIcon 变回 blob?

转载 作者:行者123 更新时间:2023-11-30 11:53:27 24 4
gpt4 key购买 nike

我像这样将一个 Blob(PNG 文件)存储到数据库中:

File file = new File( "image.png" );
FileInputStream fis = new FileInputStream( file );
statement.setBinaryStream( 1, fis, (int) file.length() );

目前我使用这个过程从数据库中获取Blob图像并将其转换回图像以供使用:

Blob blob = results.getBlob( 1 );
ImageIcon imageIcon = new ImageIcon( blob.getBytes( 1L, (int) blob.length() ) );

但是,我需要一种方法将图像从 ImageIcon 放回数据库(在我更改它之后)而不创建文件,将其存储到磁盘然后使用 FileInputSteam 将其读回。

为清楚起见进行编辑好吧,假设我已经将该图像作为 ImageIcon 存储在标签中。我知道如何将其放入数据库的唯一方法是从 FileInputStream 中读取,但这将涉及毫无意义地制作图像文件。那么我如何将 ImageIcon 中的图像作为 BinaryStream 或 Blob 读回数据库?

最佳答案

我会尝试这样的事情

PixelGrabber pg = new PixelGrabber(imageIcon.getImage(),0,0, w,h,true);
pg.grabPixels();
// You may need to wait here until all pixels are copied (see ImageObserver)
Object buffer = pg.getPixels();

参见 http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/PixelGrabber.html

您可能需要适当调整它并指定正确的 w 和 h。

关于java - 如何将 ImageIcon 变回 blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6258242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com