ฉันไม่ได้ทำอะไรกับลัวะ
Luaน่าจะเป็นภาษาโปรแกรมที่ง่ายและสะอาดที่สุดที่ฉันรู้จัก (และฉันรู้ไม่กี่ )
ความเรียบง่ายของ Lua ก็เป็นจุดอ่อนที่ใหญ่ที่สุด: ด้วยขนาดที่เล็กภาษาสะอาดโดยการออกแบบมันไม่มีอะไรมากมายในตัวที่คุณคาดหวังว่าจะพบเมื่อมาจากภาษาระดับอุตสาหกรรมเช่น Java หรือแบตเตอรี่ ภาษาที่รวมเช่น Python
Lua ได้รับการออกแบบให้ขยายโดย C ซึ่งในกรณีนี้หมายถึง SDK ของ Lightroom เป็นเรื่องที่ยอดเยี่ยมถ้า Adobe ทำงานให้เครื่องมือที่คุณไม่ได้สร้างไว้ใน Lua แต่ตอนนี้คุณอาจจะพบว่าตัวเองกำลังเรียกใช้เครื่องมือภายนอกเพื่อทำสิ่งต่างๆให้เสร็จ
Lightroom API ง่ายต่อการติดตั้งหรือไม่
ส่วนที่ยุ่งยากเพียงอย่างเดียวคือคุณต้องจัดโครงสร้างซอร์สโค้ดด้วยวิธีเฉพาะและจัดเตรียมInfo.lua
ไฟล์พิเศษเพื่อบอก Lightroom เกี่ยวกับปลั๊กอินของคุณ มันคือทั้งหมดที่อธิบายในเอกสาร SDK ได้ SDK ประกอบด้วยปลั๊กอินที่ใช้งานได้หลากหลายตั้งแต่เริ่มต้นรวมถึงปลั๊กอิน "สวัสดีโลก" ที่ค่อนข้างละเอียดซึ่งสามารถนำไปใช้เป็นรหัสเริ่มต้นที่มีประโยชน์ได้
มันต้องการเครื่องมือพิเศษใด ๆ สำหรับการพัฒนาหรือไม่?
คุณสามารถทำได้ด้วยโปรแกรมแก้ไขข้อความ
ไม่มีตัวช่วยการดีบักที่สร้างไว้ใน 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
น่าเสียดายที่ฉันไม่เห็นวิธีใดใน SDK ที่จะดำเนินการกับบรรทัดความคิดเห็นด้านในสุดตั้งแต่ LR 5 เป็นอย่างน้อย สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือโทรcatalog:setSelectedPhotos(peer)
ออกแล้วปล่อยให้ผู้ใช้คลิกที่ป้ายหมายเลขเพื่อเรียงสแต็คใหม่
ดำเนินการคัดลอกข้อมูลเมตาจำนวนมากจากไฟล์ RAW (ปัจจุบัน) ไปยังไฟล์ JPEG (ปัจจุบัน)
คุณสามารถทำสิ่งนี้กับ SDK ที่มีอยู่ แต่มีข้อ จำกัด
ตัวอย่างเช่นในขณะที่คุณสามารถอ่านค่าของdateTimeOriginal
เขตข้อมูลEXIF ได้จะไม่มีระบบอำนวยความสะดวกใน SDK สำหรับตั้งค่า ฉันถือว่านี่เป็นเพราะนักพัฒนา Lightroom ตัดสินใจว่าไม่ควรเปลี่ยนโปรแกรมโดยเป็นข้อมูลที่มีค่าจากกล้อง (ทำไมเป็นเช่นนั้นเมื่อมีรายการเมตาดาต้า> แก้ไขเวลาในการจับภาพ ... ที่ฉันไม่รู้ แต่มีอยู่ที่นั่น)
แต่เมื่อใดก็ตามที่ SDK พยายามดักจับคุณด้วยข้อ จำกัด ข้อใดข้อหนึ่งเหล่านี้มักจะมีช่องทางหนี คุณสามารถติดตั้งExifToolและโทรออกจาก Lua ตัวอย่างเช่น นั่นไม่ใช่โซลูชันที่สมบูรณ์แบบเพราะคุณมีความไม่สอดคล้องกันระหว่างแค็ตตาล็อกเมตาดาต้าและเมตาดาต้าของภาพถ่าย แต่ Lightroom จะสังเกตเห็นและวางตราไว้บนภาพถ่ายซึ่งเมื่อคลิกแล้วจะช่วยให้คุณแก้ไขข้อขัดแย้งได้ด้วยการโหลดเมทาดาทาใหม่จากภาพถ่าย
(คุณจะต้องการให้มี "การเปลี่ยนแปลงการเขียนโดยอัตโนมัติใน XMP" ชุดตัวเลือกในกล่องโต้ตอบการตั้งค่าแคตตาล็อกเมื่อใช้ปลั๊กอินดังกล่าว. มิฉะนั้นคุณจะทำให้มันง่ายต่อการสร้างความขัดแย้งสองทางที่ทั้งแคตตาล็อกและโฟโต้เมตาดาต้ามี การเปลี่ยนแปลง Lightroom ไม่รู้ว่าจะรวมเมทาดาทาสองชุดเข้าด้วยกันอย่างไรทำให้คุณเลือกหนึ่งชุดและจะเขียนทับสำเนาข้อมูลเมตาอื่น ๆ ด้วย)