Commit Graph

265 Commits (28c28b0bd23534f405938e29505fb47780fadd3d)

Author SHA1 Message Date
Chris Forseth 28c28b0bd2 Per the contributor doc - added my name. Noticed urraka also did some work here, so hopefully didn't step on any toes.
- Fix an issue where the spec of the gif for restore to previous uses code 3, not 4.
- To get results that worked - made an assumption that "clear to background" meant "revert back to what was there before I drew", where mode 1 would revert back to the previous frame [slightly different].  If I clear to background color instead, I ended up with large opaque squares in gifs that changes their transparent colour each frame.
- Background color is supposed to be used only for pixels not rendered by the image, so took that to mean it only really affected the previous frame, or potentially any frame that used full disposal.  Since background color is allowed to be unspecified this is what lead me to believe I shouldn't use it for disposal.
- Oh, also upped the codes table to 8192 as 4096 ended up being too small for a few of my test cases.

Full disclaimer - I only read through the GIF format for this contribution, so competly could be misinterpreting the spec - but this gave me reuslts that matched Chrome.
2017-11-27 23:06:53 -06:00
Chris Forseth 87a3143fb4 GIF Loading - multiple frames;
- Allow loading a gif as multiple frames into a single buffer.  Each frame is a full image seperated by a (w * h * comp) stride.
- Optionally, can pass in a pointer to a int, which will be filled with an array layers long contain ms for each frame.
- Fix gif's not loading the initial transparent background
- I believe also fix disposal rules for subsequent frames (though being somewhat inefficient with memory to do so)
- Add a flip_vertical that takes into account slices as well.

Compiled using VS2017, but nothing else as I'm not really setup for it.  Apologies.
2017-11-27 22:41:51 -06:00
Sean Barrett 555efbedfc Update version numbers 2017-07-23 14:09:39 -07:00
Fabian Giesen 0fbbda56fa stb_image: Account for tRNS chunk in non-paletted images.
So we report channels_in_file correctly.

Fixes #329.
2017-07-23 01:41:12 -07:00
Fabian Giesen fedf03e774 Merge branch 'fix-issue-466' of https://github.com/rygorous/stb into dev 2017-07-22 19:42:52 -07:00
Fabian Giesen 282576fbfb Merge branch 'rygorous-fix-issue-276' into dev 2017-07-22 19:42:23 -07:00
Fabian Giesen 49c7f1b397 stb_image: Optimise vertical flip.
This incorporates #462, but also factors everything into one
function that is shared between 8-bit integer, 16-bit integer, and
float pixels (vertical flip operates on rows of bytes and doesn't
really care), and finally always uses a 2k on-stack buffer without
dynamic memory allocation, doing multiple memcpys per row if
necessary. Not only does this remove an out-of-memory failure mode,
it is also preferable for large images, since it's more
L1-cache-firendly this way.

Fixes #462.
2017-07-22 18:43:36 -07:00
Fabian Giesen 25a2596b2f stb_image: Fix rounding during unpremultiply.
This is the same method as in pull request #455, but using integer
arithmetic instead of converting to float.

Fixes #455.
2017-07-22 15:59:41 -07:00
Fabian Giesen 463dd85f1f Merge branch 'Reedbeta-fix-vs2015-warnings' into dev 2017-07-22 15:51:28 -07:00
Fabian Giesen 69ef103721 Merge branch 'poppolopoppo-load_16_variants' into dev 2017-07-22 15:42:58 -07:00
Fabian Giesen 316571b395 stb_image: 3-char indent and other minor formatting issues. 2017-07-22 15:38:56 -07:00
Fabian Giesen 14c2993310 Merge branch 'realitix-robustify' into dev 2017-07-22 15:23:14 -07:00
Fabian Giesen cc7f1d1e6d stb_image: Documentation fixes.
req_comp is now desired_channels and *comp is *channels_in_file.

Fixes issue #466.
2017-07-21 22:35:01 -07:00
Fabian Giesen 0674660451 stb_image: Relax raw_len validation for non-interlaced PNGs.
We used to require exact match between img_len and raw_len for
non-interlaced PNGs, but the PNG in issue #276 has extra bytes
(all zeros) at the end of the compressed DEFLATE stream.

The PNG spec doesn't have anything to say about it (that I
can tell), and if libpng accepts this, who are we to judge.

