Java中图片压缩处理
来源:互联网 发布:mac自带音频剪辑软件 编辑:程序博客网 时间:2024/05/18 03:41
package aa;import java.io.*;import java.util.Date;import java.awt.*;import java.awt.image.*;import javax.imageio.ImageIO;import com.sun.image.codec.jpeg.*;/** * 图片压缩处理 * * * 报错: Access restriction:The type JPEGCodec is not accessible due to * restriction on required library C:\Program Files\Java\jre6\lib\rt.jar * * 解决方法: Project -> Properties -> libraries, 先remove掉JRE System Library,然后再Add * Library重新加入。 ============================================ * 在Eclipse中处理图片,需要引入两个包: import com.sun.image.codec.jpeg.JPEGCodec; import * com.sun.image.codec.jpeg.JPEGImageEncoder; 报错: Access restriction: The type * JPEGImageEncoder is not accessible due to restriction on required library * C:\Java\jre1.6.0_07\lib\rt.jar * * * 此时解决办法: Eclipse 默认把这些受访问限制的API设成了ERROR。只要把Windows-Preferences-Java-Complicer- * Errors/Warnings里面的Deprecated and restricted API中的Forbidden references(access * rules)选为Warning就可以编译通过。 优先选择第一种方法 */public class ImgCompress {private Image img;private int width;private int height;@SuppressWarnings("deprecation")public static void main(String[] args) throws Exception {System.out.println("开始:" + new Date().toLocaleString());ImgCompress imgCom = new ImgCompress("D:\\11.jpg");imgCom.resizeFix(600, 600);System.out.println("结束:" + new Date().toLocaleString());}/** * 构造函数 */public ImgCompress(String fileName) throws IOException {File file = new File(fileName);// 读入文件img = ImageIO.read(file); // 构造Image对象width = img.getWidth(null); // 得到源图宽height = img.getHeight(null); // 得到源图长}/** * 按照宽度还是高度进行压缩 * * @param w * int 最大宽度 * @param h * int 最大高度 */public void resizeFix(int w, int h) throws IOException {if (width / height > w / h) {resizeByWidth(w);} else {resizeByHeight(h);}}/** * 以宽度为基准,等比例放缩图片 * * @param w * int 新宽度 */public void resizeByWidth(int w) throws IOException {int h = (int) (height * w / width);resize(w, h);}/** * 以高度为基准,等比例缩放图片 * * @param h * int 新高度 */public void resizeByHeight(int h) throws IOException {int w = (int) (width * h / height);resize(w, h);}/** * 强制压缩/放大图片到固定的大小 * * @param w * int 新宽度 * @param h * int 新高度 */public void resize(int w, int h) throws IOException {// SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的 优先级比速度高 生成的图片质量比较好 但速度慢BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);image.getGraphics().drawImage(img, 0, 0, w, h, null); // 绘制缩小后的图File destFile = new File("D:\\333.jpg");FileOutputStream out = new FileOutputStream(destFile); // 输出到文件流// 可以正常实现bmp、png、gif转jpgJPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);encoder.encode(image); // JPEG编码out.close();}}
0 0
- Java中图片压缩处理
- Java中图片压缩处理
- Java中图片压缩处理
- Java中图片压缩处理
- Java中图片压缩处理
- Java中图片压缩处理
- java中图片压缩处理(一)
- 【转】Java 中图片压缩处理
- Java图片压缩处理
- java处理压缩图片
- Java图片压缩处理
- java压缩图片处理
- Java图片压缩处理
- Java图片上传压缩处理
- Java图片上传压缩处理
- java图片上传压缩处理
- Java图片上传压缩处理
- java压缩处理Image图片
- 利用UIRefreshControl实现tableView下拉刷新
- iOS字典
- java多线程编程--如何开始一个线程
- Java中Synchronized和Lock的使用
- iOS多态继承
- Java中图片压缩处理
- [捉虫记录] access violation writing location _findnext
- Robotium 常用控件应用举例
- Trim()方法
- iOS内存管理
- VC创建启动即隐藏的对话框
- Android应用开发(三):如何完成Activity之间的传递参数
- 一直觉得饿是什么问题
- java构造函数