ลาที RMagick, สวัสดี Ruby-GD2


KnowledgeVolution ที่เราใช้งานกันอยู่นี้ มีการประมวลผลรูปภาพอยู่พอประมาณทีเดียวครับ นอกจากนี้ความสามารถที่เราเล็งไว้ว่าจะพัฒนาเพิ่มเติมต่อเนื่องไปนั้น ก็จะมีการประมวลผลรูปภาพค่อนข้างจะเยอะทีเดียว เพราะเราเชื่อว่า visualization เป็นวิธีการที่ดีในการให้ผู้ใช้เข้าถึงข้อมูลได้ โดยเฉพาะในกลุ่มข้อมูลที่มีปริมาณมากๆ อย่างเช่นบันทึกต่างๆ ใน GotoKnow.org ซึ่งปัจจุบันก็มีจำนวนเป็นหลักเกินห้าหมื่นบันทึกไปแล้ว

ในส่วนการประมวลผลรูปภาพของ KnowledgeVolution นั้น พวกเราใช้ RMagick ซึ่งเป็น Ruby library ในการติดต่อเพื่อใช้งาน ImageMagick (หรือ GraphicsMagick) ซึ่งเป็น C library ในการประมวลผลรูปภาพ

อย่างไรก็ตาม RMagick ดูเหมือนจะมีปัญหาในการติดตั้งไม่น้อยทีเดียว ผมใช้ FreeBSD สามารถใช้งานได้ไม่มีปัญหา แต่บน Mac OS X ก็มีปัญหาไม่น้อย บน Windows นั้นติดตั้งไม่ยากแต่ก็มีปัญหาในการใช้งานอยู่ ส่วนบน Ubuntu ก็ได้ข่าวแว่วๆ มาว่ามีปัญหาเช่นเดียวกัน

นอกจากนี้ RMagick ยังมีปัญหาในการพัฒนาอยู่ด้วย เท่าที่ผมติดตามข่าวรู้สึกว่าผู้พัฒนาจะสื่อสารกับกลุ่มผู้ใช้ไม่ดีนัก ทำให้การแก้ปัญหาต่างๆ ของ RMagick ไม่รวดเร็วคืบหน้าไปอย่างที่ควร ปัญหาที่สำคัญอาทิเช่น RMagick ส่งผลให้ memory leak ในบาง settings ก็ดูเหมือนจะแก้ไม่หมด

เราจึงตัดสินใจเปลี่ยนมาใช้ GD ผ่าน Ruby-GD2 ครับ โดย GD เป็น Graphics Library ที่ "fancy" น้อยกว่า ImageMagick หรือ GraphicsMagick แต่ก็เป็นที่นิยมใช้กันแพร่หลาย แถมยังติดตั้งง่ายกว่าด้วย ส่วนเรื่องความเร็วในการประมวลผลนั้น ก็เทียบกันได้ ไม่ดีกว่าน้อยกว่ากันสักเท่าไหร่นัก

ดังนั้นสำหรับท่านที่พยายามติดตั้ง KnowledgeVolution แล้วติดปัญหาในการติดตั้ง RMagick ตอนนี้ขอให้ทดลองใหม่นะครับ เราเปลี่ยนมาใช้ Ruby-GD2 แล้ว เชื่อว่าติดตั้งได้ง่ายกว่าเดิมครับ
คำสำคัญ (Tags): #graphics#gd#rmagick#knowledgevolution
หมายเลขบันทึก: 52736เขียนเมื่อ 30 กันยายน 2006 16:55 น. ()แก้ไขเมื่อ 20 มิถุนายน 2012 10:14 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (11)

ขอขอบคุณท่านอาจารย์ธวัชชัย และทีมงาน Go2Know ทุกท่าน...

  • เรื่องทางเทคนิคของ KnowledgeVolution เป็นเรื่องลึกซึ้ง
  • ทว่า... ความตั้งใจจริง และความปรารถนาดีของทีมงาน G2K เป็นเรื่องที่น่าชื่นชมยินดี
  • ขอขอบพระคุณทีมงาน G2K ทุกท่านที่มอบสิ่งดีๆ ให้กับสังคมไทย และลาว

ตอนนี้มีสมาชิก G2K ชาวลาว ดูจะเป็นนักศึกษามหาวิทยาลัยอุบลราชธานี)ครับ...

เรียนท่านอาจารย์หมอวัลลภครับ พวกเรายินดีอย่างยิ่งที่มีผู้ใช้ชาวลาวมาด้วยครับ

