В Photoshop мы можем изменить яркость изображения в диапазоне от -150 до 150.
Используя PhotoshopCS4: Изображение → Настройки → Яркость / Контрастность.
Мы устанавливаем этот уровень на 30 для определенного изображения (A.jpg) и сохраняем изображение (A_30Bright.jpg)
Использовал тот же вход для приложения C #, где мы нормализовали значение,Это так: https://stats.stackexchange.com/questions/178626/how-to-normalize-data-between-1-and-1
Наша нормализованная функция выглядит следующим образом:
public static float GetNormalizedValue(float OldValue)
{
float OldMax = 150, OldMin = -150, NewMax = 255F, NewMin = -255F;
float OldRange = (OldMax - OldMin);
float NewRange = (NewMax - NewMin);
float NewValue = (((OldValue - OldMin) * NewRange) / OldRange) + NewMin;
return NewValue;
}
Ниже приведен пример кода для этого с использованием цветовой матрицы
public static double ChangeImageBrightness(string inputImagePath, float value)
{
imagePath = inputImagePath;
Bitmap _bmp = new Bitmap(inputImagePath);
float FinalValue = GetNormalizedValue(value);
FinalValue = FinalValue / 255.0f;
float[][] ptsArray ={
new float[] { 1.0f, 0, 0, 0, 0},
new float[] {0, 1.0f, 0, 0, 0},
new float[] {0, 0, 1.0f, 0, 0},
new float[] {0, 0, 0, 1.0f, 0},
new float[] { FinalValue, FinalValue, FinalValue, 0, 1}};
ImageAttributes imageAttributes = new ImageAttributes();
imageAttributes.ClearColorMatrix();
imageAttributes.SetColorMatrix(new ColorMatrix(ptsArray), ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
Bitmap adjustedImage = new Bitmap(_bmp.Width, _bmp.Height);
Graphics g = Graphics.FromImage(adjustedImage);
g.DrawImage(_bmp, new Rectangle(0, 0, adjustedImage.Width, adjustedImage.Height), 0, 0, _bmp.Width, _bmp.Height, GraphicsUnit.Pixel, imageAttributes);
adjustedImage.Save(Path.GetFileName(imagePath)); }
Полученное изображение из PhotoShopи из C # .Net не совпадают.
Яркость в C # имеет больше оттенков белого.
например Исходное изображение
C # Яркость (коэффициент цветовой матрицы = 0,2) [+30]
Яркость Photoshop [+30]
Как мы можем достичь того же результата, что и Photoshop из C #.