`
心跳-频率
  • 浏览: 4908 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 缩略图

    博客分类:
  • java
阅读更多

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缩略图

    总结来说,生成Java缩略图涉及读取图像、计算缩放比例、使用图形上下文进行缩放绘制以及保存结果。通过`ThumbnailUtils.java`文件,我们可以创建一个独立的工具类,方便地在项目中复用这个功能。

    java缩略图代码

    【Java 缩略图代码详解】 在 Java 中生成图片缩略图是一项常见的需求,这通常涉及到图像处理技术。以下是一个 Java 类 `GetPicture` 的示例,它包含了获取网络图片、截取屏幕以及创建图片缩略图的功能。我们将详细...

    java 缩略图实现

    在Java编程中,生成缩略图是一项常见的任务,特别是在处理图像处理、网页设计或移动应用开发等领域。这个主题涉及到如何利用Java的APIs来创建图片的缩小版本,以节省存储空间,提高页面加载速度,或者优化用户体验。...

    java缩略图jar包

    总的来说,“java缩略图jar包”(thumbnailator)是Java开发中创建和管理缩略图的高效工具,它的强大功能和简洁API降低了图像处理的门槛,使得开发者能够更加专注于业务逻辑,而不用过多关心底层的图像处理细节。...

    java图片缩放 java缩略图 缩略图 java图片处理

    java图片缩放 java缩略图 缩略图 java图片处理

    JspSmart_img.rar_JAVA 缩略图_JSP上传_img缩略图_jspsmar_jspsmart

    "JspSmart_img.rar" 文件内容涉及到使用JAVA技术来处理图片上传以及生成缩略图的功能,这在网站开发中是非常常见的需求,特别是对于那些需要展示大量图像的网站,如社交媒体、电子商务平台等。 "JAVA 缩略图" 指的...

    ImageScale java 缩略图 算法

    本篇我们将深入探讨“ImageScale”这个Java算法,它是用于创建图片缩略图的一种技术。 首先,让我们理解“缩略图”的概念。缩略图是指按照一定的比例缩小原图尺寸的图片,通常用于预览或快速浏览。在Java中,生成...

    java 图片生成缩略图

    "java 图片生成缩略图" Java 图片生成缩略图是Java程序开发中一个常见的需求,通过将图片以缩略图形式展示,可以提高用户体验和网站性能。在本文中,我们将介绍使用Java生成缩略图的方法。 缩略图生成方法 在 ...

    java实现缩略图

    缩略图类(通用) 本java类能将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换。

    java生成图片缩略图和二进制文件的工具类

    将图片生成缩略图和转换为二进制的工具类,缩略图大小可调

    java 上传图片生成缩略图

    ### Java 上传图片生成缩略图的知识点解析 在现代Web开发中,处理图像是一项常见的需求,尤其是在涉及用户上传图片的应用场景中。本篇文章将基于提供的代码片段详细讲解如何使用Java来实现上传图片并自动生成缩略图...

    java 生成缩略图

    在Java编程中,生成缩略图是一项常见的任务,特别是在处理图像处理、网页设计或移动应用开发时。这个任务涉及到读取原始图像,调整其尺寸,然后保存为较小的版本,即缩略图。在这个过程中,我们可以使用Java的内置库...

    java高清缩略图不丢真

    网上找的缩略图生成方法都不够清晰,于是决定自己研究和改进生成缩略图方法。此方法压缩后的图片小,清晰度高,压缩速度快。5000张图片大概抽根烟的功夫就压缩完了。高清的哦。各种参数都是可配的,方便移植到自己...

    JAVA获取视频缩略图

    在Java编程环境中,获取视频缩略图是一项常见的需求,尤其在多媒体应用或者视频分享平台中。这个过程涉及到多媒体处理和图像操作的知识。本文将详细解释如何在Java中实现这一功能,以及相关的技术点。 首先,Java...

    java头像剪上传剪切设置大小,生成固定缩略图大小

    在Java编程语言中,处理图像任务,如头像剪切、上传、设置大小以及生成固定缩略图,是一项常见的需求。这些操作广泛应用于社交媒体、个人资料管理或任何需要用户自定义头像的系统中。本篇文章将深入探讨如何使用Java...

    java利用ffmpeg获取视频缩略图

    本项目就是关于如何在Java环境中使用ffmpeg来获取视频的缩略图,提供了一个简单易用的解决方案。 首先,ffmpeg是一个强大的命令行工具,它支持多种视频、音频格式的处理,包括转换、合并、剪辑以及生成缩略图等。在...

    java上传图片,处理图片,word转pdf图片缩略图生成

    java上传图片,处理图片,word转pdf图片缩略图生成,替换所有图片的ip地址工具类

    java生成缩略图类(已经封装好)

    java 生成缩略图类 源代码 (已经封装好)

Global site tag (gtag.js) - Google Analytics