图片缩略
来源:互联网 发布:成都 大数据 招聘 编辑:程序博客网 时间:2024/05/16 08:19
package cn.itcast.estore.utils;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class PicUtils {
private String srcFile;
private String destFile;
private int width;
private int height;
private Image img;
/** * 构造函数 * * * @param fileName * String * @throws IOException */public PicUtils(String fileName) throws IOException { // / 123lkajsdf.jpg // 123lkajsdf_s.jpg File _file = new File(fileName); // 读入文件 this.srcFile = fileName; // 查找最后一个. int index = this.srcFile.lastIndexOf("."); String ext = this.srcFile.substring(index); this.destFile = this.srcFile.substring(0, index) + "_s" + ext; img = javax.imageio.ImageIO.read(_file); // 构造Image对象 width = img.getWidth(null); // 得到源图宽 height = img.getHeight(null); // 得到源图长}/** * 强制压缩/放大图片到固定的大小 * * @param w * int 新宽度 * @param h * int 新高度 * @throws IOException */public void resize(int w, int h) throws IOException { BufferedImage _image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); _image.getGraphics().drawImage(img, 0, 0, w, h, null); // 绘制缩小后的图 FileOutputStream out = new FileOutputStream(destFile); // 输出到文件流 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(_image); // 近JPEG编码 out.close();}/** * 按照固定的比例缩放图片 * * @param t * double 比例 * @throws IOException */public void resize(double t) throws IOException { int w = (int) (width * t); int h = (int) (height * t); resize(w, h);}/** * 以宽度为基准,等比例放缩图片 * * @param w * int 新宽度 * @throws IOException */public void resizeByWidth(int w) throws IOException { int h = (int) (height * w / width); resize(w, h);}/** * 以高度为基准,等比例缩放图片 * * @param h * int 新高度 * @throws IOException */public void resizeByHeight(int h) throws IOException { int w = (int) (width * h / height); resize(w, h);}/** * 按照最大高度限制,生成最大的等比例缩略图 * * @param w * int 最大宽度 * @param h * int 最大高度 * @throws IOException */public void resizeFix(int w, int h) throws IOException { if (width / height > w / h) { resizeByWidth(w); } else { resizeByHeight(h); }}/** * 设置目标文件名 setDestFile * * @param fileName * String 文件名字符串 */public void setDestFile(String fileName) throws Exception { if (!fileName.endsWith(".jpg")) { throw new Exception("Dest File Must end with \".jpg\"."); } destFile = fileName;}/** * 获取目标文件名 getDestFile */public String getDestFile() { return destFile;}/** * 获取图片原始宽度 getSrcWidth */public int getSrcWidth() { return width;}/** * 获取图片原始高度 getSrcHeight */public int getSrcHeight() { return height;}public static void main(String[] args) throws IOException { // File file=new // File("D:\\java0926\\workspace\\estore\\WebRoot\\upload\\2\\10\\41d916d3-d6a8-4d54-9423-4be305dd93a2.jpg"); // PicUtils pc=new PicUtils(file.getCanonicalPath()); // pc.resize(200, 200); File file = new File("d:/a", "../b.txt"); System.out.println(file.getAbsolutePath()); System.out.println(file.getCanonicalPath());}
}
0 0
- 缩略图片
- 图片缩略
- 缩略图片
- 图片缩略
- js 缩略正文图片
- 图片批量缩略处理软件
- Java生成缩略图片
- .net 图片缩略
- Android图片与缩略
- 图片缩略处理
- C# 图片缩略
- 使用Thumbnailator缩略图片
- PHP缩略图片
- Java 自动生成缩略图片
- 各式各样的图片缩略水印静态类
- 制作缩略图片,防变形 html,javascript
- 图片相关操作(截取,缩略,翻转。。。。)
- JAVA 图片处理(缩略、裁剪)
- md5加密
- 黑马程序员--------------多线程
- 第六届蓝桥杯校园选拔赛试题---派遣敢死队 解题报告
- myeclipse设置注释的模板
- 数据挖掘算法——关联规则挖掘算法
- 图片缩略
- 【好程序员笔记分享】——时间处理
- 黑马程序员_日记56_Map概述和简单方法
- 随机目录,文件夹,文件名
- RSPEC中Expect和should表达式的示例
- 第六周 项目6-3 复数类模板
- 配置spring的配置list,map,set,props集合属性
- VC对话框控件基本操作1
- 【《软件设计模式与体系结构》学习笔记】软件设计模式概论