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,表示这是一个没有键盘 没有显示器的无头服务器,意称机房托管的服务器。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Java图片上传处理缩放功能,可以使用Java提供的ImageIO类和BufferedImage类。以下是一个简单的示例代码: ```java import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class ImageUtils { public static void resizeImage(File inputImage, File outputImage, int maxWidth, int maxHeight) throws Exception { BufferedImage input = ImageIO.read(inputImage); int width = input.getWidth(); int height = input.getHeight(); double ratio = (double) width / height; if (width > maxWidth || height > maxHeight) { if (width > height) { width = maxWidth; height = (int) (maxWidth / ratio); } else { height = maxHeight; width = (int) (maxHeight * ratio); } } BufferedImage output = new BufferedImage(width, height, input.getType()); Graphics2D g2d = output.createGraphics(); g2d.drawImage(input, 0, 0, width, height, null); g2d.dispose(); ImageIO.write(output, "jpg", outputImage); } } ``` 这个示例代码中,resizeImage()方法接收一个输入图片文件、一个输出图片文件、最大宽度和最大高度,然后对输入图片进行缩放处理,使其宽度和高度都不超过指定的最大值。缩放后的图片会保存到输出图片文件中。 使用时,可以像这样调用: ```java File inputFile = new File("input.jpg"); File outputFile = new File("output.jpg"); ImageUtils.resizeImage(inputFile, outputFile, 800, 600); ``` 这个示例代码只是一个简单的缩放示例,实际应用中还需要考虑更多的因素,例如图片格式、质量、裁剪等。但是使用Java提供的ImageIO和BufferedImage类,实现图片缩放功能还是比较容易的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值