프로젝트 소개

libpng은 PNG(Portable Network Graphics) 형식의 공식 참조 라이브러리로, PNG 이미지 파일을 읽고 쓰기 위한 C 함수를 제공합니다. 1995년부터 광범위하게 사용되어 왔으며, PNG 지원이 필요한 많은 애플리케이션의 기반 구성 요소 역할을 합니다. 주요 기능과 역량은 다음과 같습니다: - **PNG 지원**: PNG 사양을 완전히 구현하여 PNG 스트림의 읽기, 쓰기, 점진적 표시를 처리합니다. - **압축**: 압축 및 압축 해제를 위해 zlib을 사용하며, zlib 1.0.4 이상이 필요합니다. - **아키텍처 최적화**: ARM Neon, Intel SSE2, LoongArch LSX, MIPS MSA/MMI, PowerPC VSX, RISC-V 등 다양한 플랫폼을 위한 최적화된 코드를 포함합니다. - **API 진화**: 라이브러리는 내부 구조(`png_struct` 및 `info_struct` 등)를 접근자 함수(`png_set_<chunk>` 및 `png_get_<chunk>`) 뒤로 숨기도록 발전하여 바이너리 호환성과 손쉬운 업그레이드를 보장합니다. - **포괄적인 배포**: 방대한 문서(`libpng-manual.txt`), 예제 코드(`example.c`, `pngtest.c`), 테스트 이미지, 다양한 IDE용 프로젝트 파일이 함께 제공됩니다. 이 저장소는 Cosmin Truta가 유지 관리하며, 이전 유지 관리자인 Glenn Randers-Pehrson, Andreas Eric Dilger, 그리고 원저자 Guy Eric Schalnat의 작업을 이어가고 있습니다.