快速业务通道

JAVA版的相册制作程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

JAVA版的相册制作程序

时间:2011-08-18

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 com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageDecoder; import com.sun.image.codec.jpeg.JPEGImageEncoder; 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); //根据目标图片建立一个缓存图片 JPEGImageDecoder decoderFile = JPEGCodec.createJPEGDecoder(imageStream); BufferedImage imageFile = decoderFile.decodeAsBufferedImage(); 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; } }); //编码输出 JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(out); jpeg.encode(bufImage); out.flush(); out.close(); imageStream.close(); int row = count % 3; if (row == 0) { html.append("/n/t<tr>"); } html.append("/n/t/t<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("/n/t</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 + "/zo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号