Thumbnails 图片处理
Thumbnails 是由谷歌提供的图片处理包,目前版本0.4.8。
可以简洁的实现图片的缩放、压缩、旋转、水印、格式转换等操作。
示例代码:
package test;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Coordinate;
import net.coobird.thumbnailator.geometry.Positions;
import org.junit.Test;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
public class TestImageUtils {
@Test
public void testThumbnails() throws IOException {
String baseUrl = "imgurl";
String QRCodeUrl = "watermark url";
// 读入图片,输入可以是Url/InputStream/File/BufferedImage
BufferedImage qrCode = Thumbnails.of(new URL(QRCodeUrl)).size(220, 220).asBufferedImage();
Thumbnails.of(new URL(baseUrl))
.size(1080, 1372)
.watermark(new Coordinate(807, 1115), qrCode, 1.0f) //确定水印的起始位置和透明度
.watermark(Positions.BOTTOM_RIGHT, qrCode, 0.5f) //另一种确认水印位置的方式
.toFile("E:/thumbnails.jpg"); //可以输出文件或OutputStream
}
}
Thumbnails 不能添加文字,要添加文字的话需要自己另行处理。
示例代码:
package outfox.weixinactivity.weixin.utils; import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Coordinate;import org.junit.Test; import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.URL; public class TestImage {
@Test
public void testImageText() throws IOException {
// 载入图片、加水印
String baseUrl = "imgurl";
String QRCodeUrl = "watermark url";
ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedImage qrCode = Thumbnails.of(new URL(QRCodeUrl)).size(220, 220).asBufferedImage();
Thumbnails.of(new URL(baseUrl))
.size(1080, 1372)
.watermark(new Coordinate(807, 1115), qrCode, 1.0f)
.toOutputStream(out);
BufferedImage image = ImageIO.read(new ByteArrayInputStream(out.toByteArray())); // 填加文字
BufferedImage bi = new BufferedImage(1080, 1372, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
g.drawImage(image, 0, 0, null);
g.setFont(new Font("苹方", Font.PLAIN, 40));
g.setColor(Color.ORANGE);
g.drawString("hello!", 220, 100);
g.drawString("you", 220, 150); g.dispose();
ImageIO.write(bi, "jpg", new File("E:/testImage.jpg"));
}
}
Thumbnails 图片处理的更多相关文章
- 使用thumbnailator不按照比例,改变图片的大小
我们在平时的开发中,偶尔也会遇到图片处理的问题,比如图片的压缩,按比例改变图片的大小,不按比例改变图片的大小等等. 如果要自己去开发这样一套工具,我觉得大多数人都是做不到的,所以还是学会站在巨人的肩膀 ...
- Linux文件系统应用---系统数据备份和迁移(用户角度)
1 前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的 “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决. 之前的文章对Linux的文 ...
- Java图片处理 Thumbnails框架
一.设置图片的缩放比例或者图片的质量比 第一步:导入maven的jar包 <dependency> <groupId>net.coobird</groupId ...
- java图片压缩(Thumbnails)
package com.hzxc.groupactivity.server.util; import java.awt.image.BufferedImage; import java.io.*; i ...
- wordpress插件:multiple post thumbnails(可为文章添加多个特色图片)
我们经常会给wordpress的文章加上特色图片来实现日志缩略图的需求,但是很多时候一张图片并不能够完美而又全面的表达我们wordpress文章的内容,这时候您可能就会需要这样一个能让wordpres ...
- 使用Google Thumbnails 压缩图片
背景说明:最近项目中需要用到一些图片文件的上传 ,但是有些图片很大,比如轮播图,大有的有几兆,这样加载一个首页都要很久,显然这样对用户体验是非常不友好的,对服务器资源将是一种浪费. 为了解决这个问题, ...
- Java使用 Thumbnails 压缩图片
业务:用户上传一张图片到文件站,需要返回原图url和缩略图url 处理思路: 因为上传图片方法返回url是单个上传,第一步先上传原图并返回url 处理缩略图并上传:拿到MultipartFile压缩成 ...
- SpringMvc 使用Thumbnails压缩图片
```java @PostMapping(value = "/upLoadFile") @ApiOperation(value = "上传文件") public ...
- Atitit 动态按钮图片背景颜色与文字组合解决方案
Atitit 动态按钮图片背景颜色与文字组合解决方案 转换背景颜色,setFont("cywe_img", fontScale, 50, 5) 设置文字大小与坐标 文字分拆,使用字 ...
随机推荐
- Java 中的 HashSet,内部是如何工作的?
HashSet 的内部采用 HashMap 来实现.由于 Map 需要 key 和 value,所以 所有 key 的都有一个默认 value.类似于 HashMap,HashSet 不允许重复的 k ...
- leetcode_两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同 ...
- 位运算符 按位与 &——整数n的二进制数中1的个数
整数n的二进制数中1的个数 编写一个函数,输入是一个整数,返回其二进制表达式中数字位数为 '1' 的个数 代码如下: int func(int n)//char ch { int count = 0; ...
- 每天坚持一个CSS——社会人
每天一个CSS-社会人 实现效果 想法 之前看到一篇博客,使用python绘制出了小猪佩奇,所以自己想试一试,采用纯html + CSS绘制出低配版的小猪佩奇. 实现思路 使用上一篇,圆与边框实现.最 ...
- CSRF浅析
概念 CSRF,Cross Site Request Forgery,跨站请求伪造. 为什么跨站的请求需要伪造? 因为浏览器实现了同源策略,这里可以将站和源视为同一个概念. 同源策略 The same ...
- Canvas 核心技术
最近项目需求中要写较多H5小游戏,游戏本身体量不是很复杂,主要是承载较多业务逻辑,所以决定用canvas来完成游戏部分.之前只是知道H5中有canvas这个东西,也知道它大概是画图的,但具体怎么用,还 ...
- java string中replaceAll替换特殊符号
例如在mysql数据库中建表时表名不能使用特殊符号,'-','{}'等等,所以我们要筛选去掉 public static void main(String[] args) { String regEx ...
- 一个抽取百度定位的教程(下载百度地图Demo+配置+抽取)
效果展示 已经下载Demo的可以直接到第五步,已经配置好的并可以运行的可以直接到第七步. 1.在浏览器搜索 " 百度定位API ",点击下面这个链接 2.翻到最下面找到并点击 &q ...
- phpshe xml注入
*php商城系统 xml注入* **页面样式* *Xml原理参考:* https://www.cnblogs.com/20175211lyz/p/11413335.html *漏洞函数simplexm ...
- Spring Boot配置文件加载顺序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过spring.config.location改变配置文件的位置 二.外部配置加载顺序 1.使用命令行参数指定加 ...