Je n'arrive pas à copier le bitmap source dans le bitmap target avec cette procédure. Je voudrais absolument utiliser BitBlt car à priori ce sera plus rapide que drawimage...
L'appel à picturebox1.Image=target m'affiche désespérement du vide alors que si je remplace par picturebox1.Image = source l'image est bien affichée...
Merci de votre aide je débute en C#
Voici la déclaration pour BitBlt:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 private void CopyBitmap() { Bitmap source = new Bitmap("c://ESSAI.bmp"); Graphics gSource = Graphics.FromImage(source); Bitmap target = new Bitmap(source.Width, source.Height); Graphics gDest = Graphics.FromImage(target); IntPtr sourceDC = gSource.GetHdc(); IntPtr destDC = gDest.GetHdc(); BitBlt(destDC, 0, 0, source.Width, source.Height, sourceDC, 0, 0, 13369376); pictureBox1.Image = target; gDest.ReleaseHdc(destDC); gSource.ReleaseHdc(sourceDC); gDest.Dispose(); gSource.Dispose(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 [System.Runtime.InteropServices.DllImportAttribute( "gdi32.dll")] private static extern bool BitBlt( IntPtr hdcDest, // handle to destination DC int xDest, // x coord of the dest upper left corner int yDest, // y coord of the dest upper left corner int width, // width of the destination rectangle int height, // height of the destination rectangle IntPtr hdcSrc, // handle to source DC int xSrc, // x coord of the source upper left corner int ySrc, // y coord of the source upper left corner Int32 dwRop // raster operation code );
Partager