上传图片的缩放处理

原创 2004年08月15日 10:56:00

上传图片的缩放处理

板桥里人 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下运行可能报错,有两种解决方式:

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

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

关于服务器端图形支持,有很多开源包:PJA VNC 或ACME Laboratories

IOS 图片上传处理 图片压缩 图片处理

提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePickerController类来和用户交互。 使用UIImagePickerCo...
  • yidu_blog
  • yidu_blog
  • 2016年03月09日 18:59
  • 3874

通过Canvas及File API缩放并上传图片完整示例

创建一个只管的用户界面,并允许你控制图片的大小。上传到服务器端的数据,并不需要处理enctype为 multi-part/form-data 的情况,仅仅一个简单的POST表单处理程序就可以了. 好了...
  • hj7jay
  • hj7jay
  • 2016年03月29日 10:37
  • 2038

js上传图片处理:压缩,旋转校正图片

随着科技发展的浪潮,手机上的摄像机的像素越来越高,成像的效果也越来越好。到现在一张手机拍摄的图片在 2M 左右是很正常的。在实际的应用场景中经常需要用户上传图片这样的人机交互方式。为了提高用户体验,上...
  • qq_25237107
  • qq_25237107
  • 2017年04月05日 18:56
  • 2397

JAVA上传图片自动缩放处理.

  • 2010年12月21日 18:13
  • 15KB
  • 下载

php+h5+canvas+jcrop 实现网页上传图片并对原图等比缩放后进行裁剪

  • 2017年08月17日 10:53
  • 51KB
  • 下载

最新上传图片预览及等比例缩放.net实例

  • 2017年05月25日 08:50
  • 90KB
  • 下载

通过Canvas及File API缩放并上传图片完整示例

  • 2014年11月10日 14:01
  • 5KB
  • 下载

编辑器上传图片至七牛,处理(裁剪,缩放)图片后上传,不落地

很多网站系统为了节省自身服务器空间,会将资源文件存储在第三方,这样很方面,只是存储空间需要收费的,如果用户上传过大图片会占用很多空间,然后显示也不需要调用原文件。 最近遇到一个关于这方面的问题,公司要...
  • xiaoshihoukeshuaiL
  • xiaoshihoukeshuaiL
  • 2017年06月15日 18:22
  • 963

NET仿淘宝商品图片上传图片等比例缩放

  • 2016年02月23日 15:03
  • 355KB
  • 下载

通过Canvas及File API缩放并上传图片

原文地址:Resize an Image Using Canvas, Drag and Drop and the File API  示例地址:Canvas Resize Demo  原文作者...
  • renfufei
  • renfufei
  • 2013年08月08日 15:02
  • 36019
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:上传图片的缩放处理
举报原因:
原因补充:

(最多只允许输入30个字)