Bagaimanakah saya boleh mengira purata warna imej menggunakan JavaScript?

DDD
Lepaskan: 2024-10-30 08:44:27
asal
269 orang telah melayarinya

How can I calculate the average color of an image using JavaScript?

Dapatkan Purata Warna Imej menggunakan JavaScript

Menentukan warna purata imej adalah berharga untuk pelbagai aplikasi, tetapi ia boleh menjadi sangat mencabar untuk menyelesaikan tugas ini menggunakan JavaScript.

Pelaksanaan JavaScript

Nasib baik, dengan kemajuan dalam HTML5, pembangun JavaScript boleh memanfaatkan elemen untuk mengekstrak warna purata imej. Skrip berikut menunjukkan cara teknik ini boleh digunakan:

<code class="javascript">function getAverageRGB(imgEl) {

    var blockSize = 5, // only visit every 5 pixels
        defaultRGB = {r:0,g:0,b:0}, // for non-supporting envs
        canvas = document.createElement('canvas'),
        context = canvas.getContext &amp;&amp; canvas.getContext('2d'),
        data, width, height,
        i = -4,
        length,
        rgb = {r:0,g:0,b:0},
        count = 0;

    if (!context) {
        return defaultRGB;
    }

    height = canvas.height = imgEl.naturalHeight || imgEl.offsetHeight || imgEl.height;
    width = canvas.width = imgEl.naturalWidth || imgEl.offsetWidth || imgEl.width;

    context.drawImage(imgEl, 0, 0);

    try {
        data = context.getImageData(0, 0, width, height);
    } catch(e) {
        /* security error, img on diff domain */
        return defaultRGB;
    }

    length = data.data.length;

    while ( (i += blockSize * 4) < length ) {
        ++count;
        rgb.r += data.data[i];
        rgb.g += data.data[i+1];
        rgb.b += data.data[i+2];
    }

    // ~~ used to floor values
    rgb.r = ~~(rgb.r/count);
    rgb.g = ~~(rgb.g/count);
    rgb.b = ~~(rgb.b/count);

    return rgb;

}</code>
Salin selepas log masuk

Penggunaan

Untuk mendapatkan purata warna imej, panggil fungsi getAverageRGB, menghantar imej unsur sebagai hujah. Fungsi mengembalikan objek dengan nilai purata untuk komponen merah, hijau dan biru.

Penghadan

Teknik ini terhad kepada imej yang berada pada domain yang sama dan adalah hanya disokong oleh penyemak imbas yang menampilkan elemen kanvas HTML5. Untuk versi Internet Explorer yang lebih lama, pertimbangkan untuk memasukkan pustaka excanvas untuk mendayakan fungsi separa.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengira purata warna imej menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!