mindl icon indicating copy to clipboard operation
mindl copied to clipboard

Image quality

Open Tenome opened this issue 8 years ago • 5 comments

When comparing the results of mindl with a canvas dump script, mindl seems to have more artifacts. I chose a random series to compare. It's only really noticeable on color images.

It's not too significant, but here's the zip of mindl's png 100 rip (001) with the canvas dump (000) if you want to look into it. It's noticeable on flat colors.

https://jii.moe/VJRExXkVz.zip https://jii.moe/4JJI_zyEG.zip

Tenome avatar Dec 18 '16 06:12 Tenome

How could mindl download as png?

lasthm avatar Dec 18 '16 07:12 lasthm

@Tenome Hmm, you're right. I know some readers apply a filter on the images after descrambling them, but the artifacting is pretty bad, making me think it could be something else. Which site did you get those from?

@lasthm Run it with -o lossless=1, but note that the scrambled source is still lossy.

MinoMino avatar Dec 18 '16 15:12 MinoMino

@MinoMino EBJ

Tenome avatar Dec 18 '16 22:12 Tenome

@Tenome Gotcha. I'll have a look at it.

MinoMino avatar Dec 18 '16 22:12 MinoMino

As usual, PhantomJS seems to be the culprit. In Chrome, running the exact same script as with PhantomJS, the images come out just fine. Since I don't think there's any practical way to reverse engineer stuff compiled with emscripten, I can't really tell if it's the EBJ script that perhaps deals with browsers differently and screws up when PhantomJS descrambles images, or of it's just straight up PhantomJS doing something wrong.

In any case, I'm going to try poking around a bit more, but unfortunately I don't think there's an easy fix. These are the options I have in mind:

  • Add support for ChromeDriver. This allows mindl to do exactly the same, but on Chrome instead. It's no longer headless, but as opposed to PhantomJS, Chrome isn't complete shit.
  • Make a userscript instead. I could for instance have the plugin set up a local HTTP server and then have the userscript send images to it.
  • Try harder to reverse engineer EBJ and just drop the browser crap altogether.

Using ChromeDriver should be trivial to implement, so I'll probably do that. After that, I guess I'll try once again to make some progress on reverse engineering.

MinoMino avatar Dec 20 '16 18:12 MinoMino