ระบบเราใช้ unicode หมายความว่าผู้ใช้ชาวลาวสามารถพิมพ์ตัวอักษรลาว (จากเครื่องคอมพิวเตอร์ที่ได้ติดตั้งระบบการพิมพ์ภาษาลาวไว้แล้ว) เพื่อแสดงผลในภาษาลาวได้ครับ และ web browser ใหม่ๆ เดี๋ยวนี้ก็แสดงตัวอักษรแบบ unicode ได้ดีมากครับ

ขอขอบพระคุณอาจารย์ธวัชชัย...                     

  • บันทึกของชาวลาวมี 2 บล็อก > 1 บันทึก
  • เป็นบันทึกภาษาไทย
  • เชิญคลิกชมได้ที่นี่...
  • http://gotoknow.org/blog/aspy/32740 

ผมเชื่อมั่นว่า ต่อไป G2k จะมีประโยชน์ต่อชาวลาวเช่นเดียวกับชาวไทย เนื่องจากภาษาใกล้เคียงกันมาก

  • ยิ่งทราบจากท่านอาจารย์ว่า G2k แสดงผลเป็นภาษาลาวได้... ยิ่งน่าชวนชาวลาวมาแลกเปลี่ยนเรียนรู้กันครับ
  • ขอขอบพระคุณ
ยินดีที่ GotoKnow มีประโยชน์ไม่ว่าจะเป็นภาษาไหนๆ ครับ
  • มาขอบคุณที่ทำให้ gotoknow มีการพัฒนาไปมากครับ
  • ขอบคุณมากครับผม

ผมกำลังมีปัญหากับ rmagick ใน kv 2310 ค้นเข้ามาเจอบันทึกเก่านี้ งงเหมือนกันว่าไม่ได้ใช้ ImageMagicK แล้ว ซึ่งถ้าดูตามการติดตั้งที่แนะนำโดยคุณสุกัญญาใน http://knowledgevolution.org/pages/3204/ ก็ยังเห็น list ของ gem rmagick 2.8.0 และไม่เห็น gem gd2 ด้วยซ้ำ ก็เลยสงสัยว่า ตอนนี้ kv 2310 ใช้ rmagick อยู่หรือแปล่าครับ เพราะผมพยายามติดตั้ง Imagemagick รุ่นล่าสุดบนวินโดส์เพื่อแก้ปัญหาเกี่ยวกับ captcha ที่ไม่ยอมสร้างให้ ก็ปรากฏว่าติดปัญหาบางอย่างอย่างที่ อจ.บอกเลยครับ มันไม่ smooth นัก

บันทึกนี้เป็นบันทึกเก่าครับ ตอนนี้เรากลับมาใช้ RMagick อีกครั้งแล้วครับ เพราะทำงานได้ดีกว่าครับ

ผมทราบคำตอบแล้วครับ KV 2310 ยังคงใช้ rmagick อยู่ ซึ่งผมติดตามเข้าไปดูในฟอรัมของ rmagick พบว่า เขาใช้ VC 2008 ในการคอมไพล์ และ rmagick เองไม่ได้ให้ dll มาครบ เขาแนะนำให้ใช้เวอร์ชันที่คอมไพล์โดย VC 2005 โดยไปที่ http://rubyforge.org/frs/download.php/46136/RMagick-2.7.1-ImageMagick-6.4.5-3-Q8.zip ผมใช้กับ Ruby 1.86 บนวินโดว์ ใช้ได้ดีทีเดียว แต่ยังมี bug ตัวเดิมคือไฟล์รูปที่ส่งขึ้นตัวจริงจะเสีย แต่ตัวที่มันย่อภาพขนาดต่างๆกันจะถูกต้องทั้งหมดเลย ผมเคยถามประเด็นนี้แล้วว่าเป็นเพราะ open ไฟล์รูปตัวจริงหลังอัปโหลด ทำงานแปลงภาพเสร็จแล้ว ไม่ได้ close ไฟล์หรือเปล่า แต่ก็อีกแหละ มันเป็นเฉพาะบนวินโดว์นะครับ ขาดตรงนี้นิดเดียวครับ บนวินโดว์ก็จะใช้งาน KV ได้จริงๆเสียที ซึ่งถ้าใช้ได้แล้ว ผมจะได้ถ่ายทอดประสบการณ์การติดตั้งบนวินโดว์โดยละเอียดให้ เพราะติดตั้งไม่ยากอะไรเลย แค่ทำตามขั้นตอนต่างๆ เท่านั้น ใน KV เวอร์ชันแรกๆ ผมติดตั้งบนวินโดว์แล้วใช้งานอัปโหลดรูปภาพได้อย่างถูกต้อง ผมใช้ในอินทราเน็ตจริงๆ อยู่พักหนึ่งด้วย จนกระทั่งในตอนหลังนี้แก้ปัญหาโหลดรูปภาพ แล้วภาพจริงเสีย ไม่ได้ซักที ก็เลยงดใช้บนวินโดว์ไป ผมแทรกรูปภาพมาให้ดูด้วยตามลำดับ ภาพที่อัปโหลดในเครื่องพีซี ภาพที่เสียหลังอัปโหลด ภาพที่ถูกแปลงหลังอัปโหลดสองภาพ

 

