برنامه ای که مشابه ColorBalance فوتوشاپ عمل می کند
به کمک این برنامه می توانید تعادل رنگی قرمز، سبز، آبی، و زرد را در
عکس های مورد نظر خود تغییر دهید.
می دونم که کسی عقلشو از دست نداده که از این برنامه برای اینکار
استفاده کنه ولی نمونه بسیار خوبی برای اینکاره.
توی برنامه از 4 کنترل TrackBar استفاده شده که به صورت لیستی به فرم
اضافه میشن، نام رنگ ها هم همینطور؛ ازین رو به سادگی و با 3 تغییر بسیار ساده
می تونید تعداد رنگ ها را تغییر دهید.
برای اینکار مقدار CNT را تغییر داده و رنگ ها و نام های خود را به آرایه ها اضافه یا کم
کنید، طول فرم هم بسته به تعداد اونها تغییر می کنه.
تعریف متغیرها
staticint CNT = 4;
publicstaticList<TrackBar> tbs = newList<TrackBar>();
Color[] clr = newColor[] { Color.Red, Color.Green, Color.Blue, Color.Yellow};
string[] lb = newstring[] { "R", "G", "B", "Y"};
Image img2,img_org;
ColorBalance
privatestaticImage fill_layer_ARGB(PictureBox PicBox, Image img,Color[] colr)
{
PicBox.Image = img;
Bitmap bmp_img = newBitmap(PicBox.Image);
Graphics ghp = Graphics.FromImage(bmp_img);
LinearGradientBrush LineaBrush;
for (int i = 0; i < CNT; i++)
{
LineaBrush = newLinearGradientBrush(newRectangle(0, 0, bmp_img.Width, bmp_img.Height), Color.FromArgb(tbs[i].Value, colr[i]), Color.FromArgb(tbs[i].Value, colr[i]), LinearGradientMode.BackwardDiagonal);
ghp.FillRectangle(LineaBrush, newRectangle(0, 0, bmp_img.Width, bmp_img.Height));
}
return (Image)bmp_img;
}
اضافه کردن TrackBar ها و Label ها
void add_tracks()
{
for (int i = 0; i < CNT; i++)
{
TrackBar tb = newTrackBar();
tb.Size = newSize(114, 45);
tb.Location = newPoint(i * 114 + 214, 545);
tb.Enabled = false;
tb.Minimum = 0;
tb.Maximum = 255;
tb.Value = 0;
tb.TickStyle = TickStyle.None;
tb.ValueChanged += newEventHandler(tb_ValueChanged);
tbs.Add(tb);
Label l = newLabel();
l.Text = lb[i];
l.Location = newPoint(i * 114 + 260, 567);
this.Controls.Add(l);
}
this.Controls.AddRange(tbs.ToArray());
this.Width += (CNT - 4) * 110;
label1.Left = (int)((pictureBox1.Width - label1.Width) / 2);
}
مثالی از برنامه داخل تصاویر اومده
همونطور که می دونید ترکیب 2 رنگ زرد و آبی میشه سبز
که داخل تصویر مشخصه