我知道使用colormatrix。但這項工作在整個圖像上。有什麼方法可以使用colormatrix只處理圖像的一部分而不是整個圖像。我們如何才能使用colormatrix只是圖像的一部分,而不是整個圖像?
例如我想給只有圖像的邊界區域的亮度。
我正在使用c#。
我知道使用colormatrix。但這項工作在整個圖像上。有什麼方法可以使用colormatrix只處理圖像的一部分而不是整個圖像。我們如何才能使用colormatrix只是圖像的一部分,而不是整個圖像?
例如我想給只有圖像的邊界區域的亮度。
我正在使用c#。
由於ColorMatrix
只適用於單獨的顏色矢量/像素,所以您需要做的就是仔細選擇像素,以便它們符合您的標準。
已經有一段時間了,但如果你逐行掃描像素,那麼整個第一行和最後n行以及所有其他行的第一行和最後n列都可以被轉換。
如果:
Bitmap bitmap2 = new Bitmap(bitmap1.Width, bitmap1.Height); //copy bitmap1 to bitmap2 Graphics.FromImage(bitmap2).DrawImage(bitmap1, 0, 0); //copy part of bitmap1 to bitmap2 with your own image attributes (ColorMatrix, etc..) Graphics.FromImage(bitmap2).DrawImage(bitmap1, new Rectangle(100, 50, 20, 20), 100, 50, 20, 20, GraphicsUnit.Pixel, yourImageAttributes);
如果你只想要邊框,你可以先改變整個圖像,然後在裏面複製原始圖像的矩形。