JAVA实现将上传的图片缩放处理是什么?
JAVA实现将上传的图片缩放处理是什么?
我们经常将一张很大的图片上传到服务器,但是我们有时候需要调用一个很小的图,那么就需要对该图进行缩略处理,今天我们就用java来实现这个效果吧 下面的程序使用jdk1。4中最新的ImageIO对图片进行读写。使用AffineTransform对图片进行缩放。
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{ /** * @param fromdir 图片的原始目录 * @param todir 处理后的图片存放目录 * @param imgfile 原始图片 * @param sysimgfile 处理后的图片文件名前缀 * */ …… public boolean CreateThumbnail() throws Exception { //ext是图片的格式 gif JPG 或png String ext=""; 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)){ ext="jpg"; }else{ ext="png"; } File ThF = new File(todir,sysimgfile+"。
"+ext); 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, ext, ThF); }catch (Exception ex) { throw new Exception(" ImageIo。
write error in CreatThum。: "+ex。getMessage()); } return (true); } } 该程序使用了Java 的AWT,在linux下运行可能报错,有两种解决方式: (1) jdk1。
4以前版本:需要安装 XFree86和XFree86-Xvfb ,加入 export DISPLAY=hostdomain:0。0 (2) jdk 1。4以后版本,在执行命令java 加入参数-Djava。awt。headless=true,表示这是一个没有键盘 没有显示器的无头服务器,意称机房托管的服务器。
。
答:import .*; import t.*; import age.*; import t.Graphics; import lor.Color...详情>>
问:同事ip:10.101.107.28 我的IP:10.101.104.23我们在...
答:你们公司是WINDOWS域环境吗,如果是的话,你在网上邻居里应该能看到对方的主机。让她把文件夹共享出来就可以。 如果不是WINDOWS域,那得看你们是不是在一个...详情>>
问:数据结构顺序表的建立,可定义顺序表 #define maxnum elemtyp...
答:打开VC ,然后点击新建,出来界面之后选择Win32 Console Application并输入工程的名称和选择项目的位置,然后出现“一个空工程”,在点击“...详情>>