GlideWebpDecoder icon indicating copy to clipboard operation
GlideWebpDecoder copied to clipboard

加载一个大图,缩小之后会出现失真的情况

Open w4901 opened this issue 3 years ago • 7 comments

加载一个大图,缩小之后会出现失真的情况 如果需要,我可以提供一个webp

w4901 avatar Jun 23 '21 09:06 w4901

提供下sample代码和webp图片,失真的截图。缩小是什么意思

zjupure avatar Jun 24 '21 14:06 zjupure

Glide.with(this).load(R.drawable.head2).into(iv2);
布局代码。 <ImageView android:layout_width="50dp" android:layout_height="50dp" android:id="@+id/image2" android:background="#f00" android:layout_gravity="center" />

w4901 avatar Jun 25 '21 01:06 w4901

head.webp.zip device-2021-06-25-092733.mp4.zip资源,和图片加载的录屏,加载之后,webp上会出现黑色的横线 缩小就是image的大小比webp大小要小一些,同一个资源,放大就不会有问题 @zjupure

w4901 avatar Jun 25 '21 01:06 w4901

大致看了下,应该是libwebp降采样解码的bug,需要给google反馈下

zjupure avatar Jul 10 '21 08:07 zjupure

我这边试了一下,renderFrame的时候,先获取原尺寸图,在通过BitmapFactory降低采样率,就不会出这个问题,但是cpu占用相应会高。 image @zjupure

w4901 avatar Jul 10 '21 08:07 w4901

我这边试了一下,renderFrame的时候,先获取原尺寸图,在通过BitmapFactory降低采样率,就不会出这个问题,但是cpu占用相应会高。 image @zjupure

这样是利用Android Bitmap解码png的能力,不推荐这么做,2次解码了,cpu和性能都有影响;解码原图后,直接Bitmap scale下更快,只是内存占用会多点,缓存有上限,没有极端webp图应该还好。影响你们APP功能使用的话,可以这样改workaround下。 我给google提issue了:https://bugs.chromium.org/p/webp/issues/detail?id=531

zjupure avatar Jul 10 '21 08:07 zjupure

scale 好像也会出现不一样的问题,之前试过了,但是具体效果记不清了。

w4901 avatar Jul 10 '21 09:07 w4901