madflo
Messages postés47Date d'inscriptionmercredi 28 juillet 2004StatutMembreDernière intervention24 juin 2013
-
12 sept. 2009 à 17:00
cs_Ayr
Messages postés221Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention13 décembre 2009
-
13 sept. 2009 à 17:36
Je souhaite zoomer une image de façon optimisé.
Voici les deux techniques que j'ai utilisé pour l'instant, la rapidité d'exécution est trop lente :
bmpResult de type bitmap source :
Solution 1
dim bmpResult=New Bitmap(bmpResult,bmpResult.Width*iZoom,bmpResult.Height*iZoom)
Résultat : Les pixels sont retraités de façon vectoriel je pense,mes lignes deviennent des pattes de mouche :(
Solution 2
Lors de la création de mon image, je boucle sur chaque pixel et j'applique un algo pour multiplier les points
Résultat : Lenteurs incroyable
Est il donc possible de dire à mon bitmap : 1pixel = un carré de pixel de largeur iZoom.
cs_Ayr
Messages postés221Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention13 décembre 20092 12 sept. 2009 à 22:23
Salut,
Si on reste dans l'esprit Framework, voilà une autre façon de faire des zoom:
On suppose que iZoom est un Single et qu'on à déjà l'image à zoomer dans imgSrc.
Dim DrawingRect As New System.Drawing.RectangleF(0, 0, Me.PictureBox1.Image.Width*iZoom, Me.PictureBox1.Image.Height*iZoom)
Dim imgDest As New System.Drawing.Bitmap(CType(DrawingRect.Width, Integer), CType(DrawingRect.Height, Integer), System.Drawing.Imaging.PixelFormat.Format32bppPArgb)
Dim GrafX As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(img)
GrafX.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
GrafX.DrawImage(imgSrc, DrawingRect)
Bon, bien sur la qualité du rendu dépend fortement de la qualité d'image d'origine et le resultat n'est pas amélioré de manière flagrante par rapport à ta méthode N°1. Mais il y à du mieux quand même.