日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

图片饱和度更改,c#,winform

發布時間:2023/12/8 C# 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图片饱和度更改,c#,winform 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

c#中Bitmap的顏色是RGB,需要轉換為HSV之后進行處理。

xa,ya是飽和度調整的起點坐標,xb,yb是飽和度調整的起點坐標。
trackBar2是飽和度調整的滑動條,把50設為原點。

private Bitmap Baohedu(Bitmap oop, int xa, int xb, int ya, int yb){Bitmap nop;nop = oop.Clone() as Bitmap;double degree = trackBar2.Value / 50;int x, y;Color pixel;double R = 0, G = 0, B = 0, H = 0, S = 0, V = 0;double max = 0, min = 0;for (x = xa; x < xb; x++){for (y = ya; y < yb; y++){pixel = oop.GetPixel(x, y);R = (double)pixel.R;G = (double)pixel.G;B = (double)pixel.B;R = R / 100; G = G / 100; B = B / 100;max = Max(R, G, B);min = Min(R, G, B);V = max;if (max == 0) S = 0;else S = 1 - (min / max);if (max == min) H = 0;else if (max == R && G >= B) H = 60 * ((G - B) / (max - min));else if (max == R && G < B) H = 60 * ((G - B) / (max - min)) + 360;else if (max == G) H = 60 * ((B - R) / (max - min)) + 120;else if (max == B) H = 60 * ((R - G) / (max - min)) + 240;V = V * 100; S = S * 100; S = S * degree;if (S >= 100) S = 100;double C = 0, X = 0, Y = 0, Z = 0;int i = 0;S = S / 100.0;V = V / 100.0;if (S == 0) R = G = B = V;else{H = H / 60;i = (int)H;C = H - i;X = V * (1.0 - S);Y = V * (1 - S * C);Z = V * (1 - S * (1 - C));switch (i){case 0: R = V; G = Z; B = X; break;case 1: R = Y; G = V; B = X; break;case 2: R = X; G = V; B = Z; break;case 3: R = X; G = Y; B = V; break;case 4: R = Z; G = X; B = V; break;case 5: R = V; G = X; B = Y; break;}}R = R * 100; G = G * 100; B = B * 100;if (G >= 255) G = 255;if (R >= 255) R = 255;if (B >= 255) B = 255;if (G <= 0) G = 0;if (R <= 0) R = 0;if (B <= 0) B = 0;nop.SetPixel(x, y, Color.FromArgb((int)R, (int)G, (int)B));}}return nop;}private double Max(double a, double b, double c){double max = 0;max = a;if (max < b)max = b;if (max < c)max = c;return max;}private double Min(double a, double b, double c){double min = 0;min = a;if (min > b)min = b;if (min > c)min = c;return min;}

Easy_Example1.rar_winfrom對比度飽和度亮度調整-圖像處理文檔類資源-CSDN下載

這里的示例包括了這個功能。

總結

以上是生活随笔為你收集整理的图片饱和度更改,c#,winform的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。