루아와 아무 짓도 안 했어요
루아 는 아마도 내가 아는 가장 단순하고 깨끗한 프로그래밍 언어 일 것입니다. (그리고 나는 몇 가지를 안다 .)
Lua의 단순성은 또한 가장 큰 약점입니다. 설계 상 작고 깨끗한 언어이기 때문에 Java와 같은 산업 등급 언어 또는 배터리에서 찾을 때 기대할 수있는 많은 것들이 내장되어 있지 않습니다. 파이썬과 같은 언어.
Lua는 C에 의해 확장되도록 설계되었으며이 경우 Lightroom의 SDK를 의미합니다. Adobe가 Lua에 내장되어 있지 않은 필요한 도구를 제공하기 위해 작업을 수행 한 경우 매우 유용하지만, 이제는 외부 도구를 호출하여 작업을 수행하게 될 것입니다.
Lightroom API를 쉽게 연결할 수 있습니까?
그것에 대한 유일한 까다로운 부분은 소스 코드를 특정 방식으로 구성하고 Info.lua
플러그인에 대해 Lightroom에 알리는 특수 파일을 제공해야한다는 것 입니다. 그것은 모두 SDK docs에 설명 되어 있습니다 . SDK에는 유용한 시작 코드를 위해 청소할 수있는 상당히 정교한 "hello world"플러그인을 포함하여 시작하는 여러 기능 플러그인이 포함되어 있습니다.
개발을 위해 특별한 도구가 필요합니까?
당신은 텍스트 편집기로 얻을 수 있습니다.
Lightroom에는 디버깅 기능이 내장되어 있지 않지만 SDK 에는 디버그 로깅 기능이 있습니다. WinDbg
Windows 또는 Console
OS X 에서 이러한 메시지를 포착 할 수 있습니다.
최신 개발은 오픈 소스 ZeroBrane Studio Lua IDE입니다. 다른 텍스트 편집기 대신 이것을 사용할 수 있지만 정말 멋진 점은 실행중인 플러그인 에 첨부하여 실행할 때 디버깅 할 수 있다는 것입니다. 나는 이것을 시도했고, 그것은 수정 / 재로드 / 디버깅 사이클 시간을 줄이는 데 도움이됩니다.
위에서 설명한 종류의 작업을 쉽게 수행 할 수있는 스크립트를 작성할 수 있습니까?
Lightroom SDK 만 사용하여 두 가지 작업 중 100 %를 수행 할 수 있다고 생각하지는 않지만 많은 작업을 수행 할 수 있습니다.
JPG 확장자를 가진 각 스택에서 파일을 선택하고 스택의 최상위로 만듭니다.
여기 거의 모든 방법 을 제공하는 모호한 Lua와 유사한 코드가 있습니다.
for photo in catalog:getMultipleSelectedOrAllPhotos() do
for peer in photo:stackInFolderMembers() do
if string.find('%.jpg$', peer:getFormattedMetadata('fileName')) then
-- *mumble* move 'peer' photo to top of stack *mumble*
break
end
end
end
불행히도, 적어도 LR 5에서 SDK에서 가장 안쪽 주석 행의 동작을 수행하는 방법을 보지 못했습니다. 내가 할 수있는 최선의 방법은 전화 catalog:setSelectedPhotos(peer)
한 다음 실제로 번호 배지를 클릭하여 스택을 다시 정렬하도록 사용자에게 맡기는 것입니다.
(기존) RAW 파일에서 (기존) JPEG 파일로 메타 데이터 대량 복사 수행
기존 SDK로이 중 일부를 수행 할 수 있지만 제한 사항이 있습니다.
예를 들어 EXIF 필드 의 값을 읽을 수 dateTimeOriginal
있지만 SDK 자체 에는 값 을 설정 하는 기능이 없습니다 . Lightroom 개발자가 프로그래밍 방식으로 변경해서는 안되며 카메라의 소중한 정보라고 결정했기 때문이라고 생각합니다. (알 수없는 메타 데이터> 캡처 시간 편집 ... 메뉴 항목이있는 이유는 무엇입니까?)
그러나 SDK가 이러한 제한 중 하나를 사용하려고 할 때마다 이스케이프 해치가 종종 발생합니다. 예를 들어 ExifTool 을 설치 하고 Lua에서 호출 할 수 있습니다 . 카탈로그 메타 데이터와 사진 메타 데이터 사이에 불일치가 있기 때문에 완벽한 솔루션은 아니지만 Lightroom은 사진에 배지를 표시하고이를 클릭하면 사진에서 메타 데이터를 다시로드하여 충돌을 해결할 수 있습니다.
(그러한 플러그인을 사용할 때 카탈로그 설정 대화 상자에서 "XMP에 자동으로 변경 사항 쓰기"옵션을 설정하려고합니다. 그렇지 않으면 카탈로그 및 사진 메타 데이터가 모두있는 양방향 충돌을보다 쉽게 만들 수 있습니다. Lightroom은 두 가지 메타 데이터 세트를 병합하는 방법을 모릅니다. 하나를 선택하고 다른 메타 데이터 사본을 덮어 씁니다.)