Java如何实现bmp和jpeg图片格式互转呢?

乔欣 Java经验 发布时间:2023-02-24 11:30:23 阅读数:9151 1
下文笔者讲述Java代码实现bmp和jpeg图片互相转换的方法及示例分享
实现思路:
    1.将图片读取为Image对象
	2.使用JPEGImageEncoder即可将将bmp转换为JPEG
    反之使用bmpWriter即可将JPEG转换为bmp

Bmp转Jpeg

public static String bmp2Jpeg(String filePath, String outPath) {
	try {
		long start = System.currentTimeMillis();
		// 加载bmp图片
		File file = new File(filePath);
		Image img = ImageIO.read(file);
		BufferedImage tag = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
		tag.getGraphics().drawImage(img.getScaledInstance(img.getWidth(null), img.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);

		// 输出为Jpeg
		FileOutputStream out = new FileOutputStream(outPath);
		// JPEGImageEncoder可适用于其他图片类型的转换
		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
		encoder.encode(tag);
		out.close();
		
		log.info("bmp 转 JPEG,共耗时:  " + (System.currentTimeMillis() - start) + " 毫秒");
		return outPath;
	} catch (IOException e) {
		e.printStackTrace();
	}
		return outPath;
	}

Jpeg转Bmp

public static void jpeg2Bmp(String inputPath, String outputPath) {
	try {
		long start = System.currentTimeMillis();
	
		// 加载Jpeg图片资源
		FileImageInputStream fiis = new FileImageInputStream(new File(inputPath));
		FileImageOutputStream fios = new FileImageOutputStream(new File(outputPath));
		ImageReader jpegReader = null;
		Iterator<ImageReader> it1 = ImageIO.getImageReadersByFormatName("jpeg");
		if (it1.hasNext()) {
		    jpegReader = it1.next();
		}
		jpegReader.setInput(fiis);
		
		ImageWriter bmpWriter = null;
		Iterator<ImageWriter> it2 = ImageIO.getImageWritersByFormatName("bmp");
		if (it2.hasNext()) {
		    bmpWriter = it2.next();
		}
		bmpWriter.setOutput(fios);
		BufferedImage br = jpegReader.read(0);
		bmpWriter.write(br);
		fiis.close();
		fios.close();
		
		log.info("jpeg 转 bmp,共耗时:" + (System.currentTimeMillis() - start) + " 毫秒");
	} catch (IOException e) {
		e.printStackTrace();
	}
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16772094625913.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者