介绍
这篇文章主要介绍了利用java如何实现一个图片缩放效果,小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随小编来看看吧!
java是什么
java是一门面向对象编程语言,可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序。
package 交易; import java.awt.Color; import java.awt.Graphics; java . awt . graphics2d import ; import java.awt.Image; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO;/* * ,*图像处理类。 *大敌; ,* @author nagsh *大敌; ,*/public class  ImageDeal { String 才能;openUrl,//,原始图片打开路径 String 才能;saveUrl,//,新图保存路径 String 才能;saveName,//,新图名称 String 才能;后缀,//,新图类型,只支持gif、jpg, png public 才能;ImageDeal (String openUrl, String saveUrl,, String saveName, ,,,,,String 后缀),{ ,,,this.openUrl =, openUrl; ,,,this.saveName =, saveName; ,,,this.saveUrl =, saveUrl; ,,,this.suffix =,后缀; ,,} ,/* * ,,*,图片缩放。 ,,*, ,,*,@param 宽度 *,,,,,,,,需要的宽度 ,,*,@param 高度 *,,,,,,,,需要的高度 ,,*,@throws 例外 ,,*/public 才能;void 变焦(int 宽度,int 高度),throws Exception { ,,,double sx =, 0.0; ,,,double sy =, 0.0; ,,,File File =, new 文件(openUrl); ,,,if (! file.isFile ()), { ,,,,,throw new 例外(“,“ImageDeal>的在,,+,file +,“,不是一个图片文件!“); ,,,} ,,,BufferedImage bi =, ImageIO.read(文件),,//,读取该图片 ,,,//,计算x轴y轴缩放比例——如需等比例缩放,在调用之前确保参数宽度和高度是等比例变化的 ,,,sx =,(双),width /, bi.getWidth (); ,,,sy =,(双),height /, bi.getHeight (); ,,,AffineTransformOp op =, new AffineTransformOp ( ,,,,,,,AffineTransform.getScaleInstance (sx,沈阳),零); ,,,File sf =, new 文件(saveUrl, saveName +,“干净,+,后缀); ,,,Image zoomImage =, op.filter (bi, null); ,,,try { ,,,,,ImageIO.write ((BufferedImage), zoomImage,,后缀,,科幻小说),,//,保存图片 ,,,},catch (Exception e), { ,,,,,e.printStackTrace (); ,,,} ,,} ,/* * ,,*,旋转 ,,*, ,,*,@param 学位 *,,,,,,,,旋转角度 ,,*,@throws 例外 ,,*/public 才能;void 旋转(int 学位),throws Exception { ,,,int swidth =, 0;,//,旋转后的宽度 ,,,int sheight =, 0;,//,旋转后的高度 ,,,int x,,//,原点横坐标 ,,,int , y,,//,原点纵坐标 ,,,File File =, new 文件(openUrl); ,,,if (! file.isFile ()), { ,,,,,throw new 例外(“,“ImageDeal>的在,,+,file +,“,不是一个图片文件!“); ,,,} ,,,BufferedImage bi =, ImageIO.read(文件),,//,读取该图片 ,,,//,处理角度——确定旋转弧度 ,,,degree =, degree %, 360; ,,,if (degree & lt;, 0) ,,,,,degree =, 360, +,学位;//,将角度转换到0 - 360度之间 ,,,double theta =, Math.toRadians(程度);//,将角度转为弧度 ,,,//,确定旋转后的宽和高 ,,,if (==degree 180年,| |,degree ==, 0, | |, degree ==, 360), { ,,,,,swidth =, bi.getWidth (); ,,,,,sheight =, bi.getHeight (); null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null利用java如何实现一个图片缩放效果