Exiv2를 사용하여 CFML을 사용하여 이미지에서 GPS 데이터 추출

2821 단어 cfmlcoldfusion
2년 전 블로그 게시물에서 Exiv2에 대해 언급한 적이 있습니다. Adobe ColdFusion 포럼의 누군가가 최근 방법을 문의했습니다"use ImageGetEXIFMetaData to try to get gps coordinates of an image".

이전에 그 길을 가본 적이 있으며 내장 기능(BIF)ImageGetEXIFMetaData이 이미지 메타데이터를 검색할 때 성능이 떨어지고 부족하다는 것을 알게 되었습니다. BIF는 매우 구체적인 함수 이름을 설명하는 데이터만 반환합니다Exif. 때때로 원하는 메타데이터는 IPTC, XMP 메타데이터 또는 ICC 프로필로 액세스할 수 있습니다.

면책 조항: 저는 몇 년 전에 명령줄로 내려가 CFExecute 또는 CFX_Exec[ http://adiabata.com/cfx_exec.cfm ]를 사용하여 WKHTMLTOPDF(PDF 생성용) 및 GraphicsMagick(이미지용)과 같은 앱을 실행하기 위해 많은 BIF 사용을 중단했습니다. 시장 조작). 그 결과 더 빠른 성능, 더 높은 품질의 결과(데이터 또는 디스플레이 방식), 작업을 오프라인 및/또는 동시에 수행할 수 있는 능력이 생겼습니다. 또한 Adobe가 역사적으로 일부 기능이 반환하는 내용을 변경했기 때문에(버그일 수도 있고 의도적일 수도 있고 실제로 아는 사람일 수도 있음) 휴대용 명령줄 앱을 사용할 때 실제로 이 문제가 발생하지 않았기 때문에 선호합니다.

성능: 이 Exiv2 UDF는 모든 항목(exif, IPTC, XMP 메타데이터 및 ICC 프로필)을 반환하는 데 40-135ms가 걸리는 반면 ImageGetEXIFMetaData는 exif 데이터만 반환하는 데 280-340ms가 걸립니다. BIF의 GPS 데이터는 유용한 10진수 형식이 아닌 60진수 표시 형식으로만 반환됩니다. 또한 UDF에서 생성된 키가 CF 변수와 호환(예: isValid("variablename") )되어 쉽게 재사용 및/또는 API로 직접 출력할 수 있습니다. 또한 날짜는 비정규화yyyy-mm-dd hh:mm:ss 형식이 아닌 유효한yyyy:mm:dd HH:mm:ss 날짜로 출력됩니다.

메타데이터 쓰기: EXIF, IPTC, XMP 또는 IPTC 메타데이터를 이미지에 써야 하는 경우 ExifTool 을 사용하는 것이 좋습니다. Google 포토를 통해 미리보기 이미지가 표시될 때마다 라이선스 정보를 자동으로 표시하기 위해 ExifTool을 사용하여 이미지에 저작권 정보를 삽입합니다. (사진이 표시되는 웹 페이지에 숨겨진 XML을 많이 추가하는 것보다 이 접근 방식이 더 우수하다고 생각합니다.)

Exiv2(프리웨어)



Exiv는 크로스 플랫폼 C++ 라이브러리이자 이미지 메타데이터를 관리하는 명령줄 유틸리티입니다. Exif, IPTC 및 XMP 메타데이터와 다양한 형식의 디지털 이미지에 포함된 ICC 프로필에 대한 빠르고 쉬운 읽기 및 쓰기 액세스를 제공합니다.

Exiv2 UDF 사용법




imageData = exiv2(filePath="c:\myImage", exePath="C:\Exiv2\Exiv2.exe");
writeDump(imageData);

소스 코드



https://gist.github.com/JamoCA/308df6f2bc927203330a23c1c6678c39


좋은 웹페이지 즐겨찾기