Ho un modulo con un'immagine. Sto usando un cursore per cambiare l'opacità dell'immagine. Quindi nell'evento "ValueChanged" del cursore sto chiamando il seguente metodo per cambiare l'opacità.Modifica dell'opacità di un'immagine bitmap
//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;
}
L'immagine restituita è impostata sull'immagine originale.
mio problema è che l'opacità dell'immagine non cambia ... Se c'è qualche errore si prega di essere così gentile da sottolineare .. Thnx ...
Il commento per l'opacità del parametro indica "percentuale di opacità", ma non è una percentuale, è un fattore assoluto, vale a dire nell'intervallo da 0.0 a 1.0. – RenniePet
Mi ci sono volute alcune ore di scavo, ma questo era il post che alla fine mi ha risposto. Grazie! – samuelesque
Matematicamente non vi è alcuna differenza tra il 65% e lo 0,65. Sono equivalenti. –