ไทย

รูปภาพและภาพถ่าย · โปรแกรมแก้ไขรูปภาพและภาพวาดของเบราว์เซอร์

การครอบตัด JPEG แบบไม่สูญเสียเทียบกับการครอบตัดเบราว์เซอร์: เหตุใดจึงมีการเข้ารหัสใหม่

· พื้นหลัง

การแก้ไขภาพ ผ้าใบ การประมวลผลเบราว์เซอร์

ภาพประกอบแรสเตอร์แบบนามธรรมสำหรับการครอบตัด JPEG แบบไม่สูญเสียเทียบกับการครอบตัดเบราว์เซอร์: เหตุใดจึงมีการเข้ารหัสใหม่
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

เครื่องมือบรรทัดคำสั่งสามารถครอบตัด JPEG โดยไม่ต้องถอดรหัส แต่เฉพาะบนตาราง 8- หรือ 16 พิกเซลเท่านั้น ตัวแก้ไขเบราว์เซอร์ถอดรหัสและเข้ารหัสใหม่แทน โพสต์นี้จะอธิบายว่าทำไมจึงมีทั้งสองวิธีและวิธีจำกัดการสูญเสียคุณภาพเมื่อคุณต้องเข้ารหัสอีกครั้ง

ครอบตัดสองส่วน สองขนาดไฟล์ — สี่เหลี่ยมผืนผ้าเดียวกันตัดสองวิธีสร้างไฟล์ที่แตกต่างกัน และเหตุผลอยู่ในรูปแบบ JPEG เอง

การครอบตัด JPEG สองรายการสามารถมีขนาดเท่ากันและยังคงสร้างลำดับไบต์ที่แตกต่างกัน สี่เหลี่ยมผืนผ้าอาจเหมือนกันในขณะที่ตัวเข้ารหัสเขียนตาราง ส่วนหัว ค่าเชิงปริมาณ หรือข้อมูลเมตาที่แตกต่างกัน ความแตกต่างที่สำคัญคือเส้นทางที่ดำเนินไป บางครั้งยูทิลิตี้ JPEG ที่ไม่มีการสูญเสียสามารถจัดเรียงบล็อกที่บีบอัดใหม่ได้ ในขณะที่ตัวแก้ไขนี้จะถอดรหัสรูปภาพ คัดลอกพิกเซลลงในเลเยอร์แรสเตอร์ และขอให้ canvas.toBlob เข้ารหัสไฟล์ใหม่

ทดสอบความแตกต่างดังกล่าวด้วยการสแกนซ้ำแทนการสแกนที่ไม่สามารถทดแทนได้ ครอบตัดสี่เหลี่ยม ส่งออก และเปรียบเทียบขนาด ขอบที่มองเห็นได้ และขนาดหยดที่วัดได้ JPEG คุณภาพถูกส่งผ่านไปยังตัวเข้ารหัสของเบราว์เซอร์ PNG ไม่ได้รับอาร์กิวเมนต์ที่สูญเสียคุณภาพ และ WebP ติดตามตัวแปลงสัญญาณของเบราว์เซอร์ของตัวเอง การดาวน์โหลดเป็นการเข้ารหัสใหม่ ไม่ใช่สตรีมบีบอัดดั้งเดิมที่ลบมุมออก

วิธีจัดระเบียบ JPEG — 8×8 บล็อก หน่วยที่เข้ารหัสขั้นต่ำ และเหตุใดกริดจึงมีความสำคัญสำหรับการตัด

JPEG จัดเก็บข้อมูลภาพที่แปลงแล้วในบล็อก 8-by-8 โดยมีหน่วยการเข้ารหัสขนาดใหญ่ขึ้นตามการสุ่มตัวอย่างและการจัดระเบียบของไฟล์ เส้นตารางนั้นมีความสำคัญต่อการดำเนินการแบบพิเศษที่ไม่มีการสูญเสีย เนื่องจากการตัดอาจสะอาดได้ก็ต่อเมื่อขอบอยู่ในแนวเดียวกับโครงสร้างที่มีอยู่ในไฟล์อยู่แล้ว มันเป็นบริบทของรูปแบบที่มีประโยชน์ ไม่ใช่การอ้างว่าตัวแก้ไขเบราว์เซอร์เปิดเผยพิกัดบล็อกหรือเข้าใจหน่วยโค้ดขั้นต่ำ

