Popularity
1.5
Growing
Activity
2.1
-
35
2
5

Description

https://github.com/jeffreyliu8/Native-Floyd-Steinberg-Dithering

Programming language: Kotlin
License: MIT License
Tags: Component     Media     Image Processing     Dither     Grayscale    
Latest version: v1.0.0

Native-Floyd-Steinberg-Dithering alternatives and similar packages

Based on the "Media" category.
Alternatively, view Native-Floyd-Steinberg-Dithering alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Native-Floyd-Steinberg-Dithering or a related project?

Add another 'Media' Package

README

License

Native-Floyd-Steinberg-Dithering

Android library for floyd-steinberg dithering on bitmap using JNI/Cmake

Why FSD

For those who don't know the purpose of Floyd-Steinberg algorithm, it is a algorithm to turn color image to black and white(NOT GRAYSCALE).

When would we use this? Well, for those e-ink displays like Amazon Kindle, they can't display color images, and just black and white would still look bad, this is when this algorithm is usful.

I have tried using just java to run the algorithm, but it is slow. Not a good idea to run on main thread. This library is small and easy to use.

Using FSD

Setup

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
Dependencies
    dependencies {
            compile 'com.github.jeffreyliu8:Native-Floyd-Steinberg-Dithering:1.0.0'
    }

A quick example is shown below:

val original = BitmapFactory.decodeResource(resources, R.drawable.lena)
val fsBitmap = Utils.floydSteinbergDithering(original)

And for just black and white image:

val bwBitmap = Utils.binaryBlackAndWhite(original)

And for gray-scale image(This is just a simple java function):

val grayBitmap = Utils.toGrayscale(original)

Output sample

Requirements

Requires a minimum SDK version of 14


*Note that all licence references and agreements mentioned in the Native-Floyd-Steinberg-Dithering README section above are relevant to that project's source code only.