[我尝试根据mozjpeg压缩效果很好的文档在node.js中实现图像压缩。
const input = fs.readFileSync("in.ppm");
const out = mozjpeg.encode(input, { quality: 85 });
我需要在客户端进行压缩,因此我尝试对react-native进行相同的操作,因为react-native不包含诸如fs之类的核心节点模块,因此我需要使用第三方库[ C0]用于读取文件。
[当我尝试在react-native中执行react-native-fs时会抛出mozjpeg.encode(input, { quality: 85 });
服务器端实现
Unrecognized input file format --- perhaps you need -targa
客户端实现
const mozjpeg = require("mozjpeg-js");
const fs = require("fs");
const input = fs.readFileSync(filePath);
const out = mozjpeg.encode(input, { quality: 85 });
console.error(out.stderr);
fs.writeFileSync("out.jpg", out.data);
这是我尝试过的事情清单
fs.readFile(image.path).then(data => {
const out = mozjpeg.encode(data, { quality: 85 });
console.log(out);
}
作为前缀,因此我也尝试将其删除。您可以在file://
文档中找到输入参数为:
类型化的数组或数据缓冲区
mozjpeg-js在客户端(fs.readFile
)中的返回类型为react-native-fs
,并返回内容。 (Promise<string>
)
但是在服务器端(Doc)中,fs
返回缓冲区对象。 (fs.readFileSync
)
因此您可以使用此功能将字符串更改为类型数组:
Doc