zulip/zerver
Harshit Bansal 25fa9a25ff emoji: Add support for animated GIF images.
This commit adds 'resize_gif()' function which extracts each frame,
resize it and coalesces them again to form the resized GIF while
preserving the duration of the GIF. I read some stackoverflow
answers all of which were referring to BiggleZX's script
(https://gist.github.com/BigglesZX/4016539) for working with animated
GIF. I modified the script to fit to our usecase and did some manual
testing but the function was failing for some specific GIFs and was not
preserving the duration of animation. So I went ahead and read about
GIF format itself as well as PIL's `GifImagePlugin` code and came up
with this simple function which gets the worked done in a much cleaner
way. I tested this function on a number of GIF images from giphy.com
and it resized all of them correctly.

Fixes: #9945.
2018-08-04 11:46:58 -07:00
..
data_import import: Add gitter import file in zerver/data_import directory. 2018-08-01 11:52:14 -07:00
lib emoji: Add support for animated GIF images. 2018-08-04 11:46:58 -07:00
management models: Add new UserMessage flag active_mobile_push_notification. 2018-08-01 16:51:56 -07:00
migrations models: Add new UserMessage flag active_mobile_push_notification. 2018-08-01 16:51:56 -07:00
openapi api docs: Remove unnecessary link. 2018-08-02 15:54:41 -07:00
templatetags HTML validation: Remove obsolete attributes from <script>, <style>. 2018-07-13 10:27:23 +05:30
tests emoji: Add support for animated GIF images. 2018-08-04 11:46:58 -07:00
tornado api: Stop using API keys for Django->Tornado authentication. 2018-07-30 12:28:31 -07:00
views emoji: Show emoji names with spaces on front-end. 2018-08-04 09:40:52 -07:00
webhooks webhooks/bitbucket2: Include title in message body if not in topic. 2018-07-26 16:35:09 -07:00
worker do_mark_stream_messages_as_read: Accept a Client object. 2018-08-01 16:49:57 -07:00
__init__.py
apps.py zerver: Use Python 3 syntax for typing. 2017-11-28 16:49:36 -08:00
context_processors.py settings: Enable custom profile fields in production. 2018-07-27 12:09:56 -07:00
decorator.py 2FA: Add zulip_otp_required decorator. 2018-05-23 15:46:57 -07:00
filters.py zerver: Use Python 3 syntax for typing. 2017-11-28 16:49:36 -08:00
forms.py forms: Fix accounts listed in password_reset email to active accounts. 2018-08-04 09:16:19 -07:00
logging_handlers.py bugdown: Improve exception handler for BugdownRenderingException. 2018-07-26 09:27:55 -07:00
middleware.py zerver: Change use of typing.Text to str. 2018-05-12 15:22:39 -07:00
models.py models: Add new UserMessage flag active_mobile_push_notification. 2018-08-01 16:51:56 -07:00
signals.py emails: Show HHMM timezone on new login emails. 2018-08-03 17:15:03 -07:00
static_header.txt