<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
import
javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import java.awt. * ;
def createThumbnail(File input, File output, int length) throws IOException {
if ( ! input.exists()) {
throw new RuntimeException( " input file not exists! " );
}
if ( ! output.exists()) {
output.createNewFile();
}
BufferedImage srcImage = ImageIO.read(input);
int realWidth = srcImage.getWidth( null );
int realHeight = srcImage.getHeight( null );
int width, height;
if (realWidth < length && realHeight < length) {
// 保持原来大小
width = realWidth;
height = realHeight;
} else if ((length * realHeight) / realWidth > length) {
// 按照实际高度来压缩
// 压缩后的宽
width = (length * realWidth) / realHeight;
// 压缩后的高度
height = length;
} else {
// 按实际宽度来压缩
// 压缩后的宽
width = length;
// 压缩后的高度
height = (length * realHeight) / realWidth;
}
Image newImage = srcImage.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage targetImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = targetImage.getGraphics();
g.drawImage(newImage, 0 , 0 , null ); // 绘制缩小后的图
g.dispose();
ImageIO.write(targetImage, " jpeg " , output);
}
def dir = new File( " d:/var/wormser/sample " )
dir.eachFile{ f ->
def name = f.name;
println name
newFileName = name.replaceAll( /^ ([a - zA - Z0 - 9_] + )\.([a - zA - Z0 - 9 ] + )$ / , " \$1_tb.jpg " )
def newFile = new File(dir.getAbsolutePath() + File.separator + newFileName)
println newFileName
createThumbnail(f, newFile, 160 )
}
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import java.awt. * ;
def createThumbnail(File input, File output, int length) throws IOException {
if ( ! input.exists()) {
throw new RuntimeException( " input file not exists! " );
}
if ( ! output.exists()) {
output.createNewFile();
}
BufferedImage srcImage = ImageIO.read(input);
int realWidth = srcImage.getWidth( null );
int realHeight = srcImage.getHeight( null );
int width, height;
if (realWidth < length && realHeight < length) {
// 保持原来大小
width = realWidth;
height = realHeight;
} else if ((length * realHeight) / realWidth > length) {
// 按照实际高度来压缩
// 压缩后的宽
width = (length * realWidth) / realHeight;
// 压缩后的高度
height = length;
} else {
// 按实际宽度来压缩
// 压缩后的宽
width = length;
// 压缩后的高度
height = (length * realHeight) / realWidth;
}
Image newImage = srcImage.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage targetImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = targetImage.getGraphics();
g.drawImage(newImage, 0 , 0 , null ); // 绘制缩小后的图
g.dispose();
ImageIO.write(targetImage, " jpeg " , output);
}
def dir = new File( " d:/var/wormser/sample " )
dir.eachFile{ f ->
def name = f.name;
println name
newFileName = name.replaceAll( /^ ([a - zA - Z0 - 9_] + )\.([a - zA - Z0 - 9 ] + )$ / , " \$1_tb.jpg " )
def newFile = new File(dir.getAbsolutePath() + File.separator + newFileName)
println newFileName
createThumbnail(f, newFile, 160 )
}