PDA

View Full Version : تغییر opacity عکس درون یک picturebox



R2du-soft
شنبه 26 تیر 1395, 17:58 عصر
با سلام
چطور میشه عکسی که درون یک picturebox از ابتدای برنامه لود شده رو تغییر opacity داد؟

کدهای زیر رو تست کردم جوواب نمیده:


pictureBox1.Opacity = 0.01;
picturebox1.Image = ChangeOpacity(picturebox1.Image, 3.3);


مشکل کجاست؟
سپاس

از دانت نت 4.5 و ویژوال 2013 استفاده میکنم

mrprestige
شنبه 26 تیر 1395, 18:26 عصر
سلام دوست من اول یه متد داخل کلاس Form بساز به این شکل

public static Bitmap ChangeOpacity(Image image, float opacityvalue)
{
Bitmap Bitmap1 = new Bitmap(image.Width, image.Height);
Graphics graphics = Graphics.FromImage(Bitmap1);
ColorMatrix colormatrix = new ColorMatrix();
colormatrix.Matrix33 = opacityvalue;
ImageAttributes ImageAttribute = new ImageAttributes();
ImageAttribute.SetColorMatrix(colormatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
graphics.DrawImage(image, new Rectangle(0, 0, Bitmap1.Width, Bitmap1.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, ImageAttribute);
graphics.Dispose();
return Bitmap1;
}


بعد داخل کنترل مورد نظرت (به عنوان مثال Form_Load) اینو بنویس

pictureBox1.Image = ChangeOpacity(Image.FromFile(@"آدرس عکس.jpg"), (0.5f));


پیروز و موفق باشی .
از کدنویسی لذت ببری

R2du-soft
یک شنبه 27 تیر 1395, 01:42 صبح
ممنون
و اما سوال دیگه
چطور میشه Opacity رو به حالت اول برگردوند؟
من میخوام زمانی که فرم لود میشه عکسی که داخل pictureBox1 هست به صورت Opacity 50% دربیاد اونطور بمونه
بعد وقتی موس میره روی pictureBox1 اون وقت Opacity 100% بشه یعنی عکس درست مثل اول دیده بشه
و وقتی موس از روی pictureBox1 کنار رفت Opacity باز به حالت 50% دربیاد

هرکاری کردم نشد،یکسری اذیت ها میکنه این کد و کدهای دیگه

میشه لطفا کمک کنید؟
ممنونم