
EXIF 데이터를 파싱, 편집, 저장하는 C 라이브러리로, EXIF 태그 파싱 시 힙 버퍼 오버플로를 방지하기 위해 CVE-2020-0181이 패치되었습니다.
libexif -------
libexif는 EXIF 데이터를 파싱, 편집 및 저장하기 위한 라이브러리입니다. 이 라이브러리는 명령줄 유틸리티와 GUI 프로그램에서 중복 구현을 대체하기 위한 것입니다.
libexif는 EXIF 데이터의 파싱, 편집 및 저장을 지원합니다. 또한 gettext 지원을 제공합니다. EXIF 표준 2.1에 설명된 모든 EXIF 태그(2.2의 대부분 포함)를 지원합니다. Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax 및 Sanyo 카메라의 많은 메이커 노트도 지원합니다.
libexif는 순수 C로 작성되었으며 추가 라이브러리가 필요하지 않습니다. 언어 번역을 위해 GNU gettext를 사용할 수 있습니다(사용 가능한 경우).
libexif는 일부 메이커 노트만 처리할 수 있으며, 그마저도 완벽하지 않습니다. 더 많은 작업이 필요합니다. libmnote가 libexif에 병합되었으므로 더 이상 필요하지 않습니다.
libexif API는 doxygen을 사용하여 문서화되었으며, 그 결과물은 http://libexif.sourceforge.net/api/ 에서 제공됩니다.
test 디렉토리의 간단한 테스트 프로그램은 유효한 EXIF 데이터를 처음부터 생성하는 방법, EXIF 데이터를 저장하는 방법, 메모리에서 EXIF 데이터를 로드하는 방법을 보여줍니다. 또한 contrib/examples/ 디렉토리에 몇 가지 간단한 예제 프로그램이 있습니다. libexif 사용 방법에 대한 질문이 있으면 [email protected]으로 연락주시기 바랍니다.
자체 패키지에 libexif를 링크하려면 pkgconfig 유틸리티를 사용하는 것이 좋습니다 (http://www.freedesktop.org/wiki/Software/pkg-config/ 참조). 편의를 위해 libexif는 libexif-uninstalled.pc와 libexif.pc를 모두 제공합니다.
현재 libexif의 프론트엔드로 알려진 것:
프로그램을 libexif로 마이그레이션하거나 EXIF 지원을 추가하려면 주저하지 말고 저자에게 연락하십시오.
libexif를 사용하거나 영감을 받은 라이브러리로 알려진 것:
libexif를 빌드하는 방법은 사용 환경에 따라 다릅니다. 소스 tar 볼에서 빌드하는 경우 일반적으로 다음 명령을 사용합니다:
./configure make sudo make install
CVS에서 소스를 빌드하는 경우 다음과 같은 작업이 필요할 수 있습니다:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
또는 다음과 같이 간단히 할 수도 있습니다:
autoreconf -i ./configure make
표준 인수 외에도 configure는 libexif 전용 몇 가지 인수를 받습니다:
--disable-docs 문서 생성을 비활성화 --enable-internal-docs Doxygen이 있으면 내부 코드 문서 빌드 --enable-ship-binaries 'make dist'에 Windows DLL 포함
특정 특화 애플리케이션은 configure 시점에 CPPFLAGS 환경 변수에 다음 매크로 중 하나 또는 둘 다를 설정하여 libexif 바이너리의 크기를 줄일 수 있습니다. 각 매크로는 바이너리에서 특정 종류의 텍스트 문자열과 상수를 제거합니다. 특정 알려진 EXIF 태그에 접근해야 하고 그 데이터의 의미를 미리 알고 있는 애플리케이션은 이러한 문자열이 필요 없으며, 이를 제거하여 상당한 공간을 절약할 수 있습니다.
-DNO_VERBOSE_TAG_STRINGS EXIF 태그의 이름과 설명, 디버그 메시지, 필수 EXIF 필드 (자동 태그 수정 비활성화) -DNO_VERBOSE_TAG_DATA 열거된 태그 데이터 내용의 이름
libexif 번역은 자원 봉사자들이 직접 libexif 프로젝트를 통해 또는 두 개의 번역 조정 사이트인 번역 프로젝트 http://translationproject.org/domain/libexif.html와 Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12 중 하나를 통해 작업합니다. 번역 프로젝트에서 조정하는 언어 번역 업데이트는 해당 웹 사이트를 통해서만 이루어져야 하지만, 다른 모든 언어는 Launchpad(권장)를 통해 업데이트하거나 libexif 개발자 메일링 리스트에 직접 업데이트를 보내 업데이트할 수 있습니다. 현재 다음 언어는 번역 프로젝트를 통해 업데이트해야 합니다: cs da de es fr it ja nl pl sk sv uk vi
새로운 언어로 libexif를 번역하는 데 관심이 있다면 위의 번역 그룹 중 하나에 가입하여 제공되는 시스템을 활용하는 것이 좋습니다. 번역 프로젝트에서는 libexif에 대한 번역 면책 조항이 필요하지 않습니다. 번역을 함으로써 귀하는 암묵적으로 libexif의 나머지 부분과 동일한 라이선스 조건(LGPL) 하에 제공하는 데 동의하는 것입니다.
libexif는 원래 Curtis Galloway [email protected]가 작성했습니다. 원래 설계가 편집 및 저장을 지원하지 않았기 때문에 Lutz Mueller [email protected]가 libexif를 처음부터 다시 작성했습니다. 그 이후로 더 많은 사람들이 libexif에 기여했습니다.
EXIF에 대한 추가 정보를 원한다면 확인해 볼 만한 링크입니다.