julacariote
Messages postés5Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention 5 octobre 2007
-
18 sept. 2007 à 12:16
julacariote
Messages postés5Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention 5 octobre 2007
-
19 sept. 2007 à 13:40
Bonjour à tous,
J'essaie de développer une application en c# et je me heurte à un problème:
Je fais jouer une video dans un label et j'aimerais avoir sur cette video une image GIF (dans une picturebox par ex) en partie transparente. Je ne précise que je ne veux pas directement incruster mon gif sur la video avec un logiciel de montage car le gif doit changer au cours du programme.
Je n'arrive pas à gérer la transparence sur la video !
Quelqu'un connait-il la solution à ce pb ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 18 sept. 2007 à 18:24
Le contôle apparemment ça ne marchera pas.. la solution de la forme avec un région delimitée est pas mal, c'est plus simple à mettre en place qu'une Layered Window.
internal class MyForm : Form
{
public MyForm( Bitmap bmp ) : base( )
{
// Alt + F4 pour quitter.
this.ClientSize = bmp.Size;
this.BackgroundImage = bmp;
this.FormBorderStyle = FormBorderStyle.None;
this.TopMost = true;
this.ShowInTaskbar = false;
this.Region = MakeRegionFromBitmap( bmp, bmp.GetPixel( 0, 0 ) ); // La couleur de fond.
}
// Bitmap sans compression avec une couleur de fond unique !
// On peut utiliser Bitmap.LockBits pour accélérer le traitement.
private Region MakeRegionFromBitmap( Bitmap bitmap, Color transparency )
{
if ( bitmap == null )
throw new ArgumentNullException( );
int width = bitmap.Width;
int height = bitmap.Height;
GraphicsPath path = new GraphicsPath( );
for ( int y = 0; y < height; y++ )
{
for ( int x = 0; x < width; x++ )
{
if ( bitmap.GetPixel( x, y ) != transparency )
{
path.AddRectangle( new Rectangle( x, y, 1, 1 ) );
}
}
}
Region region = new Region( path );
path.Dispose( );
path = null;
julacariote
Messages postés5Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention 5 octobre 2007 18 sept. 2007 à 16:30
Bonjour,
J'utilise directX pour lire la video (en format avi) dans un label (ou dans un panel ou une picturebox, le résultat est le même). Pour l'image, peu m'importe son format GIF ou autre du moment qu'il permet la transparence.