return comp info in bytes (support for 16 bit images)

This commit is contained in:
Anaël Seghezzi 2017-11-24 13:44:39 +01:00
parent 9d9f75eb68
commit 9dfa8c7f31

View File

@ -4902,7 +4902,7 @@ static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)
} }
if (x) *x = p->s->img_x; if (x) *x = p->s->img_x;
if (y) *y = p->s->img_y; if (y) *y = p->s->img_y;
if (comp) *comp = p->s->img_n; if (comp) *comp = p->s->img_n * p->depth / 8;
return 1; return 1;
} }
@ -6667,7 +6667,7 @@ static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)
#ifndef STBI_NO_PSD #ifndef STBI_NO_PSD
static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
{ {
int channelCount, dummy; int channelCount, dummy, depth;
if (!x) x = &dummy; if (!x) x = &dummy;
if (!y) y = &dummy; if (!y) y = &dummy;
if (!comp) comp = &dummy; if (!comp) comp = &dummy;
@ -6687,7 +6687,8 @@ static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
} }
*y = stbi__get32be(s); *y = stbi__get32be(s);
*x = stbi__get32be(s); *x = stbi__get32be(s);
if (stbi__get16be(s) != 8) { depth = stbi__get16be(s);
if (depth != 8 && depth != 16) {
stbi__rewind( s ); stbi__rewind( s );
return 0; return 0;
} }
@ -6695,7 +6696,7 @@ static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
stbi__rewind( s ); stbi__rewind( s );
return 0; return 0;
} }
*comp = 4; *comp = 4 * depth / 8;
return 1; return 1;
} }
#endif #endif