java生成缩略图

@author gzkui

@date 2015/1/15

@ 朋友圈项目

package qflag.ucstar.plugin.ucmbfriends.utils;

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 UcmImagechangetest {
	public static void main(String[] args) throws Exception {
		FileOutputStream fileOutputStream = null;
		JPEGImageEncoder encoder = null;
		BufferedImage tagImage = null;
		Image srcImage = null;
		String dstImageFileName = "E:\\sss\\sgseg.jpeg";
		File imBig = new File("C:\\Users\\gzkui\\Desktop\\0019d18398280c9fb6020a.jpg");
		if (imBig.exists() && imBig.isFile()) {
			srcImage = ImageIO.read(imBig);
			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;
	            if(fileOutputStream!=null){
	                try{
	                    fileOutputStream.close();
	                }catch(Exception e){
	                }
	                fileOutputStream = null;
	            }
	            encoder = null;
	            tagImage = null;
	            srcImage = null;
	            System.gc();
			return;
		}
		System.out.println("文件未找到");
	}

}
时间: 2024-08-30 11:53:55

java生成缩略图的相关文章

Java生成缩略图之Thumbnailator

Thumbnailator 是一个为Java界面更流畅的缩略图生成库.从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量.同时还支持根据一个目录批量生成缩略图. 原图如下:  1.指定大小进行缩放 Java代码   //size(宽度, 高度) /* * 若图片横比200小,高比300小,不变 * 若图片横比200小,高比300大,高缩小到300,图片比例不变 * 若图片横比200大,高比

Java生成缩略图Thumbnailator(转载)

转自(http://rensanning.iteye.com/blog/1545708) Thumbnailator 是一个为Java界面更流畅的缩略图生成库.从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且 允许微调缩略图生成,同时保持了需要写入到最低限度的代码量.同时还支持根据一个目录批量生成缩略图. thumbnailator-0.4.8.jar 下载地址:http://files.cnblogs.com/files/haha12/th

java生成生成图片缩略图

/** * */ package com.fkhwl.fkhserver.core.utils; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import javax.imageio.ImageI

Java 生成视频缩略图(ffmpeg) <第五篇>

对于上传视频生成缩略图使用的是ffmpeg进行生成的. 自己在网上找了如何进行编译ffmpeg的方法 但是感觉太复杂了 就到csdn上找到了编译好的ffmpeg文件 下载下来 给大家一个下载地址 http://download.csdn.net/source/453719 体会到ffmpeg非常强大,大部分流行的视频格式的都能生成缩略图 现在开始 首先下载ffmpeg解压 建立一个bat文件 start E:/ffmpeg/bin/ffmpeg.exe -i %1 -ss 20 -vframes

根据图片URL裁切并生成缩略图

package jtest; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.awt.image.CropImageFilter; import java.awt.image.FilteredImageSource; import java.awt.image.ImageFilter; import

Spring中MultipartHttpServletRequest实现文件上传 生成缩略图

转贴自:http://my.oschina.net/nyniuch/blog/185266 实现图片上传  用户必须能够上传图片,因此需要文件上传的功能.比较常见的文件上传组件有Commons FileUpload(http://jakarta.apache.org/commons/fileupload/a>)和COS FileUpload(http://www.servlets.com/cos),Spring已经完全集成了这两种组件,这里我们选择Commons FileUpload.  由于P

好记性不如烂笔头3-JAVA生成缩略图

电子商务网站等系统,有大量的图片:从加载速度和流量等角度出发,会使用比较多的缩略图. 1.创建图片的缩略图源代码 package com.daily; import java.awt.Container; import java.awt.Graphics2D; import java.awt.Image; import java.awt.MediaTracker; import java.awt.RenderingHints; import java.awt.Toolkit; import ja

JAVA生成图片缩略图

package com.ares.image.test; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arrays; import javax.imageio.ImageIO; import o

JAVA生成图片缩略图、JAVA截取图片局部内容

package com.ares.image.test; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arrays; import javax.imageio.ImageIO; import o