สัปดาห์ก่อนมีโฟลเดอร์ก้อนหนึ่งส่งมา เป็นรูปสินค้า 312 ใบ ขนาดตั้งแต่ 800 × 800 ไปจนถึง 5472 × 3648 ปนกันทั้ง JPG, PNG และ HEIC อีกไม่กี่ไฟล์ มาร์เก็ตเพลสต้องการ JPG ขนาด 1600 × 1600 ไม่เกิน 2MB งานอีกแบบที่หน้าตาต่างออกไปคือการย้ายบล็อก ภาพประกอบ PNG สองร้อยภาพต้องแปลงเป็น WebP โดยจำกัดความกว้างที่ 1600 ดูเหมือนคนละงาน แต่จริง ๆ แล้วเป็นไปป์ไลน์เดียวกัน
ทำแยกทีละขั้นทำไมคุณภาพถึงตก
วิธีที่คิดตามสัญชาตญาณคือใช้เครื่องมือสามตัวต่อกัน ปรับขนาดแล้วดาวน์โหลด แปลงฟอร์แมตแล้วดาวน์โหลด บีบอัดแล้วดาวน์โหลดอีก ทุกตัวรองรับการทำเป็นชุด แต่ทุกตัวก็เข้ารหัสไฟล์ใหม่ทุกครั้งที่ทำเสร็จ JPG เป็นฟอร์แมตแบบสูญเสียข้อมูล การเข้ารหัสแต่ละครั้งทิ้งข้อมูลไปส่วนหนึ่ง และพอผ่านไปสามรอบ ซูมดูจะเห็นขอบเป็นบล็อกและสีเลอะรอบเส้นชัดเจน
วิธีที่ถูกต้องคือเข้ารหัสแค่ครั้งเดียวตอนท้าย รูปถูกถอดรหัสเป็นบิตแมป แล้วปรับขนาด ครอป และแปลงในหน่วยความจำ จนถึงขั้นสุดท้ายจึงเขียนไฟล์ตามฟอร์แมตและคุณภาพที่ต้องการ ประมวลผลรูปภาพเป็นชุด สร้างมาแบบนี้ มีหกขั้นตอนเรียงลำดับตายตัว และไม่มีขั้นที่สูญเสียข้อมูลคั่นอยู่ตรงกลาง

