Teknik Penukaran Imej Skala Kelabu 16-bit
Panduan ini menerangkan cara menukar imej kepada format skala kelabu 16-bit tanpa melaraskan komponen RGB secara manual kepada nilai kecerahan.
Mencipta Peta Bit Skala Kelabu 16-bit Baharu:
Kaedah paling mudah melibatkan penggunaan System.Drawing.Bitmap
pembina dengan parameter System.Drawing.Imaging.PixelFormat
. Ini terus mencipta peta bit baharu dengan format skala kelabu 16-bit yang dikehendaki:
<code class="language-csharp">Bitmap grayScaleBP = new System.Drawing.Bitmap(2, 2, System.Drawing.Imaging.PixelFormat.Format16bppGrayScale);</code>
Coretan kod ini menghasilkan peta bit 2x2 piksel dalam skala kelabu 16 bit. Laraskan dimensi mengikut keperluan untuk imej anda.
Menukar Imej Sedia Ada kepada Skala Kelabu 16-bit:
Untuk menukar peta bit sedia ada, anda perlu mengulangi setiap piksel dan mentakrifkan semula sifat warnanya. Walaupun boleh, kaedah ini kurang cekap untuk imej yang lebih besar.
<code class="language-csharp">// (Pixel iteration code would go here – omitted for brevity due to inefficiency)</code>
Penukaran Skala Kelabu Dioptimumkan menggunakan ColorMatrix:
Untuk penukaran skala kelabu yang jauh lebih pantas dan cekap, manfaatkan ColorMatrix
. Pendekatan ini menggunakan matriks transformasi pada data warna imej, menghasilkan penukaran skala kelabu.
<code class="language-csharp">ColorMatrix colorMatrix = new ColorMatrix( new float[][] { new float[] {.3f, .3f, .3f, 0, 0}, new float[] {.59f, .59f, .59f, 0, 0}, new float[] {.11f, .11f, .11f, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1} }); using (ImageAttributes attributes = new ImageAttributes()) { attributes.SetColorMatrix(colorMatrix); // ... (Drawing code using attributes to apply the ColorMatrix) ... }</code>
Ini menggunakan pemberat pencahayaan standard (.3, .59, .11) untuk penukaran skala kelabu yang tepat secara persepsi. Ingat untuk menggantikan bahagian komen dengan kod yang sesuai untuk melukis imej menggunakan ImageAttributes
yang diubah suai. Kaedah ini jauh lebih cekap daripada manipulasi piksel demi piksel, terutamanya untuk imej yang lebih besar.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Imej kepada Skala Kelabu 16-Bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!