58 if (png_image_begin_read_from_file(&
image,
argv[1]) != 0)
110 if (png_image_write_to_file(&
image,
argv[2], 0,
125 png_image_free(&
image);
138 fprintf(
stderr,
"pngtopng: usage: pngtopng input-file output-file\n");
225# define png_jmpbuf(png_ptr) ((png_ptr)->png_jmpbuf)
248#define PNG_BYTES_TO_CHECK 4
251 char buf[PNG_BYTES_TO_CHECK];
258 if (
fread(
buf, 1, PNG_BYTES_TO_CHECK, *fp) != PNG_BYTES_TO_CHECK)
264 return(!png_sig_cmp(
buf, 0, PNG_BYTES_TO_CHECK));
280 int bit_depth, color_type, interlace_type;
287void read_png(
FILE *fp,
int sig_read)
292 int bit_depth, color_type, interlace_type;
302 png_voidp user_error_ptr, user_error_fn, user_warning_fn);
341 png_set_read_fn(
png_ptr, (
void *)user_io_ptr, user_read_fn);
346 png_set_sig_bytes(
png_ptr, sig_read);
379#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
402 png_set_palette_to_rgb(
png_ptr);
406 png_set_expand_gray_1_2_4_to_8(
png_ptr);
412 png_set_tRNS_to_alpha(
png_ptr);
423 png_set_background(
png_ptr, image_background,
426 png_set_background(
png_ptr, &my_background,
437 else if ((gamma_str =
getenv(
"SCREEN_GAMMA")) !=
NULL)
467#ifdef PNG_READ_QUANTIZE_SUPPORTED
480 png_color std_color_cube[MAX_SCREEN_COLORS];
481 png_set_quantize(
png_ptr, std_color_cube, MAX_SCREEN_COLORS,
482 MAX_SCREEN_COLORS,
NULL, 0);
506 png_set_shift(
png_ptr, sig_bit_p);
522#ifdef PNG_READ_INTERLACING_SUPPORTED
527 number_passes = png_set_interlace_handling(
png_ptr);
548 png_read_image(
png_ptr, row_pointers);
559 for (
y = 0;
y <
height;
y += number_of_rows)
603 png_voidp user_error_ptr, user_error_fn, user_warning_fn);
634 info_callback, row_callback, end_callback);
696#ifdef PNG_READ_INTERLACING_SUPPORTED
700 if (old_row !=
NULL && new_row !=
NULL)
701 png_progressive_combine_row(
png_ptr, old_row, new_row);
714 png_progressive_combine_row(
png_ptr, old_row, new_row);
759 png_voidp user_error_ptr, user_error_fn, user_warning_fn);
796 png_set_write_fn(
png_ptr, (
void *)user_io_ptr, user_write_fn,
797 user_IO_flush_function);
821 PNG_COLOR_TYPE_???, PNG_INTERLACE_????,
838 sig_bit.
gray = true_bit_depth;
841 sig_bit.
red = true_red_bit_depth;
842 sig_bit.
green = true_green_bit_depth;
843 sig_bit.
blue = true_blue_bit_depth;
846 sig_bit.
alpha = true_alpha_bit_depth;
859 char key0[] =
"Title";
860 char text0[] =
"Mona Lisa";
862 text_ptr[0].
text = text0;
868 char key1[] =
"Author";
869 char text1[] =
"Leonardo DaVinci";
871 text_ptr[1].
text = text1;
877 char key2[] =
"Description";
878 char text2[] =
"<long text>";
879 text_ptr[2].
key = key2;
880 text_ptr[2].
text = text2;
886 png_set_text(write_ptr, write_info_ptr, text_ptr, 3);
926 png_set_shift(
png_ptr, &sig_bit);
949 if (interlacing != 0)
950 number_passes = png_set_interlace_handling(
png_ptr);
964 png_error(
png_ptr,
"Image data buffer would be too large");
970 png_error(
png_ptr,
"Image is too tall to process in memory");
979 png_write_image(
png_ptr, row_pointers);
991 png_write_rows(
png_ptr, &row_pointers[first_row], number_of_rows);
995 png_write_rows(
png_ptr, &row_pointers[
y], 1);
void user(int argc, const char *argv[])
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
GLint GLint GLint GLint GLint GLint y
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLuint64EXT GLuint GLuint GLenum GLenum GLuint GLuint GLenum GLuint GLuint key1
GLuint64EXT GLuint GLuint GLenum GLenum GLuint GLuint key0
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
_Check_return_opt_ _CRTIMP size_t __cdecl fread(_Out_writes_bytes_(_ElementSize *_Count) void *_DstBuf, _In_ size_t _ElementSize, _In_ size_t _Count, _Inout_ FILE *_File)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
_Check_return_ char *__cdecl getenv(_In_z_ const char *_VarName)
static void process_data(ID3DXFileData *xfile_data, int level)
#define PNG_COLOR_TYPE_GRAY
#define PNG_COLOR_TYPE_PALETTE
static const char stream_data[]
#define PNG_IMAGE_SIZE(image)
png_structrp png_fixed_point screen_gamma
#define PNG_IMAGE_VERSION
#define PNG_FILLER_BEFORE
#define PNG_MAX_PALETTE_LENGTH
#define png_jmpbuf(png_ptr)
#define PNG_TEXT_COMPRESSION_zTXt
#define PNG_TEXT_COMPRESSION_NONE
#define PNG_COLOR_MASK_COLOR
#define PNG_FILTER_TYPE_BASE
#define PNG_LIBPNG_VER_STRING
#define PNG_BACKGROUND_GAMMA_FILE
#define PNG_COMPRESSION_TYPE_BASE
#define PNG_BACKGROUND_GAMMA_SCREEN
png_const_structrp png_const_inforp info_ptr
png_uint_16 * png_uint_16p
#define OK(condition, fail_message,...)