Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengesan Warna Piksel Skrin Tertentu Secara Pengaturcaraan?

Bagaimanakah Saya Boleh Mengesan Warna Piksel Skrin Tertentu Secara Pengaturcaraan?

DDD
Lepaskan: 2024-12-30 06:34:09
asal
555 orang telah melayarinya

How Can I Programmatically Detect the Color of a Specific Screen Pixel?

Cara Mengesan Warna Piksel Skrin

Dalam soalan ini, pengguna mencari kaedah untuk menentukan warna piksel tertentu pada skrin mereka. Matlamat utama adalah untuk mencetuskan tindakan apabila warna tertentu dikesan.

Mencari Penyelesaian Cekap

Pendekatan paling berkesan melibatkan penggunaan fungsi GetColorAt untuk mendapatkan semula piksel warna pada lokasi tertentu. Tidak seperti beberapa kaedah lain, pendekatan ini adalah bebas daripada bilangan monitor yang disambungkan kepada sistem.

Berikut ialah coretan kod C# yang melaksanakan fungsi GetColorAt:

public Color GetColorAt(Point location)
{
    using (Graphics gdest = Graphics.FromImage(screenPixel))
    {
        using (Graphics gsrc = Graphics.FromHwnd(IntPtr.Zero))
        {
            IntPtr hSrcDC = gsrc.GetHdc();
            IntPtr hDC = gdest.GetHdc();
            int retval = BitBlt(hDC, 0, 0, 1, 1, hSrcDC, location.X, location.Y, (int)CopyPixelOperation.SourceCopy);
            gdest.ReleaseHdc();
            gsrc.ReleaseHdc();
        }
    }

    return screenPixel.GetPixel(0, 0);
}
Salin selepas log masuk

Menggunakan Maklumat Warna Piksel

Dengan fungsi GetColorAt, anda kini boleh membuat tinjauan pendapat khusus piksel pada skrin untuk warna yang diingini. Berikut ialah contoh tinjauan pendapat untuk piksel biru:

private void PollPixel(Point location)
{
    while(true)
    {
        var c = GetColorAt(location);

        if (c.R == c.G &amp;&amp; c.G < 64 &amp;&amp; c.B > 128)
        {
            DoAction();
            return;
        }

        Thread.Sleep()
    }
}
Salin selepas log masuk

Kod ini secara berterusan meninjau piksel di lokasi tertentu. Apabila piksel sepadan dengan kriteria biru, ia mencetuskan kaedah DoAction.

Kesimpulan

Menggunakan fungsi GetColorAt, anda boleh menentukan warna piksel skrin individu dengan cekap. Dengan keupayaan ini, anda boleh melaksanakan pelbagai pemprosesan imej atau tugas pengesanan skrin seperti yang diperlukan oleh aplikasi khusus anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Warna Piksel Skrin Tertentu Secara Pengaturcaraan?. 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