[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 이미지를 화면에 표시하려면 추가적인 작업이 필요합니다.