TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
在此基础上修改,如在相片上追加文字、图片等,各位就根据自己的需要再加工吧!
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.image.BufferedImage;
- import java.awt.image.ImageObserver;
- import java.io.File;
- import java.io.FileFilter;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.InputStream;
- import javax.imageio.ImageIO;
-
复制代码 /**
* 此程序来自http://www.dingl.com ,站长略作修改.
* 程序功能:把一个目录下的所有jpg图片制作成缩略图并
* 生成index.HTML演示文件
*/
- public class Zoom {
- String srcPath;
- StringBuffer html;
- int count;
- public Zoom(String srcPath) {
- this.srcPath = srcPath;
- init();
- }
- public void zoom(File input) {
- //输出的位置
- String output = getOutputPath();
- try {
- InputStream imageStream = new FileInputStream(input);
- //根据目标图片建立一个缓存图片
- BufferedImage imageFile = ImageIO.read(imageStream);
- float zoom = 0.12F; //你要方缩的比例
- //获得目标图片的宽高,同时乘以放缩比例得到新图片大小
- int w = (int) (imageFile.getWidth() * zoom);
- int h = (int) (imageFile.getHeight() * zoom);
- //建立一个新图片的缓存图片
- BufferedImage bufImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
- String zoomFile = output + "/zooms_" + input.getName();
- FileOutputStream out = new FileOutputStream(zoomFile);
- //从目标图片上获得Graphics以便画在新图片上,最后一个参数是内部无名类,可以用null代替
- Graphics g = bufImage.getGraphics();
- g.drawImage(imageFile, 0, 0, w, h, new ImageObserver() {
- public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
- return true;
- }
- });
复制代码 //输出 ImageIO.write(bufImage, "JPEG", out);
out.flush();
out.close();
imageStream.close();
int row = count % 3;
if (row == 0) {
html.append("
<tr>");
}
html.append("
<td align="center"><a href="").append(input.getName()).append("" target="_blank">");
html.append("<img src="zoom" + "/zooms_" + input.getName() + "" border="0"><br>");
html.append(input.getName() + "</a></td>");
if (row == 2) {
html.append("
</tr>");
}
count++;
} catch (Exception e) {
e.printStackTrace();
}
}- public void process() {
- File[] files = getFiles();
- mkdirs();
- for (int i = 0; i < files.length; i++) {
- zoom(files[i]);
- }
- trail();
- outputHtmlFile();
- }
- private File[] getFiles() {
- File path = new File(srcPath);
- File[] files = path.listFiles(new FileFilter() {
- public boolean accept(File pathname) {
- if (pathname == null)
- return false;
- String ext = pathname.getName().substring(pathname.getName().lastIndexOf(".") + 1).toUpperCase();
- return ext.equals("JPG") || ext.equals("JPEG");
- }
- });
- return files;
- }
- private void mkdirs() {
- File zoomPath = new File(getOutputPath());
- zoomPath.mkdirs();
- }
- private String getOutputPath() {
- return srcPath + "/zoom";
- }
复制代码 private void init() {
count = 0;
html = new StringBuffer();
html.append("<html>");
html.append("
<head>");
html.append("
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">");
html.append("
<title>").append(getDirName()).append("</title>");
html.append("
</head>");
html.append("
<body>");
html.append("
<table width="75%" border="1">");
} private void trail() {
int row = count % 3;
if (row == 0) {
html.append("
<td> </td>");
}
if (row == 1) {
html.append("
<td> </td>");
html.append("
<td> </td>");
}
html.append("
</tr>");
html.append("
</table>");
html.append("
</body>");
html.append("
</html>");
}- private String getDirName() {
- if (srcPath.endsWith("/")) {
- srcPath = srcPath.substring(0, srcPath.length() - 1);
- }
- return srcPath.substring(srcPath.lastIndexOf("/") + 1);
- }
- private void outputHtmlFile() {
- FileWriter writer = null;
- try {
- File htmlFile = new File(srcPath + "/index.html");
- writer = new FileWriter(srcPath + "/index.html");
- writer.write(html.toString());
- writer.flush();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (writer != null) {
- try {
- writer.close();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- }
- }
- public static void main(String[] args) {
- String srcPath = args[0];
- if (srcPath==null){
- printHelp();
- return;
- }
-
- Zoom zoom = new Zoom(srcPath);
- zoom.process();
- }
-
- public static void printHelp(){
- System.out.println("USAGE : java Zoom
-
- ");
- }
- }
-
复制代码
源码下载:http://file.javaxxz.com/2014/10/2/041327797.zip |
|