Redimensionner une image avec un COM en VB - VB/VBA/VBS - Programmation
MarshPosté le 13-09-2004 à 23:04:12
Salut,
j'ai déjà posé la question, mais je pense avoir manqué de précision. Pour informations, j'ai déjà fait des recherches que j'ai testées.
si je pose la question, c'est que le forum est ma dernière solution
Je voudrais redimensionner une image en visual basic, mais, je n'ai pas de form, puisque c'est une DLL qui est censé faire cette manipulation.
J'ai eu cette solution :
Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal XSrc As Long, _ ByVal YSrc As Long, _ ByVal nSrcWidth As Long, _ ByVal nSrcHeight As Long, _ ByVal dwRop As Long) As Long
' ---Initialisation--- Zoom = 0.5 Picture1.ScaleMode = vbPixels Picture2.ScaleMode = vbPixels '66 Me.ScaleMode = vbPixels Hauteur = CLng(Zoom * Picture1.Height) Largeur = CLng(Zoom * Picture1.Width) ' ---Opération a effectuer : COPIER la bitmap de la zone d'image source--- With Picture2 .Width = Largeur .Height = Hauteur End With Ret = StretchBlt(Picture2.hdc, 0, 0, Largeur, Hauteur, _ Picture1.hdc, 0, 0, Picture1.Width, Picture1.Height, _ SRCCOPY) Picture2.Picture = Picture2.Image
L'erreur remontée par VB lorsque je fais : sChemin = "c:\2.jpg" Set Picture1 = LoadPicture(sChemin)
Marsh Posté le 13-09-2004 à 23:04:12
Salut,
j'ai déjà posé la question, mais je pense avoir manqué de précision. Pour informations, j'ai déjà fait des recherches que j'ai testées.
si je pose la question, c'est que le forum est ma dernière solution
Je voudrais redimensionner une image en visual basic, mais, je n'ai pas de form, puisque c'est une DLL qui est censé faire cette manipulation.
J'ai eu cette solution :
Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal XSrc As Long, _
ByVal YSrc As Long, _
ByVal nSrcWidth As Long, _
ByVal nSrcHeight As Long, _
ByVal dwRop As Long) As Long
' ---Initialisation---
Zoom = 0.5
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
'66 Me.ScaleMode = vbPixels
Hauteur = CLng(Zoom * Picture1.Height)
Largeur = CLng(Zoom * Picture1.Width)
' ---Opération a effectuer : COPIER la bitmap de la zone d'image source---
With Picture2
.Width = Largeur
.Height = Hauteur
End With
Ret = StretchBlt(Picture2.hdc, 0, 0, Largeur, Hauteur, _
Picture1.hdc, 0, 0, Picture1.Width, Picture1.Height, _
SRCCOPY)
Picture2.Picture = Picture2.Image
L'erreur remontée par VB lorsque je fais :
sChemin = "c:\2.jpg"
Set Picture1 = LoadPicture(sChemin)
est :
Type incompatible
Avez vous une solution svp ?