У меня есть форма, которая имеет изображение. Я использую ползунок для изменения непрозрачности изображения. Поэтому в событии «ValueChanged» слайдера я вызываю следующий метод для изменения непрозрачности.Изменение непрозрачности растрового изображения
//Setting the opacity of the image
public static Image SetImgOpacity(Image imgPic, float imgOpac)
{
Bitmap bmpPic = new Bitmap(imgPic.Width, imgPic.Height);
Graphics gfxPic = Graphics.FromImage(bmpPic);
ColorMatrix cmxPic = new ColorMatrix();
cmxPic.Matrix33 = imgOpac;
ImageAttributes iaPic = new ImageAttributes();
iaPic.SetColorMatrix(cmxPic, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
gfxPic.DrawImage(imgPic, new Rectangle(0, 0, bmpPic.Width, bmpPic.Height), 0, 0, imgPic.Width, imgPic.Height, GraphicsUnit.Pixel, iaPic);
gfxPic.Dispose();
return bmpPic;
}
Возвращенное изображение установлено на исходное изображение.
Моя проблема заключается в том, что непрозрачность изображения не меняется ... Если есть какие-либо ошибки, пожалуйста, будьте любезны указать .. Thnx ...
Ваш комментарий к непрозрачности параметра говорит «процент непрозрачности», но это не процент, это абсолютный коэффициент, то есть в диапазоне от 0.0 до 1.0. – RenniePet
Мне потребовалось несколько часов, чтобы выкопать, но это был пост, который, наконец, ответил мне. Благодаря! – samuelesque
Математически нет разницы между 65% и 0,65. Они эквивалентны. –