在SWING中显示网络上动态生成的图片,
我起初直接用
ImageIcon ic = new ImageIcon(data);//data为网络直接读取来的byte数组
lblNewLabel_1.setIcon(ic);
lblNewLabel_1.repaint();
结果发现经常会遇到有些图片出不来,查了好半天,而且找错还真不好找,因为他不在具体的位置抛异常。抛了个根本找不到源的异常
后来仔细寻找,才发现,动态的图片数组格式有差异,有JPG,有PNG,也有BMP,结果发现BMP的显不出,而且有问题。
网上有BMP转JPG图片的代码,但那天只是文件及格式间转换,我还是不太想这样做。但从这代码里发现一个
image = Toolkit.getDefaultToolkit().createImage(
new MemoryImageSource(bh.iWidth, bh.iHeight, ndata, 0,
bh.iWidth));
因为Swing中ImageIcon好像构造方法是中可以为Image对象的,但Toolkit中createImage的ImageProducer这个参数又不知从何而来。
又发现 BufferImage bi=ImageIo.read(inputstream);
而bi.getSource()这个方法返回的对象就是ImageProducer。
似乎发现有办法解决。
于是,我写成下面这样就搞定了。
BufferedImage bi = ImageIO.read(new ByteArrayInputStream(image));
ImageIcon ic = new ImageIcon(Toolkit.getDefaultToolkit().createImage(bi.getSource()));
lblNewLabel_1.setIcon(ic);
lblNewLabel_1.repaint();
其次,我发现用httpclient中取的inputstream取图标的长度有问题。
我之前喜欢直接用byte data[]=new byte[is.available];is.read(data);
但发现这样不行,容易报错。
所以还是乖乖的这样用
InputStream is = entity.getContent();
ByteArrayOutputStream baos=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int len=-1;
while((len=is.read(buffer))!=-1){
baos.write(buffer, 0, len);
}
byte[] data = baos.toByteArray();
分享到:
相关推荐
最后,使用`JFrame`和`JLabel`组件在Swing窗口中显示图像。 #### 4. 结论 读取BMP文件并用Java进行处理涉及到对BMP文件格式的理解、字节序的转换以及利用Java AWT库进行图像显示。虽然Java本身不直接支持BMP文件的...
在Java编程环境中,读取Excel表格内容并将其展示在Swing界面是一项常见的任务,尤其在数据处理和报表展示方面。本篇文章将详细讲解如何实现这一功能。 首先,我们需要引入两个关键库:Apache POI用于读取Excel文件...
在本教程中,我们将深入探讨如何对BMP图像进行简单的处理,包括读取、修改和保存。 1. **BMP文件结构** BMP文件由头信息和像素数据两部分组成。头信息包含了关于图像的基本信息,如宽度、高度、颜色深度等。常见的...
当我们需要在Swing应用中展示图片时,可以利用特定的方法来读取并显示图像。本篇文章将详细讲解如何在Java Swing中读取和显示图片,以及与之相关的知识点。 首先,我们需要了解Java中的图像处理类。`java.awt.Image...
在Java中实现这些技术,需要使用Java的图像处理库,如Java Advanced Imaging (JAI)库或Java AWT/Swing的BufferedImage类。首先,我们需要读取BMP图像文件,然后获取其像素数据。对于直方图均衡,需要遍历所有像素,...
在Java编程中,处理图像...总之,理解和处理BMP图像在Java中是一项技术性较强的任务,涉及到二进制数据的读取和解析。`BmpUtil`工具类为这个过程提供了便利,使开发者能够更加专注于图像处理的逻辑,而不是底层的细节。
在IT领域,BMP(Bitmap)是一种常见的位图文件格式,用于存储图像数据。...所以,深入学习和实践C语言读取和保存BMP图像的知识,对于IT专业人士来说,无论是在学术研究还是在工程实践中,都是极其有益的。
水印可以是文字、图形或者透明度调整过的图像,其目的是在不影响原图像基本视觉效果的同时,清晰地显示附加信息。添加水印的方法有很多,包括使用编程语言如Python的PIL库、Java的JavaFX或Swing、C#的GDI+等。 以...
在这个项目中,“Java中基于UDP的图像传输与显示(Swing界面)”意味着我们将构建一个利用UDP协议来传输图像,并通过Swing组件在客户端展示这些图像的应用。 首先,我们需要理解UDP的基础。UDP不提供连接、顺序保证或...
在Java编程环境中,结合OpenCV库进行图像处理时,我们经常需要在窗口中显示图像以进行观察和调试。本节将详细讲解如何在Java窗体中利用OpenCV库实现图像的显示。 首先,OpenCV是一个强大的计算机视觉库,它提供了...
在这个程序中,我们将关注Swing组件的使用、配置文件的读取以及画面的显示。 首先,Swing提供了多种组件,如按钮(JButton)、标签(JLabel)、文本框(JTextField)、面板(JPanel)等,它们都是JFrame的主要组成...
在本场景中,我们将探讨如何使用Java Swing技术读取RAW格式的图片文件并将其显示在用户界面上。 首先,理解RAW文件的基本概念是至关重要的。RAW文件包含了相机传感器捕获的原始光数据,这些数据未经色彩校正、白...
在本篇博文中,我们将探讨如何使用Java编程语言来实现一个简单的画图板应用程序,并学习如何保存和读取BMP(Bitmap)格式的图片。BMP是一种无损图像格式,通常用于存储像素数据,便于程序处理。以下是实现这一功能所...
`javax.swing.ImageIcon`类通常用于在Swing应用中显示图像。 2. **图像加载**: - `ImageIcon`类可以加载本地文件系统的图像,也可以从URL加载。例如,`new ImageIcon("path/to/image.jpg")`用于创建一个ImageIcon...
在本项目中,"Java Swing实现添加数据并查询数据显示" 涉及到了Java后端与数据库交互以及前端用户界面的构建。 首先,你需要了解如何在Java中连接MySQL数据库。这通常涉及到使用JDBC(Java Database Connectivity)...
在`BmpCat.c`中,可能会有读取BMP文件、解析其头部信息、合并图像数据以及写入新BMP文件的函数。`BmpCat.h`可能包含了相关的头文件,声明了这些函数及其参数,以便在其他源文件中使用。 实现这个功能时,我们需要...
在Java编程中,从网络获取图像并...通过以上步骤,你可以实现从网络加载图像并在Java Swing应用中显示的功能。这是一个综合性的任务,涵盖了网络编程、图像处理和GUI设计等多个领域,对于提升Java编程技能非常有帮助。
BMP(Bitmap)是一种常见的位图图像格式,广泛应用于各种操作系统中。它以未经压缩的原始数据存储图像,因此文件大小通常较大。BMP文件由多个组成部分构成,包括位图文件头、位图信息头和像素数据。理解这些部分是...
标题“图片在字段中的存储与读取”涉及的关键技术是将图像数据以特定格式存储到数据库或文件系统中的字段,然后能够从这些字段中读取并恢复图像。这里主要讨论的是如何在Java环境下操作图像数据,特别是结合了...
在Java Swing中,我们可以使用`JFrame`作为主窗口,`JPanel`作为内容面板,然后在面板上放置各种组件如`JButton`(按钮)、`JScrollPane`(滚动条)和`JLabel`(显示PDF内容)。对于PDF内容的展示,由于PDFBox不直接...