Baru-baru ini saya menggunakan JS untuk melakukan hal-hal menyenangkan dan perlu memproses gambar. Ada banyak tutorial di Internet dengan berbagai metode, dan beberapa metode belum tentu berhasil. Artikel ini akan membagikan kepada Anda metode yang diverifikasi oleh penulis untuk menggunakan NodeJS untuk memproses gambar.
npm i gm
gm adalah pustaka Node yang menyediakan beberapa JS API sehingga pengembang dapat memproses gambar. Tapi itu mengandalkan GraphicsMagick, atau ImageMagick di bawahnya. Faktanya, gm adalah baris perintah untuk memanggil kedua alat tersebut.
Dengan kata lain, selain menginstal gm, kita juga perlu menginstal GraphicsMagick atau ImageMagick.
GambarMagickPenulis menggunakan MacOS dan langsung memilih untuk menginstal ImageMagick.
Menurut perintah situs web resmi, hanya diperlukan 1 baris kode (asalkan Anda telah menginstal brew di Mac Anda):
buatan instal imagemagick --dengan-webp
Izinkan saya memperkenalkan parameter --with-webp
. Anda dapat menghapusnya, tetapi jika Anda ingin memproses gambar dalam format webp, Anda harus menambahkannya.
Lebih nyaman menggunakan brew. Anda tidak perlu khawatir tentang variabel lingkungan.
GrafisMagick
Tentu saja, jika Anda tidak menggunakan ImageMagick, Anda dapat menggunakan GraphicsMagick:
buatan instal grafismagick
Awalnya saya memilih untuk menginstal ImageMagick, dan ketika saya menulis ini, saya selalu mendapatkan kesalahan:
const gm = memerlukan('gm'); gm('Jalur file gambar').crop(lebar, tinggi, 0, 0).resize(lebar2, tinggi2).kualitas(kualitas).write('Jalur file keluaran', function (err) { jika (salah) { kembali konsol.log(err); } kalau tidak { console.log('sukses'); } });
Jika Anda ingin menggunakan ImageMagick, sebenarnya cara penulisan di atas salah. Anda harus menulisnya seperti ini, dengan jelas menyatakan bahwa saya ingin menggunakan alat ImageMagick
:
const g = memerlukan('gm'); const gm = g.subClass({imageMagick: true}); gm('Jalur file gambar').crop(lebar, tinggi, 0, 0).resize(lebar2, tinggi2).kualitas(kualitas).write('Jalur file keluaran', function (err) { jika (salah) { kembali konsol.log(err); } kalau tidak { console.log('sukses'); } });
Catat fungsi gm yang umum digunakan untuk referensi Anda:
Catatan: gm dapat dipanggil secara berantai, dan sangat menyenangkan untuk menulis. Ia membaca file gambar dari gm(nama file), memprosesnya lapis demi lapis, dan akhirnya menulisnya ke file.write(nama file, panggilan balik).
Perbesar gambar
.resize(width, height)
Pangkas gambar
.crop(width, height, x, y)
Putar gambar
.rotate(color, deg)
warna adalah warna latar belakang (jika sudut rotasi derajat bukan kelipatan 90, warna latar belakang akan berguna, cukup gunakan format '#ededed')