วันอาทิตย์ที่ 21 มีนาคม พ.ศ. 2553

แปลง pdf file ไปเป็น jpg อย่างง่ายด้วย ImageMagick

     วันนี้ คุณอิน ต้องการสั่งซื้อสินค้าทางInternet หลังจากโอนเงินทางInternet Banking แล้ว ก็สั่งพิมพ์ใบโอนเก็บไว้เป็นไฟล์PDF ผ่านทางMenu พิมพ์ ของFirefox
     ทีนี้พอแจ้งการชำระเงินผ่านทางหน้าWeb ก็มีช่องให้Upload ไฟล์ใบโอนเงินไปได้ด้วย เลือกเสร็จสรรพ ก็กด ปุ่ม ตกลง
     ERROR อ่ะครับ... มีข้อความแจ้งว่า ให้Upload เป็นไฟล์ jpg เท่านั้น กรรม...
ทำไงล่ะทีนี้... อ๋อ.. นึกออกแล้ว ลองแปลงจาก PDF ไปเป็น JPG อย่างง่ายๆเลยดีกว่า
     ImageMagick เป็นคำตอบสุดท้าย สำหรับผม ซึ่งใช้ Gimp ไม่เป็นอ่ะ สั่งง่ายๆเลย ดังนี้
$convert Input.pdf Output.jpg

แค่นี้จริงๆครับ แป๊บเดียวเลย ได้ไฟล์รูปภาพ JPG ออกมาแล้ว Upload ได้เลย จบข่าว...
     convert เป็นคำสั่งที่ใช้ในการแปลงไฟล์ ได้หลากหลายรูปแบบมากๆ บนUnix และ Linux ที่ไม่ซับซ้อนมากนัก โดยเฉพาะมือใหม่อย่างผม (ก็ยังไม่เก่งซักทีอ่ะ เฮ้อ...)

     ศึกษาการใช้งานต่อได้ที่นี่ครับ Examples of ImageMagick Usage

วันศุกร์ที่ 19 มีนาคม พ.ศ. 2553

Sound Recorder อย่างด่วน กับ SoX ฉบับผมเอง

     ช่วงนี้ คุณอิน กำลังฝึกร้องเพลงสากล จากclip ใน Youtube ที่โหลดมา ทำไปทำมา เกิดอยากอัดเสียงร้อง ของตัวเองไว้ฟัง =="   งานเข้าละสิ...
     ค้นไปค้นมา... เจอล่ะ SoX ครับ ง่ายสุด (ยังไม่ได้หัดใช้ Audacity ซักกะที...)
พอดีว่า เคยลง sox ไว้นานแล้ว เพื่ออาศัยเปิดไฟล์ ogg ตอน Startup IceWM ให้มีเสียงเพลงนำ เหมือนใน Gnome หรือ KDE ไง
     ขั้นแรก ต้องมี sox ในเครื่องก่อนครับ สำหรับ FreeBSD ลงผ่านports ได้เลย ;-)
#cd /usr/ports/audio/sox && make install clean
แล้วเลือก options ที่ต้องการทั้งหมดไปเลย
     จากนั้น ให้เสียบ Microphone เข้าช่องสำหรับ Microphoneที่จะใช้บันทึกเสียง แล้วก็ปรับระดับเสียง สำหรับ Microphone และ ระดับเสียงสำหรับ บันทึกเสียง
สำหรับผม ซึ่งใช้ mixer เป็นตัวจัดการระดับเสียงที่ติดมากับ FreeBSD อยู่แล้วก็สั่งดังนี้
$mixer mic 75:75
$mixer rec 75:75
นั่นคือ ปรับระดับเสียงของ microphone ไปอยู่ที่ 75(จาก scale 100) และ ระดับความดังการบันทึกเสียงไปที่ 75 เหมือนกัน สำหรับค่านี้ ก็ลองปรับเองดูนะครับ ตามสะดวก
     เสร็จแล้ว ก็เตรียมบันทึกเสียงกันเลย ผมใช้ชุดหูฟังที่มา microphone มาด้วยในตัวธรรมดา เพื่อเปิดเพลงให้คุณอินฟังไปด้วย พร้อมกับอัดเสียงร้องไปด้วย พอเปิดเพลง ก็เริ่มอัดเสียงโดยคำสั่งนี้
$rec hero_01.ogg
แค่นี้จริงๆครับ พอคุณอินร้องจบ ก็หยุดบันทึกโดยการ กด Ctrl+C ครับ เสร็จแล้ว มาลองฟังกันดู ก็สั่ง...
$play hero_01.ogg
เรียบร้อย ฟังผลงานตัวเองดูนะ คุณอิน อิอิ
      สำหรับ rec และ play ก็เป็นfrontend ของ sox นั่นเอง และ ชื่อไฟล์.ogg ก็เปลี่ยนตามสะดวกนะครับ file เสียงที่ได้ก็เป็น OGG ไฟล์ครับ
     commandline นี่... มันสะดวกโครตๆเลยแฮะ ;-) จิงดิ...

วันศุกร์ที่ 12 มีนาคม พ.ศ. 2553

MultiMedia Keys กับ IceWM ใน FreeBSD (ฉบับทดลอง)

     สงสัยมานานแล้วครับ ว่า ปุ่ม Function ต่างๆ เช่น F1-F12 บนKeyboard ของ Notebook M2000 ของผมเนี่ย จะใช้งานอะไรได้บ้าง เพราะถ้าเป็นWindows XP(เถื่อน)ที่ติดเครื่องมา คงใช้ได้เต็มประสิทธิภาพแน่
     แต่ทีนี้ทั้ง Ubuntu เอย FreeBSDของเราเอย จะทำให้ปุ่มเหล่านี้ใช้งาน(ไม่เป็นง่อย)ได้ยังไงนะ...
ก็อีกแล้วครับ Google is Your Friend Again... หาไปหามาก็ชักได้เรื่อง...
     เครื่องมือของเรา ซึ่งติดมากับ Xorg อยู่แล้ว คือ xev และ xmodmap นั่นเอง...

เท่าที่ลองทำดู หลักการก็ประมาณว่า  หาหมายเลขประจำปุ่ม หรือ keycode แล้วเอามา map หรือ ผูกกับ คำสั่งใช้งาน หรือ command สำหรับ Application หรือ Utility ต่างๆ สำหรับผม ลองใช้กับ IceWM ซึ่งเป็น Window Manager ที่ชอบมากๆ เพราะปรับใช้ปุ่มต่างๆได้โดยตรงผ่าน ไฟล์ ~/.icewm/keys

     ขั้นแรก ตรวจสอบการ map key ของkeyboard ก่อนด้วย คำสั่งดังนี้
$xmodmap -pke
จะเห็นรายการ Mapping ทั้งหมดของ keyboard ตัวอย่างเช่น
...
keycode  57 = n N Thai_sarauee Thai_thanthakhat
...
     ขั้นต่อมา หาค่า keycode ของปุ่มพิเศษที่ต้องการใช้งาน เช่นปุ่ม เพิ่มระดับเสียง, ลดระดับเสียง, ปุ่มMute เป็นต้น โดยใช้ โปรแกรม xev โดยสั่งทาง xterm หรือ terminal ดังนี้
$xev
     ก็จะมีหน้าต่างเล็ก สำหรับรอรับเหตุการณ์ เช่น Mouse Click ให้ทดลองกดปุ่ม เร่งเสียงดู จะมีข้อความปรากฏขึ้น แสดงรายระเอียดของปุ่มที่กด ในขณะกด และ ปล่อย ดังรูป

     จะเห็นว่า ค่า keycode ของปุ่มลดเสียง คือ 174 นั่นเอง ส่วน ปุ่มเพิ่มเสียง กับ ปุ่มMute คือ 176 และ 140 ตามลำดับ(เฉพาะเครื่องของผมนะครับ ของท่านอาจเป็นค่าอื่น)
     เมื่อได้ค่า keycode มาแล้ว ต่อไปก็ตั้งชื่อปุ่มครับ การตั้งชื่อก็ให้มีความหมายเข้าใจได้ เช่น RaiseVOL, LowerVOL, Mute เป็นต้น แต่ถ้าจะให้ดี และ เข้ามาตราฐาน XF86 (เผื่อโปรแกรมอื่น ได้ใช้งานได้ด้วย)สามารถไปดูรายชื่อปุ่มต่างๆ ได้ในไฟล์ XKeysymDB (/usr/local/lib/X11/XKeysymDB)
     ได้ชื่อมาแล้ว ต่อไปก็นำมาผูกเข้าด้วยกันโดยการ สร้างไฟล์ชื่อ '.Xmodmap' ขึ้นมาที่ User Home directoryของเรา (~/.Xmodmap) (มี "."อยู่ข้างหน้า เพราะเป็น Hidden File(ซ่อนเอาไว้)) โดยมีรูปแบบดังนี้
...
keycode 140 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
...
เสร็จแล้วบันทึก แล้วก็ทำในขั้นต่อไป
สำหรับ ทั้ง 3ปุ่มที่พูดถึง ผมจะหยุดแค่ขั้นตอนนี้ เพราะ โปรแกรมMultimedia บางตัว เช่น Gmplayer จะรู้จักปุ่มทั้ง 3 แล้ว แต่บางตัว เช่น xmms ยังไม่รู้จัก แต่ ก็สามารถทำให้รู้จักได้ โดยการลงpackage เสริมคือ xmms-xf86audio (/usr/ports/audio/xmms-xf86audio)เป็นต้น
     จะยกตัวอย่างปุ่มอื่นๆ เช่น Fn+F3 (กดปุ่ม Fnค้างไว้ แล้วกด F3ตาม) คือปุ่มที่มีเครื่องหมาย www ซึ่งจะทำให้เรียกโปรแกรมFirefox webbrowserขึ้นมา ซึ่งมี keycode = 178
     เพิ่มใน ~/.Xmodmap ดังนี้
keycode 178 = XF86WWW
จากนั้น ใช้ vi editor เปิด ไฟล์ ~/.icewm/keys ขึ้นมา
$vi ~/.icewm/keys
พิมพ์ "G" ตามด้วย "o" แล้ว พิมพ์เพิ่ม บรรทัดนี้
key      "XF86WWW"     firefox3
Saveไฟล์ โดยพิมพ์ :wq! แล้ว กด Enter

     สุดท้าย ทำการแก้ไขเพิ่มข้อความนี้ในไฟล์ ~/.xintrc เพื่อให้ xmodmap ทำงาน กับ ~/.Xmodmap
xmodmap $HOME/.Xmodmap
แล้ว Reboot 1ครั้ง  แล้ว Login เข้ามาใหม่ เพื่อทดสอบ โดย ลองกด Fn+F3 ดู แล้ว ลุ้น...
     แว๊งสสสสส์... Firefox มาแว้วววว...

สามารถอ่านเพิ่มเติม ได้จาก ที่นี่ ครับ