libpng 예제

라이브러리에서 다른 형식으로 변환하라는 지시를 받지 않는 한 데이터는 제공된 행 버퍼로 바이트로 압축됩니다. 예를 들어 png_set_packing()이 호출되지 않는 한 4비트/픽셀 팔레트 또는 그레이스케일 데이터는 바이트의 고차 비트에서 가장 왼쪽 픽셀로 2픽셀/바이트로 반환됩니다. 8비트 RGB 데이터는 png_set_filler() 또는 png_set_add_alpha(png_set_add_alpha)가 각 RGB 삼중항 전후에 필러 바이트를 삽입하도록 호출되지 않는 한 RGB RGB RGB 형식으로 저장됩니다. png_set_strip_16(png_set_strip_16)이 일반 RGB RGB 트리플렛으로 변환하도록 호출되지 않거나 png_set_filler() 또는 png_set_add alpha() 필러 바이트를 삽입하기 위해 호출되지 않는 한 16비트 RGB 데이터는 색상 값의 가장 중요한 바이트를 먼저 반환합니다. 각 RRGGBB 삼중항 전후. 마찬가지로 8비트 또는 16비트 그레이스케일 데이터는 png_set_filler(), png_set_add_alpha(또는 png_set_strip_16)로 수정할 수 있습니다. 메시지를 인쇄할지 여부를 결정하기 위해 PNG_DEBUG와 “level”을 비교하는 경우 “message”는 인쇄할 서식이 지정된 문자열이고 p1 및 p2는 printf 스타일 서식 지정 지시문에 따라 문자열에 포함되는 매개 변수입니다. 예를 들어 libpng의 입력/출력은 png_read() 및 png_write()를 통해 수행되며, 현재는 fread() 및 fwrite()만 호출합니다. FILE *은 png_struct에 저장되며 png_init_io()를 통해 초기화됩니다. I/O 메서드를 변경하려는 경우 라이브러리는 png_init_io() 함수를 호출하는 대신 런타임에 png_set_read_fn() 및 png_set_write_fn() 함수를 통해 설정할 수 있는 콜백을 제공합니다. 이러한 함수는 또한 png_get_io_ptr(함수를 통해 검색할 수 있는 void 포인터)를 제공합니다. 예를 들어 Libpng은 OSI 인증 오픈 소스 소프트웨어입니다. OSI 인증 오픈 소스는 오픈 소스 이니셔티브의 인증 마크입니다.

다음으로 png_struct 및 png_info를 할당하고 초기화해야 합니다. 둘 다 상대적으로 클 수 있으므로 여분의 스택 공간이 없는 한 스택에 저장하지 않을 수 있습니다. 물론 NULL을 반환하는지 확인하는 것이 좋습니다. 또한 읽는 경우 읽기 구조와 쓰기 구조의 이름을 “png_ptr”로 지정하지 않으려고 합니다. “read_ptr” 및 “write_ptr”과 같이 원하는 모든 것을 호출할 수 있습니다. 예를 들어 pngtest.c를 살펴보십시오. 기본 PNG 리더기는 다음과 같은 기능을 가지고 있습니다 : 그것은 파일 기반, 그것은 읽고 하나의 이미지를 표시한 다음 종료, 그것은 단지 읽기 및 해당 이미지를 디코딩에 관한 – 그것은 더 나은 아무것도 없고 파일 입력 / 출력 (I / O) 및 기타 기다릴 여유가 없다 잠재적으로 느리지만 CPU집약적이지 않은 작업입니다.

Comments are closed.


Iron Age Tattoo Aftercare

Iron Age Piercing Aftercare

Iron Age Notary Form
We cannot display this gallery
RE-LOADABLE GIFT CARDS AVAILABLE NOW!
Iron Age Gift Cards
Iron Age on Facebook
Iron Age on Instagram
Iron Age on Twitter