เครื่องมือครอบตัดของตัวแก้ไขจะคิดเป็นรูปสี่เหลี่ยมผืนผ้าต้นทางเหนือพิกเซลที่ถอดรหัส ดังนั้นจึงสามารถแสดงการเลือกได้ตามใจชอบ รวมถึงขอบเขตที่อยู่ระหว่างขอบเขตบล็อก JPEG แต่แหล่งที่มาไม่เปิดเผยการควบคุมการสุ่มตัวอย่างย่อย การจัดแนวบล็อก หรือการเก็บรักษาระดับไบต์ ผลลัพธ์ที่ได้คืออิสระทางเรขาคณิตที่สะดวกสบาย โดยต้องเสียค่าใช้จ่ายในการกลับไปใช้ตัวเข้ารหัสหลังจากวาดพิกเซลแล้ว

JPEG โครงสร้างบล็อกเป็นบริบทพื้นหลัง ตัวแก้ไขนี้ไม่แยกวิเคราะห์หรือครอบตัดบล็อกที่บีบอัด

เครื่องมือเช่น jpegtran แสดงถึงการแลกเปลี่ยนอื่น: มันสามารถทำงานบนโครงสร้าง JPEG โดยไม่ต้องแปลงทุกบล็อกเป็นพิกเซลธรรมดาก่อน เมื่อขอบครอบตัดพอดีกับตารางบล็อกที่เกี่ยวข้อง เครื่องมืออาจละทิ้งขอบเขตทั้งหมดในขณะที่ปล่อยให้ข้อมูลที่บีบอัดที่เหลืออยู่ไม่เสียหาย หรือหลีกเลี่ยงการเข้ารหัสซ้ำที่สูญเสียทั้งหมด ขั้นตอนการทำงานนั้นอยู่นอกตัวแก้ไขนี้ และไม่ควรสื่อโดยปุ่มครอบตัดทั่วไปของเบราว์เซอร์

Lossless ไม่ได้หมายความว่าเป็นไปตามอำเภอใจ เครื่องมือที่จัดเรียงแบบบล็อกอาจจำกัดสี่เหลี่ยมครอบตัด และการจัดการข้อมูลเมตายังคงต้องมีการยืนยันของตัวเอง เครื่องมือแก้ไขมีทางเลือกอื่น: ให้ผู้ใช้มีสี่เหลี่ยมว่างบนภาพที่ถอดรหัส คัดลอกสี่เหลี่ยมนั้นลงในแคนวาสเลเยอร์ใหม่ และเข้ารหัสผลลัพธ์ในภายหลัง ใช้ยูทิลิตี JPEG เฉพาะเมื่อจำเป็นต้องมีการเก็บรักษาไบต์หรือการเก็บถาวรระดับบล็อก

การครอบตัด JPEG แบบไม่สูญเสียข้อมูลอยู่นอกการใช้งานนี้ และต้องใช้เครื่องมืออื่น

การแก้ไขแคนวาสสร้างขึ้นสำหรับพิกเซล ไม่ใช่ JPEG ค่าสัมประสิทธิ์การแปลง เบราว์เซอร์โหลดรูปภาพเป็นรูปภาพ HTML โปรแกรมแก้ไขจะคัดลอกสี่เหลี่ยมต้นทางที่เลือกลงในแคนวาสเลเยอร์ใหม่ และแรสเตอร์ที่มองเห็นได้จะถูกประกอบเพื่อการส่งออก การออกแบบดังกล่าวยอมรับเรขาคณิตการครอบตัดใดๆ และปล่อยให้เวิร์กโฟลว์เดียวกันจัดการภาพวาด ข้อความ และเลเยอร์อื่นๆ นอกจากนี้ยังหมายถึงบล็อก JPEG ดั้งเดิมไม่ใช่วัสดุส่งออกอีกต่อไป

