16#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
18#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
32#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
47#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED)
60# ifdef PNG_WRITE_SUPPORTED
67#if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED)
82#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
96#if defined(PNG_READ_INTERLACING_SUPPORTED) || \
97 defined(PNG_WRITE_INTERLACING_SUPPORTED)
101 png_debug(1,
"in png_set_interlace handling");
113#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
132# ifdef PNG_READ_FILLER_SUPPORTED
151# ifdef PNG_WRITE_FILLER_SUPPORTED
175 "png_set_filler is invalid for"
176 " low bit depth gray output");
182 "png_set_filler: inappropriate color type");
200 png_ptr->flags &= ~PNG_FLAG_FILLER_AFTER;
220#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \
221 defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
234#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \
235 defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
248#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
275 for (
i = 0;
i < istop;
i++)
277 *rp = (png_byte)(~(*rp));
289 for (
i = 0;
i < istop;
i += 2)
291 *rp = (png_byte)(~(*rp));
296#ifdef PNG_16BIT_SUPPORTED
304 for (
i = 0;
i < istop;
i += 4)
306 *rp = (png_byte)(~(*rp));
307 *(rp + 1) = (png_byte)(~(*(rp + 1)));
315#ifdef PNG_16BIT_SUPPORTED
316#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
329 for (
i = 0;
i < istop;
i++, rp += 2)
331#ifdef PNG_BUILTIN_BSWAP16_SUPPORTED
335 *(png_uint_16*)rp = __builtin_bswap16(*(png_uint_16*)rp);
347#if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED)
348static const png_byte onebppswaptable[256] = {
349 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
350 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
351 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
352 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
353 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
354 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
355 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
356 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
357 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
358 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
359 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
360 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
361 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
362 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
363 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
364 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
365 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
366 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
367 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
368 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
369 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
370 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
371 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
372 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
373 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
374 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
375 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
376 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
377 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
378 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
379 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
380 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF
383static const png_byte twobppswaptable[256] = {
384 0x00, 0x40, 0x80, 0xC0, 0x10, 0x50, 0x90, 0xD0,
385 0x20, 0x60, 0xA0, 0xE0, 0x30, 0x70, 0xB0, 0xF0,
386 0x04, 0x44, 0x84, 0xC4, 0x14, 0x54, 0x94, 0xD4,
387 0x24, 0x64, 0xA4, 0xE4, 0x34, 0x74, 0xB4, 0xF4,
388 0x08, 0x48, 0x88, 0xC8, 0x18, 0x58, 0x98, 0xD8,
389 0x28, 0x68, 0xA8, 0xE8, 0x38, 0x78, 0xB8, 0xF8,
390 0x0C, 0x4C, 0x8C, 0xCC, 0x1C, 0x5C, 0x9C, 0xDC,
391 0x2C, 0x6C, 0xAC, 0xEC, 0x3C, 0x7C, 0xBC, 0xFC,
392 0x01, 0x41, 0x81, 0xC1, 0x11, 0x51, 0x91, 0xD1,
393 0x21, 0x61, 0xA1, 0xE1, 0x31, 0x71, 0xB1, 0xF1,
394 0x05, 0x45, 0x85, 0xC5, 0x15, 0x55, 0x95, 0xD5,
395 0x25, 0x65, 0xA5, 0xE5, 0x35, 0x75, 0xB5, 0xF5,
396 0x09, 0x49, 0x89, 0xC9, 0x19, 0x59, 0x99, 0xD9,
397 0x29, 0x69, 0xA9, 0xE9, 0x39, 0x79, 0xB9, 0xF9,
398 0x0D, 0x4D, 0x8D, 0xCD, 0x1D, 0x5D, 0x9D, 0xDD,
399 0x2D, 0x6D, 0xAD, 0xED, 0x3D, 0x7D, 0xBD, 0xFD,
400 0x02, 0x42, 0x82, 0xC2, 0x12, 0x52, 0x92, 0xD2,
401 0x22, 0x62, 0xA2, 0xE2, 0x32, 0x72, 0xB2, 0xF2,
402 0x06, 0x46, 0x86, 0xC6, 0x16, 0x56, 0x96, 0xD6,
403 0x26, 0x66, 0xA6, 0xE6, 0x36, 0x76, 0xB6, 0xF6,
404 0x0A, 0x4A, 0x8A, 0xCA, 0x1A, 0x5A, 0x9A, 0xDA,
405 0x2A, 0x6A, 0xAA, 0xEA, 0x3A, 0x7A, 0xBA, 0xFA,
406 0x0E, 0x4E, 0x8E, 0xCE, 0x1E, 0x5E, 0x9E, 0xDE,
407 0x2E, 0x6E, 0xAE, 0xEE, 0x3E, 0x7E, 0xBE, 0xFE,
408 0x03, 0x43, 0x83, 0xC3, 0x13, 0x53, 0x93, 0xD3,
409 0x23, 0x63, 0xA3, 0xE3, 0x33, 0x73, 0xB3, 0xF3,
410 0x07, 0x47, 0x87, 0xC7, 0x17, 0x57, 0x97, 0xD7,
411 0x27, 0x67, 0xA7, 0xE7, 0x37, 0x77, 0xB7, 0xF7,
412 0x0B, 0x4B, 0x8B, 0xCB, 0x1B, 0x5B, 0x9B, 0xDB,
413 0x2B, 0x6B, 0xAB, 0xEB, 0x3B, 0x7B, 0xBB, 0xFB,
414 0x0F, 0x4F, 0x8F, 0xCF, 0x1F, 0x5F, 0x9F, 0xDF,
415 0x2F, 0x6F, 0xAF, 0xEF, 0x3F, 0x7F, 0xBF, 0xFF
418static const png_byte fourbppswaptable[256] = {
419 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
420 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0,
421 0x01, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x71,
422 0x81, 0x91, 0xA1, 0xB1, 0xC1, 0xD1, 0xE1, 0xF1,
423 0x02, 0x12, 0x22, 0x32, 0x42, 0x52, 0x62, 0x72,
424 0x82, 0x92, 0xA2, 0xB2, 0xC2, 0xD2, 0xE2, 0xF2,
425 0x03, 0x13, 0x23, 0x33, 0x43, 0x53, 0x63, 0x73,
426 0x83, 0x93, 0xA3, 0xB3, 0xC3, 0xD3, 0xE3, 0xF3,
427 0x04, 0x14, 0x24, 0x34, 0x44, 0x54, 0x64, 0x74,
428 0x84, 0x94, 0xA4, 0xB4, 0xC4, 0xD4, 0xE4, 0xF4,
429 0x05, 0x15, 0x25, 0x35, 0x45, 0x55, 0x65, 0x75,
430 0x85, 0x95, 0xA5, 0xB5, 0xC5, 0xD5, 0xE5, 0xF5,
431 0x06, 0x16, 0x26, 0x36, 0x46, 0x56, 0x66, 0x76,
432 0x86, 0x96, 0xA6, 0xB6, 0xC6, 0xD6, 0xE6, 0xF6,
433 0x07, 0x17, 0x27, 0x37, 0x47, 0x57, 0x67, 0x77,
434 0x87, 0x97, 0xA7, 0xB7, 0xC7, 0xD7, 0xE7, 0xF7,
435 0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x68, 0x78,
436 0x88, 0x98, 0xA8, 0xB8, 0xC8, 0xD8, 0xE8, 0xF8,
437 0x09, 0x19, 0x29, 0x39, 0x49, 0x59, 0x69, 0x79,
438 0x89, 0x99, 0xA9, 0xB9, 0xC9, 0xD9, 0xE9, 0xF9,
439 0x0A, 0x1A, 0x2A, 0x3A, 0x4A, 0x5A, 0x6A, 0x7A,
440 0x8A, 0x9A, 0xAA, 0xBA, 0xCA, 0xDA, 0xEA, 0xFA,
441 0x0B, 0x1B, 0x2B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B,
442 0x8B, 0x9B, 0xAB, 0xBB, 0xCB, 0xDB, 0xEB, 0xFB,
443 0x0C, 0x1C, 0x2C, 0x3C, 0x4C, 0x5C, 0x6C, 0x7C,
444 0x8C, 0x9C, 0xAC, 0xBC, 0xCC, 0xDC, 0xEC, 0xFC,
445 0x0D, 0x1D, 0x2D, 0x3D, 0x4D, 0x5D, 0x6D, 0x7D,
446 0x8D, 0x9D, 0xAD, 0xBD, 0xCD, 0xDD, 0xED, 0xFD,
447 0x0E, 0x1E, 0x2E, 0x3E, 0x4E, 0x5E, 0x6E, 0x7E,
448 0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0xDE, 0xEE, 0xFE,
449 0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0x6F, 0x7F,
450 0x8F, 0x9F, 0xAF, 0xBF, 0xCF, 0xDF, 0xEF, 0xFF
467 table = onebppswaptable;
470 table = twobppswaptable;
473 table = fourbppswaptable;
478 for (rp =
row; rp <
end; rp++)
484#if defined(PNG_WRITE_FILLER_SUPPORTED) || \
485 defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
524 *dp++ = *
sp;
sp += 2;
541 *dp++ = *
sp++; *dp++ = *
sp;
sp += 3;
572 *dp++ = *
sp++; *dp++ = *
sp++; *dp++ = *
sp;
sp += 2;
590 *dp++ = *
sp++; *dp++ = *
sp++;
591 *dp++ = *
sp++; *dp++ = *
sp++;
592 *dp++ = *
sp++; *dp++ = *
sp;
sp += 3;
616#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
633 for (
i = 0, rp =
row;
i < row_width;
i++, rp += 3)
646 for (
i = 0, rp =
row;
i < row_width;
i++, rp += 4)
655#ifdef PNG_16BIT_SUPPORTED
663 for (
i = 0, rp =
row;
i < row_width;
i++, rp += 6)
669 *(rp + 1) = *(rp + 5);
679 for (
i = 0, rp =
row;
i < row_width;
i++, rp += 8)
685 *(rp + 1) = *(rp + 5);
695#if defined(PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED) || \
696 defined(PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED)
720 for (; rp >
png_ptr->row_buf; rp--)
732 for (; rp >
png_ptr->row_buf; rp--)
739 i = (((*rp >>
padding) >> 2) & 0x03);
744 i = (((*rp >>
padding) >> 4) & 0x03);
749 i = (((*rp >>
padding) >> 6) & 0x03);
762 for (; rp >
png_ptr->row_buf; rp--)
769 i = (((*rp >>
padding) >> 4) & 0x0f);
782 for (; rp >
png_ptr->row_buf; rp--)
784 if (*rp >
png_ptr->num_palette_max)
798#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
799 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
800#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
803 user_transform_ptr,
int user_transform_depth,
int user_transform_channels)
805 png_debug(1,
"in png_set_user_transform_info");
810#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
815 "info change after png_start_read_image or png_read_update_info");
820 png_ptr->user_transform_ptr = user_transform_ptr;
821 png_ptr->user_transform_depth = (png_byte)user_transform_depth;
822 png_ptr->user_transform_channels = (png_byte)user_transform_channels;
831#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
838 return png_ptr->user_transform_ptr;
842#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define PNG_COLOR_TYPE_RGB
#define PNG_COLOR_TYPE_RGB_ALPHA
#define PNG_COLOR_TYPE_GRAY_ALPHA
#define PNG_COLOR_TYPE_GRAY
static const char filler[0x1000]
static const DWORD padding[]
#define PNG_COLOR_MASK_COLOR
const png_struct *PNG_RESTRICT png_const_structrp
png_struct *PNG_RESTRICT png_structrp
const png_byte * png_const_bytep
#define PNG_UNUSED(param)
#define png_app_error(pp, s)
#define PNG_PADBITS(pixel_bits, width)
#define PNG_IS_READ_STRUCT
#define PNG_FLAG_FILLER_AFTER
#define PNG_FLAG_ROW_INIT