公司一些项目中经常把用户上传的原图用IMG标签改变尺寸后直接在页面显示
非常粗糙,而且经常遇到的情况是,用户传上去的用DC拍摄的照片都很大,在页面加载时速度很慢,
因此研究一下图片缩略图的生成
主要代码借鉴了hxg1026前辈的,他提供的注释很详细
File fi = new File("c:/1.bmp"); //大图文件
File fo = new File("c:/2.bmp"); //将要转换出的小图文件
int nw = 100;
/*
AffineTransform 类表示 2D 仿射变换,它执行从 2D 坐标到其他 2D
坐标的线性映射,保留了线的“直线性”和“平行性”。可以使用一系
列平移、缩放、翻转、旋转和剪切来构造仿射变换。
*/
AffineTransform transform = new AffineTransform();
BufferedImage bis = ImageIO.read(fi); //读取图片
int w = bis.getWidth();
int h = bis.getHeight();
//double scale = (double)w/h;
int nh = (nw*h)/w ;
double sx = (double)nw/w;
double sy = (double)nh/h;
transform.setToScale(sx,sy); //setToScale(double sx, double sy) 将此变换设置为缩放变换。
System.out.println(w + " " +h);
/*
* AffineTransformOp类使用仿射转换来执行从源图像或 Raster 中 2D 坐标到目标图像或
* Raster 中 2D 坐标的线性映射。所使用的插值类型由构造方法通过
* 一个 RenderingHints 对象或通过此类中定义的整数插值类型之一来指定。
如果在构造方法中指定了 RenderingHints 对象,则使用插值提示和呈现
的质量提示为此操作设置插值类型。要求进行颜色转换时,可以使用颜色
呈现提示和抖动提示。 注意,务必要满足以下约束:源图像与目标图像
必须不同。 对于 Raster 对象,源图像中的 band 数必须等于目标图像中
的 band 数。
*/
AffineTransformOp ato = new AffineTransformOp(transform,null);
//此处修改为与原图片一样的格式
BufferedImage bid = new BufferedImage(nw,nh,bis.getType());
ato.filter(bis,bid);
ImageIO.write(bid,"bmp",fo);
测试BMP,JPEG图片通过,GIF静态图片没通过测试,生成图片大小0KB..未知原因
分享到:
相关推荐
java 生成缩略图类 源代码 (已经封装好)
java图片裁剪和java生成缩略图.pdf
java 上传图片时生成对应的缩略图,缩略图的大小可手动更改,代码中有详细注释
java程序开发中,将图片以缩略图形式展示,不错的资料,欢迎下载,共同学习
主要介绍了java生成缩略图的方法,结合具体实例形式分析了java生成缩略图过程中所涉及的各种常见的图形处理技巧,需要的朋友可以参考下
NULL 博文链接:https://anlinko.iteye.com/blog/725639
将图片生成缩略图和转换为二进制的工具类,缩略图大小可调
java 生成缩略图 java 生成缩略图 java 生成缩略图java 生成缩略图java 生成缩略图
使用 phantomjs 和 im4java 生成网页缩略图,切图用的是ImageMagick,附送im4java调用ImageMagick处理图片代码,包括剪切、调整大小、调整到指定比例大小不足部分补白边。包含 phantomjs 包,不包含ImageMagick。
java源代码
/** * 压缩图片方法 * * @param oldFile 将要压缩的图片 * @param width 压缩宽 * @param height 压缩高 * @param quality 压缩清晰度 建议为1.0 * @param smallIcon 压缩图片后,添加的扩展名(在图片后缀名...
。
。
刚改的程序,很好使的。
网上找的缩略图生成方法都不够清晰,于是决定自己研究和改进生成缩略图方法。此方法压缩后的图片小,清晰度高,压缩速度快。5000张图片大概抽根烟的功夫就压缩完了。高清的哦。各种参数都是可配的,方便移植到自己...
这个小项目主要是利用java Thumbnaillator类库实现对图片的缩放功能,代码参考自慕课网Java实现图片等比例缩略图教学视频,目的为需求源码的小伙伴提供一个参考,如有问题大家再一起交流(附:资源积分是必选项,...
NULL 博文链接:https://wenkaixuan.iteye.com/blog/785823
java视频生成图片(缩略图)-实例-(指定时间)
java大图生成缩略图。。。。。。。。。。。。