0% ont trouvé ce document utile (0 vote)
133 vues1 page

Optimisation de traitement d'images GDI32

Le document contient du code pour manipuler des images en C# .NET. Le code charge une image, extrait ses dimensions, crée des versions redimensionnées et les affiche dans différents champs image. Le code utilise des méthodes comme DrawImage, StretchBlt et BitBlt.

Transféré par

Skynet-dev Skynet-dev
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
133 vues1 page

Optimisation de traitement d'images GDI32

Le document contient du code pour manipuler des images en C# .NET. Le code charge une image, extrait ses dimensions, crée des versions redimensionnées et les affiche dans différents champs image. Le code utilise des méthodes comme DrawImage, StretchBlt et BitBlt.

Transféré par

Skynet-dev Skynet-dev
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Salut,

voici du code vite fait sur le gaz, à la louche (à optimiser, ça manque cruellement de libération) :

Code :
sFichier est une chaîne = fSélecteurImage("", "", "Sélectionnez une image.....")
InfoImage est une chaîne = InfoBitmap(sFichier)
// IMG_Image1 est un champ Image
Image1..Largeur = Val(ExtraitChaîne(InfoImage, 2))
Image1..Hauteur = Val(ExtraitChaîne(InfoImage, 3))
Image2..Largeur = Image1..Largeur/2
Image2..Hauteur = Image1..Hauteur/2
Image3..Largeur = Image2..Largeur
Image3..Hauteur = Image2..Hauteur
Image4..Largeur = Image2..Largeur
Image4..Hauteur = Image2..Hauteur
Image1 = sFichier
bitmapOriginal est un "System.Drawing.Bitmap" dynamique = allouer un "System.Drawing.Bitmap"(sFichier)
bitmapNouveau est un "System.Drawing.Bitmap" dynamique = allouer un
"System.Drawing.Bitmap"(bitmapOriginal,
allouer un Size(Image3..Largeur, Image3..Hauteur))

Superbitmap est un "System.Drawing.Bitmap" dynamique =...


allouer un "System.Drawing.Bitmap"(Image3..Largeur, Image3..Hauteur)
MonGraphics est un Graphics dynamique = Graphics::FromImage(Superbitmap)
MonGraphics.CompositingQuality = CompositingQuality.HighQuality
MonGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic
MonGraphics.SmoothingMode = SmoothingMode.HighQuality
//draw the image into the target bitmap
MonGraphics.DrawImage(bitmapOriginal, 0, 0, Image3..Largeur,Image3..Hauteur );
dcimg est un entier = dDébutDessin(Image2)
hdcCompatible est un entier = API("gdi32","CreateCompatibleDC",dcimg)
API("gdi32","SelectObject",hdcCompatible,bitmapOriginal.GetHBitmap())
API("gdi32","StretchBlt",dcimg,0,0,Image2..Largeur,Image2..Hauteur,hdcCompatible,0,0,Image1..Largeur,Ima
ge1..Hauteur,0x00CC0020)
// Rafraîchissement de l'image
API("user32","InvalidateRgn",Handle(Image2),0,True)
dcimg2 est un entier = dDébutDessin(Image3)
hdcCompatible2 est un entier = API("gdi32","CreateCompatibleDC",dcimg2)
API("gdi32","SelectObject",hdcCompatible2,bitmapNouveau.GetHBitmap())
API("gdi32","BitBlt",dcimg2,0,0,Image3..Largeur,Image3..Hauteur,hdcCompatible2,0,0,0x00CC0020)
API("user32","InvalidateRgn",Handle(Image3),0,True)

dcimg3 est un entier = dDébutDessin(Image4)


hdcCompatible3 est un entier = API("gdi32","CreateCompatibleDC",dcimg3)
API("gdi32","SelectObject",hdcCompatible3,Superbitmap.GetHbitmap())
API("gdi32","BitBlt",dcimg3,0,0,Image4..Largeur,Image4..Hauteur,hdcCompatible3,0,0,0x00CC0020)
API("user32","InvalidateRgn",Handle(Image4),0,True)

il faut rajouter les assemblages .NET suivant dans ton projet


Menu: Atelier->.NET->Utiliser un assemblage .NET dans ce projet
mscorlib
System.Drawing

Vous aimerez peut-être aussi