/**
* 缩放
*
* @param source 目标图片路径
* @param targetW 宽度
* @param targetH 高度
*/
public static BufferedImage resize(BufferedImage source, int targetW, int targetH) {
// targetW,targetH分别表示目标长和宽
int type = source.getType();
BufferedImage target = null;
double sx = (double) targetW / source.getWidth();
double sy = (double) targetH / source.getHeight();
//这里想实现在targetW,targetH范围内实现等比缩放。如果不需要等比缩放
//则将下面的if else语句注释即可
if(sx>sy) {
sx = sy;
targetW = (int)(sx * source.getWidth());
}else{
sy = sx;
targetH = (int)(sy * source.getHeight());
}
if (type == BufferedImage.TYPE_CUSTOM) { //handmade
ColorModel cm = source.getColorModel();
WritableRaster raster = cm.createCompatibleWritableRaster(targetW, targetH);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
target = new BufferedImage(cm, raster, alphaPremultiplied, null);
} else
target = new BufferedImage(targetW, targetH, type);
Graphics2D g = target.createGraphics();
//smoother than exlax:
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY );
g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));
g.dispose();
return target;
}
/**
* 缩放
*
* @param fromFileStr 源图片路径
* @param saveToFileStr 目标图片路径
* @param height 高度
* @param width 宽度
*/
public static void resizeImage(String fromFileStr,String saveToFileStr,int width,int hight) throws Exception {
BufferedImage srcImage;
String imgType = "JPEG";
if (fromFileStr.toLowerCase().endsWith(".png")) {
imgType = "PNG";
}
File saveFile=new File(saveToFileStr);
File fromFile=new File(fromFileStr);
srcImage = ImageIO.read(fromFile);
if(width > 0 || hight > 0){
srcImage = resize(srcImage, width, hight);
}
ImageIO.write(srcImage, imgType, saveFile);
}
分享到:
相关推荐
在Delphi编程环境中,生成图片缩略图是一项常见的任务,特别是在开发图像管理、网页设计或者多媒体应用时。本文将详细讲解如何使用Delphi来创建图片缩略图,并以提供的源代码为例进行解析。 首先,我们需要了解...
在ASP.NET中生成图片缩略图是一项常见的任务,特别是在构建网站或应用时,需要对上传的图片进行处理,如创建预览、展示列表或者优化加载速度。本文将深入探讨如何利用ASP.NET技术来实现这一功能。 首先,我们需要...
首先,我们需要了解生成图片缩略图的基本原理。在PHP中,最常用的图像处理库是GD库和Imagick扩展。这个类可能基于其中之一,尤其是GD库,因为它是PHP的默认图像处理库,适用于大多数服务器环境。GD库支持多种图像...
### PHP程序生成图片缩略图知识点详解 #### 一、概览 在Web开发中,为了提高用户体验并减少服务器带宽消耗,经常会遇到需要对图片进行处理以生成不同尺寸缩略图的需求。本文将深入探讨一个PHP脚本,该脚本能够实现...
首先,我们需要理解图片缩略图生成的基本概念。缩略图是原图的一个较小版本,通常保持原始图像的比例,以节省网页加载时间和空间。在PHP中,我们通常使用GD库或ImageMagick库来处理图像。这个代码类很可能使用了GD库...
在JSP(Java Server Pages)中生成图片缩略图是一个常见的需求,特别是在处理大量图片的网站上,为了提高页面加载速度和用户体验,通常会将原始图片转换为较小的缩略图进行展示。本文将深入解析如何在JSP中实现图片...
在IT行业中,生成图片缩略图是一项常见的任务,特别是在网页设计、内容管理和图像处理系统中。C#作为.NET框架的主要编程语言,提供了丰富的类库来处理这种需求。本篇文章将详细探讨如何使用C#来生成图片缩略图,并...
**jQuery响应式按比例生成图片缩略图插件——jqthumb** 在网页设计中,图片的展示和处理是一项重要的任务,特别是在响应式设计中,图片的缩略图生成显得尤为重要。`jqthumb`是一个专为jQuery设计的插件,旨在帮助...
c# 生成图片缩略图
在PHP编程中,批量生成图片缩略图是一个常见的需求,特别是在构建论坛或社交媒体平台时,为了提高用户体验,通常需要对用户上传的图片进行自动化处理,生成预览版本,即缩略图。本教程将深入探讨如何使用PHP实现这一...
《生成图片缩略图Jar包:使用Thumbnailator库进行图片处理》 在现代软件开发中,尤其是在Web应用和移动应用中,图片的处理是不可或缺的一部分。生成图片缩略图是常见的需求,它可以帮助我们快速展示大量的图片,...
网上流传的‘一张令所有人吃惊的图片’,是一张椅子的图片,但是,如果你的系统是XP,把它下载后保存到任意一个文件夹中,打开文件夹,用缩略图的方式查看,会看到图片的缩略图是一个机器女人坐在地上。 经过一番研究...
在.NET框架中,生成图片缩略图是一项常见的任务,尤其在网页开发或者图像处理应用中。这个场景描述了如何利用.NET技术将原始图片按照宽度或高度的比例进行压缩,生成一个符合特定尺寸要求的小尺寸图片,即所谓的...
总的来说,HTML5的File API、Canvas和Data URL提供了强大的本地文件处理能力,使得在浏览器端生成图片缩略图预览成为可能,大大提升了图片上传功能的用户体验。在实际开发中,我们还需要考虑性能优化、兼容性处理...
使用java swing生成图片缩略图,可以自己设置图片的高度和宽度即可生成自己想要的图片。(双击jar包便可运行(在安装了jdk的环境下))
在PHP开发中,生成图片缩略图是一项常见的需求,尤其在网站中用于显示用户上传的图片或者进行资源优化时。这个“生成图片缩略图的php类(需安装GD2图形库)”提供了方便的解决方案,它是一个专门设计用于创建图片...
在Web开发中,生成图片缩略图是一项常见的需求,尤其是在网站中展示大量图片时。HTML中简单的设置图片宽度和高度进行缩放并不理想,因为这不会改变图片的实际像素数量,导致加载速度不变。手动使用图形软件创建缩略...
通过研究和理解这个代码,开发者可以更好地掌握如何在Android应用中正确处理图片缩略图的获取和展示,同时解决可能出现的问题。 总之,获取Android设备上的最近相片缩略图需要正确查询MediaStore,按时间排序,并...
这款工具的特色在于其缩略图功能,使得用户在不打开每个文件的情况下,也能对文件夹中的多个DDS图片有一个直观的了解。 DDS文件通常包含颜色数据、压缩格式以及MIP映射级别等信息,其中MIP映射是提高图形性能的一种...