Redimentionner image

Résolu
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010 - 2 janv. 2006 à 17:43
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 8 janv. 2006 à 23:13
salut !

J'aurai aimer pouvoir redimentionner une image pour pouvoir ensuite l'enregistrer !
Kelkin serai m'aidé ?

mici

Clad

13 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 janv. 2006 à 19:10
salut,

voici une autre solution....








' 2 Pic flat sans bordure, 1 bouton

'

Option Explicit

Private 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

Private Const ScrCopy = &HCC0020

'

'

Private Sub Form_Load()

Pic_Origine.AutoSize = True

Pic_Resultat.Visible = False

Pic_Origine.Picture = LoadPicture ("C:\tmp.jpg") '<- 300*220px

End Sub

'

'

Private Sub Command1_Click()

Dim lWidth As Long, lHeight As Long

lWidth = 600 * Screen.TwipsPerPixelX

lHeight = 400 * Screen.TwipsPerPixelY



Pic_Resultat.Width = lWidth

Pic_Resultat.Height = lHeight

Pic_Resultat.Visible = True





Call StretchBlt(Pic_Resultat.hdc, 0, 0, lWidth, lHeight, Pic_Origine.hdc, _

0, 0, Pic_Origine.ScaleWidth, Pic_Origine.ScaleHeight, ScrCopy)



DoEvents

SavePicture Pic_Resultat.Image, "C:\toto.bmp"

End Sub





<small> Coloration
syntaxique automatique [AFCK]</small>



PCPT [AFCK]
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
2 janv. 2006 à 17:46
Salut,

UItilise la fonction PaintPicture du picturebox par exemple, et n'oublie pas de sauvegarder l'objet Image dans l'objet Picture :

Picture1.PaintPicture Picture1.Picture, 0, 0, 100, 100, 0, 0, 200, 200
Set Picture1.Picture = Picture1.Image
SavePicture "c:\toto.bmp", Picture1.Picture

_____________________________________________________________________
Avant de poster un message sur le forum, prière de lire /forum.v2.as%3C/body
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
2 janv. 2006 à 18:14
ouai mais le picturebox na pas la fonction stretch comme celle de la picture ! Ce qui fait kil et pas possible de redimentionner l'image !

Clad
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
2 janv. 2006 à 19:01
Ben comme je te le dit : utilise la fonction PaintPicture pour redimensionner l'image : la propriété Stretch ne permet de redimensionner que l'affichage de l'image, par l'image elle même !

_____________________________________________________________________
Avant de poster un message sur le forum, prière de lire ceci :
http://www.vbfrance.com/forum.v2.aspx?ID=627915
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
3 janv. 2006 à 09:15
salut !
PCPT ta méthode a l'aire détre pas mal selement sur la pic_resultat il ny a pas d'image mais il y a bien un redimentionnement ! Faut que je regarde ca de plus pret ! Mici

Clad
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 janv. 2006 à 15:16
chez moi il y a bien l'image, et toto.bmp la contient.

peut-être autoredraw....
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
3 janv. 2006 à 22:55
Yep c'été autoredraw qu'il fallai métre, par contre la qualité de limage et super mauvaise ??? un moyen de contré ca ?

Clad
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 janv. 2006 à 23:04
beh faut voir à quel coefficient tu redimentionnes.

mais étirer par exemple une JPG 500*500 vers BMP 1000*1000 (donc coef 2), tu ne pourras pas faire grand chose....



la meilleure qualité sera d'avoir une image d'origine en BMP et un coef max de 1,6 environ

PCPT [AFCK]
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
4 janv. 2006 à 06:26
Ou sinon, va voir ma source nommée zoom améliorée avec antialiasing qui évite l'effet escalier en recalculant chaque pixel de l'image de destination au mieux.

_____________________________________________________________________
Avant de poster un message sur le forum, prière de lire ceci :
www.vbfrance.com/forum.v2.aspx?ID=627915
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
4 janv. 2006 à 07:51
ouai mais c que la l'image je la réduit donc normalement ya pas de perte de qualité c ca que je ne comprend pas ! C'est pour faire des miniature ! Et là tout les trai son grossi et plutot noir ! bizar...

Clad
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
4 janv. 2006 à 12:17
Parce que le coefficient X/Y ne doit pas être respecté : il faut que le redimensionnement en largeur soit identique au redimensionnement en hauteur (en proportion).

_____________________________________________________________________
Avant de poster un message sur le forum, prière de lire ceci :
www.vbfrance.com/forum.v2.aspx?ID=627915
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
8 janv. 2006 à 22:37
Mici tt de méme ! j'ai résolut ce problème grave au php ! Car avec le vb je n'arive pas a avoir une miniature de bonne qualité !
Mais ta facon pcpt et bonne car elle réduit l'image, il suffi juste de trouver comment faire pour ne pas perdre en qualité !

Clad
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 janv. 2006 à 23:13
je ne sais pas comment fonctionne MsPaint (qui n'est évidemment pas fait en VB) mais voici le principe... intéressant peut-être.



ouvre une image avec paint. (bmp ou jpg, peu importe)

edition / selectionner tout

image / etirer inclier -> (étirement) 30% sur 30%



observe bien le rendu.



fais ensuite la même manipulation mais SANS sélectionner l'image (donc concrètement, tout le document)



là l'image (chez moi en tout cas) est de qualité très correcte.



on peut supposer que la première méthode est un strech, puisqu'on
aurait pu ne prendre qu'une partie du document (cf coordonnées,
paramètres API)



reste à trouver quelle api est utilisée pour la 2e méthode ....



(rien ne dit non plus que ce raisonnement soit correct. mais on peut donc forcément obtenir un résultat similaire)



@+



PCPT [AFCK]
0
Rejoignez-nous