Ehviewer-Overhauled / Ehviewer

EhViewer overhauled with Material Design 3, Jetpack Compose and more
GNU General Public License v3.0
5.2k stars 234 forks source link

加载高分辨率图片时闪退/无法加载 #460

Closed xb2016 closed 1 year ago

xb2016 commented 1 year ago

复现步骤 / Step to reproduce

  1. 打开 设置-下载-下载原图
  2. 阅读大于 5000px 高分辨率画廊,例如 https://e-hentai.org/g/2351868/6ad714f7c6/

预期行为 / Expected behaviour

正常预览

实际行为 / Actual Behaviour

闪退,或者图片下载完成后一直转圈

备注 / Addition details

老问题了,不知道有没有办法处理

EhViewer 版本号 / EhViewer version code

1.8.3.2

EhViewer CI 版本 / EhViewer CI Version

https://github.com/Ehviewer-Overhauled/Ehviewer/actions/runs/3552354455

Android 系统版本 / Android version

MIUI 13

设备型号 / Device model

K40P

SoC 型号 / Soc model

888

应用日志 / App logs

NA

自查步骤 / Verify steps

asuka-mio commented 1 year ago

我看看

asuka-mio commented 1 year ago

android.graphics.ImageDecoder$DecodeException: Failed to create image decoder with message 'unimplemented'Input contained an error. at android.graphics.ImageDecoder.nCreate(Native Method) at android.graphics.ImageDecoder.-$$Nest$smnCreate(Unknown Source:0) at android.graphics.ImageDecoder$ByteBufferSource.createImageDecoder(ImageDecoder.java:242) at android.graphics.ImageDecoder.decodeDrawableImpl(ImageDecoder.java:1766) at android.graphics.ImageDecoder.decodeDrawable(ImageDecoder.java:1759) at com.hippo.image.Image.(Image.kt:47) at com.hippo.image.Image.(Image.kt:36) at com.hippo.image.Image$Companion.decode(Image.kt:158) at com.hippo.image.Image.decode(Unknown Source:2) at com.hippo.ehviewer.spider.SpiderQueen$SpiderDecoder.run(SpiderQueen.java:1681) at java.lang.Thread.run(Thread.java:1012) at com.hippo.yorozuya.thread.PriorityThread.run(PriorityThread.java:38)

https://cs.android.com/android/platform/superproject/+/master:frameworks/base/libs/hwui/jni/ImageDecoder.cpp;drc=01d71cdcd32c6466773651e88d014ca071366a76;bpv=1;bpt=1;l=124?q=ImageDecoder_nCreate

xb2016 commented 1 year ago

好!看不懂😶

asuka-mio commented 1 year ago

不过你那图像解码栈和我的不一样 你那个是hippo自己搓的瘪轮子

asuka-mio commented 1 year ago

好!看不懂no_mouth

我这边skia

asuka-mio commented 1 year ago

我直接下载下来用archive组件打开也是炸了 图像解码器毛病跑不了了

xb2016 commented 1 year ago

是解码的问题 jpg png 都这样

asuka-mio commented 1 year ago

是解码的问题 jpg png 都这样

草 我打断点一crash我as连着一起卡死了

tehcneko commented 1 year ago

呃,之前的会炸是爆内存了,现在的不清楚

tehcneko commented 1 year ago

https://github.com/davemorrissey/subsampling-scale-image-view

tehcneko commented 1 year ago

glgallery 该进垃圾堆了

tehcneko commented 1 year ago

@asuka-mio 需要注意屏幕分辨率是会变的,不同 activity 所在屏幕分辨率也可能不一样

asuka-mio commented 1 year ago

@asuka-mio 需要注意屏幕分辨率是会变的,不同 activity 所在屏幕分辨率也可能不一样

我这应该直接拿的设备配置分辨率

asuka-mio commented 1 year ago

https://github.com/davemorrissey/subsampling-scale-image-view

这个我看见过 说实话不是很想用 我再看看

tehcneko commented 1 year ago

@asuka-mio 需要注意屏幕分辨率是会变的,不同 activity 所在屏幕分辨率也可能不一样

我这应该直接拿的设备配置分辨率

你好,我设备两个屏

tehcneko commented 1 year ago

https://github.com/duzhaokun123/EhViewer 这个是扬了 glgalley 的一个 fork

tehcneko commented 1 year ago

不过不如去抄 tachiyoumi 的阅读器(

duzhaokun123 commented 1 year ago

https://github.com/duzhaokun123/EhViewer 这个是扬了 glgalley 的一个 fork

PhotoView 好像不好用 不要学我

而且应该也没有解决大图片的问题

asuka-mio commented 1 year ago

是解码的问题 jpg png 都这样

你那边缓解方案就扩容下lrucache吧,不知道hippo的瘪轮子支不支持downsample,不过自己实现一个也不难

tehcneko commented 1 year ago

是解码的问题 jpg png 都这样

你那边缓解方案就扩容下lrucache吧,不知道hippo的瘪轮子支不支持downsample,不过自己实现一个也不难

那边不能降采样,图片只能整个解码塞内存

Sakura-Luna commented 1 year ago

此问题在大屏设备复现,浏览大图时黑屏/花屏,可以考虑提高分辨率限制

xb2016 commented 1 year ago

此问题在大屏设备复现,浏览大图时黑屏/花屏,可以考虑提高分辨率限制

@asuka-mio 整个判断?分辨率高于多少就不要取两倍了

asuka-mio commented 1 year ago

此问题在大屏设备复现,浏览大图时黑屏/花屏,可以考虑提高分辨率限制

@asuka-mio 整个判断?分辨率高于多少就不要取两倍了

两倍是因为咱们画廊看图片可以放大一倍 那种情况扩容下lrucache就行 毕竟现在设备内存也不比当时

Sakura-Luna commented 1 year ago

测试了新的版本,大图上下翻页快的时候会卡顿,可能还是有些勉强了