How to create an animated GIF from JPEGs in Android (development) How to create an animated GIF from JPEGs in Android (development) android android

How to create an animated GIF from JPEGs in Android (development)


See this solution.

https://github.com/nbadal/android-gif-encoder

It's an Android version of this post.

http://www.jappit.com/blog/2008/12/04/j2me-animated-gif-encoder/

To use this class, here is an example helper method to generate GIF byte array. Note here the getBitmapArray() function is a method to return all the Bitmap files in an image adapter at once. So the input is all the Bitmap files in one adapter, the output is a byte array which you can write to the file.

public byte[] generateGIF() {    ArrayList<Bitmap> bitmaps = adapter.getBitmapArray();    ByteArrayOutputStream bos = new ByteArrayOutputStream();    AnimatedGifEncoder encoder = new AnimatedGifEncoder();    encoder.start(bos);    for (Bitmap bitmap : bitmaps) {        encoder.addFrame(bitmap);    }    encoder.finish();    return bos.toByteArray();}

To use this function, do the following then you can save the file into SDcard.

FileOutputStream outStream = null;        try{            outStream = new FileOutputStream("/sdcard/generate_gif/test.gif");            outStream.write(generateGIF());            outStream.close();        }catch(Exception e){            e.printStackTrace();        }


It did very well for me, It create file fast and good quality images

//True for dither. Will need more memory and CPUAnimatedGIFWriter writer = new AnimatedGIFWriter(true);OutputStream os = new FileOutputStream("animated.gif");Bitmap bitmap; // Grab the Bitmap whatever way you can// Use -1 for both logical screen width and height to use the first frame dimensionwriter.prepareForWrite(os, -1, -1)writer.writeFrame(os, bitmap);// Keep adding frame herewriter.finishWrite(os);// And you are done!!!

https://github.com/dragon66/android-gif-animated-writer