Tengo un formulario que tiene una imagen. Estoy usando un control deslizante para cambiar la opacidad de la imagen. Entonces, en el evento "ValueChanged" del control deslizante estoy llamando al siguiente método para cambiar la opacidad.Cambiar la opacidad de una imagen de mapa de bits
//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;
}
La imagen devuelta se establece en la imagen original.
Mi problema es que la opacidad de la imagen no está cambiando ... Si hay algún error, por favor sea tan amable de señalar .. Thnx ...
Su comentario para el parámetro opacity dice "porcentaje de opacidad", pero no es un porcentaje, es un factor absoluto, es decir, en el rango de 0.0 a 1.0. – RenniePet
Me tomó algunas horas de excavación, pero esta fue la publicación que finalmente respondió por mí. ¡Gracias! – samuelesque
Matemáticamente no hay diferencia entre 65% y 0.65. Ellos son equivalentes. –