`

生成原图缩略图

阅读更多
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);
		
		
		
	}
}

 

分享到:
评论

相关推荐

    java 图片生成缩略图

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

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

    ### 上传图片并生成高清晰缩略图 #### 背景与概述 在Web开发领域,特别是ASP.NET应用程序中,上传图片并自动生成高质量缩略图是一项常见且实用的功能。这种需求通常出现在用户头像上传、产品图片展示等场景中。...

    java 上传图片生成缩略图

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

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

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

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

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

    如何在Delphi中生成图片缩略图的例子.rar

    在Delphi编程环境中,生成图片缩略图是一项常见的任务,特别是在开发图像管理、网页设计或者多媒体应用时。本文将详细讲解如何使用Delphi来创建图片缩略图,并以提供的源代码为例进行解析。 首先,我们需要了解...

    文件夹缩略图生成工具

    4. 保存缩略图:最后,生成的缩略图会被保存,通常与原文件位于同一文件夹,便于关联和查找。 在实际应用中,这样的工具可能还具备其他功能,例如自定义缩略图的大小、布局、边框样式等,或者支持批量处理多个...

    jsp上传图片并生成缩略图

    - 缩略图的生成可以考虑保持原图宽高比,避免失真。 3. **存储图片**: - 保存缩略图前,需要设定存储路径,可以是服务器的本地文件系统,也可以是云存储服务。 - 使用`ImageIO.write()`方法将缩略图写入到指定...

    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#进行批量生成缩略图,并...

    php 生成缩略图

    缩略图是原始图片的较小版本,通常保持原图的比例,通过调整宽度和高度来实现大小变化。为了生成缩略图,我们可以使用PHP的GD库或ImageMagick库,这两个都是处理图像的强大工具。 1. **GD库**:GD库是PHP内建的图像...

    PHP程序生成图片缩略图

    在Web开发中,为了提高用户体验并减少服务器带宽消耗,经常会遇到需要对图片进行处理以生成不同尺寸缩略图的需求。本文将深入探讨一个PHP脚本,该脚本能够实现图片缩略图的自动生成,并详细解析其工作原理。 #### ...

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

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

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

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

    如何生成图片缩略图

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

    无刷新上传--可生成缩略图--demo.zip

    这段代码可能会在处理上传后的回调函数中执行,确保每个上传的图片都能快速生成相应的缩略图。 总的来说,这个DEMO提供了一个完整的解决方案,涵盖了从用户交互到后端处理的整个无刷新上传流程,以及图片处理的相关...

    php生成图片缩略图代码类.zip

    以上代码创建了一个新的缩略图类实例,设置了源图和目标图路径,以及目标尺寸,然后调用`generate()`方法生成缩略图。 在实际应用中,你可能需要考虑更多的细节,比如错误处理、图像格式检查、透明度处理等。此外,...

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

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

    asp无组件上传图片,aspjpeg生成缩略图和添加水印.zip

    生成缩略图可以通过读取原图,然后按比例缩小其尺寸来实现。在ASP中,这可能涉及到读取图片文件,使用图像处理函数进行缩放,然后将结果保存为新的文件。 5. **添加水印**: 水印可以是文字或图像,用于保护版权或...

Global site tag (gtag.js) - Google Analytics