/**
* 缩放
*
* @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);
}
分享到:
相关推荐
asp.net做的生成图片缩略图
图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示图片缩略图展示
c# 生成图片缩略图
分享php生成图片缩略图的一个代码类,包含源地址,新路径,缩略图,保留源文件,是否覆盖源文件,处理后的新目录。
网上流传的‘一张令所有人吃惊的图片’,是一张椅子的图片,但是,如果你的系统是XP,把它下载后保存到任意一个文件夹中,打开文件夹,用缩略图的方式查看,会看到图片的缩略图是一个机器女人坐在地上。 经过一番研究...
生成图片缩略图 c#生成缩略图
jsp中生成图片缩略图的代码
分享一个php生成图片缩略图代码类,设置初始化变量,按比例生成缩略图,生成背静缩略图。
Delphi生成图片缩略图的例子,附上完整的源代码,本程序可生成两种图片大小的缩略图,使用方法很简单,只需点击一下操作按钮即可,感觉在平时需要自动生成缩略图的时候比较多,所以这个小程序还是挺实用的吧。
使用java swing生成图片缩略图,可以自己设置图片的高度和宽度即可生成自己想要的图片。(双击jar包便可运行(在安装了jdk的环境下))
DDS图片缩略图显示工具DDS_viewer
生成各种图片缩略图,并支持添加水印 一个生成缩略图的函数 一个添加水印的函数 傻瓜式应用很简单
将图片生成缩略图和转换为二进制的工具类,缩略图大小可调
要使用PHP生成图片缩略图,要保证你的PHP服务器安装了GD2图形库 使用一个类生成图片的缩略图
jqthumb是一款响应式实用的按比例生成图片缩略图的jQuery插件。jqthumb可以按照用户设定的比例、尺寸、位置等属性来生成新的缩略图。该插件可以通过计算来在老浏览器上生成响应式效果。
用PHP批量生成图片缩略图——活跃论坛转帖
这是一个PHP程序,其功能可以生成缩略图……
动态缩略图实现方案,java实现动态缩略图
HTML5 PHP按比例生成图片缩略图并上传,这是采用的HTML5上传图片,并实现了裁切功能,如图所示的效果,用户浏览到一张图片后,虽然预设有图片缩略图的长度和宽度,但在生成缩略图的时候,会智能按照图片的宽高比例来...