Fixes issue #276.
2017-07-21 21:55:37 -07:00
Nathan Reed 76a1a1c408 Fix variable-shadowing warnings 2017-05-11 22:49:19 -07:00
Nathan Reed 7091cb6ed6 Fix integer conversion warning 2017-05-11 22:48:46 -07:00
PopPoLoPoPpo 9bcda8bb1c Add stbi_load_16() variants to load from memory or callbacks 2017-05-05 00:39:08 +02:00
Jean-Sebastien Bevilacqua d8796f05bf Robustify stbi__sse2_available in stb_image.h
Function `stbi__sse2_available` takes no argument,
we should be explicit by passing `void` as argument.
It will remove warnings from 'some' compilers.
2017-04-25 21:02:48 +02:00
Kevin Schmidt 97ae5fb3db Edit contributor list. 2017-04-18 17:36:48 +02:00
Kevin Schmidt 1dfdf5558d Fix STBI_NO_STDIO. 2017-04-18 16:17:27 +02:00
Sean Barrett d795785f3d docs 2017-03-18 18:50:06 -07:00
Sean Barrett 56a61e178f reorganize contributor list (removing one redundant name and adding one new one as well) 2017-03-18 18:48:09 -07:00
Sean Barrett c79fa78ee8 tweaks to previous merge 2017-03-18 18:42:54 -07:00
Sean Barrett 351489803f Merge branch 'phprus-patch-1' of https://github.com/phprus/stb into working 2017-03-18 18:41:15 -07:00
Sean Barrett 2de9961443 docs 2017-03-18 18:39:06 -07:00
Sean Barrett 90e8658d80 Merge branch 'fix_stbimage_pnm_load' of https://github.com/rygorous/stb into working 2017-03-18 18:37:20 -07:00
Sean Barrett d9e7c55bd7 minor docs for last merge 2017-03-18 18:35:30 -07:00
Sean Barrett 97c58e3891 Merge branch 'fix_stbimage_gcc_sse2' of https://github.com/rygorous/stb into working 2017-03-18 18:34:17 -07:00
Sean Barrett 24fa816116 merge https://github.com/nothings/stb/pull/427 but I messed up the merge
so you don't get the automatic info you normally do
2017-03-18 18:32:35 -07:00
Sean Barrett 6d60610348 tweaks to previous merge 2017-03-18 18:15:41 -07:00
Sean Barrett 00c2545510 Merge branch 'rgb-detect' of https://github.com/jeremysawicki/stb into working 2017-03-18 18:08:00 -07:00
Sean Barrett 8fe48099cc add comment for next fix prematurely 2017-03-18 18:07:51 -07:00
Sean Barrett 5bbe1d8c2a fixes to that PR 2017-03-18 18:03:34 -07:00
Sean Barrett 55112399e6 Merge branch 'master' of https://github.com/uTox/stb into working 2017-03-18 17:47:54 -07:00
Sean Barrett be6d13cd6d fix bug in png decoding with 1,2,4-bpp images using filter that samples previous line 2017-03-18 10:54:22 -07:00
Vladislav 667f35578b statically initialize 2017-03-08 21:16:50 +05:00
Fabian Giesen 22c72a069c stb_image: Support optional args consistently.
My guideline for the rules is the PNG loader (which I consider
"canonical"). In the _load functions, x and y are required but
comp is optional; in the _info functions, all three are optional.

Fixes issue #411 (and other related, unreported issues).
2017-03-04 21:17:09 -08:00
Fabian Giesen 3e17544873 stb_image: Give up trying to runtime-detect SSE2 on GCC.
We tried but it was nothing but trouble. New rule: with
GCC/Clang, if you're compiling with -msse2, you get always-on
SSE2 code, otherwise you don't get any. Trying to ship
anything with proper runtime dispatch requires both working
around certain bugs and some fiddling with build settings,
which runs contrary to the intent of a one-file library,
so bail on it entirely.

Fixes issue #280.
Fixes issue #410.
2017-03-04 20:49:14 -08:00
Jeremy Sawicki 9e76bb5108 stb_image: JPEG: Improved detection of RGB images 2017-03-03 16:24:21 -08:00
Gregory Mullen (grayhatter) 16c83cd5fc
Fix a pair of warnings in stb_image.h 2017-03-03 11:26:34 -08:00
Sean Barrett 6a3d4786c9 Merge branch 'unknown-marker' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:40:07 -08:00
Sean Barrett 7e389e85c1 Merge branch 'dnl-segment' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:39:31 -08:00
Sean Barrett 15c7e06dc8 Merge branch 'junk-before-marker' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:38:06 -08:00
Sean Barrett dc6089f05b tweak fill byte PR 2017-03-03 08:37:30 -08:00
Sean Barrett 50ae79d811 Merge branch 'fill-bytes' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:36:03 -08:00
Sean Barrett a6dc061137 tweak 16-bit quantization for clarity 2017-03-03 08:35:14 -08:00
Sean Barrett 0befbc3d78 Merge branch 'dequant-16-bits' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:31:57 -08:00
Sean Barrett 014af7b78a Merge branch 'component-ids' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:30:57 -08:00
Sean Barrett 786ac92daa tweak RGB-to-Y conversion 2017-03-03 08:30:49 -08:00
Sean Barrett 64e1799f24 Merge branch 'rgb-grayscale' of https://github.com/jeremysawicki/stb into working 2017-03-03 08:25:29 -08:00