Как уменьшить размер GIF? - PullRequest
0 голосов
/ 12 ноября 2018

Это мой код для создания Gif-файла, однако создаваемый им Gif-файл имеет размер 4,9 МБ и содержит 32 кадра

@Override
protected Void doInBackground(Void... voids) {

    String dstFile = "result.gif";
    final String filePath = Environment.getExternalStorageDirectory() + File.separator + dstFile;
    int width = 640;
    int height = 480;
    int delayMs = 100;

    GifEncoder gifEncoder = new GifEncoder();

    try {
        gifEncoder.init(width, height, filePath, GifEncoder.EncodingType.ENCODING_TYPE_NORMAL_LOW_MEMORY);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    gifEncoder.setDither(true);

     ByteArrayOutputStream bos = new ByteArrayOutputStream();
     byte[] Byte;

    Bitmap resized;
    int j;
    for ( j = 0; j < 32; j++) {
        Utilities.BoomerangeFrames[j].compress(Bitmap.CompressFormat.WEBP,20,bos);
        Byte = bos.toByteArray();
        resized = BitmapFactory.decodeByteArray(Byte,0,Byte.length);
        resized = Bitmap.createScaledBitmap( Utilities.BoomerangeFrames[j], width, height, true);
        gifEncoder.encodeFrame(resized, delayMs);
        bos.reset();
    }
    gifEncoder.close();
    return null;
}

}

Я хочу знать, есть ли какое-нибудь решение для уменьшения размера моего файла gif до 1 МБ.

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете уменьшить глубину цвета вашего изображения, как в этой статье , но вы теряете качество, потому что этот простой метод не использует адаптивную цветовую палитру.Может быть хорошей идеей является сохранение файла в формате видео с помощью MediaCodec API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...