java TIFF转JPG并压缩
来源:互联网 发布:卫生间js防水技术交底 编辑:程序博客网 时间:2024/06/07 01:26
jdk1.5之前的不支持PNG格式的图片,之后支持,下面先来一个传进文件传出文件方式的:
public static void main(String[] args) { if(compressPic("D:/Program Files/myftp/1.tif", "D:/Program Files/myftp/ssss.jpg")) { System.out.println("压缩成功!"); } else { System.out.println("压缩失败!"); } } public static boolean compressPic(String srcFilePath, String descFilePath) { File file = null; BufferedImage src = null; FileOutputStream out = null; ImageWriter imgWrier; ImageWriteParam imgWriteParams; // 指定写图片的方式为 jpg imgWrier = ImageIO.getImageWritersByFormatName("jpg").next(); imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(null); // 要使用压缩,必须指定压缩方式为MODE_EXPLICIT imgWriteParams.setCompressionMode(imgWriteParams.MODE_EXPLICIT); // 这里指定压缩的程度,参数qality是取值0~1范围内, imgWriteParams.setCompressionQuality((float)0.1); imgWriteParams.setProgressiveMode(imgWriteParams.MODE_DISABLED); ColorModel colorModel = ColorModel.getRGBdefault(); // 指定压缩时使用的色彩模式 imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(colorModel, colorModel .createCompatibleSampleModel(16, 16))); try { if(StringUtils.isBlank(srcFilePath)) { return false; } else { file = new File(srcFilePath); src = ImageIO.read(file); out = new FileOutputStream(descFilePath); imgWrier.reset(); // 必须先指定 out值,才能调用write方法, ImageOutputStream可以通过任何 OutputStream构造 imgWrier.setOutput(ImageIO.createImageOutputStream(out)); // 调用write方法,就可以向输入流写图片 imgWrier.write(null, new IIOImage(src, null, null), imgWriteParams); out.flush(); out.close(); } } catch(Exception e) { e.printStackTrace(); return false; } return true; }
下面是传进byte[],传出byte[]数组的,稍微修改即可即可,(data为传过来的byte[]数组)
ByteArrayInputStream is = new ByteArrayInputStream(data); BufferedImage src = null; ByteArrayOutputStream out = null; ImageWriter imgWrier; ImageWriteParam imgWriteParams; // 指定写图片的方式为 jpg imgWrier = ImageIO.getImageWritersByFormatName("jpg").next(); imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(null); // 要使用压缩,必须指定压缩方式为MODE_EXPLICIT imgWriteParams.setCompressionMode(imgWriteParams.MODE_EXPLICIT); // 这里指定压缩的程度,参数qality是取值0~1范围内, imgWriteParams.setCompressionQuality((float)0.1/data.length); imgWriteParams.setProgressiveMode(imgWriteParams.MODE_DISABLED); ColorModel colorModel = ColorModel.getRGBdefault(); // 指定压缩时使用的色彩模式 imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(colorModel, colorModel .createCompatibleSampleModel(16, 16))); try { src = ImageIO.read(is); out = new ByteArrayOutputStream(data.length); imgWrier.reset(); // 必须先指定 out值,才能调用write方法, ImageOutputStream可以通过任何 OutputStream构造 imgWrier.setOutput(ImageIO.createImageOutputStream(out)); // 调用write方法,就可以向输入流写图片 imgWrier.write(null, new IIOImage(src, null, null), imgWriteParams); out.flush(); out.close(); is.close(); data = out.toByteArray(); } catch(Exception e) { e.printStackTrace(); }
转载链接:http://fandayrockworld.iteye.com/blog/628551
0 0
- java TIFF转JPG并压缩
- (Java实现)HTML转JPG,TIFF等图片格式和TIFF图片合并功能解决方案。
- php tiff图片转jpg
- 【转】tiff/tfw, jpg/jpgw坐标文件的格式
- Java tif多页文件转jpg问题,Decoding of old style JPEG-in-TIFF data is not supported问题
- php压缩图片尺寸,并转为jpg
- JPG压缩
- JPG压缩
- JAVA 批处理 调整、压缩png jpg图片大小
- jpg/png/psd/tiff图片格式详解
- 图片压缩 java 压缩 JPG JPEG PNG GIF
- Java webp转jpg
- png转jpg java
- 如何用Java对图片jpg, gif进行压缩
- Java使用thumbnailator批量压缩JPG图片、加水印
- Tinify API批处理压缩PNG和JPG(Java版本)
- C# JPG图片压缩
- jpg文件压缩
- 匹配一个2个相邻并且相同的字符
- LA 4329 Ping pong乒乓比赛【树状数组】
- 找朋友
- java播放声音
- 功能强大的sscanf函数(2)之正则表达式
- java TIFF转JPG并压缩
- ODR规则
- java rsa加密解密
- 结构体
- 【UVA】624-CD(动态规划01背包问题)
- 安卓四大核心组件之Activity
- hdu 2323 Honeycomb Walk
- 判断view是否可见
- c++中类型的转化