﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-stargazers-随笔分类-java api</title><link>http://www.blogjava.net/lzj520/category/31984.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 06 Nov 2008 18:50:33 GMT</lastBuildDate><pubDate>Thu, 06 Nov 2008 18:50:33 GMT</pubDate><ttl>60</ttl><item><title>080813 结合使用SWFUpload和SmartUpload</title><link>http://www.blogjava.net/lzj520/archive/2008/08/13/221659.html</link><dc:creator>lzj520</dc:creator><author>lzj520</author><pubDate>Wed, 13 Aug 2008 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/lzj520/archive/2008/08/13/221659.html</guid><wfw:comment>http://www.blogjava.net/lzj520/comments/221659.html</wfw:comment><comments>http://www.blogjava.net/lzj520/archive/2008/08/13/221659.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lzj520/comments/commentRss/221659.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lzj520/services/trackbacks/221659.html</trackback:ping><description><![CDATA[前台使用SWFUpload：<br />
<br />
<p>&lt;%@ page&nbsp; contentType="text/html;&nbsp; charset=GBK"%&gt;<br />
&lt;%@ page import="javax.servlet.*"%&gt;<br />
&lt;%@ page import="javax.servlet.http.*"%&gt;<br />
&lt;%@ page import="com.yourcompany.util.*"%&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp;&lt;link href="js/default.css" rel="stylesheet" type="text/css" /&gt;<br />
&nbsp;&lt;script type="text/javascript" src="js/swfupload.js"&gt;&lt;/script&gt;<br />
&nbsp;&lt;script type="text/javascript" src="js/handlers.js"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;script src="js/jquery.js" type="text/javascript"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;script type="text/javacript"&gt;<br />
&nbsp;&nbsp;&nbsp;function g(){<br />
&nbsp;&nbsp;$.ajax({<br />
&nbsp;&nbsp;&nbsp; url: 'upload2.jsp',<br />
&nbsp;&nbsp;&nbsp; date: {c: $('#c').val(), c: $('#c').val()},<br />
&nbsp;&nbsp;&nbsp; error: function() { alert"fail"},<br />
&nbsp;&nbsp;&nbsp; success: function(response) { ... }<br />
&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&lt;/script&gt;<br />
&nbsp;&lt;script type="text/javascript"&gt;</p>
<p>&nbsp;var swfu;<br />
&nbsp;&nbsp;window.onload = function () {<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;swfu = new SWFUpload({<br />
&nbsp;&nbsp;&nbsp;&nbsp;// Backend Settings<br />
&nbsp;&nbsp;&nbsp;&nbsp;upload_url: "upload2.jsp",&nbsp;// Relative to the SWF file<br />
&nbsp;&nbsp;&nbsp;&nbsp;post_params: {"product1": "1"},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use_query_string:false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;// File Upload Settings<br />
&nbsp;&nbsp;&nbsp;&nbsp;file_size_limit : "2048",&nbsp;// 2MB<br />
&nbsp;&nbsp;&nbsp;&nbsp;file_types : "*.jpg",<br />
&nbsp;&nbsp;&nbsp;&nbsp;file_types_description : "JPG Images",<br />
&nbsp;&nbsp;&nbsp;&nbsp;file_upload_limit : "0",</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;// Event Handler Settings - these functions as defined in Handlers.js<br />
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp; The handlers are not part of SWFUpload but are part of my website and control how<br />
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp; my website reacts to the SWFUpload events.<br />
&nbsp;&nbsp;&nbsp;&nbsp;file_queue_error_handler : fileQueueError,<br />
&nbsp;&nbsp;&nbsp;&nbsp;file_dialog_complete_handler : fileDialogComplete,<br />
&nbsp;&nbsp;&nbsp;&nbsp;upload_progress_handler : uploadProgress,<br />
&nbsp;&nbsp;&nbsp;&nbsp;upload_start_handler : uploadStart,<br />
&nbsp;&nbsp;&nbsp;&nbsp;upload_error_handler : uploadError,<br />
&nbsp;&nbsp;&nbsp;&nbsp;upload_success_handler : uploadSuccess,<br />
&nbsp;&nbsp;&nbsp;&nbsp;upload_complete_handler : uploadComplete,</p>
<p>&nbsp;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;// Flash Settings<br />
&nbsp;&nbsp;&nbsp;&nbsp;flash_url : "js/swfupload_f9.swf",&nbsp;// Relative to this file</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;custom_settings : {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;upload_target : "divFileProgressContainer"<br />
&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;// Debug Settings<br />
&nbsp;&nbsp;&nbsp;&nbsp;debug: false<br />
&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;}</p>
<p>function uploadStart(file) {<br />
var post_params = this.settings.post_params;<br />
post_params.product = document.getElementById("product").value;<br />
this.setPostParams(post_params);<br />
return true;<br />
}<br />
&nbsp;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&nbsp;&nbsp;&lt;div id="SWFUploadTarget"&gt;<br />
&lt;body&gt;</p>
<p>&nbsp;&nbsp;&lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;form action="upload2.jsp" method="get"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;button id="btnBrowse" type="button" style="padding: 5px;" onClick="swfu.selectFiles(); this.blur();"&gt;&lt;img src="images/page_white_add.png" style="padding-right: 3px; vertical-align: bottom;"&gt;请选择图片&lt;span style="font-size: 7pt;"&gt;(2 MB Max)&lt;/span&gt;&lt;/button&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请输入产品ID&lt;input type="text" name="product" id="product" value=""&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br />
&nbsp;&nbsp;&lt;/div&gt;<br />
&nbsp;&nbsp;&lt;div id="divFileProgressContainer" style="height: 75px;"&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&lt;div id="thumbnails"&gt;&lt;/div&gt;<br />
&nbsp;&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;html&gt;<br />
<br />
后台使用SmartUpload：<br />
<br />
</p>
<p>&lt;%@ page contentType="text/html;charset=gb2312" language="java" import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,<br />
java.sql.*,com.jspsmart.upload.*,java.util.*,com.yourcompany.util.*"%&gt;<br />
&lt;%<br />
SmartUpload mySmartUpload =new SmartUpload();<br />
long file_size_max=4000000;<br />
//add</p>
<p><br />
//初始化<br />
&nbsp;mySmartUpload.initialize(pageContext);<br />
//只允许上载此类文件<br />
try {<br />
mySmartUpload.setAllowedFilesList("jpg,gif");<br />
//上载文件<br />
mySmartUpload.upload();<br />
} catch (Exception e){<br />
%&gt;<br />
&nbsp; &lt;SCRIPT language=javascript&gt;<br />
&nbsp; alert("只允许上传.jpg和.gif类型图片文件");<br />
&nbsp; window.location=''upfile.jsp'';<br />
&nbsp; &lt;/script&gt;<br />
&lt;%<br />
}<br />
//try{</p>
<p>&nbsp;&nbsp;&nbsp; com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);<br />
&nbsp;&nbsp;&nbsp; if (myFile.isMissing()){%&gt;<br />
&nbsp;&nbsp; &lt;SCRIPT language=javascript&gt;<br />
&nbsp;&nbsp; alert("请先选择要上传的文件");<br />
&nbsp;&nbsp; window.location=''upfile.jsp'';<br />
&nbsp;&nbsp; &lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;%}<br />
&nbsp;&nbsp;&nbsp; else{<br />
&nbsp;<br />
&nbsp;String fileName2="",ext="",testvar="";<br />
&nbsp;String productname=mySmartUpload.getRequest().getParameter("product");<br />
&nbsp;String url="/uploadfile/"+productname+"/";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //应保证在根目录中有此目录的存在</p>
<p><br />
&nbsp;java.io.File file1 = new java.io.File(request.getRealPath("/") + url );<br />
&nbsp;&nbsp; if(!file1.exists())<br />
&nbsp; {<br />
&nbsp;&nbsp; file1.mkdir(); <br />
&nbsp; } </p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //String myFileName=myFile.getFileName(); //取得上载的文件的文件名<br />
&nbsp;&nbsp; ext= myFile.getFileExt();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取得后缀名<br />
&nbsp;&nbsp; int file_size=myFile.getSize();&nbsp;&nbsp;&nbsp;&nbsp; //取得文件的大小&nbsp; <br />
&nbsp;&nbsp; String saveurl="";<br />
&nbsp;&nbsp; if(file_size&lt;file_size_max){</p>
<p>int temp=1,temp2=0;<br />
&nbsp;&nbsp;&nbsp; String[] a=myFile.getFileName().split(".jpg");<br />
&nbsp;&nbsp;&nbsp; String myFileNameo = productname+"_00_pic_big";<br />
&nbsp;String myFileName = productname+"_0"+temp; <br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; Calendar calendar = Calendar.getInstance();<br />
&nbsp;&nbsp;&nbsp; String filename = String.valueOf(calendar.getTimeInMillis());<br />
&nbsp;&nbsp;&nbsp; saveurl=request.getRealPath("/")+url;<br />
&nbsp;&nbsp;&nbsp; saveurl+=myFileNameo+"."+ext;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //保存路径<br />
&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);<br />
&nbsp; //&nbsp; java.io.File&nbsp; f1&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp; java.io.File (saveurl);<br />
&nbsp; //&nbsp; java.io.File&nbsp;&nbsp;&nbsp; f2&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; java.io.File (request.getRealPath("/")+url+myFileName+"_0_big.jpg");&nbsp;&nbsp; <br />
&nbsp; //&nbsp; f1.renameTo(f2);&nbsp; <br />
&nbsp;&nbsp;&nbsp; //out.print(filename);<br />
//-----------------------上传完成，开始生成缩略图-------------------------&nbsp; <br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;com.yourcompany.util.DirList dirlist = new com.pixel.util.DirList();<br />
&nbsp; String[] dir =dirlist.list(request.getRealPath("/") + url );</p>
<p><br />
for(int i=0;i&lt;dir.length;i++){<br />
&nbsp; //for (String i : dir){<br />
&nbsp; String[] split = dir[i].split("\\.");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(split[1].equals("jpg")){&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] split2=split[0].split("\\_");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;//split2[1]=01 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;if(Integer.parseInt(split2[1])&gt;0&amp;Integer.parseInt(split2[1])&gt;=temp2){<br />
&nbsp;&nbsp;&nbsp;temp2=Integer.parseInt(split2[1])+1;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;if(Integer.parseInt(split2[1])==0){<br />
&nbsp;&nbsp;&nbsp;temp2=1;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp; &nbsp;}<br />
}&nbsp;</p>
<p>if(temp2&lt;=10){<br />
myFileName = productname+"_0"+temp2;<br />
}else{<br />
myFileName = productname+"_"+temp2;<br />
}</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp;<br />
&nbsp;//myFileName = mySmartUpload.getRequest().getParameter("product");<br />
&nbsp;&nbsp;&nbsp; java.io.File file = new java.io.File(saveurl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //读入刚才上传的文件<br />
&nbsp;&nbsp;&nbsp; String newurl=request.getRealPath("/")+url+myFileName+"_70_min."+ext;&nbsp; //新的缩略图保存地址<br />
&nbsp;&nbsp;&nbsp; Image src = javax.imageio.ImageIO.read(file);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造Image对象<br />
&nbsp;&nbsp;&nbsp; float tagsize=70;<br />
&nbsp;&nbsp;&nbsp; int old_w=src.getWidth(null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图宽<br />
&nbsp;&nbsp;&nbsp; int old_h=src.getHeight(null);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; int new_w=0;<br />
&nbsp;&nbsp;&nbsp; int new_h=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图长<br />
&nbsp;&nbsp;&nbsp; int tempsize;<br />
&nbsp;&nbsp;&nbsp; float tempdouble;<br />
&nbsp;&nbsp;&nbsp; if(old_w&gt;old_h){<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_w/tagsize;<br />
&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_h/tagsize;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; new_w=Math.round(old_w/tempdouble);<br />
&nbsp;&nbsp;&nbsp; new_h=Math.round(old_h/tempdouble);//计算新图长宽<br />
&nbsp;&nbsp;&nbsp; BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);<br />
&nbsp;&nbsp;&nbsp; tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //绘制缩小后的图<br />
&nbsp;&nbsp;&nbsp; FileOutputStream newimage=new FileOutputStream(newurl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //输出到文件流<br />
&nbsp;&nbsp;&nbsp; JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; encoder.encode(tag);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //近JPEG编码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //读入刚才上传的文件<br />
&nbsp;&nbsp;&nbsp; newurl=request.getRealPath("/")+url+myFileName+"_130_min."+ext;&nbsp; //新的缩略图保存地址<br />
&nbsp;&nbsp;&nbsp; //Image src = javax.imageio.ImageIO.read(file);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造Image对象<br />
&nbsp;&nbsp;&nbsp; tagsize=130;<br />
&nbsp; //&nbsp; int old_w2=src2.getWidth(null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图宽<br />
&nbsp; //&nbsp; int old_h2=src2.getHeight(null);&nbsp;&nbsp; <br />
&nbsp;&nbsp; // int new_w=0;<br />
&nbsp;&nbsp; // int new_h=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图长<br />
&nbsp;&nbsp; // int tempsize;<br />
&nbsp; //&nbsp; float tempdouble;<br />
&nbsp;&nbsp;&nbsp; if(old_w&gt;old_h){<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_w/tagsize;<br />
&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_h/tagsize;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; new_w=Math.round(old_w/tempdouble);<br />
&nbsp;&nbsp;&nbsp; new_h=Math.round(old_h/tempdouble);//计算新图长宽<br />
&nbsp;&nbsp;&nbsp;&nbsp; tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);<br />
&nbsp;&nbsp;&nbsp; tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //绘制缩小后的图<br />
&nbsp;&nbsp;&nbsp; newimage=new FileOutputStream(newurl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //输出到文件流<br />
&nbsp;&nbsp;&nbsp; encoder = JPEGCodec.createJPEGEncoder(newimage);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; encoder.encode(tag);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //近JPEG编码<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; newurl=request.getRealPath("/")+url+myFileName+"_180_min."+ext;&nbsp; //新的缩略图保存地址<br />
&nbsp;&nbsp;&nbsp; //Image src = javax.imageio.ImageIO.read(file);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造Image对象<br />
&nbsp;&nbsp;&nbsp; tagsize=180;<br />
&nbsp; //&nbsp; int old_w2=src2.getWidth(null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图宽<br />
&nbsp; //&nbsp; int old_h2=src2.getHeight(null);&nbsp;&nbsp; <br />
&nbsp;&nbsp; // int new_w=0;<br />
&nbsp;&nbsp; // int new_h=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图长<br />
&nbsp;&nbsp; // int tempsize;<br />
&nbsp; //&nbsp; float tempdouble;<br />
&nbsp;&nbsp;&nbsp; if(old_w&gt;old_h){<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_w/tagsize;<br />
&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_h/tagsize;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; new_w=Math.round(old_w/tempdouble);<br />
&nbsp;&nbsp;&nbsp; new_h=Math.round(old_h/tempdouble);//计算新图长宽<br />
&nbsp;&nbsp;&nbsp;&nbsp; tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);<br />
&nbsp;&nbsp;&nbsp; tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //绘制缩小后的图<br />
&nbsp;&nbsp;&nbsp; newimage=new FileOutputStream(newurl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //输出到文件流<br />
&nbsp;&nbsp;&nbsp; encoder = JPEGCodec.createJPEGEncoder(newimage);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; encoder.encode(tag);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //近JPEG编码</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; newurl=request.getRealPath("/")+url+myFileName+"_500_min."+ext;&nbsp; //新的缩略图保存地址<br />
&nbsp;&nbsp;&nbsp; //Image src = javax.imageio.ImageIO.read(file);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造Image对象<br />
&nbsp;&nbsp;&nbsp; tagsize=500;<br />
&nbsp; //&nbsp; int old_w2=src2.getWidth(null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图宽<br />
&nbsp; //&nbsp; int old_h2=src2.getHeight(null);&nbsp;&nbsp; <br />
&nbsp;&nbsp; // int new_w=0;<br />
&nbsp;&nbsp; // int new_h=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图长<br />
&nbsp;&nbsp; // int tempsize;<br />
&nbsp; //&nbsp; float tempdouble;<br />
&nbsp;&nbsp;&nbsp; if(old_w&gt;old_h){<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_w/tagsize;<br />
&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_h/tagsize;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; new_w=Math.round(old_w/tempdouble);<br />
&nbsp;&nbsp;&nbsp; new_h=Math.round(old_h/tempdouble);//计算新图长宽<br />
&nbsp;&nbsp;&nbsp;&nbsp; tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);<br />
&nbsp;&nbsp;&nbsp; tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //绘制缩小后的图<br />
&nbsp;&nbsp;&nbsp; newimage=new FileOutputStream(newurl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //输出到文件流<br />
&nbsp;&nbsp;&nbsp; encoder = JPEGCodec.createJPEGEncoder(newimage);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; encoder.encode(tag);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //近JPEG编码</p>
<p>&nbsp;newurl=request.getRealPath("/")+url+myFileName+"_800_min."+ext;&nbsp; //新的缩略图保存地址<br />
&nbsp;&nbsp;&nbsp; //Image src = javax.imageio.ImageIO.read(file);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //构造Image对象<br />
&nbsp;&nbsp;&nbsp; tagsize=800;<br />
&nbsp; //&nbsp; int old_w2=src2.getWidth(null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图宽<br />
&nbsp; //&nbsp; int old_h2=src2.getHeight(null);&nbsp;&nbsp; <br />
&nbsp;&nbsp; // int new_w=0;<br />
&nbsp;&nbsp; // int new_h=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到源图长<br />
&nbsp;&nbsp; // int tempsize;<br />
&nbsp; //&nbsp; float tempdouble;<br />
&nbsp;&nbsp;&nbsp; if(old_w&gt;old_h){<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_w/tagsize;<br />
&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp; tempdouble=old_h/tagsize;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; new_w=Math.round(old_w/tempdouble);<br />
&nbsp;&nbsp;&nbsp; new_h=Math.round(old_h/tempdouble);//计算新图长宽<br />
&nbsp;&nbsp;&nbsp;&nbsp; tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);<br />
&nbsp;&nbsp;&nbsp; tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //绘制缩小后的图<br />
&nbsp;&nbsp;&nbsp; newimage=new FileOutputStream(newurl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //输出到文件流<br />
&nbsp;&nbsp;&nbsp; encoder = JPEGCodec.createJPEGEncoder(newimage);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; encoder.encode(tag);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //近JPEG编码<br />
&nbsp;<br />
&nbsp;<br />
&nbsp; newimage.close();&nbsp; </p>
<p>&nbsp;&nbsp; }<br />
&nbsp;&nbsp; else{<br />
&nbsp;&nbsp;&nbsp; out.print("&lt;SCRIPT language=''javascript''&gt;");<br />
&nbsp;&nbsp;&nbsp; out.print("alert(''上传文件大小不能超过"+(file_size_max/1000)+"K'');");<br />
&nbsp;&nbsp;&nbsp; out.print("window.location=''upfile.jsp;''");<br />
&nbsp;&nbsp;&nbsp; out.print("&lt;/SCRIPT&gt;");<br />
&nbsp;&nbsp; }<br />
&nbsp; }<br />
//}catch (Exception e){</p>
<p>//e.toString();</p>
<p>//}<br />
%&gt; </p>
<br />
<br />
其中：<br />
com.yourcompany.util.DirList dirlist = new com.yourcompany.DirList();<br />
&nbsp; String[] dir =dirlist.list(request.getRealPath("/") + url );
<p><br />
for(int i=0;i&lt;dir.length;i++){<br />
&nbsp; //for (String i : dir){<br />
&nbsp; String[] split = dir[i].split("\\.");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(split[1].equals("jpg")){&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] split2=split[0].split("\\_");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;//split2[1]=01 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;if(Integer.parseInt(split2[1])&gt;0&amp;Integer.parseInt(split2[1])&gt;=temp2){<br />
&nbsp;&nbsp;&nbsp;temp2=Integer.parseInt(split2[1])+1;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;if(Integer.parseInt(split2[1])==0){<br />
&nbsp;&nbsp;&nbsp;temp2=1;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp; &nbsp;}<br />
}&nbsp;</p>
<p>if(temp2&lt;=10){<br />
myFileName = productname+"_0"+temp2;<br />
}else{<br />
myFileName = productname+"_"+temp2;<br />
}</p>
<br />
这部分调用一个方法，读取目录里的文件名，并重新按照01、02、03的顺序命名。<br />
获取目录里的文件名的类：<br />
<br />
<p>import java.io.File;<br />
import java.io.FilenameFilter;<br />
import java.util.Arrays;<br />
import java.util.Comparator;<br />
import java.util.regex.Pattern;<br />
public class DirList { <br />
&nbsp;public String[] list(String thepath) {&nbsp;&nbsp; <br />
&nbsp;&nbsp;File path = new File(thepath);&nbsp;&nbsp; <br />
&nbsp;&nbsp;String[] list;&nbsp;&nbsp; <br />
&nbsp;&nbsp;list = path.list(); &nbsp;<br />
&nbsp;&nbsp;Arrays.sort(list, new AlphabeticComparator()); <br />
&nbsp;&nbsp;return list;<br />
&nbsp;}<br />
}</p>
<p>class DirFilter implements FilenameFilter {&nbsp; <br />
&nbsp;private Pattern pattern;&nbsp; public DirFilter(String regex) { <br />
&nbsp;&nbsp;pattern = Pattern.compile(regex);&nbsp; }<br />
&nbsp;public boolean accept(File dir, String name) {&nbsp;&nbsp; <br />
&nbsp;&nbsp;// Strip path information, search for regex:&nbsp;&nbsp; <br />
&nbsp;&nbsp;return pattern.matcher(new File(name).getName()).matches(); <br />
&nbsp;&nbsp;}<br />
&nbsp;} </p>
<p>class AlphabeticComparator implements Comparator { <br />
&nbsp;public int compare(Object o1, Object o2) {&nbsp;&nbsp; <br />
&nbsp;&nbsp;String s1 = (String) o1;&nbsp;&nbsp;&nbsp; String s2 = (String) o2;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;return s1.toLowerCase().compareTo(s2.toLowerCase());&nbsp; <br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
 <img src ="http://www.blogjava.net/lzj520/aggbug/221659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lzj520/" target="_blank">lzj520</a> 2008-08-13 11:57 <a href="http://www.blogjava.net/lzj520/archive/2008/08/13/221659.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA 2D的一些应用</title><link>http://www.blogjava.net/lzj520/archive/2008/06/05/206126.html</link><dc:creator>lzj520</dc:creator><author>lzj520</author><pubDate>Thu, 05 Jun 2008 10:17:00 GMT</pubDate><guid>http://www.blogjava.net/lzj520/archive/2008/06/05/206126.html</guid><wfw:comment>http://www.blogjava.net/lzj520/comments/206126.html</wfw:comment><comments>http://www.blogjava.net/lzj520/archive/2008/06/05/206126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lzj520/comments/commentRss/206126.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lzj520/services/trackbacks/206126.html</trackback:ping><description><![CDATA[近日在找工作，在看其中的一间面试的公司的网站的时候，看到了一些JAVA图片处理的一些功能，这家公司主要是做图像方面的。比如照片合成，个性印章的制作。为了作一些准备，有必要自己动手试了一下实现这些功能。大概原理和在图片上加水印文字一样。<br />
<br />
合成图像：比如制作个性印章。首先需要准备2张图，1张白色的图片：bg.jpg，一张是印章的边框的图片template.gif，需要处理成透明。（制作这样风格的图片，可以使用photoshop的&#8220;置换&#8221;滤镜）：<br />
<br />
&nbsp;<img height="80" alt="" src="http://www.blogjava.net/images/blogjava_net/lzj520/template.gif" width="80" border="0" /><br />
template.gif<br />
<br />
程序处理部分是需要把输入的文字，和选择的template合成到bg.jpg里，在这里，我硬编码了输入文字到程序里，template使用已经准备好了的template.gif，当然，可以有更多的template提供给用户选择。bg.jpg是一张90&#215;90的jpg全白色文件。这些我都暂时放在C盘根目录下。程序处理如下：<br />
<br />
<p>import java.awt.*; <br />
import java.awt.image.BufferedImage;<br />
import java.io.FileInputStream;<br />
import java.io.FileOutputStream;<br />
import javax.imageio.ImageIO;<br />
import com.sun.image.codec.jpeg.*;</p>
<p>public class TestDrawFont {<br />
public static void main(String[] args) {<br />
try {<br />
BufferedImage image = ImageIO.read(new FileInputStream("c:\\bg.jpg"));<br />
Graphics2D g = image.createGraphics();<br />
BufferedImage image_template = ImageIO.read(new FileInputStream("c:\\template.gif"));<br />
g.setColor(Color.red); <br />
g.setFont(new Font("汉鼎简中黑",Font.ITALIC + Font.BOLD + Font.LAYOUT_LEFT_TO_RIGHT, 23));//写入签名<br />
g.drawString("帅哥",22, image.getHeight() - 50);<br />
g.drawString("印章",22, image.getHeight()-30);<br />
g.drawImage(image_template, 5,image.getHeight() - 85, image_template.getWidth(null),image_template.getHeight(null), null);<br />
g.dispose();<br />
FileOutputStream out = new FileOutputStream("c:\\all.jpg");<br />
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);<br />
encoder.encode(image);<br />
out.close();<br />
} catch(Exception e) {<br />
e.printStackTrace();<br />
}<br />
}<br />
}</p>
<br />
执行后的效果是：<br />
<br />
<img height="90" alt="" src="http://www.blogjava.net/images/blogjava_net/lzj520/all.jpg" width="90" border="0" /><br />
<br />
补充一下：<br />
<p>Java 2 平台可以区分两种字体：物理 字体和逻辑 字体。 </p>
<p>物理 字体是实际的字体库，包含字形数据和表，这些数据和表使用字体技术（如 TrueType 或 PostScript Type 1）将字符序列映射到字形序列。Java 2 平台的所有实现都支持 TrueType 字体；对其他字体技术的支持是与实现相关的。物理字体可以使用字体名称，如 Helvetica、Palatino、HonMincho 或任意数量的其他字体名称。通常，每种物理字体只支持有限的书写系统集合，例如，只支持拉丁文字符或只支持日文和基本拉丁文。可用的物理字体集合随配置的不同而不同。要求特定字体的应用程序可以使用 createFont 方法来捆绑这些字体，并对其进行实例化。</p>
<br />
<br />
<p>构造方法摘要<br />
Font(String name, int style, int size) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 根据指定名称、样式和点大小，创建一个新 Font<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p><br />
public abstract void drawString(String s,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float x,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>public abstract void drawImage(BufferedImage img,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedImageOp op,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int x,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int y)</p>
<br />
<img src ="http://www.blogjava.net/lzj520/aggbug/206126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lzj520/" target="_blank">lzj520</a> 2008-06-05 18:17 <a href="http://www.blogjava.net/lzj520/archive/2008/06/05/206126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>