GithubHelp home page GithubHelp logo

Comments (7)

Piasy avatar Piasy commented on July 18, 2024

That's implementation detail of SSIV, briefly speaking:

It does a downsampling when load the image fully into screen (as a Bitmap, so it's in java heap), that downsampling is optional too, if the image is very small, no downsampling happens, then when user zoom the image, only several regions of the image is decoded (also as Bitmap, java heap).

For more detail, you can refer to https://github.com/davemorrissey/subsampling-scale-image-view .

from bigimageviewer.

AndroidDeveloperLB avatar AndroidDeveloperLB commented on July 18, 2024

I see. Can you also add the JNI solution?
I think it should be better in terms of performance and maybe even heap memory usage.
You could even downsample in your own way. As I remember, the downsampling of Android is only of power of 2, and it sometimes has some aliasing in it.

In the past, I created a library that shows how to mess around with bitmaps, but sadly it doesn't do the decoding in JNI: https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations
However, I remember I saw a library that does the decoding in JNI too, yet it wasn't seem to be easy to use.

from bigimageviewer.

Piasy avatar Piasy commented on July 18, 2024

Image loading and cacheing, that's the responsibility of image loading library, e.g. Fresco, Glide, Picasso, and image displaying, including downsampling, pan and zoom, animation, etc, is the responsibility of image displaying library, e.g. SSIV.

This library focus on bridging them together, although currently only image loading library is configurable, but if there are other brilliant image displaying libraries, make it configurable is very easy.

from bigimageviewer.

AndroidDeveloperLB avatar AndroidDeveloperLB commented on July 18, 2024

I'm not complaining. I just suggest this as another option, because I think a single decoding (even if it's a bit long) might be better than multiple ones, as long as your device has enough RAM.
If you take, for example, a 40MP image, it takes around 40*4 = 160MB of RAM. This is a lot for heap memory, but it's fine for RAM itself, because most devices out there have at least 1GB of RAM.

from bigimageviewer.

Piasy avatar Piasy commented on July 18, 2024

Yep, I understand. But I really think that's another image displaying library. Besides, I don't have enough knowledge and time to do such thing, currently.

If you have a good solution, I can modify this library to use your image viewer as an option :)

from bigimageviewer.

AndroidDeveloperLB avatar AndroidDeveloperLB commented on July 18, 2024

Sadly the more I read about it, the more complex I saw of how to decode images in JNI.

from bigimageviewer.

Piasy avatar Piasy commented on July 18, 2024

I'm going to close this issue, if you have other questions, please feel free to reopen it :)

from bigimageviewer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.