ComicRackKeygen icon indicating copy to clipboard operation
ComicRackKeygen copied to clipboard

ComicRack Android has weird horizontal row of pixels on Android 12+ in high res comics

Open Rings4 opened this issue 2 years ago • 2 comments

This is a complete shot in the dark, but is there any chance anyone at all would be able to somehow modify the current 1.80 Full APK so as to alleviate this issue? It only occurs on Android versions 12.1 (I believe 12 is fine) and above. I'm trying to use it on my Surface Pro 5 through WSA which sadly is Android 13, so I can't remedy this issue.

I'm using ComicRack 1.80 and having the same issue as this redditor on my Surface Pro 5 via WSA (Windows 11's Subsystem for Android) where high res comics show a horizontal row of pixels across the entire screen. The weird part is, I have ComicRack 1.80 on my phone and several tablets, and none have this issue.

Please refer to this screenshot. Screenshot 2023-05-16 21 10 48 WsaClient The top of the bottom 1/3 of the page has a horizontal row of pixels that are a different shade (it's often either black or white).

I'm using the same comics across all devices to test, and they all work fine, except my surface pro. Now, my phone and tablets' android versions are 9, 8, and 4. WSA's android version is 13.

I've done some testing and it is indeed an issue with the newer versions of Android not playing nicely with this almost decade-old app. My findings are below:

  • Android 4 tablet - no issue
  • Android 8.1 phone - no issue
  • Android 10 tablet - no issue
  • Another Android 10 tablet - no issue
  • Android 9 tablet - no issue
  • Android 12 phone - ISSUE
  • Android 13 phone - ISSUE
  • WSA running Android 13 - ISSUE
  • WSA running Android 12.1 - ISSUE
  • WSA running Android 12 - NO issue!!

The only versions of WSA that I installed that didn't have an issue were 2203.40000.1.0 and 2203.40000.3.0, from this GitHub repository that has all previous versions of WSA.

HOWEVER, there were a couple issues with those:

  1. No portrait orientation (rotating the display maintained a landscape orientation, but just rotated).
  2. Windows kept automatically updating it despite my Microsoft Store preference for automatic updates being OFF.

The solution that was suggested in the aforementioned thread was to downscale comics so neither the width nor the height exceed 2049 or 2050. However, the image quality takes a strong hit, especially on a screen as big as mine (12.3").

As well, I just tried several other comic apps, both apks and windows programs, and none are as good a ComicRack on android. So I truly hope there's a solution to this that doesn't involve downsizing my comics (I specifically got high res versions because I like zooming in every so often).

I tried Bluestacks and it runs poorly. I just either need a version of ComicRack for android that doesn't have this issue (community patch?) or the ability to run WSA under an older android version, such as 11 or below. I used this tool to replace the system.vhdx from the current version with the system.img (after using qemu-img to convert the img to a vhdx) from an old build of WSA (2203.40000.3.0) and install that, but that didn't work at all.

Rings4 avatar May 17 '23 18:05 Rings4

I've read your post and the previous post on reddit. I am the type that doesn't see anything. I can see the banding somewhat but the text sharpness is annoying, I'll give that to you. But then I always optimize by books which downscale them to 1500px anyway. The file size difference is massive and on a tiny 10" screen, I don't see any difference. Also with the size of the tablet and the distance I believe that 2050 should be more than enough, more than that doesn't make sense.

That being said contrary to the Desktop application, the Android application is obfuscated. Almost all classes are a, ab or something of the sort. So it's really hard finding the culprit when you have a.a.a.a or ab.a.a.a. Even when deobfuscating you don't get descriptive names. I have also not as much knowledge in Android, so decompiling & rebuilding like I do with the Desktop application is a far stretch.

You seem technical enough you could take a look at the code with a decompiler like jadx-gui that let's you decompile apks directly. Since the problem is related to an Android update, I don't know what kind of update we could do to it. Maybe someone had a similar problem with their android app and a solution could be found somewhere.

I would have like to do a Community Edition, but without heavy work to make the code understandable it's not really a possibility. Contrary to the desktop which is very doable (I even have my own version I use to test & debug changes for my RAR5 pack and fixes I do).

I saw that you found a solution by not using ComicRack for resizing. I checked the ComicRack code and for exporting it should use High Quality Bicubic when resampling. Make sure that you didn't modify the ExportResampling in the ComicRack.ini and are using a worst setting. You could always try the others. I don't know if the .NET library (what ComicRack uses) is so bad compared to others.

maforget avatar May 19 '23 22:05 maforget

You seem technical enough you could take a look at the code with a decompiler like jadx-gui that let's you decompile apks directly. Since the problem is related to an Android update, I don't know what kind of update we could do to it. Maybe someone had a similar problem with their android app and a solution could be found somewhere.

I actually did try to look at the code, but like you mentioned it was heavily obfuscated so I didn't spend more than an hour or two on it before moving on to looking for another solution.

I saw that you found a solution by not using ComicRack for resizing. I checked the ComicRack code and for exporting it should use High Quality Bicubic when resampling. Make sure that you didn't modify the ExportResampling in the ComicRack.ini and are using a worst setting. You could always try the others. I don't know if the .NET library (what ComicRack uses) is so bad compared to others.

I have never opened my ComicRack.ini before, but checking it I see the line reading "; ExportResampling = BestQuality". It seems to be commented out, as is... literally everything else except for a single line, that being "HtmlInfoContextMenu = true". I'm assuming that's normal. So I'm really not sure why the quality is such garbage when using ComicRack to resize.

Resizing using irfanview was pretty tedious, but it thankfully got the job done. I don't look forward to doing it for my ongoing series, however, so hopefully you can help shed some light on a possible solution. My reddit thread has a comment that includes the comic file I used to take the screenshots of the quality, if you wanted to give it a test with that same file.

Rings4 avatar May 25 '23 15:05 Rings4