c# 图片对比度 代码
时间: 2023-06-23 15:09:42 浏览: 82
以下是 C# 中修改图片对比度的示例代码:
```csharp
public static Bitmap AdjustContrast(Bitmap image, float contrast)
{
// 对比度范围为 -100 到 100
if (contrast < -100) contrast = -100;
if (contrast > 100) contrast = 100;
// 计算对比度调整值
double contrastValue = (100.0 + contrast) / 100.0;
contrastValue *= contrastValue;
// 创建一个新的 Bitmap 对象
Bitmap newBitmap = new Bitmap(image.Width, image.Height);
// 遍历每个像素并修改亮度
for (int i = 0; i < image.Width; i++)
{
for (int j = 0; j < image.Height; j++)
{
Color originalColor = image.GetPixel(i, j);
// 计算新的 RGB 值
double red = originalColor.R / 255.0;
red -= 0.5;
red *= contrastValue;
red += 0.5;
red *= 255;
if (red < 0) red = 0;
if (red > 255) red = 255;
double green = originalColor.G / 255.0;
green -= 0.5;
green *= contrastValue;
green += 0.5;
green *= 255;
if (green < 0) green = 0;
if (green > 255) green = 255;
double blue = originalColor.B / 255.0;
blue -= 0.5;
blue *= contrastValue;
blue += 0.5;
blue *= 255;
if (blue < 0) blue = 0;
if (blue > 255) blue = 255;
// 创建新的 Color 对象并将其设置为新的 Bitmap 对象
Color newColor = Color.FromArgb(originalColor.A, (int)red, (int)green, (int)blue);
newBitmap.SetPixel(i, j, newColor);
}
}
return newBitmap;
}
```
使用方法:
```csharp
Bitmap originalImage = new Bitmap("original.jpg");
Bitmap contrastImage = AdjustContrast(originalImage, 50);
contrastImage.Save("contrast.jpg");
```
以上代码将读取名为 `original.jpg` 的图片,增加对比度 50,并将结果保存为名为 `contrast.jpg` 的新图片。