better gif transparency handling

we were testing (x == 1), we should have tested (x & 0x1), thanks
diegocsandrim

see https://github.com/jcupitt/libvips/issues/502
This commit is contained in:
John Cupitt 2016-08-19 16:11:45 +01:00
parent ff819bfe63
commit 314042ea9d
3 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,6 @@
19/8/16 started 8.3.4
- better transparency handling in gifload, thanks diegocsandrim
30/7/16 started 8.3.3
- fix performance regression in 8.3.2, thanks Lovell
- yet more robust vips file reading

View File

@ -2,7 +2,7 @@
# also update the version number in the m4 macros below
AC_INIT([vips], [8.3.3], [vipsip@jiscmail.ac.uk])
AC_INIT([vips], [8.3.4], [vipsip@jiscmail.ac.uk])
# required for gobject-introspection
AC_PREREQ(2.62)
@ -18,7 +18,7 @@ AC_CONFIG_MACRO_DIR([m4])
# user-visible library versioning
m4_define([vips_major_version], [8])
m4_define([vips_minor_version], [3])
m4_define([vips_micro_version], [3])
m4_define([vips_micro_version], [4])
m4_define([vips_version],
[vips_major_version.vips_minor_version.vips_micro_version])
@ -38,7 +38,7 @@ VIPS_VERSION_STRING=$VIPS_VERSION-`date`
# binary interface changes not backwards compatible?: reset age to 0
LIBRARY_CURRENT=47
LIBRARY_REVISION=0
LIBRARY_REVISION=1
LIBRARY_AGE=5
# patched into include/vips/version.h

View File

@ -4,6 +4,11 @@
* - from svgload.c
* 25/4/16
* - add giflib5 support
* 26/7/16
* - transparency was wrong if there was no EXTENSION_RECORD
* - write 1, 2, 3, or 4 bands depending on file contents
* 19/8/16
* - better transparency detection, thanks diegocsandrim
*/
/*
@ -490,9 +495,10 @@ vips_foreign_load_gif_load( VipsForeignLoad *load )
if( ext_code == GRAPHICS_EXT_FUNC_CODE &&
extension &&
extension[0] == 4 &&
extension[1] == 1 ) {
(extension[1] & 0x1) ) {
/* Bytes are 4, 1, delay low, delay high,
* transparency.
* transparency. Bit 1 means transparency
* is being set.
*/
gif->transparency = extension[4];