gpt4 book ai didi

c# - 在 Photoshop 中调整图像对比度的最佳方法是什么

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:22 25 4
gpt4 key购买 nike

您认为以下选项最适合调整对比度级别吗?事实上,我希望获得与 Photoshop 中相同/接近的对比度调整性能。

public static Bitmap AdjustContrast(Bitmap Image, float Value)
{
Value = (100.0f + Value) / 100.0f;
Value *= Value;
System.Drawing.Bitmap NewBitmap = Image;

for (int x = 0; x < NewBitmap.Width; ++x)
{
for (int y = 0; y < NewBitmap.Height; ++y)
{
Color Pixel = NewBitmap.GetPixel(x, y);
float Red = Pixel.R / 255.0f;
float Green = Pixel.G / 255.0f;
float Blue = Pixel.B / 255.0f;
Red = (((Red - 0.5f) * Value) + 0.5f) * 255.0f;
Green = (((Green - 0.5f) * Value) + 0.5f) * 255.0f;
Blue = (((Blue - 0.5f) * Value) + 0.5f) * 255.0f;
NewBitmap.SetPixel(x, y, Color.FromArgb(Clamp((int)Red, 255, 0), Clamp((int)Green, 255, 0), Clamp((int)Blue, 255, 0)));
}
}

return NewBitmap;
}

public static T Clamp<T>(T Value, T Max, T Min)
where T : System.IComparable<T>
{
if (Value.CompareTo(Max) > 0)
return Max;
if (Value.CompareTo(Min) < 0)
return Min;
return Value;
}

上面的代码不是我的,我忘记了代码的来源。

最佳答案

基本上,没有。获取和设置像素非常慢。按照 this 的思路尝试一些东西.它将 Bitmap 的像素锁定在内存中,然后使用对比度算法直接操作该内存区域。它确实需要不安全的代码,但如果您想从解决方案中获得任何性能,那就是您必须走的路。

或者,您可以使用内置的矩阵操作来完成基本相同的事情。我不是特别喜欢使用它们,因为有时很难获得完美的效果。但在您的情况下,它们可能是最简单的事情。 Link .

关于c# - 在 Photoshop 中调整图像对比度的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com