是否有人能够提供使用libwebp NDK库将图像编码为webp的示例?
我正在尝试使用以下代码将从相机捕获的图像编码为RGB_565:
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
int w = camera.getParameters().getPreviewSize().width;
int h = camera.getParameters().getPreviewSize().height;
try {
int stride = (w + 1) & ~1;
byte[] out = libwebp.WebPEncodeRGB(data, w, h, stride, 80f);
} catch (Exception e) {
e.printStackTrace();
}
}
我已经尝试了几个步幅值,范围从w,w + 1,w * 2,w * 3和w * 4 ......后者导致致命异常。
上面的代码生成了一张黑白图像,它可以将图片全部复制几次......
答案 0 :(得分:0)
我无法判断WebP是否支持RGB_565流的编码,我的猜测是否定的。
作为替代方案,您可以将其转换为RGB_888,例如在此处给出的答案中: How does one convert 16-bit RGB565 to 24-bit RGB888?
然后正确的步幅方法只是width*bytesPerPixel
,或者在RGB_888的情况下,它将是width * 3
。编码RGBA_8888时,它将是width * 4
。