เมื่อเซสชันถูกส่งออก canvas.toBlob จะถามเบราว์เซอร์ถึงไฟล์ PNG, JPEG หรือ WebP ใหม่ สำหรับการดาวน์โหลด JPEG นั่นคือเบราว์เซอร์เข้ารหัสอีกครั้งของแรสเตอร์ที่ถอดรหัสและแก้ไขแล้ว แหล่งที่มาไม่เปิดเผยการจัดตำแหน่งหน่วยที่กำหนดรหัสขั้นต่ำ การคัดลอกค่าสัมประสิทธิ์ การเลือกการสุ่มตัวอย่างย่อย หรือการรับประกันเกี่ยวกับข้อมูลเมตาและโปรไฟล์ ลักษณะการทำงานนี้เป็นการแก้ไขแรสเตอร์โดยเจตนา ไม่ใช่การครอบตัดบล็อกแบบไม่สูญเสียข้อมูล

การครอบตัดเบราว์เซอร์จะถอดรหัสพิกเซล คัดลอกสี่เหลี่ยม และเข้ารหัสคอมโพสิตอีกครั้ง

การเข้ารหัสซ้ำเพียงครั้งเดียวอาจยอมรับได้สำหรับรูปภาพบนเว็บ แต่ค่าใช้จ่ายจะขึ้นอยู่กับแหล่งที่มา การครอบตัด ตัวเข้ารหัสของเบราว์เซอร์ คุณภาพที่เลือก และเนื้อหา ข้อความที่ละเอียด การสแกนฮาล์ฟโทน ภาพลายเส้นที่คมชัด และขอบที่มีคอนทราสต์ซ้ำๆ สามารถเผยให้เห็นการเปลี่ยนแปลงได้เร็วกว่าภาพถ่ายทั่วไป หลีกเลี่ยงการกำหนดเปอร์เซ็นต์คงที่ให้กับการสูญเสียหรือการลดขนาดไฟล์ที่รับประกัน: พื้นที่เก็บข้อมูลไม่ได้ให้สัญญาดังกล่าว

เก็บขั้นตอนการทำงานไว้เพื่อส่งออกโดยเจตนาเมื่อเป็นไปได้ การเปิดการดาวน์โหลด JPEG อีกครั้ง ทำการแก้ไขแรสเตอร์อีกครั้ง และการเข้ารหัสอีกครั้งจะทำให้เกิดโอกาสในการสร้างสิ่งประดิษฐ์ ในขณะที่การส่งออก PNG อาจเปลี่ยนขนาดและรูปแบบการแลกเปลี่ยน แทนที่จะคงไว้ JPEG ไบต์ เปรียบเทียบผลลัพธ์จริงด้วยกำลังขยายที่มีประโยชน์ เก็บแหล่งที่มา และเลือกรูปแบบและคุณภาพสำหรับปลายทางแทนที่จะเชื่อถือตัวเลขสากล

ผลที่ตามมาของการเข้ารหัสซ้ำจะขึ้นอยู่กับตัวเข้ารหัส ไม่มีสัญญาขนาดหรือเปอร์เซ็นต์คุณภาพคงที่

ใช้หน้าที่สแกนเป็นการเปรียบเทียบในทางปฏิบัติ รักษาต้นฉบับ จดขนาดและขนาดไฟล์ จากนั้นทำเครื่องหมายสี่เหลี่ยมที่ต้องการในตัวแก้ไข ส่งออกการครอบตัดหนึ่งครั้งเป็น JPEG ตามคุณภาพที่เลือก และตรวจสอบประเภทขนาดเล็ก ขอบตรง และพื้นผิวกระดาษ ขนาดผลลัพธ์จะตอบว่าหน้าถูกตัดแต่งหรือไม่ การตรวจสอบด้วยภาพจะตอบว่าแรสเตอร์ใหม่ยังคงมีประโยชน์อยู่หรือไม่

