CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

80分,我在设计一个产品展示的网站,如何把别人上传的大图片缩小成一定比例的图片,有实用类的提供吗?

楼主chendd2001(饿狼传说)2003-06-01 10:35:06 在 Java / J2SE / 基础类 提问

80分,我在设计一个产品展示的网站,如何把别人上传的大图片缩小成一定比例的图片,有实用类的提供吗?  
        最好讲解一下用法,或哪里有例子 问题点数:0、回复次数:12Top

1 楼yoyoxo(Above the Clouds)回复于 2003-06-01 11:06:08 得分 0

这是我以前用过的,实现简单的缩放。  
  /**  
        *   图象缩放  
        *   @param   image   原始图象  
        *   @param   width   缩放后的宽度  
        *   @param   height   缩放后的高度  
        *   @return  
        */  
      public   static   Image   createScaleImage(Image   image,int   width,int   height){  
          ImageFilter   replicate   =   new   ReplicateScaleFilter(width,   height);  
          ImageProducer   prod   =   new   FilteredImageSource(image.getSource(),replicate);  
          return   Toolkit.getDefaultToolkit().createImage(prod);  
      }  
   
      /**  
        *   缩放图象  
        *   @param   image   原始图象  
        *   @param   proportion   缩放比例  
        *   @return  
        */  
      public   static   Image   createScaleImage(Image   image,float   proportion){  
          int   w=(int)(image.getWidth(null)*proportion);  
          int   h=(int)(image.getHeight(null)*proportion);  
          return   createScaleImage(image,w,h);  
      }  
   
  如果要考虑效率和功能,可能要用JAI了.....Top

2 楼chendd2001(饿狼传说)回复于 2003-06-01 11:30:58 得分 0

我看了一下,image的构造函数怎么是空的?那如何把iamge根据体的图片文件关联起来呢,  
  比如把文件读进内存以jpg的方式,总部会凭空就出来张图片资源Top

3 楼sutao0604(benny lee)回复于 2003-06-01 12:16:45 得分 0

靠,用下软件就行了,在华军有Top

4 楼accp(教育改变生活)回复于 2003-06-01 13:09:51 得分 0

我想你在显示的时候用<img   src="路径",width="..",height="...">指定大小就会自动缩放了,不是更方便。Top

5 楼baliok(奔奔)回复于 2003-06-01 14:41:35 得分 0

上传图片的缩放处理  
  板桥里人   jdon.com  
   
  图片上传到服务器后,会根据情况将图片缩小成一个图标,我们可以利用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系统下,程序需要X11   windows的支持.需要安装   XFree86  
  或XFree86-Xvfb   ,加入   export   DISPLAY=hostdomain:0.0    
   
  为这个问题,我也头疼半天,查询网上类似我这样抱怨很多,既然Java是一次编写,到处运行,好象有点名不副实.  
   
  当然也可以使用PJA   VNC   或ACME   Laboratories   但由于该程序使用到jdk1.4最新的类,估计其他替代产品没有出来,只好作罢.  
  Top

6 楼chendd2001(饿狼传说)回复于 2003-06-01 15:04:09 得分 0

我又不需要显示,我只需要转换,也需要装x11?不用吧,只用库而已Top

7 楼chendd2001(饿狼传说)回复于 2003-06-01 15:41:15 得分 0

喽楼上,我式了,没装x11出  
  java.lang.InternalError:   Can't   connect   to   X11   window   server   using   ':0.0'   as   the   value   of   the   DISPLAY   variableTop

8 楼chendd2001(饿狼传说)回复于 2003-06-01 15:41:54 得分 0

难道用到awt多会出现如此情况?Top

9 楼lynx1111(任我行:一个PLMM看着就兴奋的男人)回复于 2003-06-01 16:06:51 得分 0

up!Top

10 楼brandyChen(程序百不晓生)回复于 2003-06-01 16:20:30 得分 0

可以用jimi这个包:  
  http://java.sun.com/products/jimi/Top

11 楼chendd2001(饿狼传说)回复于 2003-06-01 16:35:59 得分 0

楼上的怎么用啊,做什么用的?Top

12 楼baliok(奔奔)回复于 2003-06-05 15:42:04 得分 0

必须要装x11Top

相关问题

  • 等比例缩小图片?
  • 如果 将word页面 整体缩小,就是类似excel表格那样,缩小为原来的80%或者多少比例的。
  • **我想让图像按比例缩小放大,如5:1,1:2之类的,怎样才能使图像总处在panel的中间?
  • 请教如何让图片按比例缩小
  • 如何把图片按原比例缩小或放大显示?
  • 如何将一个图片按比例缩小保存到服务器?
  • 有谁做过把一张图片大小成比例缩小(相应图形的存储大小也要缩小)的Java程序吗?
  • 捕捉到了屏幕的Bmp图片,如何将其按合适的比例缩小???
  • 请教怎样让图片适应PictureBox的大小,就让图片成比例缩小??
  • 请问怎么把图片按比例缩小显示在一个固定大小的表格内?

关键词

  • 图片
  • createscaleimage
  • 缩放
  • imageio
  • proportion
  • imgfile
  • 图象
  • image
  • 比例
  • 原始

得分解答快速导航

  • 帖主:chendd2001

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo