Bonjour,
Pour finir mon projet de BTS, j'ai besoin de solutionner ce problème :
J'ai des fichiers images (.png) qui ont une couleur de transparence (alpha=255 et les autres composantes à 0).
Lorsque je tente de les affichées avec le code suivant :
public class PictureBoxPerso : PictureBox
{
public PictureBoxPerso():base()
{
//colorKey=Color.FromArgb(Valeur); //
Voir le texte plus bas. }
private Image mImage=null;
private System.Drawing.Color colorKey;
public Image ImageAAfficher
{
get
{
return mImage;
}
set
{
mImage=value;
}
}
public Color ColorKey
{
get { return colorKey; }
set { colorKey = value; }
}
// Pour être complet faudrait aussi gérer la propriété SizeMode ect..
protected override void OnPaint( PaintEventArgs e )
{
base.OnPaint( e );
ImageAttributes attributes = new ImageAttributes( );
attributes.SetColorKey( colorKey, colorKey );
if(mImage!=null)
e.Graphics.DrawImage
(
this.mImage,
this.ClientRectangle,
0,
0,
this.mImage.Width,
this.mImage.Height,
GraphicsUnit.Pixel,
attributes
);
}
}
Quand ColorKey est non affectée, La transparence s'applique mais le noir devient transparent aussi.
Quand ColorKey est définit à Color.Transparent, seul le blanc devient transparent.
Quand ColorKey est définit à Color.FromArgb(Composantes RGB), seul la couleur RGB précisée devient transparente.
Quand ColorKey est définit à 0xFF000000 (alpha=255, RGB=0), seul le blanc devient transparent.
Voilà mon pb, est-ce que vous connaissez une solution à ce problème car moi je suis à sec.
Merci d'avance.