linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > JAVA >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·Ajax实现在textbox中模糊查询显
·Ajax实现分页查询
·java定时执行的三种方法
·读取数码照片中的Exif信息
·基于Spring+Hibernate+Eclip
·JAVA反编译工具jad的简单用法
·Java编程基础
·Java调用Oracle的过程和函数
·JSP获取客户端的浏览器和操作系
·java.lang包概述
·Java中利用通讯API编写短信软件
·利用Java实现网页浏览器
·Java文件操作大全
·JAVA技术:上传图片的缩放处理
·基于JSF和DAO模式的大型设备采
最新文章
·实例解析:Linux操作系统下Jav
·JAVA得到网卡物理地址(Windows
·Ajax实现在textbox中模糊查询显
·Ajax简单示例之改变下拉框动态
·AJAX如何与后台交互
·Ajax实现分页查询
·Ajax核心:XMLHTTP组件相关技术
·面向Java程序员的Ajax:构建动态
·JSP获取客户端的浏览器和操作系
·提高Java技能的几种简单有效的
·敏捷开发中需掌握移除重复代码
·Java中利用通讯API编写短信软件
·关于String和StringBuffer
·用Java得到硬盘空间
·如何优化JAVA程序设计和编码,
Google
 
JAVA技术:上传图片的缩放处理
[ 作者:  加入时间:2007-10-25 13:35:59  来自:51CTO ]

图片上传到服务器后,会根据情况将图片缩小成一个图标,我们可以利用java强大的图形处理功能,对上传的图片进行缩放处理。

下面的程序使用jdk1.4中最新的ImageIO对图片进行读写。使用AffineTransform对图片进行缩放。

import java.io.File;MrTLinux联盟
import java.awt.image.BufferedImage;MrTLinux联盟
import java.awt.Image;MrTLinux联盟
import java.awt.image.AffineTransformOp;MrTLinux联盟
import javax.imageio.ImageIO;MrTLinux联盟
import java.awt.geom.AffineTransform;

public class UploadImg{

/**MrTLinux联盟
* @param fromdir 图片的原始目录MrTLinux联盟
* @param todir 处理后的图片存放目录MrTLinux联盟
* @param imgfile 原始图片MrTLinux联盟
* @param sysimgfile 处理后的图片文件名前缀MrTLinux联盟
*MrTLinux联盟
*/ MrTLinux联盟
............................ MrTLinux联盟
public boolean CreateThumbnail() throws ExceptionMrTLinux联盟
{MrTLinux联盟
//ext是图片的格式 gif JPG 或pngMrTLinux联盟
String ext="";MrTLinux联盟
double Ratio=0.0;MrTLinux联盟
File F = new File(fromdir,imgfile);MrTLinux联盟
if (!F.isFile())MrTLinux联盟
throw new Exception(F+" is not image file error in CreateThumbnail!");

//首先判断上传的图片是gif还是JPG ImageIO只能将gif转换为pngMrTLinux联盟
if (isJpg(imgfile)){MrTLinux联盟
ext="jpg";MrTLinux联盟
}else{MrTLinux联盟
ext="png"; MrTLinux联盟
}MrTLinux联盟
File ThF = new File(todir,sysimgfile+"."+ext);

BufferedImage Bi = ImageIO.read(F);MrTLinux联盟
//假设图片宽 高 最大为120 120MrTLinux联盟
Image Itemp = Bi.getScaledInstance (120,120,Bi.SCALE_SMOOTH);

if ((Bi.getHeight()>120) || (Bi.getWidth()>120)){MrTLinux联盟
if (Bi.getHeight()>Bi.getWidth())MrTLinux联盟
Ratio = 120.0/Bi.getHeight();MrTLinux联盟
elseMrTLinux联盟
Ratio = 120.0/Bi.getWidth();MrTLinux联盟
}

AffineTransformOp op = new AffineTransformOp(AffineTransform.getScaleInstance

(Ratio, Ratio), null);MrTLinux联盟
Itemp = op.filter(Bi, null);

try {MrTLinux联盟
ImageIO.write((BufferedImage)Itemp, ext, ThF);MrTLinux联盟
}catch (Exception ex) {MrTLinux联盟
throw new Exception(" ImageIo.write error in CreatThum.: "+ex.getMessage()); MrTLinux联盟
}MrTLinux联盟
return (true);MrTLinux联盟
}MrTLinux联盟
}

该程序使用了Java 的AWT,在linux下运行可能报错,有两种解决方式:

(1) jdk1.4以前版本:需要安装 XFree86和XFree86-Xvfb ,加入 export DISPLAY=hostdomain:0.0。

(2) jdk 1.4以后版本,执行命令java 加入参数-Djava.awt.headless=true,表示这是一个没有键盘 没有显示器的无头服务器,意称机房托管的服务器。

MrTLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·通过JAVAScript实现页面自适应  (2007-10-30 14:27:43)
 ·如何优化JavaScript脚本的性能  (2007-10-30 14:25:25)
 ·几个有用的Javascript验证脚本  (2007-10-30 14:24:47)
 ·Javascript+ASP打造无刷新新闻列表  (2007-10-30 14:23:38)
 ·如何用javascript防止双击  (2007-10-30 14:19:44)
 ·JavaScript 访问 JSF 组件的方法  (2007-10-30 14:18:21)
 ·JavaScript实现仿Windows关机效果  (2007-10-30 14:14:42)
 ·JavaScript去除空格的三种方法  (2007-10-30 14:07:32)
 ·用Javascript评估用户输入密码的强度  (2007-10-30 14:06:19)
 ·JavaScript处理事件:单击事件onClick  (2007-10-30 14:01:38)