java使用tinypng 压缩图片
TinyPNG 是一个在线服务,用于压缩 PNG 图片文件。它能够有效地减小 PNG 图片的文件大小,同时尽量保持图片的质量。这对于需要在网站上上传图片或希望通过电子邮件发送图片的用户来说是非常有用的,因为它可以帮助节省带宽和存储空间。
java程序安装方法:
- 安装maven依赖
<dependency>
<groupId>com.tinify</groupId>
<artifactId>tinify</artifactId>
<version>RELEASE</version>
</dependency>
获取官方apiKey
- 在官网免费获取
- 地址:https://tinypng.com/developers
验证key
import com.tinify.*;
public class Example {
public static void main(String[] args) {
Tinify.setKey("YOUR_API_KEY");
}
}
- 可以指示 API 客户端通过 HTTP 代理发出所有请求。设置代理服务器的 URL,其中可以选择包含凭据。
Tinify.setProxy("http://user:pass@192.168.0.1:8080");
压缩图片
- 您可以选择本地文件作为源并将其写入另一个文件
Source source = Tinify.fromFile("unoptimized.webp");
source.toFile("optimized.webp");
- 还可以从缓冲区(带有二进制的字符串)上传图像并获取压缩的图像数据。
byte[] sourceData = Files.readAllBytes(Paths.get("unoptimized.jpg"));
byte[] resultData = Tinify.fromBuffer(sourceData).toBuffer();
- 您可以提供图像的 URL,而不必上传它
Source source = Tinify.fromUrl("https://tinypng.com/images/panda-happy.png");
source.toFile("optimized.png");
调整图片大小
- 用 API 创建上传图像的调整大小版本。通过让 API 处理大小调整,您可以避免自己编写此类代码,并且只需上传图像一次。调整大小的图像将被最佳压缩,具有漂亮、清晰的外观。
您还可以利用智能裁剪来创建缩略图,重点关注图像中视觉上最重要的区域。
调整大小算作一种额外的压缩。例如,如果您上传单个图像并检索优化版本加上 2 个调整大小的版本,则总共将算作 3 次压缩。
要调整图像大小,请调用resize图像源上的方法:
Source source = Tinify.fromFile("large.jpg");
Options options = new Options()
.with("method", "fit")
.with("width", 150)
.with("height", 100);
Source resized = source.resize(options);
resized.toFile("thumbnail.jpg")
图片格式转换
- 您可以使用 API 将图像转换为所需的图像类型。Tinify 目前支持 WebP、JPEG 和 PNG 之间的转换。当您在转换请求中提供多种图像类型时,系统将返回最小的版本。图像转换将被视为一种附加压缩。
Source source = Tinify.fromFile("panda-sticker.jpg");
Result converted = source.convert(new Options().with("type",new String[]{"image/png","image/webp"} )).result();
String extension = converted.extension();
converted.toFile("panda-sticker." + extension);
官网地址:
- https://tinypng.com/
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章链接: