Merge branch 'load-bmp-v5-header' of https://github.com/saitoha/stb into working

Update version number
pull/14/head
Sean Barrett 2014-06-15 13:08:12 -07:00
commit 5753c13f25
1 changed files with 15 additions and 8 deletions

View File

@ -1,4 +1,4 @@
/* stb_image - v1.38 - public domain JPEG/PNG reader - http://nothings.org/stb_image.c /* stb_image - v1.39 - public domain JPEG/PNG reader - http://nothings.org/stb_image.c
when you control the images you're loading when you control the images you're loading
no warranty implied; use at your own risk no warranty implied; use at your own risk
@ -26,13 +26,13 @@
- overridable dequantizing-IDCT, YCbCr-to-RGB conversion (define STBI_SIMD) - overridable dequantizing-IDCT, YCbCr-to-RGB conversion (define STBI_SIMD)
Latest revisions: Latest revisions:
1.39 (2014-06-15) TGA optimization fix, multiple BMP fixes
1.38 (2014-06-06) suppress MSVC run-time warnings, fix accidental rename of 'skip' 1.38 (2014-06-06) suppress MSVC run-time warnings, fix accidental rename of 'skip'
1.37 (2014-06-04) remove duplicate typedef 1.37 (2014-06-04) remove duplicate typedef
1.36 (2014-06-03) converted to header file, allow reading incorrect iphoned-images without iphone flag 1.36 (2014-06-03) converted to header file, allow reading incorrect iphoned-images without iphone flag
1.35 (2014-05-27) warnings, bugfixes, TGA optimization, etc 1.35 (2014-05-27) warnings, bugfixes, TGA optimization, etc
1.34 (unknown ) warning fix 1.34 (unknown ) warning fix
1.33 (2011-07-14) minor fixes suggested by Dave Moore 1.33 (2011-07-14) minor fixes suggested by Dave Moore
1.32 (2011-07-13) info support for all filetypes (SpartanJ)
See end of file for full revision history. See end of file for full revision history.
@ -63,8 +63,9 @@
Arseny Kapoulkine Blazej Dariusz Roszkowski Arseny Kapoulkine Blazej Dariusz Roszkowski
Thibault Reuille Thibault Reuille
If your name should be here but Paul Du Bois If your name should be here but Paul Du Bois
isn't let Sean know. Guillaume George isn't, let Sean know. Guillaume George
Jerry Jansson
Hayaki Saito
*/ */
#ifndef STBI_INCLUDE_STB_IMAGE_H #ifndef STBI_INCLUDE_STB_IMAGE_H
@ -2908,7 +2909,7 @@ static int stbi__bmp_test_raw(stbi__context *s)
stbi__get16le(s); // discard reserved stbi__get16le(s); // discard reserved
stbi__get32le(s); // discard data offset stbi__get32le(s); // discard data offset
sz = stbi__get32le(s); sz = stbi__get32le(s);
r = (sz == 12 || sz == 40 || sz == 56 || sz == 108); r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124);
return r; return r;
} }
@ -2973,7 +2974,7 @@ static stbi_uc *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int
stbi__get16le(s); // discard reserved stbi__get16le(s); // discard reserved
offset = stbi__get32le(s); offset = stbi__get32le(s);
hsz = stbi__get32le(s); hsz = stbi__get32le(s);
if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown");
if (hsz == 12) { if (hsz == 12) {
s->img_x = stbi__get16le(s); s->img_x = stbi__get16le(s);
s->img_y = stbi__get16le(s); s->img_y = stbi__get16le(s);
@ -3032,7 +3033,7 @@ static stbi_uc *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int
return stbi__errpuc("bad BMP", "bad BMP"); return stbi__errpuc("bad BMP", "bad BMP");
} }
} else { } else {
assert(hsz == 108); assert(hsz == 108 || hsz == 124);
mr = stbi__get32le(s); mr = stbi__get32le(s);
mg = stbi__get32le(s); mg = stbi__get32le(s);
mb = stbi__get32le(s); mb = stbi__get32le(s);
@ -3040,6 +3041,12 @@ static stbi_uc *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int
stbi__get32le(s); // discard color space stbi__get32le(s); // discard color space
for (i=0; i < 12; ++i) for (i=0; i < 12; ++i)
stbi__get32le(s); // discard color space parameters stbi__get32le(s); // discard color space parameters
if (hsz == 124) {
stbi__get32le(s); // discard rendering intent
stbi__get32le(s); // discard offset of profile data
stbi__get32le(s); // discard size of profile data
stbi__get32le(s); // discard reserved
}
} }
if (bpp < 16) if (bpp < 16)
psize = (offset - 14 - hsz) >> 2; psize = (offset - 14 - hsz) >> 2;
@ -4369,7 +4376,7 @@ static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)
} }
stbi__skip(s,12); stbi__skip(s,12);
hsz = stbi__get32le(s); hsz = stbi__get32le(s);
if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108) { if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) {
stbi__rewind( s ); stbi__rewind( s );
return 0; return 0;
} }