当前位置:首页 » 编程语言 » imageiojava

imageiojava

发布时间: 2022-12-11 21:32:17

java ImageIO是什么功能,详细说一下

它主要就是处理图片信息的。
知道一个类后,多看写他的API,会很有帮助的。
http://www.apihome.cn/api/java/ImageIO.html

⑵ Java的imageIO读取图片后,怎么把他显示在panel上呢

您好:读取bmp文件到BufferedImage中

File file2 = new File("c:\\testimages\\tttt" + ".bmp");
// BufferedImage bi = backstore.getBufferedImage();
try {
output = ImageIO.read(file2);
} catch (IOException e) {
e.printStackTrace();
}

输出bmp文件

File file2 = new File("c:\\testimages\\tttt" + ".bmp");
ImageIO.write(bi, "bmp", file2);

Byte[]输出到文件

byte[] buf =UtilZip.zipObjectToByte(cache);
File file2 = new File("c:\\testimages\\cache.bin");
FileOutputStream fos =new FileOutputStream(file2);
fos.write(buf);
fos.flush();
fos.close();

读文件到Byte[]中

File file2 = new File("c:\\testimages\\cache.bin");
FileInputStream fis = new FileInputStream(file2);
byte[] buf = new byte[(int) file2.length()];
fis.read(buf);
fis.close();

填充颜色到整个画布

BufferedImage bi = backstore.getBufferedImage();
Graphics g2 = bi.getGraphics();
g2.setColor(Color.red);
g2.fillRect(0, 0, Common.width,
Common.height);

图像变灰操作

public finalBufferedImage getGrayPicture(BufferedImage originalPic) {
int imageWidth = originalPic.getWidth();
int imageHeight = originalPic.getHeight();

BufferedImage newPic = new BufferedImage(imageWidth, imageHeight,
BufferedImage.TYPE_3BYTE_BGR);

ColorConvertOp cco = new ColorConvertOp(ColorSpace
.getInstance(ColorSpace.CS_GRAY), null);
cco.filter(originalPic, newPic);
return newPic;
}

ImageIO
javax.imageio.ImageIO lets you save and restore Images to disk in a platform independent format. It works using plug-in moles that handle various formats including "gif", "png" and "jpeg" (all lower case, or all upper case, but not mixed). "jpeg" or "jpg" is acceptable. Use ImageIO. getWriterFormatNames() to find out which types are supported on your platform:

import javax.imageio.ImageIO;

public class Jai
{

public static void main ( String[] args )
{
String[] names = ImageIO.getWriterFormatNames();
for ( String name: names )
{
System.out.println( name );
}
}
}

Loading an Image from raw bytes
Here raw bytes represent the image of a *.gif, *.png or

// raw bytes to BufferedImage
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import javax.imageio.ImageIO;
...
BufferedImage image = ImageIO.read ( new ByteArrayInputStream ( rawImageBytes ) );

Saving an Image to raw bytes
// BufferedImage to raw bytes
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
...

// O P E N
ByteArrayOutputStream baos = new ByteArrayOutputStream( 1000 );

// W R I T E
ImageIO.write( aBufferedImage, "jpeg" ,
baos );

// C L O S E
baos.flush();
byte[] resultImageAsRawBytes = baos.toByteArray();

baos.close();

Loading a BufferedImage from a file
// file to BufferedImage
import java.awt.image. BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
...
BufferedImage image = ImageIO.read( new File( "rabbit.jpg" ) );
Saving a BufferedImage to a file
// BufferedImage to File
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
...
ImageIO.write( aBufferedImage, "jpeg" ,
new File ( "snap.jpg" ) );

ImageWriteParam is a way of controlling exactly how the image in encoded. There is currently no PNG support for it. This is not for injecting meta info.
Loading a BufferedImage from an URL
// url to BufferedImage
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
...
BufferedImage image = null;
try
{
image = ImageIO.read( url );
}
catch ( IOException e )
{
System.out.println( "image missing" );
}

