package test;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class ImageUtil {
public static void main(String[] args) {
File file = new File("D:/image.JPG");
try {
makeSmallImage(file, "d:/image1.jpg");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 生成缩略图
* @param srcImageFile 源图片文件的File实例 File file = new File("文件名");
* @param dstImageFileName 待生成的缩略图片完整路径(生成的格式为:image/jpeg);
* @throws Exception
*/
public static void makeSmallImage(File srcImageFile,String dstImageFileName) throws Exception {
FileOutputStream fileOutputStream = null;
JPEGImageEncoder encoder = null;
BufferedImage tagImage = null;
Image srcImage = null;
try{
srcImage = ImageIO.read(srcImageFile);
int srcWidth = srcImage.getWidth(null);//原图片宽度
int srcHeight = srcImage.getHeight(null);//原图片高度
int dstMaxSize = 120;//目标缩略图的最大宽度/高度,宽度与高度将按比例缩写
int dstWidth = srcWidth;//缩略图宽度
int dstHeight = srcHeight;//缩略图高度
float scale = 0;
//计算缩略图的宽和高
if(srcWidth>dstMaxSize){
dstWidth = dstMaxSize;
scale = (float)srcWidth/(float)dstMaxSize;
dstHeight = Math.round((float)srcHeight/scale);
}
srcHeight = dstHeight;
if(srcHeight>dstMaxSize){
dstHeight = dstMaxSize;
scale = (float)srcHeight/(float)dstMaxSize;
dstWidth = Math.round((float)dstWidth/scale);
}
//生成缩略图
tagImage = new BufferedImage(dstWidth,dstHeight,BufferedImage.TYPE_INT_RGB);
tagImage.getGraphics().drawImage(srcImage,0,0,dstWidth,dstHeight,null);
fileOutputStream = new FileOutputStream(dstImageFileName);
encoder = JPEGCodec.createJPEGEncoder(fileOutputStream);
encoder.encode(tagImage);
fileOutputStream.close();
fileOutputStream = null;
}finally{
if(fileOutputStream!=null){
try{
fileOutputStream.close();
}catch(Exception e){
}
fileOutputStream = null;
}
encoder = null;
tagImage = null;
srcImage = null;
System.gc();
}
}
}
分享到:
相关推荐
总结来说,生成Java缩略图涉及读取图像、计算缩放比例、使用图形上下文进行缩放绘制以及保存结果。通过`ThumbnailUtils.java`文件,我们可以创建一个独立的工具类,方便地在项目中复用这个功能。
【Java 缩略图代码详解】 在 Java 中生成图片缩略图是一项常见的需求,这通常涉及到图像处理技术。以下是一个 Java 类 `GetPicture` 的示例,它包含了获取网络图片、截取屏幕以及创建图片缩略图的功能。我们将详细...
在Java编程中,生成缩略图是一项常见的任务,特别是在处理图像处理、网页设计或移动应用开发等领域。这个主题涉及到如何利用Java的APIs来创建图片的缩小版本,以节省存储空间,提高页面加载速度,或者优化用户体验。...
总的来说,“java缩略图jar包”(thumbnailator)是Java开发中创建和管理缩略图的高效工具,它的强大功能和简洁API降低了图像处理的门槛,使得开发者能够更加专注于业务逻辑,而不用过多关心底层的图像处理细节。...
java图片缩放 java缩略图 缩略图 java图片处理
"JspSmart_img.rar" 文件内容涉及到使用JAVA技术来处理图片上传以及生成缩略图的功能,这在网站开发中是非常常见的需求,特别是对于那些需要展示大量图像的网站,如社交媒体、电子商务平台等。 "JAVA 缩略图" 指的...
本篇我们将深入探讨“ImageScale”这个Java算法,它是用于创建图片缩略图的一种技术。 首先,让我们理解“缩略图”的概念。缩略图是指按照一定的比例缩小原图尺寸的图片,通常用于预览或快速浏览。在Java中,生成...
"java 图片生成缩略图" Java 图片生成缩略图是Java程序开发中一个常见的需求,通过将图片以缩略图形式展示,可以提高用户体验和网站性能。在本文中,我们将介绍使用Java生成缩略图的方法。 缩略图生成方法 在 ...
缩略图类(通用) 本java类能将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换。
将图片生成缩略图和转换为二进制的工具类,缩略图大小可调
### Java 上传图片生成缩略图的知识点解析 在现代Web开发中,处理图像是一项常见的需求,尤其是在涉及用户上传图片的应用场景中。本篇文章将基于提供的代码片段详细讲解如何使用Java来实现上传图片并自动生成缩略图...
在Java编程中,生成缩略图是一项常见的任务,特别是在处理图像处理、网页设计或移动应用开发时。这个任务涉及到读取原始图像,调整其尺寸,然后保存为较小的版本,即缩略图。在这个过程中,我们可以使用Java的内置库...
网上找的缩略图生成方法都不够清晰,于是决定自己研究和改进生成缩略图方法。此方法压缩后的图片小,清晰度高,压缩速度快。5000张图片大概抽根烟的功夫就压缩完了。高清的哦。各种参数都是可配的,方便移植到自己...
在Java编程环境中,获取视频缩略图是一项常见的需求,尤其在多媒体应用或者视频分享平台中。这个过程涉及到多媒体处理和图像操作的知识。本文将详细解释如何在Java中实现这一功能,以及相关的技术点。 首先,Java...
在Java编程语言中,处理图像任务,如头像剪切、上传、设置大小以及生成固定缩略图,是一项常见的需求。这些操作广泛应用于社交媒体、个人资料管理或任何需要用户自定义头像的系统中。本篇文章将深入探讨如何使用Java...
本项目就是关于如何在Java环境中使用ffmpeg来获取视频的缩略图,提供了一个简单易用的解决方案。 首先,ffmpeg是一个强大的命令行工具,它支持多种视频、音频格式的处理,包括转换、合并、剪辑以及生成缩略图等。在...
java上传图片,处理图片,word转pdf图片缩略图生成,替换所有图片的ip地址工具类
java 生成缩略图类 源代码 (已经封装好)