GraphicsMagick实战演练
package
org.zoo.hippo.utils;
import
java.awt.image.BufferedImage;
import
java.io.ByteArrayInputStream;
import
java.io.ByteArrayOutputStream;
import
javax.imageio.ImageIO;
import
org.im4java.core.ConvertCmd;
import
org.im4java.core.IMOperation;
import
org.im4java.core.Stream2BufferedImage;
import
org.slf4j.Logger;
import
org.slf4j.LoggerFactory;
/**
*
* @author yankai913@gmail.com
* @date 2015-1-20
*/
public
class
ImageTool {
private
static
final
Logger logger = LoggerFactory.getLogger(ImageTool.
class
);
private
static
String METHOD_SAMPLE =
"sample"
;
private
static
String METHOD_RESIZE =
"resize"
;
private
static
String METHOD_THUMBNAIL =
"thumbnail"
;
private
static
String METHOD_SCALE =
"scale"
;
private
static
IMOperation createIMOperation(
double
quality, String suffix,
int
width,
int
height,
String method) {
IMOperation op =
new
IMOperation();
op.addImage();
if
(METHOD_SAMPLE.equals(method)) {
op.sample(width, height);
}
else
if
(METHOD_RESIZE.equals(method)) {
op.resize(width, height);
}
else
if
(METHOD_THUMBNAIL.equals(method)) {
op.thumbnail(width, height);
}
else
{
op.scale(width, height);
}
op.quality(quality);
op.addImage(
new
String[] { suffix +
":-"
});
return
op;
}
public
static
byte
[] sample(
byte
[] srcData,
double
quality, String suffix,
int
width,
int
height) {
return
scale0(srcData, quality, suffix, width, height, METHOD_SAMPLE);
}
public
static
byte
[] resize(
byte
[] srcData,
double
quality, String suffix,
int
width,
int
height) {
return
scale0(srcData, quality, suffix, width, height, METHOD_RESIZE);
}
public
static
byte
[] thumbnail(
byte
[] srcData,
double
quality, String suffix,
int
width,
int
height) {
return
scale0(srcData, quality, suffix, width, height, METHOD_THUMBNAIL);
}
public
static
byte
[] scale(
byte
[] srcData,
double
quality, String suffix,
int
width,
int
height) {
return
scale0(srcData, quality, suffix, width, height, METHOD_SCALE);
}
上一篇:
全面指南:魔兽世界GM必备技能清单
private
推荐阅读
-
SpringMVC 后台控制台验证--表单验证深度分析与实战优化
-
苏宁产品详情界面技术分析及实战代码示例
-
R 语言机器学习算法实战系列(三) lightGBM 算法(光梯度提升机)
-
爬虫学习实战
-
Docker 部署 Redis 监控系统实战:Redis Exporter 和 Prometheus 完整配置指南
-
计算机毕业设计 招生宣传管理系统的设计与实施 Java实战项目,含源代码+文档+视频讲解
-
[OpenCV实战]14 使用OpenCV实现单目标跟踪
-
玩转新姿势!Pygame实战:2048小游戏全新升级,让你停不下来!【附源码】
-
Pygame实战:挑战升级的2048小游戏—发现无尽新花样,欲罢不能【附源码】
-
Ceph实战(四)-文件系统的搭建与挂载