Menggunakan Vanilla JS biasa untuk mengedit gambar dalam browser.

Peramban web adalah aplikasi independen platform universal untuk beragam alat JavaScript. Menggunakan kanvas HTML5 dan JavaScript sisi klien, mengubah warna gambar dapat dilakukan dengan mudah.

Contoh Klasik โ€”(1) Inversi Warna & (2) Gambar Skala Abu-Abu

Kedua implementasi tersebut didasarkan pada model warna RGB yang digunakan untuk merender gambar browser.

(1) Inversi Warna

/* 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 */
}

Logika kode antara /* START */ dan /* END */:

  • imgData.data[i + 3] = 255;: Mengacu pada opasitas gambar (ditetapkan ke nilai konstan)
  • Kurangi setiap nilai komponen RGB dari 255 untuk mendapatkan nilai warna terbalik

(2) Skala abu-abu

Untuk mendapatkan efek gambar skala abu-abu, ketiga komponen โ€” Merah (R), Hijau (G) dan Biru (B) harus memiliki nilai yang sama.

/* 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 */
}

Logika kode antara /* START */ dan /* END */:

  • let gray = (red + green + blue) / 3: Untuk mendapatkan dan mengatur nilai yang diperlukan untuk setiap komponen RGB

Demo (Silakan mencobanya sendiri di image-rgb-change)

Catatan: Kode sumber lengkap dapat ditemukan di repo GitHub saya. Jangan ragu untuk โญ atau ๐Ÿ”ฑ! Demo di image-rgb-change.

Dan itu dia! Terima kasih banyak telah bertahan hingga akhir artikel ini! โค Semoga artikel ini bermanfaat bagi Anda dan jangan ragu untuk ikuti saya di Medium jika Anda menginginkan lebih banyak konten terkait Sistem Informasi Geografis (GIS), Analisis Data & aplikasi Web. Akan sangat menghargainya โ€” ๐Ÿ˜€

โ€” ๐ŸŒฎ Tolong belikan aku Taco ฮพ(๐ŸŽ€หถโ›โ—กโ›)



Jangan ragu untuk memeriksa di bawah ini untuk daftar aplikasi kanvas HTML5:











Konten lainnya di . Daftar ke >kami. Ikuti kami di "Twitter", "LinkedIn", "YouTube", dan "Discord" .

Tertarik untuk meningkatkan skala startup perangkat lunak Anda? Lihat "Sirkuit".