ການສົ່ງອອກຮູບພາບດ້ວຍ lua

ຜ່ານມາພວກເຮົາໄດ້ຮຽນຮູ້ການໃຊ້ lua ເພື່ອປັບ darktable ໃຫ້ເຂົ້າກັບຂັ້ນຕອນການເຮັດວຽກຂອງພວກເຮົາ. ບາດນີ້ມາເບິ່ງວິທີການໃຊ້ lua ເພື່ອສົ່ງອອກຮູບພາບໄປຍັງບໍລິການອອນລາຍໄດ້ຢ່າງງ່າຍດາຍ. ຫາກທ່ານສາມາດອັບໂຫຼດຮູບພາບໄປຍັງບໍລິການໃດໜຶ່ງຜ່ານຄຳສັ່ງຄອນໂຊນ ທ່ານກໍສາມາດໃຊ້ lua ເພື່ອລວມສິ່ງນີ້ເຂົ້າໃນອິນເຕີເຟດຜູ້ໃຊ້ຂອງ darktable ໄດ້.

ໃນຕົວຢ່າງຕໍ່ໄປນີ້ ພວກເຮົາຈະໃຊ້ lua ເພື່ອສົ່ງອອກຜ່ານ scp. ປະເພດບ່ອນເກັບຂໍ້ມູນໃໝ່ຈະປາກົດໃນ UI ຂອງ darktable ເຊິ່ງຈະສົ່ງອອກຮູບພາບໄປຍັງປາຍທາງທີ່ຢູ່ໄກ ຜ່ານກົນໄກການຄັດລອກໃນ ssh.

darktable = require "darktable"

darktable.preferences.register("scp_export","export_path",
  "string","ເສັ້ນທາງ SCP ເປົ້າໝາຍ",
  "ເສັ້ນທາງເຕັມທີ່ຈະສຳເນົາໄປ. ສາມາດລວມເອົາຊື່ຜູ້ໃຊ້ ແລະ ຊື່ໂຮສ໌ (hostname)","")

darktable.register_storage("scp_export","ສົ່ງອອກຜ່ານ scp",
  function( storage, image, format, filename,
     number, total, high_quality, extra_data)
    if not darktable.control.execute("scp "..filename.." "..
      darktable.preferences.read("scp_export",
         "export_path","string")) then
      darktable.print_error("scp ຫຼົ້ມເຫຼວສຳລັບ "..tostring(image))
    end
end)

darktable.preferences.register ຈະເພີ່ມການຕັ້ງຄ່າໃໝ່ເຂົ້າໃນເມນູການຕັ້ງຄ່າຂອງ darktable, scp_export ແລະ export_path ຊ່ວຍໃຫ້ພວກເຮົາລະບຸການຕັ້ງຄ່າຂອງພວກເຮົາໄດ້ຢ່າງຊັດເຈນ. ຟີວເຫຼົ່ານີ້ຈະຖືກນຳມາໃຊ້ຄືນເມື່ອພວກເຮົາອ່ານຄ່າຂອງການຕັ້ງຄ່ານັ້ນ. ຟີວ string ບອກ lua engine ວ່າການຕັ້ງຄ່ານີ້ເປັນຂໍ້ຄວາມ. ມັນຍັງສາມາດເປັນຕົວເລກຖ້ວນ, ຊື່ໄຟລ໌ ຫຼື ປະເພດໃດກໍໄດ້ທີ່ລະບຸໄວ້ໃນຄູ່ມື API ທີ່ກ່ຽວກັບ types_lua_pref_type. ຈາກນັ້ນພວກເຮົາມີປ້າຍຊື່ສຳລັບການຕັ້ງຄ່າໃນເມນູການຕັ້ງຄ່າ, ຄຳແນະນຳ (tooltip) ເມື່ອວາງເມົາສ໌ເທິງຄ່ານັ້ນ ແລະ ຄ່າເລີ່ມຕົ້ນ.

darktable.register_storage ແມ່ນຄຳສັ່ງທີ່ລົງທະບຽນປະເພດບ່ອນເກັບຂໍ້ມູນໃໝ່ແທ້ໆ. ອາກິວເມນທຳອິດແມ່ນຊື່ສຳລັບປະເພດບ່ອນເກັບຂໍ້ມູນ, ອັນທີສອງແມ່ນປ້າຍຊື່ທີ່ຈະສະແດງໃນ UI ແລະ ສຸດທ້າຍແມ່ນຟັງຊັນທີ່ຈະເອີ້ນໃຊ້ສຳລັບແຕ່ລະຮູບ. ຟັງຊັນນີ້ມີພາຣາມິເຕີຫຼາຍອັນ, ແຕ່ filename ແມ່ນອັນດຽວທີ່ພວກເຮົາໃຊ້ໃນຕົວຢ່າງນີ້. ມັນປະກອບດ້ວຍຊື່ຂອງໄຟລ໌ຊົ່ວຄາວທີ່ຮູບພາບຖືກສົ່ງອອກໂດຍ engine ຂອງ darktable.

ລະຫັດນີ້ຈະເຮັດວຽກໄດ້ ແຕ່ມັນກໍມີຂໍ້ຈຳກັດບາງຢ່າງ. ເພາະວ່າມັນເປັນພຽງຕົວຢ່າງງ່າຍໆເທົ່ານັ້ນ:

  • ພວກເຮົາໃຊ້ການຕັ້ງຄ່າ (preferences) ເພື່ອກຳນົດເສັ້ນທາງປາຍທາງ. ມັນຈະດີກວ່າຖ້າເພີ່ມອົງປະກອບເຂົ້າໃນ UI ການສົ່ງອອກໃນ darktable. ພວກເຮົາຈະອະທິບາຍວິທີການເຮັດສິ່ງນັ້ນໃນສ່ວນຕໍ່ໄປ.

  • ພວກເຮົາບໍ່ໄດ້ກວດສອບຄ່າທີ່ສົ່ງກັບມາຈາກ scp. ຄຳສັ່ງນັ້ນອາດຈະລົ້ມເຫຼວ, ໂດຍສະເພາະຫາກຜູ້ໃຊ້ບໍ່ໄດ້ຕັ້ງຄ່າໃຫ້ຖືກຕ້ອງ.

  • ສະຄຣິບນີ້ບໍ່ສາມາດອ່ານຄ່າທີ່ປ້ອນຈາກຜູ້ໃຊ້ໄດ້. ການໃຊ້ scp ໄລຍະໄກຕ້ອງໃຊ້ການຄັດລອກແບບບໍ່ຕ້ອງໃຊ້ລະຫັດຜ່ານ – ເນື່ອງຈາກ scp ບໍ່ສາມາດຮັບລະຫັດຜ່ານໄດ້ງ່າຍໆ, ພວກເຮົາຈຶ່ງປະມັນໄວ້ແບບນັ້ນ.

  • ບໍ່ມີຂໍ້ຄວາມສະແດງຂຶ້ນເມື່ອຕົວຢ່າງເຮັດວຽກສຳເລັດ, ມີພຽງແຖບຄວາມຄືບໜ້າຢູ່ມຸມຊ້າຍລຸ່ມທີ່ບອກຜູ້ໃຊ້ວ່າວຽກສຳເລັດແລ້ວ.

  • ພວກເຮົາໃຊ້ darktable.control.execute ເພື່ອເອີ້ນໃຊ້ໂປຣແກຣມພາຍນອກ. ການໃຊ້ os.execute ແບບປົກກະຕິຈະເຮັດໃຫ້ລະຫັດ lua ອື່ນໆຖືກຂັດຈັງຫວະ.

translations