ยูทิลิตีการรับรู้บล็อกแบบไม่สูญเสียข้อมูลจะเป็นการทดลองแยกต่างหาก โดยอาจยอมรับเฉพาะขอบที่จัดแนวและหลีกเลี่ยงการถอดรหัสหน้า ในขณะที่การครอบตัดของเบราว์เซอร์ยอมรับสี่เหลี่ยมที่คุณวาด อย่าเปรียบเทียบทั้งสองราวกับว่าพวกเขามีการรับประกันเดียวกัน ที่นี่ canvas.toBlob สร้างไฟล์ใหม่และแหล่งที่มาไม่ได้รับประกันข้อมูลประจำตัวของไบต์ การเก็บรักษาข้อมูลเมตา การเก็บรักษาโปรไฟล์ หรือต้นทุนคุณภาพคงที่

การตรวจสอบการทำงาน: เปรียบเทียบขนาดและรายละเอียดที่มองเห็นได้โดยไม่ต้องคำนึงถึงการอนุรักษ์ไบต์

การเปรียบเทียบนี้เกี่ยวข้องกับอินพุต JPEG และการครอบตัดแรสเตอร์ของเบราว์เซอร์โดยเฉพาะ PNG มีพฤติกรรมการบีบอัดที่แตกต่างกัน และไม่ได้รับอาร์กิวเมนต์คุณภาพที่สูญเสียในตัวแก้ไขนี้ WebP ติดตามตัวแปลงสัญญาณเบราว์เซอร์ของตัวเอง การหมุน การเขียนข้อมูลเมตาใหม่ การจัดการ ICC และการแปลง JPEG แบบไม่สูญเสียเฉพาะทางเป็นคำถามที่แยกจากกัน การส่งออกที่ประสบความสำเร็จในรูปแบบหนึ่งไม่สามารถตอบโจทย์รูปแบบอื่นได้

ข้อควรระวังเดียวกันนี้ใช้กับการอ้างสิทธิ์การเก็บถาวร ตัวแก้ไขจะไม่เปิดเผยการจัดตำแหน่งหน่วยที่ใช้โค้ดขั้นต่ำ การควบคุมการสุ่มตัวอย่างย่อย การดำเนินการหมุนเวียนแบบไม่สูญเสียข้อมูล หรือการรับประกันว่าข้อมูลเมตาที่ฝังไว้จะยังคงอยู่ หากแหล่งที่มาต้องคงสภาพโครงสร้างไว้ครบถ้วน ให้เก็บไว้และใช้เครื่องมือที่รับรู้รูปแบบ หากเป้าหมายคือรูปภาพใหม่ที่สะดวกสบายโดยมีสี่เหลี่ยมผืนผ้าที่กำหนดเอง เวิร์กโฟลว์ของเบราว์เซอร์จะเหมาะสมกว่า

ประเด็นสำคัญ: รู้ว่าคุณกำลังแลกเปลี่ยนอะไร — Browser Image & Drawing Editor ครอบตัดสี่เหลี่ยมบนอุปกรณ์ของคุณอย่างไร และเมื่อใดที่เครื่องมือแบบไม่สูญเสียข้อมูลเหมาะกับการเก็บถาวรทำงานได้ดีกว่า

การแลกเปลี่ยนนั้นตรงไปตรงมา: ตัวแก้ไขนี้ทำการครอบตัดแรสเตอร์ตามด้วยการเข้ารหัสเบราว์เซอร์ใหม่ โดยถอดรหัสรูปภาพ คัดลอกสี่เหลี่ยมที่เลือกลงในเลเยอร์แคนวาส รวมผลลัพธ์ที่มองเห็นได้ และใช้ canvas.toBlob สำหรับรูปแบบที่ร้องขอ ซึ่งจะทำให้คุณครอบตัดบนอุปกรณ์ได้ตามใจชอบ แต่จะไม่รักษาสตรีมไบต์ที่บีบอัดดั้งเดิมหรืออ้างสิทธิ์ JPEG ซีแมนทิกส์ที่ไม่มีการสูญเสีย

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