快速业务通道

SpringSide开发实战(五):兵马未动,粮草先行 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
指定它进行剪裁以后再 缩放。为什么要这么设计,请大家看看如下的效果图,对于下面这两张美女图:

SpringSide开发实战(五):兵马未动,粮草先行 - 编程入门网

SpringSide开发实战(五):兵马未动,粮草先行 - 编程入门网

SpringSide开发实战(五):兵马未动,粮草先行(3)

时间:2011-05-07 blogjava 海边沫沫

如果我们只通过简单的缩放来生成缩略图,那么在网页上的布局效果为:

SpringSide开发实战(五):兵马未动,粮草先行 - 编程入门网

如果我们通过先剪切后缩放的效果来生成缩略图,那么在网页上布局的效果为:

SpringSide开发实战(五):兵马未动,粮草先行 - 编程入门网

SpringSide开发实战(五):兵马未动,粮草先行(4)

时间:2011-05-07 blogjava 海边沫沫

可以看到通过第二种方式生成的缩略图布局要漂亮一些,但是会损失图片的信息 。因此,两种方式各有优劣。所以在设计的时候就设计为能够让用户灵活配置。

对 于有些网友反映的gif动画经过缩放以后就不能动了,这个问题的主要原因是因为Java SDK 1.4和1.5版本的ImageIO类只能读gif格式的文件,而不能写gif格式的文件,因此,对于gif 格式的文件,生成的缩略图只能用png格式代替,在我的设计中,我准备让bmp格式的文件也 让png格式代替,因为png格式生成的文件更小,而且也不损失图片质量。至于Java SDK 1.4 和1.5版不支持写gif格式的文件,可以查看Java文档,下面是截图:

SpringSide开发实战(五):兵马未动,粮草先行 - 编程入门网

最新推 出的Java SDK 6是可以写gif格式的文件的,因此如果要解决这个问题,可以使用最新的JDK ,下面是文档截图:

SpringSide开发实战(五):兵马未动,粮草先行 - 编程入门网

SpringSide开发实战(五):兵马未动,粮草先行(5)

时间:2011-05-07 blogjava 海边沫沫

下面是 我写的生成缩略图和生成验证码的ImageUtil类的源代码:

package  

com.xkland.util; import  javax.imageio.ImageIO; import  

java.awt.image.BufferedImage; import  java.io.File; import  

java.awt.Image; import  java.awt.Graphics2D; import  

java.util.Random; import  java.awt.Font; import  

javax.servlet.http.HttpSession; public   class  ImageUtil   {     

private  String sourceDir; // 图片的存放路径       private  String 

destinationDir; // 缩略图的存放路径       private  String mode; // 生成缩略

图的模式,可选ScaleOnly或ClipAndScale       private  String width; // 缩略图

的宽度       private  String height; // 缩略图的高度       private  

String characterStorage; // 用来生成验证码的字符仓库     // 以下代码段是为了

使用Spring注入属性        public   void  setCharacterStorage(String 

characterStorage)   {         this .characterStorage  =  

characterStorage;    }       public   void  setDestinationDir(String 

destinationDir)   {         this .destinationDir  =  destinationDir;    

}       public   void  setHeight(String height)   {         this .height 

 =  height;    }       public   void  setMode(String mode)   {       

  this .mode  =  mode;    }       public   void  setSourceDir(String 

sourceDir)   {         this .sourceDir  =  sourceDir;    }       

public   void  setWidth(String width)   {         this .width  =  width; 

   }      // 生成缩略图的方法,默认缩略图的文件名和原图相同,存放路径不同 

      public   void  createMicroImage(String fileName)     throws  

Exception  {         // 判断sourceDir的格式是否为以"\"结尾,并生成

完整的路径          String sourceFileName;        String 

destinationFileName;         if (sourceDir.lastIndexOf( '' \\ '' )  !=  

(sourceDir.length() - 1 ))  {            sourceFileName  =  sourceDir  +   

" \\ "   +  fileName;        

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号