กรณีที่หนึ่ง: รูปสินค้า 300 ใบสำหรับมาร์เก็ตเพลส
เป้าหมายคือ 1600 × 1600, JPG, ไม่เกิน 2MB และมีชื่อร้านที่มุมขวาล่าง ทำทีละขั้นดังนี้
- ขนาด: เติมเต็ม 1600 × 1600 รูปแนวนอนหรือแนวตั้งจะถูกย่อหรือขยายให้พอปิดกรอบนี้
- ครอปตามสัดส่วน: 1:1 ส่วนที่เกินจากสี่เหลี่ยมจัตุรัสจะถูกตัดออกจากตรงกลาง รูปสินค้าที่ตัวสินค้าอยู่กลางภาพไม่ได้รับผลกระทบ
- ลายน้ำ: เปิดใช้ ใส่ชื่อร้านเป็นข้อความ ตำแหน่งขวาล่าง ขนาด 4 เปอร์เซ็นต์ ความโปร่งใส 50 เปอร์เซ็นต์
- เอาต์พุต: JPG, คุณภาพ 85 ตั้งชื่อไฟล์เป็น เปลี่ยนชื่อเป็น ชื่อ-001 โดยใช้รหัส SKU หรือหมวดหมู่เป็นคำนำหน้า
บนแล็ปท็อปทั่วไป รูป 312 ใบเสร็จในสามถึงสี่นาที ไฟล์ออกมาอยู่ที่ 200 ถึง 600KB ต่ำกว่าเพดาน 2MB มาก ไฟล์ HEIC ต้นฉบับอ่านได้โดยตรง ไม่ต้องแปลงก่อนอีกรอบ ZIP ที่ได้มีชื่อไฟล์เรียงเลขเป็นระเบียบ อัปโหลดได้ทันทีโดยไม่ต้องเปลี่ยนชื่อ
รูปสินค้าบางใบมีตัวสินค้าเยื้องไปจากกึ่งกลางมาก การครอปตรงกลางจะตัดส่วนสำคัญทิ้ง ให้แยกรูปพวกนี้ออกมา จัดเฟรมเองด้วยเครื่องมือครอปรูปภาพ แล้วค่อยรันผ่านไปป์ไลน์แยกต่างหาก ในชุดส่วนใหญ่รูปแบบนี้มีไม่ถึงหนึ่งในสิบ
กรณีที่สอง: ย้ายแกลเลอรีบล็อกไปเป็น WebP
เป้าหมายคือภาพประกอบทุกภาพเป็น WebP ความกว้างไม่เกิน 1600 และภาพแคปหน้าจอยังคมชัด ง่ายกว่ากรณีแรก
- ขนาด: ความกว้าง 1600 และปิดอนุญาตให้ขยายภาพ รูปที่แคบกว่านี้อยู่แล้วจะไม่ถูกแตะ
- เอาต์พุต: WebP, คุณภาพ 80
- ชื่อไฟล์: คงชื่อเดิม สิ่งเดียวที่ต้องแก้ในบทความคือนามสกุล จาก .png เป็น .webp
PNG สองร้อยไฟล์ที่แปลงด้วยวิธีนี้มักเบาลงมากกว่า 70 เปอร์เซ็นต์ สิ่งเดียวที่ต้องระวังคือโลโก้และไอคอนที่มีพื้นหลังโปร่งใส WebP รองรับความโปร่งใสและไปป์ไลน์เก็บช่องอัลฟาไว้ จึงไม่มีปัญหา แต่ถ้าปลายทางเป็น JPG ส่วนโปร่งใสจะถูกเติมสีขาว ไฟล์กลุ่มนั้นควรคงเป็น PNG
เสร็จแล้ว ลองเอาผลลัพธ์สองไฟล์ไปใส่ในเครื่องมือแปลงรูปภาพ เพื่อสุ่มดูว่าเปิดในเบราว์เซอร์รุ่นเก่าแล้วเป็นอย่างไร เป็นการยืนยันที่แทบไม่เสียอะไรเลย
เติมเต็ม พอดีกรอบ หรือด้านที่ยาวที่สุด
โหมดปรับขนาดคือค่าที่คนตั้งผิดบ่อยที่สุด สามโหมดยอดนิยมแต่ละโหมดเหมาะกับสถานการณ์เดียว
- ด้านที่ยาวที่สุด: คุณแค่ไม่อยากให้รูปใหญ่เกินไปและไม่ซีเรียสเรื่องสัดส่วน เหมาะกับรูปบล็อกและอัลบั้มแชร์
- พอดีกรอบ W × H: รูปทั้งใบต้องอยู่ในกรอบโดยไม่ถูกครอป ด้านใดด้านหนึ่งจึงอาจสั้นกว่ากรอบ เหมาะกับภาพขนาดย่อและสไลด์
- เติมเต็ม W × H: ต้องปิดกรอบให้เต็มและตัดส่วนที่ล้นออก เหมาะกับรูปมาร์เก็ตเพลส รูปโปรไฟล์ และการ์ดที่มีสัดส่วนตายตัว มักใช้คู่กับครอปตามสัดส่วน
กฎลัดคือ ถ้าแพลตฟอร์มเขียนว่า “ไม่เกิน N พิกเซล” ให้ใช้ด้านที่ยาวที่สุดหรือพอดีกรอบ ถ้าเขียนว่า “ต้องเป๊ะ W × H” ให้ใช้เติมเต็ม
สองอย่างที่ต้องเช็กก่อนกดรัน
อย่างแรก ดูพรีวิวสดก่อน ไปป์ไลน์จะเรนเดอร์รูปแรกพร้อมการตั้งค่าทั้งหมดที่ใช้อยู่ ตำแหน่งลายน้ำ การครอปที่อาจตัดโดนตัวสินค้า สีที่เพี้ยน เห็นได้ในพริบตา ยืนยันแล้วค่อยกดประมวลผลทั้งหมด อย่ามารู้ตอนทำเสร็จ 300 ไฟล์แล้วว่าชื่อร้านไปทับตัวสินค้า
อย่างที่สอง เก็บต้นฉบับไว้ ไปป์ไลน์ไม่แก้ไฟล์ต้นทางของคุณ แต่ไฟล์ที่เข้ารหัสใหม่จะไม่มี EXIF หรือข้อมูลการถ่าย จึงควรแน่ใจว่าต้นฉบับถูกเก็บไว้ที่ใดที่หนึ่งก่อนดาวน์โหลด ZIP สำหรับรูปที่ควรลบข้อมูลตำแหน่งอยู่แล้ว นี่กลับเป็นข้อดี อ่านเพิ่มเติมได้ที่EXIF metadata คืออะไร และทำไมควรลบ
การปรับขนาดและแปลงไฟล์เป็นชุดสรุปได้ในประโยคเดียว คือตั้งค่าครั้งเดียว รันทั้งชุด และไม่แตะดิสก์ระหว่างทาง ที่เหลือเป็นแค่การเลือกระหว่างโหมดปรับขนาดสามแบบกับฟอร์แมตเอาต์พุตสองแบบ
