`
yixiandave
  • 浏览: 140570 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java进行jpeg压缩和解析(不使用com.sun.image包)

阅读更多
前段时间准备写一个桌面监控的软件,BufferedImage直接输出数据量比较庞大,而jpg的压缩方法是最快的方式。

但是在网上查得的压缩jpeg图片方法都用到了com.sun.image包,而这个包很容易引起eclipse报错的问题,虽然可以修改eclipse设置来规避,不过也会出现持续报错,甚至会无法import相关的class的问题

实际上java已经有一个javax.imageio包已经可以处理jpeg的图片数据了。

经过查看源码和在网上查询相关资料,已经成功实现相关功能。没有报错风险。
以下贴出代码,暂时使用内存I/O流,其他方式自行引申
编码:
/*传入一个BufferedImage对象,输出jpeg编码后的图片byte[]便于传输*/
public static byte[] encodeJPEG(BufferedImage img) {
//将数据放入内存输出流便于转化
	ByteArrayOutputStream out = new ByteArrayOutputStream();
	try {
//创建图片输出数据流
		ImageOutputStream ious = ImageIO.createImageOutputStream(out);
//将图片输出为jpeg
		ImageIO.write(img, "JPEG", ious);
//关闭输出流
		ious.close();
		byte[] bs = out.toByteArray();
		out.close();
		return bs;
	} catch (IOException e) {
		e.printStackTrace();
	}
	return null;
}

解析:
public static BufferedImage decodeJPEG(byte[] b) {
	ByteArrayInputStream in = new ByteArrayInputStream(b);
	try {
		ImageInputStream iins = ImageIO.createImageInputStream(in);
		BufferedImage img = ImageIO.read(iins);
		in.close();
		return img;
	} catch (IOException e) {
		e.printStackTrace();
	}
	return null;
}
分享到:
评论

相关推荐

    java版图片压缩方法

    - **兼容性问题**:代码中使用了`com.sun.image.codec.jpeg`包,这是一个内部实现,可能在不同的JDK版本中存在差异,建议使用更稳定和兼容性更好的库,如`com.drew.imaging.jpeg`。 - **错误处理**:代码中加入了...

    Jimi开发包

    《Jimi开发包:深入解析Java图像处理技术》 在计算机科学领域,图像处理是一项至关重要的技术,广泛应用于数字媒体、医学成像、安全监控、机器学习等多个领域。Java作为一种跨平台的编程语言,提供了丰富的库和工具...

    jai_codec-1.1.3.jar 和 jai_core.jar 核心包

    总的来说,`jai_codec-1.1.3.jar` 和 `jai_core.jar` 提供了强大的图像处理能力,特别适合处理复杂格式如TIFF的图像,并能方便地将其转换为更通用的格式如JPG,这对于许多需要处理图像的Java应用来说是不可或缺的...

    JAVA缩放图片.txt

    - `com.sun.image.codec.jpeg.JPEGCodec`: 专门用于JPEG格式图片的操作。 ##### 2.3 实现图片缩放的具体步骤 下面详细介绍文章提供的两个示例方法,分别用于处理JPG和GIF格式的图片缩放: ###### 2.3.1 减小JPG...

    jsp中生成图片缩略图的代码

    - **第三方库**:`com.sun.image.codec.jpeg`包用于JPEG格式的图片编码和解码,这是处理JPEG图片的关键。 ### 代码解析与说明 #### 设置页面编码 首先,JSP页面的编码被设置为GB2312,这是一种汉字编码标准,但在...

    java操作tiff

    这篇博客(<https://bena.iteye.com/blog/1820012>)可能会提供一些关于如何在 Java 中处理 TIFF 文件的具体方法和技巧。 在 Java 中操作 TIFF 图像,通常会用到一些库,例如 Java Advanced Imaging (JAI) 库,这...

    jai-core-1.1.3.jar jai-codec-1.1.3.jar

    Java Advanced Imaging (JAI) 是一个Java平台上的图像处理库,由Sun Microsystems开发,用于提供高级图像操作和处理功能。标题中的"jai-core-1.1.3.jar"和"jai-codec-1.1.3.jar"是与JAI相关的两个核心组件的特定版本...

    jai_codec-1.1.2_01.jar.zip

    《Java Advanced Imaging (JAI) Codec库解析与应用》 Java Advanced Imaging (JAI) Codec是Java平台上用于图像处理和编码解码的重要库,主要针对各种图像格式进行操作。在这个特定的案例中,我们关注的是"jai_codec...

    利用icepdf将pdf转换成tif及jpge格式文件

    "利用icepdf将pdf转换成tif及jpeg格式文件"这一标题表明了主要的操作流程,即使用开源的Java PDF库icepdf来实现PDF文档向两种常见图像格式——TIFF(Tagged Image File Format)和JPEG(Joint Photographic Experts ...

    jai_imageio-1_0_01.zip

    然而,处理这种格式的数据时,可能会遇到一些技术挑战,尤其是在Windows环境下使用dcm4che2工具包进行压缩和解压缩时。为了解决这个问题,我们引入了"jai_imageio-1_0_01.zip",这是一个针对32位环境的JAI(Java ...

    让手机访问WAP网站服务器 IIS WAP服务器的MIME类型设置

    在搭建和配置WAP网站服务器的过程中,IIS(Internet Information Services)作为常用的Web服务器软件,需要进行特定的MIME类型设置以支持手机访问。MIME(Multipurpose Internet Mail Extensions)类型是一种标准,...

    MIME-type MIME-type MIME-type MIME-type

    - **.class**: `application/java` 或 `application/x-java-class`,用于Java类文件。 ### MIME类型的应用场景 - **Web浏览器**: 当用户访问一个网页时,服务器会向浏览器发送一个包含文件MIME类型的响应头,浏览器...

Global site tag (gtag.js) - Google Analytics