[c++] libpng 예제
#include <iostream>
#include <png.h>
void read_png_file(const char* file_name) {
FILE* fp = fopen(file_name, "rb");
png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if (!png_ptr) {
fclose(fp);
// error handling
}
png_infop info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr) {
png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
fclose(fp);
// error handling
}
if (setjmp(png_jmpbuf(png_ptr))) {
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
fclose(fp);
// error handling
}
png_init_io(png_ptr, fp);
png_read_info(png_ptr, info_ptr);
int width = png_get_image_width(png_ptr, info_ptr);
int height = png_get_image_height(png_ptr, info_ptr);
int bit_depth = png_get_bit_depth(png_ptr, info_ptr);
int color_type = png_get_color_type(png_ptr, info_ptr);
// Additional processing as per requirement
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
fclose(fp);
}
int main() {
const char* file_name = "example.png";
read_png_file(file_name);
return 0;
}
이 코드는 example.png
파일을 열고 libpng를 사용하여 파일을 읽어오는 간단한 예제입니다. 자세한 내용은 libpng 공식 문서를 참고하시기 바랍니다.
이 예제 코드는 libpng의 기본적인 기능만 사용하였으며, 실제로 PNG 이미지를 화면에 표시하려면 추가적인 작업이 필요합니다.