软件编程
位置:首页>> 软件编程>> java编程>> Java实现bmp和jpeg图片格式互转

Java实现bmp和jpeg图片格式互转

作者:划]破  发布时间:2023-12-19 10:39:50 

标签:Java,bmp,jpeg

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://blog.csdn.net/qq_17847881/article/details/129096654

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com