现在的web项目,图片越来越多,图片大小也越来越大,随便就能达到1M,2M,甚至更大。用户上传的图片,一般是无法直接使用的。一般要生成两三种对应的缩略图,分别适配不同的终端,不同的场景。比如PC,手机,平板等等不同的终端;在比如图片列表和图片详情,肯定一个要使用缩略图,一个要使用 ...
现在的web项目,图片越来越多,图片大小也越来越大,随便就能达到1M,2M,甚至更大。用户上传的图片,一般是无法直接使用的。一般要生成两三种对应的缩略图,分别适配不同的终端,不同的场景。比如PC,手机,平板等等不同的终端;在比如图片列表和图片详情,肯定一个要使用缩略图,一个要使用高清图。
一般图片优化的第一个,就是在适当的地方使用缩略图。下面分析了Java中如何生成不同的缩略图的技术。
常见的图片格式有: ".*\\.(?i)(jpg|jpeg|gif|bmp|png)"
这其中有分为了两种,png 和 gif 是一种,其它格式是一种,因为 png 和 gif 存在透明度的问题,如果按照jpg一样处理,就会导致生成黑色背景的图片。
1. 指定的高度等比例 缩放图片:
/** * 按指定高度 等比例缩放图片 * * @param imageFile * @param newPath * @param newWidth 新图的宽度 * @throws IOException */ public static void zoomImageScale(File imageFile, String newPath, int newWidth) throws IOException { if(!imageFile.canRead()) return; BufferedImage bufferedImage = ImageIO.read(imageFile); if (null == bufferedImage) return; int originalWidth = bufferedImage.getWidth(); int originalHeight = bufferedImage.getHeight(); double scale = (double)originalWidth / (double)newWidth; // 缩放的比例 int width = newWidth; int height = (int)(originalHeight / scale); zooImageUtils(imageFile, newPath, bufferedImage, width, height); }
原标题:Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。