`

生成原图缩略图

阅读更多
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大图片生成缩略图

    // 生成缩略图,保留原比例 $image->writeImage($dst); // 保存缩略图 $image->destroy(); // 释放资源 ``` 3. **优化技巧**: - **质量与大小**:在保存缩略图时,调整JPEG的质量参数可以在图片质量和大小...

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

    所以,保存原图的代码可以省略,原始图像已经被加载到内存中,不会因生成缩略图而受到影响。 这个过程可以封装成一个函数,方便在项目中重复使用: ```php function create_thumbnail($src_path, $dst_path, $...

    C# 批量生成缩略图

    在IT行业中,尤其是在图像处理领域,批量生成缩略图是一项常见的任务。对于C#开发者来说,这个过程可以通过利用.NET Framework中的System.Drawing命名空间来实现。本文将深入探讨如何使用C#进行批量生成缩略图,并...

    struts2图片上传并生成缩略图,展示缩略图点击显示大图

    生成缩略图后,将其保存到服务器,并更新文件名以区别于原图。例如,可以添加"thumbnail_"前缀。 为了在前端展示图片,可以创建一个JSP页面,用HTML和JavaScript来显示缩略图。这里我们可以使用jQuery的FancyBox...

    php 自动缩略图,php智能生成缩略图

    例如,可以使用缓存机制,当原图首次生成缩略图后,将缩略图存储起来,后续请求直接返回缓存的缩略图,避免重复计算。 在实际应用中,一个PHP自动缩略图类或者函数通常会封装这些功能,提供简单的接口供开发者调用...

    如何生成图片缩略图

    在ASP.NET中生成图片缩略图是一项常见的任务,特别是在构建网站或应用时,需要对上传的图片进行处理,如创建预览、展示列表或者优化加载速度。本文将深入探讨如何利用ASP.NET技术来实现这一功能。 首先,我们需要...

    解决.net缩略图质量问题 Asp.net生成高质量缩略图

    在.NET开发环境中,生成缩略图是一项常见的任务,特别是在构建Web应用程序时,如Asp.net平台。然而,生成的缩略图可能会面临质量问题,如模糊、失真或色彩不准确等。本文将深入探讨如何在Asp.net中解决这些问题,以...

    jSP上传图片生成缩略图

    4. 调整缩略图的尺寸,保持原图的宽高比,避免图像失真。 5. 保存缩略图到服务器,并可能将其路径保存到数据库,以便后续展示或访问。 6. 反馈给用户上传成功的信息,展示缩略图的预览。 在实际开发中,还需要考虑...

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

    在IT行业中,生成静态缩略图或gif动画缩略图是一项常见的需求,特别是在网站开发、图像处理和多媒体应用中。批量生成这些缩略图能够大大提高工作效率,减少手动操作的时间。以下将详细介绍批量生成静态缩略图或gif...

    Asp.net上传图片同时生成缩略图和水印图

    在创建缩略图时,通常会保持原图宽高比,以防止拉伸导致失真。这可以通过计算缩放比例来实现。假设我们想要生成固定宽度和高度的缩略图,可以先根据较宽的一边计算缩放比例,然后应用到较窄的一边,确保图片的比例...

    ASP生成缩略图(已测试).rar

    生成缩略图的基本思路是读取原图,调整其尺寸,然后保存为新的小图。在ASP中,我们通常会利用VBScript或JScript语言来实现这个过程。下面,我们将重点介绍VBScript的实现方法。 1. **读取图片**:首先,我们需要...

    多图片上传-判断图片像素-生成缩略图

    缩略图生成时,可以选择保持原图宽高比或强制拉伸至指定尺寸。通常,为了保持图片质量,会使用插值算法来平滑像素。 在实际应用中,这三者通常是结合在一起的。用户上传多张图片后,前端先进行像素判断,如果图片...

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

    以上就是如何在PHP中生成不变形的缩略图,而不保存原图的过程。这个方法可以灵活应用于各种项目,只需根据实际需求调整参数即可。同时,对于性能要求更高的场景,可以考虑使用Imagick扩展,它提供了更多的图像处理...

    C# winform生成高质量缩略图

    缩略图是原图的缩小版本,目的是为了快速预览大图内容,而不会占用太多资源。在C#中,我们可以使用GDI+(Graphics Device Interface)来实现这个功能。GDI+提供了一系列的图像处理方法,包括绘制、缩放、裁剪等。 ...

    缩略图批量制作(批量生成)软件 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 $...

Global site tag (gtag.js) - Google Analytics