Lines Matching refs:png_handler
78 PngObjectHandler png_handler;
79 png_handler.png_ptr = nullptr;
80 png_handler.row_ptr = nullptr;
81 png_handler.info_ptr = nullptr;
82 png_handler.end_info_ptr = nullptr;
84 png_handler.png_ptr = png_create_read_struct
86 if (!png_handler.png_ptr) {
91 if(png_handler.png_ptr) \
93 if (png_handler.row_ptr) \
94 png_free(png_handler.png_ptr, png_handler.row_ptr); \
95 if (png_handler.end_info_ptr) \
96 png_destroy_read_struct(&png_handler.png_ptr, &png_handler.info_ptr,\
97 &png_handler.end_info_ptr); \
98 else if (png_handler.info_ptr) \
99 png_destroy_read_struct(&png_handler.png_ptr, &png_handler.info_ptr,\
102 png_destroy_read_struct(&png_handler.png_ptr, nullptr, nullptr); \
103 png_handler.png_ptr = nullptr; \
104 png_handler.row_ptr = nullptr; \
105 png_handler.info_ptr = nullptr; \
106 png_handler.end_info_ptr = nullptr; \
109 png_handler.info_ptr = png_create_info_struct(png_handler.png_ptr);
110 if (!png_handler.info_ptr) {
115 png_handler.end_info_ptr = png_create_info_struct(png_handler.png_ptr);
116 if (!png_handler.end_info_ptr) {
122 png_set_benign_errors(png_handler.png_ptr, 1);
124 png_set_crc_action(png_handler.png_ptr, PNG_CRC_QUIET_USE, PNG_CRC_QUIET_USE);
127 png_set_option(png_handler.png_ptr, PNG_IGNORE_ADLER32, PNG_OPTION_ON);
131 png_handler.buf_state = new BufState();
132 png_handler.buf_state->data = data + kPngHeaderSize;
133 png_handler.buf_state->bytes_left = size - kPngHeaderSize;
134 png_set_read_fn(png_handler.png_ptr, png_handler.buf_state, user_read_data);
135 png_set_sig_bytes(png_handler.png_ptr, kPngHeaderSize);
137 if (setjmp(png_jmpbuf(png_handler.png_ptr))) {
143 png_read_info(png_handler.png_ptr, png_handler.info_ptr);
144 png_read_update_info(png_handler.png_ptr, png_handler.info_ptr);
145 png_handler.row_ptr = png_malloc(
146 png_handler.png_ptr, png_get_rowbytes(png_handler.png_ptr,
147 png_handler.info_ptr));
150 if (setjmp(png_jmpbuf(png_handler.png_ptr))) {
159 if (!png_get_IHDR(png_handler.png_ptr, png_handler.info_ptr, &width,
172 int passes = png_set_interlace_handling(png_handler.png_ptr);
173 png_start_read_image(png_handler.png_ptr);
178 png_read_row(png_handler.png_ptr,
179 static_cast<png_bytep>(png_handler.row_ptr), nullptr);
183 png_read_end(png_handler.png_ptr, png_handler.end_info_ptr);