`

生成原图缩略图

阅读更多
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.imageio.ImageIO;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;


public class ImageDrint
{

	
	/**
	 * 新生成的图片的宽度
	 * 新生成的图片的高度
	 * 被读取的图片的URL地址
	 * 要写的图片的地址URL地址
	 * 生成图片的格式 jpg gif jpeg 等等
	 * 
	 */
	//生成的图片宽度 单位像素
	private static  final int IMG_WIDTH = 100;
	//生成的图片高度
	private static  final int IMG_HEIGHT = 100;
	
	
	public static void main(String[] args) throws IOException
	{
		//读取图片
		File file = new File("C:\\temp\\03.jpg");
		
		BufferedImage   sourceImg   =   ImageIO.read(file);
		System.out.println("图片宽度"+sourceImg.getWidth());
		System.out.println("图片高度"+sourceImg.getHeight());
		System.out.println("图片类型"+sourceImg.getType());
		
		//首先判断长宽
		
		//如果是长 > 宽 flag 为true 否则为FALSE
		boolean flag = true;
		
		int img_w = sourceImg.getWidth();
		int img_h = sourceImg.getHeight();
		//如果长度大于等于高度则 flag = true;
		if (img_w >= img_h)
		{
			flag = true;
			System.out.println("图片长度Width大于或者等于高度Height");
		}
		else
		{
			flag = false;
			System.out.println("图片长度Width小于高度Height");
		}
		
		Float f = new Float(0);
		//长大于宽的情况下
		if(flag)
		{
			f = ((new Float(img_h) * IMG_WIDTH )/new Float(img_w));
			System.out.println("新生成的图片的高度height是:"+f);

			int newHeight = f.intValue()+1;
			
			BufferedImage image = new BufferedImage(IMG_WIDTH, newHeight,
					BufferedImage.TYPE_INT_RGB); // 表示一个图像,该图像具有打包成整数像素的 8 位
			
			Graphics g = image.createGraphics();
			
			g.drawImage(sourceImg, 0, 0, IMG_WIDTH, newHeight,  null);
			//释放此图形的上下文并释放它所使用的所有系统资源。
			g.dispose();
			
			
			File itemFile = new File("C:\\temp\\zzz.jpg");
			FileOutputStream out = new FileOutputStream(itemFile);
			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
			encoder.encode(image);
			out.flush();
			out.close();
			
		}else
		{
			f = ((new Float(img_w) * IMG_HEIGHT )/new Float(img_h));
			System.out.println("新生成的图片的宽度width是:"+f);
			
			int newWidth = f.intValue()+1;
			BufferedImage image = new BufferedImage(newWidth, IMG_HEIGHT,
					BufferedImage.TYPE_INT_RGB); // 表示一个图像,该图像具有打包成整数像素的 8 位
			
			Graphics g = image.createGraphics();
			
			g.drawImage(sourceImg, 0, 0, newWidth, IMG_HEIGHT,  null);
			//释放此图形的上下文并释放它所使用的所有系统资源。
			g.dispose();
			
			//写新文件的地址
			File itemFile = new File("C:\\temp\\zzz.jpg");
			FileOutputStream out = new FileOutputStream(itemFile);
			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
			encoder.encode(image);
			out.flush();
			out.close();
			
		}
		
		//System.out.println(f.intValue() +1);
		
		
		
	}
}

 

分享到:
评论

相关推荐

    上传图片并生成高清晰缩略图

    上传图片并生成高清晰缩略图 Asp.Net 上传图片并生成高清晰缩略图收藏 在asp.net中,上传图片功能或者是常用的,生成缩略图也是常用的。baidu或者google,c#的方法也是很多的,但是一用却发现缩略图不清晰啊,缩略...

    java 图片生成缩略图

    缩略图生成的原理是通过对原图片进行缩放,使其达到目标宽度和高度。缩放的方式可以是等比缩放,也可以是非等比缩放。等比缩放可以保持图片的原始比例,而非等比缩放可以使图片的宽度和高度达到目标值。 缩略图生成...

    asp.net绝对完美的生成缩略图的类(多种模式生成)

    原类生成的缩略图的问题在于:高或者宽可能会大于需求值。比如,我需要的图片宽为150,高为120,当原图 * 高为150,宽为150或差距不大时,生成的图片不会有变化,即也是高150,宽150,这样,当把这些图片显示到网页...

    C#生成缩略图(图片按比例缩小 空白处用指定颜色填充)

    C#生成缩略图是指使用C#语言生成图片的缩略图,缩略图是指将原图片按比例缩小,并将空白处用指定颜色填充,并为缩略图加上边框。下面是关于C#生成缩略图的知识点: 1. 图片按比例缩小:在生成缩略图时,需要将原...

    php利用gd生成缩略图 并保存原图

    php 利用 gd 生成 缩略图 并 保存 原图

    PHP生成缩略图,不变形,不保存原图

    简单明了,PHP生成缩略图,不变形,不保存原图.适用于只需要缩略图的需求者.

    批量生成静态缩略图或gif动画缩略图

    采用多线程可以批量生成原图片的缩略图,三种生成模式,完全按比例缩小、指定宽度和高度缩放、指定宽度或高度按比例缩放。 PS:暂不支持生成PNG动画的缩略图

    缩略图批量制作(批量生成)软件 v2.2 免费绿色版.rar

    (2)支持2种缩略图命名方式:当前目录下原文件名加前缀/自定义路径保持原文件名。 (3)支持单个图片缩略图生成和批量自动生成目录下的所有图片的缩略图。 (4)支持JPG/JPEG图像。 (5)支持图片预览、显示缩略图处理...

    生成缩略图的PHP类.zip

     }生成缩略图函数(支持图片格式:gif、jpeg、png和bmp) * @author ruxing.li * @param string $src 源图片路径 * @param int $width 缩略图宽度(只指定高度时进行等比缩放) * @param int $...

    JPG图片缩略图与原图不一致(VC6源码)

    如果图片中EXIF信息中不存在缩略图信息或信息错误,那么Windows就会用插值的方法重新生成缩略图(如果可能则保存到当前目录中的"Thumbs.db"缩略图数据库中)。 对于修改缩略图方法可以用exifer这样的工具。这里给出...

    图片预览上传并成生成缩略图组件php版v1.0

    本示例代码核心都来自于互联网,具体出处不明,本示例已经过本人的修改及功能整合,...可生成缩略图,自由设定可要,可不要 本代码最大的好处就是上传图片,未保存到数据库时重传图片不会产生垃圾图片,重传时直接把原图删除

    C# 批量生成缩略图

    上传原图,产生单一尺寸的缩略图和批量产生多个不同尺寸的缩略图。有需要的话还可以自己修改,源文件一同提供。

    可以动态添加图片,支持多张图片同时上传,图片入库,支持多浏览器 生成原图和缩略图

    可以动态添加图片,支持多张图片同时上传,支持多浏览器 ,点击选择图片立马显示64位格式的图片,后台对图片进行格式转换入库,生成原图和缩略图

    生成缩略图插件ver1.2 for PHPCMS3.0.rar

    功能: 该插件能自动生成图片缩略图,同时每次上传图片都能选择是否生成缩略图及其大小,上传后图片链接地址自动指向原图并在原图上套用HTML边框. ver1.2 : 同步更新官方12月7日最新版本PHPCMS。 ver1.1 修复...

    缩略图批量制作机v2.8免费安装版

    缩略图批量制作机是一款非常好用的,能够帮助用户批量制作图片缩略图的工具,当您制作相册目录或将相片发布到网页时,为加快浏览速度,会将图片生成缩略图,这个批量缩略图工具可以一次将目录下的相片按规则全部生成...

    c# 生成缩略图函数

    c#开发的生成图像的缩率图。输入原图路径,输出缩略图

    【ASP.NET编程知识】ASP.NET实现上传图片并生成缩略图的方法.docx

    接下来,生成原图。通过使用 `System.IO.Stream` 将上传的文件流转换为图片流,然后使用 `System.Drawing.Image.FromStream` 将流转换为图片对象。获取原图的宽度和高度,并设置缩略图的初始宽度和高度。然后,按...

    php 根据url自动生成缩略图v1.1

    原图路径为:http://localhost/upload/2013/07/21/1.jpg 缩略图路径为:http://localhost/supload/2013/07/21/1.jpg 当访问 http://localhost/supload/2013/07/21/1.jpg 时,如图片存在,则显示图片。否则,调用...

    php生成三种缩略图的函数类

    一个php生成三种缩略图的函数类,把大图缩略到缩略图指定的范围内,可能有留白(原图细节不丢失) ;把大图缩略到缩略图指定的范围内,不留白(原图会居中缩放,把超出的部分裁剪掉);把大图缩略到缩略图指定的范围...

    可以控制宽高大小的缩略图生成函数

    可以控制宽高大小的缩略图生成函数

Global site tag (gtag.js) - Google Analytics