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);
}
}
分享到:
相关推荐
缩略图生成的原理是通过对原图片进行缩放,使其达到目标宽度和高度。缩放的方式可以是等比缩放,也可以是非等比缩放。等比缩放可以保持图片的原始比例,而非等比缩放可以使图片的宽度和高度达到目标值。 缩略图生成...
### 上传图片并生成高清晰缩略图 #### 背景与概述 在Web开发领域,特别是ASP.NET应用程序中,上传图片并自动生成高质量缩略图是一项常见且实用的功能。这种需求通常出现在用户头像上传、产品图片展示等场景中。...
### Java 上传图片生成缩略图的知识点解析 在现代Web开发中,处理图像是一项常见的需求,尤其是在涉及用户上传图片的应用场景中。本篇文章将基于提供的代码片段详细讲解如何使用Java来实现上传图片并自动生成缩略图...
原类生成的缩略图的问题在于:高或者宽可能会大于需求值。比如,我需要的图片宽为150,高为120,当原图 * 高为150,宽为150或差距不大时,生成的图片不会有变化,即也是高150,宽150,这样,当把这些图片显示到网页...
C#生成缩略图是指使用C#语言生成图片的缩略图,缩略图是指将原图片按比例缩小,并将空白处用指定颜色填充,并为缩略图加上边框。下面是关于C#生成缩略图的知识点: 1. 图片按比例缩小:在生成缩略图时,需要将原...
在Delphi编程环境中,生成图片缩略图是一项常见的任务,特别是在开发图像管理、网页设计或者多媒体应用时。本文将详细讲解如何使用Delphi来创建图片缩略图,并以提供的源代码为例进行解析。 首先,我们需要了解...
4. 保存缩略图:最后,生成的缩略图会被保存,通常与原文件位于同一文件夹,便于关联和查找。 在实际应用中,这样的工具可能还具备其他功能,例如自定义缩略图的大小、布局、边框样式等,或者支持批量处理多个...
- 缩略图的生成可以考虑保持原图宽高比,避免失真。 3. **存储图片**: - 保存缩略图前,需要设定存储路径,可以是服务器的本地文件系统,也可以是云存储服务。 - 使用`ImageIO.write()`方法将缩略图写入到指定...
// 生成缩略图,保留原比例 $image->writeImage($dst); // 保存缩略图 $image->destroy(); // 释放资源 ``` 3. **优化技巧**: - **质量与大小**:在保存缩略图时,调整JPEG的质量参数可以在图片质量和大小...
所以,保存原图的代码可以省略,原始图像已经被加载到内存中,不会因生成缩略图而受到影响。 这个过程可以封装成一个函数,方便在项目中重复使用: ```php function create_thumbnail($src_path, $dst_path, $...
在IT行业中,尤其是在图像处理领域,批量生成缩略图是一项常见的任务。对于C#开发者来说,这个过程可以通过利用.NET Framework中的System.Drawing命名空间来实现。本文将深入探讨如何使用C#进行批量生成缩略图,并...
缩略图是原始图片的较小版本,通常保持原图的比例,通过调整宽度和高度来实现大小变化。为了生成缩略图,我们可以使用PHP的GD库或ImageMagick库,这两个都是处理图像的强大工具。 1. **GD库**:GD库是PHP内建的图像...
在Web开发中,为了提高用户体验并减少服务器带宽消耗,经常会遇到需要对图片进行处理以生成不同尺寸缩略图的需求。本文将深入探讨一个PHP脚本,该脚本能够实现图片缩略图的自动生成,并详细解析其工作原理。 #### ...
生成缩略图后,将其保存到服务器,并更新文件名以区别于原图。例如,可以添加"thumbnail_"前缀。 为了在前端展示图片,可以创建一个JSP页面,用HTML和JavaScript来显示缩略图。这里我们可以使用jQuery的FancyBox...
例如,可以使用缓存机制,当原图首次生成缩略图后,将缩略图存储起来,后续请求直接返回缓存的缩略图,避免重复计算。 在实际应用中,一个PHP自动缩略图类或者函数通常会封装这些功能,提供简单的接口供开发者调用...
在ASP.NET中生成图片缩略图是一项常见的任务,特别是在构建网站或应用时,需要对上传的图片进行处理,如创建预览、展示列表或者优化加载速度。本文将深入探讨如何利用ASP.NET技术来实现这一功能。 首先,我们需要...
这段代码可能会在处理上传后的回调函数中执行,确保每个上传的图片都能快速生成相应的缩略图。 总的来说,这个DEMO提供了一个完整的解决方案,涵盖了从用户交互到后端处理的整个无刷新上传流程,以及图片处理的相关...
以上代码创建了一个新的缩略图类实例,设置了源图和目标图路径,以及目标尺寸,然后调用`generate()`方法生成缩略图。 在实际应用中,你可能需要考虑更多的细节,比如错误处理、图像格式检查、透明度处理等。此外,...
在.NET开发环境中,生成缩略图是一项常见的任务,特别是在构建Web应用程序时,如Asp.net平台。然而,生成的缩略图可能会面临质量问题,如模糊、失真或色彩不准确等。本文将深入探讨如何在Asp.net中解决这些问题,以...
生成缩略图可以通过读取原图,然后按比例缩小其尺寸来实现。在ASP中,这可能涉及到读取图片文件,使用图像处理函数进行缩放,然后将结果保存为新的文件。 5. **添加水印**: 水印可以是文字或图像,用于保护版权或...