ใครที่เป็นนักพัฒนา Front-end อยู่มีสิ่งหนึ่งที่ผมโครตอยากจะให้เพิ่มความรู้เกี่ยวกับรูปเข้าไปด้วย เพราะเว็บนั้นส่วนใหญ่จะประกอบไปด้วยรูปภาพแทบจะ 50% - 80% ของทั้งเว็บเลย ซึ่งหากเราเข้าใจว่ารูปภาพที่นำมาใช้นั้นในแต่ละส่วนควรเรื่องแบบไหนถึงจะเหมาะสม มันจะทำให้เว็บเรานั้นมีการโหลดได้เร็วขึ้น

ผมเคยนั่งปรับเว็บให้จาก google page speed จาก 30 คะแนน ได้มาเกือบ 80 คะแนน ก็เพราะเพียงแค่บริหารรูปภาพที่อยู่ในเว็บให้ดีขึ้น!!!

จากประสบการณ์นักพัฒนา Front-end โดยส่วนใหญ่พอได้รูปจาก Designer มาแล้วก็ชอบนำมาใช้เลยทันที ไม่สนหรอกว่าขนาดเท่าไร นามสกุลอะไร ขอให้เอามา Dev ได้พอ ซึ่งมันเป็นวิธีที่ผิดมากกกกกกก

และส่วนมาก 80% นักพัฒนา Front-end ที่เจอมาไม่มีพื้นฐานเรื่องรูปเลยครับ ไม่รู้เลยว่าบีบอัดรูปได้ ไม่รู้เลยว่า resize รูปยังไง คือผมแบบ What!!!

ดังนั้นพวกท่านจงเรียนรู้เรื่องรูปเถอะ ขอร้องงงงง

1. ต้องบีบอัดไฟล์รูปเสมอ

รูปที่ได้มาจากพวก Designer หรือจากลูกค้าส่วนใหญ่จะได้มาแบบเต็มหน่วยเลย โครตชัด โครตใหญ่ เช่น รูปขนาด 6000x4000 ขนาดไฟล์ 7mb จากนั้น Dev ก็จัดใส่เว็บเลยจ้าาาา ตอนพัฒนาบนเครื่องมันโหลดไวไงเลยไม่ได้คิดอะไรมาก พอเอาขึ้นไปจริงโหลดช้าดิเพราะคนดูเว็บตองโหลดไฟล์ขนาด 7mb มาดูทุกครั้ง

แนวทางแก้ไขคือเมื่อได้รูปมาให้ดูเลยว่าขนาดไฟล์เท่าไร

จากประสบการณ์ทุกรูปที่ใช้บนเว็บไม่ควรมีขนาดไฟล์เกิน 500 kb - 1 mb ต่อ 1 รูป แล้วถ้ารูปที่นำมาใช้เพื่อเป็นไอคอนไม่ควรเกิน 200 kb ต่อ 1 รูป

ถ้ามากกว่าที่ผมแนะนำไม่ต้องเอามาใช้ ให้นำไปบีบอัดไฟล์ก่อนเลย ส่วนเครื่องมือที่ผมใช้อยู่มีดังนี้

  • Imageoptim - เป็น app ของ macos
  • Caesium - เป็น app ของ windows

App พวกนี้ใช้ฟรี พอติดตั้งเสร็จก็แค่โยนไฟล์รูปไปให้มันแล้วคลิก 1 คลิก จบ...รูปคุณจะถูกบีบอัดขนาดมาให้โดยที่คุณภาพไม่เสียด้วย

หรือใช้ Photoshop หรือ Gimp โปรแกรมแต่งรูปพวกนี้มา Save ไฟล์ใหม่ โดยหลักการคือตอนเราบันทึกใหม่ มันจะให้เราสามารถปรับขนาด Quatity ของรูปได้ว่าจะเอาเท่าไร ผมแนะนำที่ 75 พอสำหรับเว็บไซต์

โปรแกรม Gimp
โปรแกรม Gimp
อีกวิธีคือ Save for web ใน Gimp

แค่นี้เราก็จะได้รูปที่ขนาดเล็กแต่คุณภาพยังชัดเจนอยู่

2. ไฟล์ png หรือ jpg เลือกใช้ให้ถูก

ไฟล์รูปที่นำมาใช้ส่วนมากจะเป็น png หรือไม่ก็ jpg เรามาดูคุณสมบัติก่อนว่าแต่นามสกุลมันดียังไง

  • png - รูปโปร่งใสได้ เช่น ไอคอน ต่าง ๆ แต่เคลื่อนไหวไม่ได้
  • jpg, jpeg - รูปทั่ว ๆ ไป โปร่งใสไม่ได้ และเคลื่อนไหวไม่ได้
  • gif - รูปได้ทั้งโปร่งใส และเครื่องไหวได้

ในส่วนขนาดไฟล์รูปของแต่ละนามสกุลเรียงจากมากไปน้อยคือ gif > png > jpg

เมื่อเรารู้แล้วว่ารูปแต่ละนามสกุลมีคุณสมบัติยังไง เราก็ควรเลือกใช้รูปจากตามคุณสมบัติเหล่านั้น ดังนี้

  • รูปไหนที่ไม่ต้องการโปร่งแสงใช้ jpg
  • รูปไหนต้องการโปร่งแสงใช้ png
  • รูปไหนต้องกรขยับได้ใช้ gif

ดังนั้นเราจะสังเกตุว่ารูปภาพโดยส่วนใหญ่ของเว็บจะเป็นแบบไม่โปร่งแสงเราก็ควรเลือกแบบ jpg เพื่อที่ขนาดไฟล์จะได้เล็กลง ส่วนรูปไอคอนก็ png ไป และสุดท้าย gif ไม่นิยมมาใช้เพราะมันมีขนาดใหญ่ ซึ่งในการทำให้รูปขยับได้ หรือทำ animation ของรูป ณ. ปัจจุบันเราจะใช้ png แล้วให้ css ทำ animation แทน

พอ Front-end รู้เรื่องรูปละก็สามารถไปตบตีกับ Designer ได้ละว่าจะให้เขา export รูปแบบไหนมา ผมเคยเจอ Designer ดัน export มาทุกรูปเป็น png หมด ดังนั้นถ้าเราขี้เกียจไปคุย เราสามารถทำเองได้โดยใช้ Photoshop หรือ Gimp ทำการ Export ออกมาเป็นนามสกุลที่เราต้องการ

การบันทึกรูปเป็นนามสกุลต่าง ๆ ของ Gimp

3. resize และ crop รูปให้เป็น

ไม่น่าเชื่อว่า Front-end ไม่รู้จักวิธีการ Resize หรือ Crop รูปเอง พอได้รูปมาจาก Designer ถ้าไม่ถูกต้องตามต้องการก็ต้องรอให้ Designer ไปแก้ ซึ่งผมมองว่าเสียเวลามากถ้ามันผิดแค่ขนาด สิ่งเหล่านี้ Front-end ควรทำเองได้ โดยใช้โปรแกรม Photoshop หรือ Gimp ดู youtube เอาละกัน

การ Resize และ Crop ใน Gimp

3 อย่างนี้ผมมองว่ามันคือพื้นฐานของนักพัฒนา Front-end เลยว่า ควรต้องเรียนรู้ และมันก็ใช้เวลาไม่มากด้วย ง่ายกว่าเขียนโค็ดอีก หึหึ ไม่ใช่บอกแต่ว่าเขียนโค็ดอย่างเดียวก็พอ...