ผมทราบคำตอบแล้วครับ KV 2310 ยังคงใช้ rmagick อยู่ ซึ่งผมติดตามเข้าไปดูในฟอรัมของ rmagick พบว่า เขาใช้ VC 2008 ในการคอมไพล์ และ rmagick เองไม่ได้ให้ dll มาครบ เขาแนะนำให้ใช้เวอร์ชันที่คอมไพล์โดย VC 2005 โดยไปที่ http://rubyforge.org/frs/download.php/46136/RMagick-2.7.1-ImageMagick-6.4.5-3-Q8.zip ผมใช้กับ Ruby 1.86 บนวินโดว์ ใช้ได้ดีทีเดียว แต่ยังมี bug ตัวเดิมคือไฟล์รูปที่ส่งขึ้นตัวจริงจะเสีย แต่ตัวที่มันย่อภาพขนาดต่างๆกันจะถูกต้องทั้งหมดเลย ผมเคยถามประเด็นนี้แล้วว่าเป็นเพราะ open ไฟล์รูปตัวจริงหลังอัปโหลด ทำงานแปลงภาพเสร็จแล้ว ไม่ได้ close ไฟล์หรือเปล่า แต่ก็อีกแหละ มันเป็นเฉพาะบนวินโดว์นะครับ ขาดตรงนี้นิดเดียวครับ บนวินโดว์ก็จะใช้งาน KV ได้จริงๆเสียที ซึ่งถ้าใช้ได้แล้ว ผมจะได้ถ่ายทอดประสบการณ์การติดตั้งบนวินโดว์โดยละเอียดให้ เพราะติดตั้งไม่ยากอะไรเลย แค่ทำตามขั้นตอนต่างๆ เท่านั้น ใน KV เวอร์ชันแรกๆ ผมติดตั้งบนวินโดว์แล้วใช้งานอัปโหลดรูปภาพได้อย่างถูกต้อง ผมใช้ในอินทราเน็ตจริงๆ อยู่พักหนึ่งด้วย จนกระทั่งในตอนหลังนี้แก้ปัญหาโหลดรูปภาพ แล้วภาพจริงเสีย ไม่ได้ซักที ก็เลยงดใช้บนวินโดว์ไป ผมแทรกรูปภาพมาให้ดูด้วยตามลำดับ ภาพที่อัปโหลดในเครื่องพีซี ภาพที่เสียหลังอัปโหลด ภาพที่ถูกแปลงหลังอัปโหลดสองภาพ

 

ต้องขอโทษที่ post ซ้ำโดยไม่ตั้งใจ เพราะเพียงแค่กด ctrl+F5 เพื่อ refresh หน้าจอดูข้อมูลใหม่ กลับถูกถามว่าจะส่งซ้ำหรือไม่ ทั้งที่เป็นเพจเดิมที่อยู่ในสถานะ view อยู่ (แต่ระบบยังจำเป็น post) พอกด yes ก็เลยเป็นอย่างที่เห็นครับ

ผมให้ข้อมูลเพิ่มเติมครับ คือ tract เข้าไปในไฟล์ kv พบว่า ไฟล์ที่อัปโหลดขึ้นไปทีแรกในไดเรกทอรี uploads มีขนาดถูกต้องและอ่านภาพได้ถ้าลองเปลี่ยนชื่อไฟล์ให้มีนามสกุลที่ถูกต้อง แต่ว่าไฟล์ฉบับที่ copy มาไว้ในไดเรกทอรี file/user_name เช่น file/pannawish พบว่าตรงนั้นเป็นไฟล์เสียครับ อย่างนี้น่าจะแก้ได้ไม่ยากนะครับ เพราะไม่น่าจะเกี่ยวอะไรกับการทำงานของ imagemagick (เพราะเท่าที่ดูในโค้ด controller ใช้การ call magick เฉพาะตอนทำภาพ thumbnail และ preview เท่านั้น)

ใช่ครับ ที่จริงแล้วสำหรับภาพจริงที่ระบบ copy มาที่ cache นั้นไม่ได้มีการแปลงภาพเลยครับ

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท