[code]public void createSmallPic(int height, int width){
String smallPath = "smallPath"; // 小图存放目录
if(!new File(smallPath).exists()) {
new File(smallPath).mkdirs();
}
double ratio = 0.0;
File file = new File("d:/a.jpg"); // 大图路径
BufferedImage bi = ImageIO.read(file); // 读取大图
if ((bi.getHeight() > height) || (bi.getWidth() > width)) {
if (bi.getHeight() > bi.getWidth()) {
ratio = (new Integer(height)).doubleValue() / bi.getHeight();
} else {
ratio = (new Integer(width)).doubleValue() / bi.getWidth();
}
file = new File(smallPath + File.separator + file.getName() + "_" + height + "_" + width + ".jpg"); // 缩略图路径
Image img = bi.getScaledInstance(width, height, bi.SCALE_SMOOTH);
AffineTransformOp op = new AffineTransformOp(AffineTransform.getScaleInstance(ratio, ratio), null);
img = op.filter(bi, null);
ImageIO.write((BufferedImage) img, "jpg", file);
}
}[/code]
注: 使用JDK1.6
String smallPath = "smallPath"; // 小图存放目录
if(!new File(smallPath).exists()) {
new File(smallPath).mkdirs();
}
double ratio = 0.0;
File file = new File("d:/a.jpg"); // 大图路径
BufferedImage bi = ImageIO.read(file); // 读取大图
if ((bi.getHeight() > height) || (bi.getWidth() > width)) {
if (bi.getHeight() > bi.getWidth()) {
ratio = (new Integer(height)).doubleValue() / bi.getHeight();
} else {
ratio = (new Integer(width)).doubleValue() / bi.getWidth();
}
file = new File(smallPath + File.separator + file.getName() + "_" + height + "_" + width + ".jpg"); // 缩略图路径
Image img = bi.getScaledInstance(width, height, bi.SCALE_SMOOTH);
AffineTransformOp op = new AffineTransformOp(AffineTransform.getScaleInstance(ratio, ratio), null);
img = op.filter(bi, null);
ImageIO.write((BufferedImage) img, "jpg", file);
}
}[/code]
注: 使用JDK1.6
本文介绍了一种使用Java实现的图片缩放方法,通过调整图片尺寸来适应指定的高度和宽度。该方法首先判断源图片是否需要缩放,然后计算缩放比例,并利用`AffineTransformOp`进行等比缩放,最后将缩放后的图片保存到指定路径。
289

被折叠的 条评论
为什么被折叠?



