java 图片压缩 缩放
废话不多说,直接上代码,静态方法可直接调用,中间用流来处理的
/**
* 图片缩放(未考虑多种图片格式和等比例缩放)
* @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 图片压缩 缩放的更多相关文章
- Java图片压缩
package com.test; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGIma ...
- java图片压缩(Thumbnails)
package com.hzxc.groupactivity.server.util; import java.awt.image.BufferedImage; import java.io.*; i ...
- java,图片压缩,略缩图
在网上找了两个图片的缩放类,在这里分享一下: package manager.util; import java.util.Calendar; import java.io.File; import ...
- java 图片压缩 剪切 水印 转换 黑白 缩放
专注java已6年,欢迎加入java核心技术QQ群:135138817,每周五晚有群主进行技术讲座. import java.awt.AlphaComposite; import java.awt.C ...
- Java 图片压缩
package com.wuyu.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...
- java 图片高保真缩放
public class NarrowImage { /** * @param im * 原始图像 * @param resizeTimes * ...
- 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)
安装过程(如图所示) .Exceptionin thread "main" java.lang.UnsatisfiedLinkError:C:\WINDOWS\system32\j ...
- Thumbnailator java图片压缩,加水印,批量生成缩略图
地址:http://code.google.com/p/thumbnailator/ 1.指定大小进行缩放 //size(宽度, 高度) /* * 若图片横比200小,高比300小,不变 * 若图片横 ...
- JAVA图片处理--缩放,切割,类型转换
import java.io.*; import java.awt.*; import java.awt.image.*; import java.awt.Graphics; import java. ...
随机推荐
- How to use GM MDI interface for programming
GM has had its newest programming/J2534 Pass Thru device on the market for some years now. A lot has ...
- 关于出现“对不起,您安装的不是正版应用...”的解决方法
由于Discuz X版本增加了对插件的版本检测,在安装时,可能会出现:"对不起,您安装的不是正版应用,安装程序无法继续执行"的提示,如下图: 唱唱反调小编在此给大家分享解决方法: ...
- kafka配置简要描述
配置文件在config/server.properties 下面的一些配置可能是你需要进行修改的. 这里为官方提供配置文件解释:https://kafka.apache.org/08/configur ...
- java通过接口扩展枚举
package com.hra.riskprice; import com.hra.riskprice.SysEnum.Factor_Type; import com.hra.riskprice.po ...
- Maximum Size Subarray Sum Equals k LT325
Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If t ...
- jmeter脚本录制的两种方式
完成一次完整的性能测试: 1.创建用户: 2.选择协议(HTTP) 3.使用工具去模拟协议操作(1.手工编写(抓包工具):2.工具自带录制) 4.运行工具进行压力测试
- default(T) 和 typeof 和 GetType()
一.default(T) 在泛型编成中如果不限制T类型参数是值类型或引用类型的话 你程序内部可能会出现错误,因为值类型不允许NULL.所以default用来获取一个类型的默认值,对于值类型得到new ...
- PHP大数据处理要注意的
1. 传递值使用引用传递 $a = get_large_array(); pass_to_function(&$a); 这样是传递变量的引用而不是拷贝 2.将大数据存在类的变量中 class ...
- python学习 day7 (3月8日)
read()读出来了之后文件里就从之后开始 光标不知道在哪 编码的进阶: 背景: ASCII:英文字母,数字,特殊符号,------------>二进制的对应关系 str: 一个字符 ---- ...
- [RequireComponent(typeof(....))]
RequireComponent的使用: 当你添加的一个用了RequireComponent组件的脚本,需要的组件将会自动被添加到game object(游戏物体).这个可以有效的避免组装错误.举个例 ...