การใช้ Vanilla JS ธรรมดาสำหรับการแก้ไขภาพในเบราว์เซอร์

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

ตัวอย่างคลาสสิก —(1) การกลับสี & (2) รูปภาพระดับสีเทา

การใช้งานทั้งสองแบบอิงตาม "โมเดลสี RGB" ที่ใช้ในการเรนเดอร์อิมเมจของเบราว์เซอร์

(1) การกลับสี

/* HTML5 canvas element has attribute `id` = 'canvasDemo' */
const _canvas = document.getElementById('canvasDemo');
let w = _canvas.width;
let h = _canvas.height;

const imgData = _canvas.getContext('2d').getImageData(0, 0, w, h);

// Code logic: Apply required values for RGB components
for (let i = 0; i < imgData.data.length; i += 4) {
  /* START */
  let red = imgData.data[i];
  let green = imgData.data[i + 1];
  let blue = imgData.data[i + 2];
  let alpha = 255;
  
  imgData.data[i] = 255 - red;
  imgData.data[i + 1] = 255 - green;
  imgData.data[i + 2] = 255 - blue;
  imgData.data[i + 3] = 255;
  /* END */
}

ตรรกะของโค้ดระหว่าง /* START */ ถึง /* END */:

  • imgData.data[i + 3] = 255;: หมายถึงความทึบของภาพ (กำหนดให้กับค่าคงที่)
  • ลบค่าองค์ประกอบ RGB แต่ละค่าจาก 255 เพื่อให้ได้ค่าสีกลับด้าน

(2) ระดับสีเทา

เพื่อให้ได้เอฟเฟ็กต์ภาพระดับสีเทา องค์ประกอบทั้ง 3 อย่าง ได้แก่ สีแดง (R) สีเขียว (G) และสีน้ำเงิน (B) จะต้องมีค่าเท่ากัน

/* HTML5 canvas element has attribute `id` = 'canvasDemo' */
const _canvas = document.getElementById('canvasDemo');
let w = _canvas.width;
let h = _canvas.height;

const imgData = _canvas.getContext('2d').getImageData(0, 0, w, h);

// Code logic: Apply required values for RGB components
for (let i = 0; i < imgData.data.length; i += 4) {
  /* START */
  let red = imgData.data[i];
  let green = imgData.data[i + 1];
  let blue = imgData.data[i + 2];
  let alpha = imgData.data[i + 3];

  let gray = (red + green + blue) / 3;
      
  imgData.data[i] = gray;
  imgData.data[i + 1] = gray;
  imgData.data[i + 2] = gray;
  imgData.data[i + 3] = alpha;
  /* END */
}

ตรรกะของโค้ดระหว่าง /* START */ ถึง /* END */:

  • let gray = (red + green + blue) / 3: เพื่อรับและตั้งค่าที่จำเป็นสำหรับแต่ละองค์ประกอบ RGB

การสาธิต (อย่าลังเลที่จะลองใช้ด้วยตัวเองที่ image-rgb-change)

หมายเหตุ: สามารถดูซอร์สโค้ดแบบเต็มได้ที่ GitHub repo ของฉัน รู้สึกอิสระที่จะ ⭐ หรือ 🔱 มัน! สาธิตที่ image-rgb-change

และคุณก็ได้แล้ว! ขอบคุณมากที่ยืนกรานจนถึงท้ายบทความนี้! ❤ หวังว่าคุณคงพบว่าบทความนี้มีประโยชน์ และอย่าลังเลที่จะ "ติดตามฉันบนสื่อ" หากคุณต้องการระบบสารสนเทศภูมิศาสตร์ (GIS) การวิเคราะห์ข้อมูล และเนื้อหาที่เกี่ยวข้องกับแอปพลิเคชันเว็บเพิ่มเติม จะซาบซึ้งจริงๆ - 😀

— 🌮 กรุณาซื้อทาโก้ให้ฉันหน่อย ξ(🎀˶❛◡❛)



อย่าลังเลที่จะตรวจสอบรายการแอปพลิเคชันแคนวาส HTML5 ด้านล่าง:











เนื้อหาเพิ่มเติมได้ที่ PlainEnglish.io ลงทะเบียนเพื่อรับ จดหมายข่าวรายสัปดาห์ฟรี ของเรา ติดตามเราบน Twitter, LinkedIn, YouTube และ Discord .

สนใจที่จะขยายขนาดการเริ่มต้นซอฟต์แวร์ของคุณหรือไม่ ลองดูที่ วงจร