java图片处理
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream; import javax.imageio.ImageIO; import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions; public class Test {
public static void main(String[] args) throws IOException {
Test thumbnailatorTest = new Test();
// thumbnailatorTest.test1();
// thumbnailatorTest.test2();
// thumbnailatorTest.test3();
// thumbnailatorTest.test4();
// thumbnailatorTest.test5();
// thumbnailatorTest.test6();
thumbnailatorTest.test7();
// thumbnailatorTest.test8();
// thumbnailatorTest.test9();
} /**
* 指定大小进行缩放
*
* @throws IOException
*/
private void test1() throws IOException {
/*
* size(width,height) 若图片横比200小,高比300小,不变
* 若图片横比200小,高比300大,高缩小到300,图片比例不变 若图片横比200大,高比300小,横缩小到200,图片比例不变
* 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300
*/
Thumbnails.of("E:\\图片\\15.jpg").size(200, 300).toFile(
"E:\\图片\\image_200x300.jpg");
Thumbnails.of("E:\\图片\\15.jpg").size(2560, 2048).toFile(
"E:\\图片\\image_2560x2048.jpg");
} /**
* 按照比例进行缩放
*
* @throws IOException
*/
private void test2() throws IOException {
/**
* scale(比例)
*/
Thumbnails.of("E:\\图片\\15.jpg").scale(0.25f)
.toFile("E:\\图片\\image_25%.jpg");
Thumbnails.of("E:\\图片\\15.jpg").scale(1.10f).toFile(
"E:\\图片\\image_110%.jpg");
} /**
* 不按照比例,指定大小进行缩放
*
* @throws IOException
*/
private void test3() throws IOException {
/**
* keepAspectRatio(false) 默认是按照比例缩放的
*/
Thumbnails.of("E:\\图片\\15.jpg").size(120, 120).keepAspectRatio(false)
.toFile("E:\\图片\\image_120x120.jpg");
} /**
* 旋转
*
* @throws IOException
*/
private void test4() throws IOException {
/**
* rotate(角度),正数:顺时针 负数:逆时针
*/
Thumbnails.of("E:\\图片\\15.jpg").size(1280, 1024).rotate(90).toFile(
"E:\\图片\\image+90.jpg");
Thumbnails.of("E:\\图片\\15.jpg").size(1280, 1024).rotate(-90).toFile(
"E:\\图片\\iamge-90.jpg");
} /**
* 水印
*
* @throws IOException
*/
private void test5() throws IOException {
/**
* watermark(位置,水印图,透明度)
*/
Thumbnails.of("E:\\图片\\images/15.jpg").size(1280, 1024).watermark(
Positions.BOTTOM_RIGHT,
ImageIO.read(new File("E:\\图片\\watermark.png")), 0.5f)
.outputQuality(0.8f).toFile(
"E:\\图片\\image_watermark_bottom_right.jpg");
Thumbnails.of("E:\\图片\\15.jpg").size(1280, 1024).watermark(
Positions.CENTER,
ImageIO.read(new File("E:\\图片\\watermark.png")), 0.5f)
.outputQuality(0.8f).toFile("E:\\图片\\image_watermark_center.jpg");
} /**
* 裁剪
*
* @throws IOException
*/
private void test6() throws IOException {
/**
* 图片中心400*400的区域
*/
Thumbnails.of("E:\\图片\\15.jpg").sourceRegion(Positions.CENTER, 400,
400).size(200, 200).keepAspectRatio(false).toFile(
"E:\\图片\\image_region_center.jpg");
/**
* 图片右下400*400的区域
*/
Thumbnails.of("E:\\图片\\15.jpg").sourceRegion(Positions.BOTTOM_RIGHT,
400, 400).size(200, 200).keepAspectRatio(false).toFile(
"E:\\图片\\image_region_bootom_right.jpg");
/**
* 指定坐标
*/
Thumbnails.of("E:\\图片\\15.jpg").sourceRegion(600, 500, 400, 400).size(
200, 200).keepAspectRatio(false).toFile(
"E:\\图片\\image_region_coord.jpg");
} /**
* 转化图像格式
*
* @throws IOException
*/
private void test7() throws IOException {
/**
* outputFormat(图像格式)
*/
Thumbnails.of("E:\\图片\\15.jpg").size(1280, 1024).outputFormat("png")
.toFile("E:\\图片\\image_1280x1024.png");
Thumbnails.of("E:\\图片\\15.jpg").size(1280, 1024).outputFormat("gif")
.toFile("E:\\图片\\image_1280x1024.gif");
} /**
* 输出到OutputStream
*
* @throws IOException
*/
private void test8() throws IOException {
/**
* toOutputStream(流对象)
*/
OutputStream os = new FileOutputStream(
"E:\\图片\\image_1280x1024_OutputStream.png");
Thumbnails.of("E:\\图片\\15.jpg").size(1280, 1024).toOutputStream(os);
} /**
* 输出到BufferedImage
*
* @throws IOException
*/
private void test9() throws IOException {
/**
* asBufferedImage() 返回BufferedImage
*/
BufferedImage thumbnail = Thumbnails.of("E:\\图片\\15.jpg").size(1280,
1024).asBufferedImage();
ImageIO.write(thumbnail, "jpg", new File(
"E:\\图片\\image_1280x1024_BufferedImage.jpg"));
} }
需要jar包:thumbnailator-0.4.2-all.jar
java图片处理的更多相关文章
- Atitit.java图片图像处理attilax总结
Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...
- Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与
Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...
- Java 图片提取RGB数组 RGBOfCharMaps (整理)
package demo; /** * Java 图片提取RGB数组 RGBOfCharMaps (整理) * 声明: * 和ImageCombining配合使用的工具,这里是提取图片的R.G.B生成 ...
- Java 图片转换为字符图 CharMaps (整理)
/* * Java 图片转换成字符图 CharMaps (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * * @(#)CharMaps.java 2014/1/16 * 1.这个一 ...
- 基于Java图片数据库Neo4j 3.0.0发布 全新的内部架构
基于Java图片数据库Neo4j 3.0.0发布 全新的内部架构 Neo4j 3.0.0 正式发布,这是 Neo4j 3.0 系列的第一个版本.此版本对内部架构进行了全新的设计;提供给开发者更强大的生 ...
- java图片上传(mvc)
最近有开始学起了java,好久没写文章了,好久没来博客园了.最近看了看博客园上次写的图片上传有很多人看,今天在一些篇关于java图片上传的.后台接收用的是mvc.不墨迹了,直接上图. 先看目录结构.i ...
- simpleImageTool又纯java图片水印、缩放工具
simpleImageTool又一个简单.好用的图片格式转换.缩放水印叠加等功能的纯Java图片工具库. simpleImageTool的由来,近期需要用到图片处理,通过网上的图片流直接进行缩放水印叠 ...
- Java 图片处理解决方案:ImageMagick 快速入门
一.ImageMagick介绍 ImageMagick是一个免费的创建.编辑.合成图片的软件,可以实现图片切割.颜色替换.图片缩略图.图片水印等各种效果.ImageMagick是免费开源软件,支持大多 ...
- java图片处理开源框架
java图片处理开源框架 以前一直不明白,java开源框架什么意思,搜集资料得出以下结论 其实java框架可以理解为一个工具或者一个插件,将一个公用的.常用的技术封装起来,处理一些基础的.繁琐的问题. ...
- Java图片加文字水印
Java图片加文字水印 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.I ...
随机推荐
- linux系统灵活运用灯[android课程3]
1,文件如何生成: ----- ---- (二),把hello例子贴过来后,编译问题: 在编译Android 4.0驱动的时候,使用到了proc_dir_entry结构体中的owner成员,但是编译的 ...
- 【HDOJ】3686 Traffic Real Time Query System
这题做了几个小时,基本思路肯定是求两点路径中的割点数目,思路是tarjan缩点,然后以割点和连通块作为新节点见图.转化为lca求解.结合点——双连通分量与LCA. /* 3686 */ #includ ...
- 【HDOJ】4261 Estimation
挺不错的一道题,基本思路是dp.关键点是如何求区间内的Sigma|A_i-B_i|.线段树做TLE了,优先队列可以过. /* 4261 */ #include <iostream> #in ...
- tyvj1161聚会的名单(trie树)
背景 Background 明天就是candy的生日,candy又会邀请自己的一大堆好友来聚会了!哎!又要累坏飘飘乎居士了!! 描述 Description 明天就是candy的生日.晚上,c ...
- tcxtreelist 展示图片 图像
procedure TfrmstPostImageCollate.LoadCollateImage(AOrderID: integer);var mySql: string; node: TcxTre ...
- 【原】实验室签到PHP版本
表单 <html> <body> <h1>实验室自动签到测试</h1> <h2>输入学号和登录密码(建议自己改过密码后再来录入您的数据)&l ...
- java 实现死锁
package 线程安全的讨论; class DThread implements Runnable { private Object o1=null; private Object o2=null; ...
- 神经网络的学习 Neural Networks learing
1.一些基本符号 2.COST函数 ================Backpropagation Algorithm============= 1.要计算的东西 2.向前传递向量图,但为了计算上图的 ...
- MultiByteToWideChar和WideCharToMultiByte用法详解
今天写ini文件的时候发现的问题: TCHAR temp[]; //strcpy_s(temp, request.newVersion); MultiByteToWideChar(CP_ACP, , ...
- sql经典语句
1.表形式如下:Year Salary2000 10002001 20002002 30002003 4000想得到如下形式的查询结 ...