Git Product home page Git Product logo

image's Issues

Add more color format support

ImageData and ImageRenderer are mostly used in openGL ES glCopyTexImage2D. glCopyTexImage2D support GL_ALPHA,GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, and GL_RGBA. So they should support four color format, grey, grey alpha, rgb and rgba.

Modular

Decoders consume too much disk space. Additional, Not every application needs all these decoders. There must be a way to select only the decoders in need.

This library should be separated into several libraries. One main library, the entry point. Several image-decoder libraries. Only the decoders in need are added as dependencies.

Decoders must be registered before the main .so file loaded. In the JNI_OnLoad() of the main .so file, use dlopen() to load the .so files for decoders, use dlsym() to create decoder instances.

Buffer struct

Backup and buffer in JavaStream make the code hard to read. We can create a Buffer struct, which represent a memory block, to make the code more readable.

BufferStream should be renamed to RawStream.

New image structures

StaticImage and AnimatedImage are native-heap images. They will be removed. We need new image structures, both static and animated.

Colors different compared to source image

Hi!

There is Tachiyomi application that uses this library for image decoding and I spotted a problem
inorichi/tachiyomi#589

When application uses this library for image decoding color tones go off for JPG images.

Can you please help?

Progressive decoding

It's not the feature of progressive JPEG. It means showing newly decoded pixels as soon as possible.

If the source stream is a network stream, this feature improves user experience a lot. Showing the thumbnail first is another way. But this feature is better.

Support interlaced PNG

First of all, thank you for this great library. I recently started using it as an additional image decoder in my project and I received today this issue.

I've been testing it and it seems BitmapDecoder doesn't support interlaced PNG (see screenshot in the linked issue). I've been reading through image_png.c but I can't find anything relevant.

Reduce the number of externalNativeBuilds

Only two externalNativeBuilds are enough. One is singleLib image and image-test. The other one is core image, image codecs, maybe and image-test. After building these shared libraries, copy them to the target gradle module.

It saves much build time if more codecs will be supported.

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.