Converting Image to BufferedImage
// Image to BufferedImage
import java.awt.image.BufferedImage;
import java.awt.Image;
...
BufferedImage bufferedImage = new BufferedImage ( imageWidth,
imageHeight,
BufferedImage.TYPE_INT_BGR );
bufferedImage.createGraphics().drawImage( image, 0, 0, this );

⑶ imageio java最大能读取多大尺寸的图片

BufferedImage image = javax.imageio.ImageIO.read(file);报错:java.lang.OutOfMemoryError
: Java heap space
图片大小是3425px*4843px,我本机内存1g。
------解决方案--------------------------------------------------------
Xms Xmx 把jvm的heap 调大点 试试~~~
------解决方案--------------------------------------------------------
设置一下stack size的大小 java 后跟参数即可设置,具体参数如下:
-Xms size set initial Java heap size
-Xmx size set maximum Java heap size
-Xss size set java thread stack size
------解决方案--------------------------------------------------------
用java.exe -Xmx1024m -Xms256m .来运行的程序,你机器是1G但是又没分配给jvm
------解决方案--------------------------------------------------------
ImageIO.read(File file)使用来自boolean getUseCache() 和 File getCacheDirectory()的当前缓存设置控制所创建的 ImageInputStream 中的缓存。其中getUseCache()默认设定是true,getCacheDirectory()返回的是setCacheDirectory(File cacheDirectory)所设定的目标,如果用户没有明显设定,那么getCacheDirectory()返回的将是null。

⑷ Java/J2SE中的ImageIO影响了绘制速度,怎么解决

使用
ImageIcon img=new ImageIcon("图片地址");
Image m=img.getImage();
速度会快一些。
另外使用媒体加载器MediaTracker类,将需要的图片对象全部加载进来再操作,会提高速度。原理是把所有图像加载到内存中再读取,而不是从外存磁盘加载,读取。

⑸ java imageio写入数据后生成的文件为什么会比实际写入的大

你把摄像机拍摄的图片的一部分数据(二进制数据)用两种方式存到硬盘的文件上.

方式一,把这些二进制数据编码成jpg图片,并保存,这里会加入一些"元数据",所以会比你想象中的大.
方式二,直接把二进制数据流写到硬盘上文件中,没有加入"元数据"所以数据大小没发生变化.
你可以想象一下方式一类似在MS Word文档中只存一个字母a,方式二类似在记事本中只存一个字母a,然后你比较这两个文件的大小.

⑹ java:image.ImageIO类的getRGB()方法,返回的是什么

java:image.ImageIO类的getRGB()方法返回的是一个整型数据。
这个方法可以从图片的指定区域读取ARGB像素值,并存储到rgbData数组中,rgbData中的数据是以0xAARRGGBB格式存储的,代表每个像素的颜色属性和透明属性。返回值就是RGB色彩。
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

⑺ java imageIO 读取图片问题

试了一下,这张jpg图片中含有大量的元数据(注解数据),结构复杂,导致java读取错误。
可用画图等图片编辑软件“另存为”或者“导出”一下,同时去掉元数据。
就可以被ImageIO读取

热点内容
安卓怎么录屏别人直播 发布:2025-01-22 12:35:20 浏览:385
1030怎么配置电脑 发布:2025-01-22 12:35:19 浏览:89
sql数据库的端口 发布:2025-01-22 12:20:02 浏览:362
安卓最终幻想8怎么设置中文 发布:2025-01-22 12:19:23 浏览:651
怎么查电脑配置和网络 发布:2025-01-22 12:19:16 浏览:586
linuxsnmp查看 发布:2025-01-22 12:17:49 浏览:37
安卓数据线怎么接蓝牙 发布:2025-01-22 12:07:29 浏览:229
扣扣账号多少次密码不正确会被封 发布:2025-01-22 12:07:19 浏览:400
python是32位还是64位 发布:2025-01-22 11:51:41 浏览:894
铃声多多缓存文件夹 发布:2025-01-22 11:51:39 浏览:724