gpt4 book ai didi

java - MySQL blob 到 Netbeans JLabel

转载 作者:行者123 更新时间:2023-12-01 07:10:26 24 4
gpt4 key购买 nike

我的MySQL中有一个blob类型字段,我想将该字段中的数据作为图标放入JLabel中。例如,这个 JLabel 将是我表单中用户的个人资料图片。

我使用了这段代码,但没有任何反应我还想修复宽度或修复jlabel中的任何图像大小

DefaultTableModel pic = MyDB.DataTable("SELECT `Picture` FROM `photo` WHERE `Employee ID` = 'EQ0103'");
if (pic.getRowCount() > 0){
Blob blob = pic.getBlob(1);
byte[] image1 = blob.getBytes(1, ALLBITS);
ImageIcon image = new ImageIcon(image1);
picture.setIcon(image);
getContentPane().add(picture);
setVisible(true);
}

图片是我的jlabel的名称

最佳答案

首先:从数据库返回输入流:

String query = "SELECT `Picture` FROM `photo` WHERE `Employee ID` = 'EQ0103'";
stmt = (PreparedStatement) con.prepareStatement(query);
ResultSet result = stmt.executeQuery();

从数据库返回图像

BufferedImage im = ImageIO.read(result.getBinaryStream(1));

然后对此图像进行调整:

im =linearResizeBi(im, /*width*/, /*height*/);

linearResizeBi方法:

static public BufferedImage linearResizeBi(BufferedImage origin, int width, int height) {
BufferedImage resizedImage = new BufferedImage(width, height ,BufferedImage.TYPE_INT_RGB);
Graphics2D g = resizedImage.createGraphics();
float xScale = (float)width / origin.getWidth();
float yScale = (float)height / origin.getHeight();
AffineTransform at = AffineTransform.getScaleInstance(xScale,yScale);
g.drawRenderedImage(origin,at);
g.dispose();
return resizedImage;
}

然后将图像设为图标:

ImageIcon image1 = new ImageIcon(im);

然后将图标添加到 Jlabel 中:

picture.setIcon(image);
getContentPane().add(picture);
setVisible(true);

关于java - MySQL blob 到 Netbeans JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15426714/

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