gphoto2 again

ทดสอบ gphoto2 2.1.4 เพิ่มเติมพบว่ามันมีปัญหาเรื่องการโอนภาพที่ไม่ใช่ JPEG เลยทำให้ไม่สามารถโอนไฟล์ NEF raw ของ Nikon ได้ (หรืออาจจะ CRW raw ของ Canon ด้วย) .. hack อยู่พักใหญ่ .. มึน .. ยอมแพ้

แวะเข้าไปดู gphoto2 ก็เจอข่าวดี คือ gphoto 2.1.5 เพิ่งออก rc1 เมื่อไม่นานมานี้ แก้ปัญหาโอนไฟล์ raw แล้ว และเพิ่ม Nikon D70 เข้าไปแล้วด้วย .. แต่หลังจากเช็คดูก็พบว่ามันเพิ่มผิด ไปใส่ USB ID ของโหมด mass storage ในโหมด PTP (- -‘) .. วันนี้เลยทำแพตช์ (แก้ 1 character) ใส่เข้าไปในทะเลพร้อมกับส่งแพตช์เข้าที่ http://sourceforge.net/projects/gphoto .. ห้าชั่วโมงต่อมาก็ applied / closed ไปเรียบร้อย :)

มาต่อกันที่เรื่องโอนภาพ NEF raw จากกล้อง Nikon D70 .. ไฟล์ NEF (Nikon Electronic Format) เป็นไฟล์เก็บภาพแบบ raw ด้วยการ dump ค่าที่ได้จาก CCD มาบีบอัด (lossless) แล้วบันทึกลงไฟล์โดยไม่ผ่าน image processing/manipulation ด้วยซอฟต์แวร์ภายในกล้องเลย ในไฟล์จะบันทึกค่า parameter ต่างๆ ขณะถ่ายภาพ, tone curves, white balance, และ EXIF เพื่อมา post process ด้วยซอฟต์แวร์ในคอมพิวเตอร์ทีหลัง เรียกได้ว่าไฟล์ raw เป็นการเก็บโดยไม่เสียคุณภาพเลย CCD วัดได้ยังไงก็เก็บอย่างนั้น .. เนื่องจากไฟล์ raw มักมีขนาดใหญ่ (NEF ~ 5-6 MB / 6 megapixels) และเป็น proprietary format ไฟล์ raw เลยมักจะฝัง thumbnail ไว้ใน EXIF ตรงหัวไฟล์เพื่อให้ preview ได้ก่อนจะโหลดออกมาจากกล้อง กรณีของ NEF thumbnail จะเก็บเป็น TIFF (Tagged Image File Format)

เท่าที่ลองบนลินุกซ์ Nautilus จะ recognize *.nef เป็น TIFF คงเพราะ Nautilus มันสแกนไฟล์แล้วไปสะดุดที่ thumbnail เวลา browse ไฟล์ *.nef ใน Nautilus เลยแสดง thumbnail ขึ้นมาให้ดูด้วย อีกโปรแกรมที่แสดง thumbnail ใน NEF ได้คือ gtkam ซึ่งเป็น GUI frontend ของ gphoto2 สำหรับโอนภาพจากกล้องดิิจิทัล .. กรณี gtkam สังเกตได้ว่ามันอ่านไฟล์จากกล้องและแสดง thumbnail ได้เร็วมาก เข้าใจว่ามันใช้วิธีสั่งคำสั่งผ่าน PTP ไปที่กล้องให้โอนเฉพาะ thumbnail มาแสดงก่อน เพื่อให้ผู้ใช้เลือกโอนไฟล์ในภายหลัง .. ส่วน gthumb --import ไม่รู้จัก NEF และจะไม่แสดงไฟล์ *.nef มาให้เลือกเวลาโอนไฟล์ .. หลังๆ ชักไม่ชอบ gthumb อืดเหลือเกิน กินหน่วยความจำเยอะด้วย ..

บันทึกบล็อกเรื่อง Nikon D70 กับลินุกซ์บ่อยๆ นี่สงสัยจะได้เขียนเป็นเรื่องเป็นราวสักวัน :P