import java.io.file;
import java.awt.image.bufferedimage;
import java.awt.image;
import java.awt.image.affinetransformop;
import javax.imageio.imageio;
import java.awt.geom.affinetransform;
public class uploadimg {
string fromdir; // fromdir 图片的原始目录
string todir; // todir 处理后的图片存放目录
string imgfile; // imgfile 原始图片
string sysimgfile; // sysimgfile 处理后的图片文件名前缀
uploadimg( string fromdirnow, string todirnow, string imgfilenow, string sysimgfilenow ){
fromdir = fromdirnow;
todir = todirnow;
imgfile = imgfilenow;
sysimgfile = sysimgfilenow;
}
public boolean createthumbnail() throws exception
{
// fileextnmae是图片的格式 gif jpg 或png
// string fileextnmae="";
double ratio = 0.0;
file f = new file(fromdir,imgfile);
if ( !f.isfile() )
throw new exception(f+" is not image file error in createthumbnail!");
//首先判断上传的图片是gif还是jpg imageio只能将gif转换为png
// if (isjpg(imgfile)){
// fileextnmae="jpg";
// }
//else{
// fileextnmae="png";
// }
file thf = new file( todir, sysimgfile + ".jpg" );
bufferedimage bi = imageio.read(f);
//假设图片宽 高 最大为120 120
image itemp = bi.getscaledinstance (120,120,bi.scale_smooth);
if ((bi.getheight()>120) || (bi.getwidth()>120)){
if (bi.getheight()>bi.getwidth())
ratio = 120.0/bi.getheight();
else
ratio = 120.0/bi.getwidth();
}
affinetransformop op = new affinetransformop(affinetransform.getscaleinstance(ratio, ratio), null);
itemp = op.filter(bi, null);
try {
imageio.write((bufferedimage)itemp, "jpg", thf);
}
catch (exception ex) {
throw new exception(" imageio.write error in creatthum.: "+ex.getmessage());
}
return (true);
}
public static void main(string[] args)
{
uploadimg ui;
boolean ss = false;
try{
ui = new uploadimg( "d:\\javalearn", "d:\\javalearn", "ps_high.jpg", "ps_low" );
ss = ui.createthumbnail();
if ( ss ) {
system.out.println( "success" );
}
else{
system.out.println( "error" );
}
}
catch(exception e){
system.out.print(e.tostring());
}
}
}
