废话不多说,直接上代码,静态方法可直接调用,中间用流来处理的

 /**
* 图片缩放(未考虑多种图片格式和等比例缩放)
* @param filePath 图片路径
* @param height 高度
* @param width 宽度
* @param picType 图片格式
* @param bb 比例不对时是否需要补白
*/
@Deprecated
public static byte[] resize(byte[] imageBuffer, int height, int width, String picType, boolean bb) {
byte[] targetBuffer = null;
try {
BufferedImage fromImage = ImageIO.read(new ByteArrayInputStream(imageBuffer));
BufferedImage scaleImage = zoomImage(fromImage, width, height);
targetBuffer = writeHighQuality(scaleImage);
} catch (IOException e) {
logger.error("ImageUtils Resize Exception." , e);
}
return targetBuffer;
} /**
* @param im
* 原始图像
* @param resizeTimes
* 倍数,比如0.5就是缩小一半,0.98等等double类型
* @return 返回处理后的图像
*/
public static BufferedImage zoomImage(BufferedImage im, int toWidth, int toHeight) {
/* 原始图像的宽度和高度 */
int width = im.getWidth();
int height = im.getHeight(); /* 调整后的图片的宽度和高度 */
// int toWidth = (int) (Float.parseFloat(String.valueOf(width)) * resizeTimes);
// int toHeight = (int) (Float.parseFloat(String.valueOf(height)) * resizeTimes); /* 新生成结果图片 */
BufferedImage result = new BufferedImage(toWidth, toHeight, BufferedImage.TYPE_INT_RGB); result.getGraphics().drawImage(im.getScaledInstance(toWidth, toHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null);
return result;
} public static byte[] writeHighQuality(BufferedImage im) {
try {
ByteArrayOutputStream imageStream = new ByteArrayOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(imageStream);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(im);
/* 压缩质量 */
jep.setQuality(1f, true);
encoder.encode(im, jep);
/* 近JPEG编码 */
imageStream.close();
return imageStream.toByteArray();
} catch (Exception e) {
e.printStackTrace();
return null;
} }

java 图片压缩 缩放的更多相关文章

  1. Java图片压缩

    package com.test; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGIma ...

  2. java图片压缩(Thumbnails)

    package com.hzxc.groupactivity.server.util; import java.awt.image.BufferedImage; import java.io.*; i ...

  3. java,图片压缩,略缩图

    在网上找了两个图片的缩放类,在这里分享一下: package manager.util; import java.util.Calendar; import java.io.File; import ...

  4. java 图片压缩 剪切 水印 转换 黑白 缩放

    专注java已6年,欢迎加入java核心技术QQ群:135138817,每周五晚有群主进行技术讲座. import java.awt.AlphaComposite; import java.awt.C ...

  5. Java 图片压缩

    package com.wuyu.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...

  6. java 图片高保真缩放

    public class NarrowImage { /**     * @param im     *            原始图像     * @param resizeTimes     *  ...

  7. 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)

    安装过程(如图所示) .Exceptionin thread "main" java.lang.UnsatisfiedLinkError:C:\WINDOWS\system32\j ...

  8. Thumbnailator java图片压缩,加水印,批量生成缩略图

    地址:http://code.google.com/p/thumbnailator/ 1.指定大小进行缩放 //size(宽度, 高度) /* * 若图片横比200小,高比300小,不变 * 若图片横 ...

  9. JAVA图片处理--缩放,切割,类型转换

    import java.io.*; import java.awt.*; import java.awt.image.*; import java.awt.Graphics; import java. ...

随机推荐

  1. spring boot (三): 热部署

    介绍了Spring boot实现热部署的两种方式,这两种方法分别是使用 Spring Loaded和使用spring-boot-devtools进行热部署. 热部署是什么 大家都知道在项目开发过程中, ...

  2. Bowtie2的安装与使用

    Bowtie2的安装与使用  2017-06-15 18:58:52     342     0     0 Bowtie2用来快速比对短reads(50-100bp)与参考基因组,与常规的比对软件不 ...

  3. mysql使用存储过程,自动生成新的表单

    use mydb; delimiter // CREATE procedure create_table(In imax int) BEGIN DECLARE `@i` int(11);      D ...

  4. Java 使用jdk自带的wsimport命令生成webservice客户端代码

    wsimport -s E:\workspace\givemewords\src -p com.test.service -keep http://localhost:8085/Service/Fun ...

  5. 没加载redis类,却可以实例化redis

    原因:phpinfo里面已有redis扩展

  6. Common tasks that you can perform with the Groovy Script test step

    https://support.smartbear.com/readyapi/docs/soapui/steps/groovy.html Get test case object To obtain ...

  7. 连接db2数据库出现No buffer space available (maximum connections reached?)

    Caused by: javax.naming.NamingException: [jcc][t4][2043][11550][3.57.82] 异常 java.net.SocketException ...

  8. 使用 IntelliTrace 调试应用程序

    IntelliTrace 如何能够大幅改善您的日常开发活动,并提升您快速轻松诊断问题的能力,而不必重新启动应用程序和使用传统的“中断-单步执行-检查”技术进行调试.介绍了组织如何能够通过在测试过程中收 ...

  9. SpringMVC 学习 九 SSM环境搭建 (二) Spring配置文件的编写

    spring配置文件中需要干的事情 (一)开启  Service与pojo包的注解扫描 注意:spring 扫描与表对应的实体类,以及service层的类,不能用来扫描Controller层的类,因为 ...

  10. spring学习 十四 注解AOP 通知传递参数

    我们在对切点进行增强时,不建议对切点进行任何修改,因此不加以使用@PointCut注解打在切点上,尽量只在Advice上打注解(Before,After等),如果要在通知中接受切点的参数,可以使用Jo ...