java 缩放图片类
来源:互联网 发布:淘宝网买手机可靠吗 编辑:程序博客网 时间:2024/06/06 09:19
高质量缩放图片
package com.test;import com.sun.image.codec.jpeg.JPEGImageEncoder;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGEncodeParam;import javax.swing.*;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.awt.*;import java.awt.image.BufferedImage;import java.awt.image.Kernel;import java.awt.image.ConvolveOp;public class ImageUtil {public static void resize(File originalFile, File resizedFile,int newWidth, float quality) throws IOException {if (quality > 1) {throw new IllegalArgumentException("Quality has to be between 0 and 1");}ImageIcon ii = new ImageIcon(originalFile.getCanonicalPath());Image i = ii.getImage();Image resizedImage = null;int iWidth = i.getWidth(null);int iHeight = i.getHeight(null);if (iWidth > iHeight) {resizedImage = i.getScaledInstance(newWidth, (newWidth * iHeight)/ iWidth, Image.SCALE_SMOOTH);} else {resizedImage = i.getScaledInstance((newWidth * iWidth) / iHeight,newWidth, Image.SCALE_SMOOTH);}// This code ensures that all the pixels in the image are loaded.Image temp = new ImageIcon(resizedImage).getImage();// Create the buffered image.BufferedImage bufferedImage = new BufferedImage(temp.getWidth(null),temp.getHeight(null), BufferedImage.TYPE_INT_RGB);// Copy image to buffered image.Graphics g = bufferedImage.createGraphics();// Clear background and paint the image.g.setColor(Color.white);g.fillRect(0, 0, temp.getWidth(null), temp.getHeight(null));g.drawImage(temp, 0, 0, null);g.dispose();// Soften.float softenFactor = 0.05f;float[] softenArray = { 0, softenFactor, 0, softenFactor,1 - (softenFactor * 4), softenFactor, 0, softenFactor, 0 };Kernel kernel = new Kernel(3, 3, softenArray);ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);bufferedImage = cOp.filter(bufferedImage, null);// Write the jpeg to a file.FileOutputStream out = new FileOutputStream(resizedFile);// Encodes image as a JPEG data streamJPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedImage);param.setQuality(quality, true);encoder.setJPEGEncodeParam(param);encoder.encode(bufferedImage); out.close();} // Example usagepublic static void main(String[] args) throws IOException {// File originalImage = new File("C:\\11.jpg");// resize(originalImage, new File("c:\\11-0.jpg"),150, 0.7f);// resize(originalImage, new File("c:\\11-1.jpg"),150, 1f); File originalImage = new File("C:\\1207.gif"); resize(originalImage, new File("c:\\1207-0.jpg"),150, 0.7f); resize(originalImage, new File("c:\\1207-1.jpg"),150, 1f);}}
0 0
- JAVA图片缩放类
- Java图片缩放类
- Java图片缩放类
- Java图片缩放类
- java 缩放图片类
- java图片处理类(图片水印,图片缩放)
- java图片处理类(图片水印,图片缩放)
- java图片处理类(图片水印,图片缩放)
- java图片处理类(图片水印,图片缩放)
- java实现图片裁剪缩放工具类
- java图片高质量缩放类
- Java的图片缩放
- 使用java图片缩放
- java缩放图片
- Java的图片缩放
- java 图片缩放
- Java图片缩放
- 缩放图片 java
- 【OJ】(二)---H---输出学生信息
- "The Civil War in France" translation03
- hdu 1850 (博弈)
- Eclipse怎样显示行号
- 完全卸载oracle11g步骤:
- java 缩放图片类
- Android开发学习之再按一次返回键退出
- Intent和PendingIntent的区别
- 红黑树
- [智慧人生] 微言大义节选
- Menu侧滑效果
- 监听器和 利 用观察者设计模式设计一个程序
- atitit.团队建设总结o6o fix
- 【OJ】(二)---I---王子的反击