ค้นหาข้อมูลในบล็อก (Search in this blog)

Wednesday, December 2, 2009

แปลงไฟล์จำนวนมากด้วยคำสั่งบรรทัดเดียว (ของฟรีและดีก็มีในโลก)

ไม่ได้เพิ่มเติมเนื้อใน Blog ตั้งหลายสัปดาห์เนื่องจากติดภารกิจสำคัญ วันนี้เลยขอแนะนำ การใช้งาน GDAL ที่น่าสนใจอย่างยิ่งอีกสักตัวอย่างนึง ซึ่งก็คือ การแปลงรูปแบบข้อมูลจากรูปแบบนึงไปเป็นอีกรูปแบบนึง ฟังดูอาจ งง งง งั้นขอยกตัวอย่าง เช่น การแปลงข้อมูล GeoTIFF ให้เป็น JPEG เป็นต้น
ฟังดูก็ง่ายๆนิ ไม่น่ามีปัญหาอะไร แต่ถ้าหากเราต้องการแปลงไฟล์จำนวนมากๆ (มากกว่า 1,000 ไฟล์) ละจะทำยังไงดี ต้องมานั่งพิมพ์คำสั่งทีละบรรทัด คงไม่ไหวมั้ง !!!
วิธีการที่จะแนะนำนี้ บางครั้งเราสามารถเรียกว่าเป็น batch processing ก็ได้นะครับ เรามาเริ่มกันเลยดีกว่า
ตัวอย่างผมมีไฟล์ภาพจำนวนมากในโฟลเดอร์ C:\myImage โดยเป็นไฟล์นามสกุล TIFF ทั้งหมด ปกติแล้วหากต้องการแปลงนามสกุลเราก็จะใช้ gdal_translate เช่น

>>gdal_translate -of JPEG abc.tif abc.jpg

แต่หากต้องการแปลงไฟล์จำนวนมาก เราสามารถใช้ batch processing เข้ามาช่วยได้ดังนี้

>> for %i IN (C:\myImage\*.tif) DO gdal_translate -of JPEG %i %~ni.jpg

เพียงเท่านี้ไฟล์ทั้งหมดภายใด้ C:\myImage ที่มีนามสกุล TIFF ก็จะถูกแปลงให้เป็น JPEG ทั้งหมดแล้วครับ !!!