在 Android 中生成 WebP 图像可以使用以下几种方法:
1. 使用 `BitmapFactory` 类:
```java
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out);
byte[] webpData = out.toByteArray();
```
2. 使用 `WebpEncoder` 类(Android 9.0 及以上版本):
```java
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
ByteArrayOutputStream out = new ByteArrayOutputStream();
WebpEncoder.encode(bitmap, 100, out);
byte[] webpData = out.toByteArray();
```
3. 使用第三方库 `libwebp`:
- 添加 `libwebp` 依赖:
```
dependencies {
implementation 'com.squareup.libwebp:webp-android:1.1.8'
}
```
- 使用 `WebpConverter` 类:
```java
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
byte[] webpData = WebpConverter.encode(bitmap, WebpConverter.EncodingMethod.LOSSLESS);
```
注意事项:
- `WebpEncoder` 类在 Android 9.0 及以上版本中可用,需要检查设备版本或使用兼容性较好的第三方库。
- 可以调整 `quality` 参数来控制 WebP 图像的质量,取值范围为 0-100。
- 压缩后的 WebP 数据可以保存到文件或上传到服务器。