Устранить темный/светлый
Добавлено: 16 сен 2015, 23:52
Это очень простой эффект, который позволяет устранять темные или светлые участки изображения. Идеально удаляет черный или белый цвет (как частный случай темного или светлого, соответственно). Эффект доступен для paint.net версии 4.2.16 и далее.
Загрузите эффект из моего Комплекта эффектов.
Эффект имеет очень простой интерфейс. Вы можете найти его в меню Эффекты -> Цвет -> Устранить темный/светлый.
Примеры работы.
Исходное изображение:
Устранение темных участков:
Устранение светлых участков:
Ниже приведен исходный код для CodeLab
и значок для этого эффекта: .
Загрузите эффект из моего Комплекта эффектов.
Эффект имеет очень простой интерфейс. Вы можете найти его в меню Эффекты -> Цвет -> Устранить темный/светлый.
Примеры работы.
Исходное изображение:
Устранение темных участков:
Устранение светлых участков:
Ниже приведен исходный код для CodeLab
Код: Выделить всё
// Author: ReMake
// Submenu: Color
// Name:Устранить темный/светлый
// Title: Устранить темный/светлый v1.0 ReMake 2015
// Desc: Paint.Net эффект, устраняющий темные или светлые участки изображения
// Keywords: paint.net|эффект|устранить|темный|светлый
// URL: https://paint-net.ru/forum/viewforum.php?f=5
#region UICode
byte Amount1 = 0; // [1] Устранить|Темный|Светлый
#endregion
void Render(Surface dst, Surface src, Rectangle rect)
{
ColorBgra CurrentPixel;
for (int y = rect.Top; y < rect.Bottom; y++)
{
if (IsCancelRequested) return;
for (int x = rect.Left; x < rect.Right; x++)
{
CurrentPixel = src[x,y];
int R = CurrentPixel.R;
int G = CurrentPixel.G;
int B = CurrentPixel.B;
int A = CurrentPixel.A;
if (A != 0)
{
switch (Amount1)
{
case 0: // Темный
A = Math.Max(Math.Max(R, G), B);
break;
case 1: // Светлый
A = 255 - Math.Min(Math.Min(R, G), B);
break;
};
}
CurrentPixel.A = Int32Util.ClampToByte(A);
dst[x,y] = CurrentPixel;
}
}
}