ImagePadMix getBlendBitmap 在一些机器上 输出的BMP是花的

情景 截取视频的封面时添加上效果视频的截图

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void mixBmp() {
if (requestPermission()) {
return;
}
Bitmap mainJpg = BitmapFactory.decodeFile("/sdcard/main.jpg");
Bitmap effectJpg = BitmapFactory.decodeFile("/sdcard/effect.jpg");
ImagePadMix imagePadMix = new ImagePadMix(this);
if (imagePadMix.prepare(mainJpg.getWidth(), mainJpg.getHeight())) {
Bitmap resBmp = imagePadMix.getBlendBitmap(mainJpg, effectJpg);
imageView.setImageBitmap(resBmp);
try {
resBmp.compress(Bitmap.CompressFormat.JPEG, 70, new FileOutputStream("/sdcard/image-pad-mix.jpg"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

main.jpg
effect.jpg
mix-result

出问题的手机列表

  1. HMD Global Oy TA-1000
  2. 乐视 MAX

没有问题的手机列表

  1. Xiaomi Redmi Note 4
  2. Meizu M1 E
  3. OPPO A37m

真正的原因

1080 实际的图片高度是 1088
因为你发给我的图片, 高度不是32的倍数