org.sejda.imageio
webp-imageio
0.1.6
代码展示:
import com.luciad.imageio.webp.WebPImageReaderSpi;
import com.luciad.imageio.webp.WebPImageWriterSpi;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.imageio.spi.IIORegistry;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.stream.ImageOutputStream;
* webg图片转换为jpg
* @author 沙龙果
* @Filename JpegWebgClass
* @since 2024/1/4
public class JpegWebgClass {
public static void main(String[] args) {
// 注册WebP ImageIO插件
IIORegistry registry = IIORegistry.getDefaultInstance();
registry.registerServiceProvider(new WebPImageReaderSpi());
registry.registerServiceProvider(new WebPImageWriterSpi());
List<String> webpList = new ArrayList<>();
webpList.add("C:\\Users\\Administrator\\Desktop\\changku\\src\\main\\resources\\upload\\2.webp");
webpList.add("C:\\Users\\Administrator\\Desktop\\changku\\src\\main\\resources\\upload\\3.webp");
webpList.add("C:\\Users\\Administrator\\Desktop\\changku\\src\\main\\resources\\upload\\4.webp");
int i = 1;
for (String webp : webpList) {
try {
// 读取WebP格式图片
File input = new File(webp);
ImageInputStream inputStream = ImageIO.createImageInputStream(input);
ImageReader reader = ImageIO.getImageReadersByMIMEType("image/webp").next();
reader.setInput(inputStream);
BufferedImage image = reader.read(0);
// 将图片转换为JPG格式
String m = "C:\\Users\\Administrator\\Desktop\\changku\\src\\main\\resources\\jpeg\\";
String jpeg = "webp" + (i++) + ".jpeg";
File output = new File(m + jpeg);
ImageOutputStream outputStream = ImageIO.createImageOutputStream(output);
ImageWriter writer = ImageIO.getImageWritersByFormatName("jpeg").next();
writer.setOutput(outputStream);
writer.write(image);
// 关闭IO流
inputStream.close();
outputStream.close();
reader.dispose();
writer.dispose();
} catch (IOException e) {
e.printStackTrace();
将
web
p-imageio.jar 添加到应用程序的类路径
确保可以在
Java
本机库路径(
java
.library.path 系统属性)上访问 lib
web
p-jni.so 或
web
p-jni.dll
Web
P 读取器和写入器可以像任何其他 Image I/O 读取器和写入器一样使用。
构建应该与 Maven 或 CMake 一起使用,但 Maven 构建包含单元测试以确认生成的库工作。
Maven
Maven 构建使用构建本机代码。 当然,
Java
代码只使用 Maven。
运行“mvn全新安装”
build 会自动下载 lib
web
p 并编译成 JNI 库
安装 CMake 2.8 或更新版本。 CMake 可以从下载或使用您的系统包管理器安装。
下载并解压
java
web
p图片
转
换为png或
jpg
web
p
格式
图片说明
Web
P,是一种支持有损压缩和无损压缩的图片文件
格式
,派生自图像编码
格式
VP8。根据 Google 的测试,无损压缩后的
Web
P 比 PNG 文件少了 45% 的文件大小,即使这些 PNG 文件经过其他压缩工具压缩之后,
Web
P 还是可以减少 28% 的文件大小。
淘宝上的图片就是
web
p
格式
。
web
p
转
png
maven依赖
<dependency>
<groupId>org.sejda.imageio<
将
web
p-imageio.jar 添加到应用程序的类路径
确保 lib
web
p-imageio.so、lib
web
p-imageio.dylib 或
web
p-imageio.dll 可在
Java
本机库路径(
java
.library.path 系统属性)上访问
Web
P 读取器和写入器可以像任何其他 Image I/O 读取器和写入器一样使用。
编译本机库
安装 CMake 2.8 或更新版本。 CMake 可以从下载或使用您的系统包管理器安装。
在项目的根目录中创建一个名为“build”的目录
打开终端并导航到新创建的“build”目录
在“build”目录中运行“cmake ..”为您的系统生成构建脚本。
'cmake --build 。' 编译库
编译后的库可以在'
本文同步博客图文( ´▽`):https://www.mintimate.cn/2021/01/19/
Java
DealWithImage
同时,同步发布在腾讯云社区:https://cloud.tencent.com/developer/article/1779344
搭建了一个在线演示地址:
在PHP中,我们可以使用GD库来将
Web
P
格式
的图片
转
换成
JPG
格式
的图片。GD库是一个流行的图形库,可以在PHP中创建、操作和保存图像。
首先,我们需要检查GD库是否已启用。可以通过PHP的`extension_loaded()`函数来检查。如果返回`false`,则需要在PHP配置文件中启用GD库。
一旦确保GD库已启用,我们可以使用GD库的函数来进行
转
换。首先,我们需要使用`imagecreatefrom
web
p()`函数创建一个
Web
P
格式
的图像资源。此函数接受
Web
P图像的文件路径作为参数,并返回一个图像资源标识符。
接下来,我们可以使用`imagejpeg()`函数将图像资源保存为
JPG
格式
的文件。该函数需要两个参数:图像资源标识符和保存文件的路径。您可以指定保存文件的路径以及
JPG
文件的质量。
下面是一个示例代码来演示如何将
Web
P
格式
转
换为
JPG
格式
:
```php
// 检查GD库是否已启用
if (!extension_loaded('gd')) {
die('GD库未启用');
// 创建
Web
P图像资源
$
web
pPath = 'path_to_
web
p_image.
web
p';
$
web
pImage = imagecreatefrom
web
p($
web
pPath);
// 保存为
JPG
格式
的文件
$
jpg
Path = 'path_to_save_
jpg
.
jpg
';
imagejpeg($
web
pImage, $
jpg
Path, 80);
// 释放资源
imagedestroy($
web
pImage);
echo '
Web
P
格式
已成功
转
换为
JPG
格式
';
以上代码会将名为`path_to_
web
p_image.
web
p`的
Web
P图片
转
换成
JPG
格式
,并保存为名为`path_to_save_
jpg
.
jpg
`的文件。`imagejpeg()`函数的第三个参数80表示
JPG
文件的质量,可根据需求进行调整。
转
换完成后,您可以在指定的保存路径中找到
转
换后的
JPG
格式
图片。
请注意,使用GD库进行图像处理可能需要一定的运行内存和执行时间。确保您的PHP环境具备足够的内存和执行时间限制。