OVH Cloud OVH Cloud

Comment redimensionner 1 photo issue d'1 fichier ???

15 réponses
Avatar
le_troll
Bonjour,

Comment redimensionner une photo pour qu'elle fasse exactement x*y
pixels (sachant qu'elle peut être plus petit comme plus grande)?

Je récupère la photo par le choix dans un fichier photo d'une
CommonDialog...???

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------

5 réponses

1 2
Avatar
le_troll
Dis-moi Christophe, ça va me serve, la taille maxi en W98, c'est en pixels
L*H ??? pu en taille octets ???
Merci :o)

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:
cc8qfc$gfo$
Je crois effectivemenbt que la solution de François est la plus simple


pour
ce que tu veux faire.

Sache qu'il n'y a qu'un pb avec loadpicture (c'est pour cela que je me


suis
mis aux API) c'est que la taille du bitmap est limitée si tu tentes de
charger une tros grosse image echec de la fonction. Ceci sous 98, sous XP


je
pense (non testé) qu'ils ont repoussés la limite la GDI étant dans ce cas


en
32 bits.

Christophe Vergon

"le_troll" a écrit dans le message de news:
upIM#
> Merci, je crois que François a donné un bon exemple avec paint picture,


je
> vais voir ce que j'arrive à faire, j'avais déjà ça mais en réduction


(sauf
> que je ne calculais pas la taille avant), je n'ai pas l'habitude de


jouer
> avec les images, merci encore :o)
>
> --
> Merci, @+, bye, Joe
> troll75 AROBASE iFrance POINT com
> ------------------------------------------
> Ce message est plein de virus "certifiés"
> Le_Troll, éleveur de Trolls depuis César, qui disait:
> Avec une hache, celui qui tient le manche a toujours raison !
> ------------------------------------------
>
>
> "Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de
news:
> cc8mvm$q7d$
> > Bonjour,
> >
> > Concernant GDI+ utilisable avec XP, il y a les pour et les contres
(c'est
> > assez lent), l'investissemnt necessaire pour apprendre les fonctions
GDI+
> > est assez important et je pense (ça n'engage que moi) qu'il vaut mieux
le
> > faire avec Donet.
> > Concernant le jpg, load ou paint picture le gerent mais uniquement


sous
> XP.
> >
> > Pour le pb plus spécifique de Mr le Troll, il te faut convertir le
fichier
> > image disque (jpg) en DIB device independant bitmap et utiliser
> > strechtDIBits par exemple.
> >
> > Le problème et que même si ce que tu veux faire parait très simple,


les
> > notions que cela impliquent pour une utilisation avec les API font
> plusieurs
> > chapitre de livre traitant le sujet (celui de Dan Appelman par


exemple).
> > C'est donc assez difficile de l'expliquer en quelques lignes.
> >
> > Si la manipulation des DC et de leurs systèmes de coordonnées t'es
> familière
> > ça reduit déjà beaucoup.
> >
> > dis nous si c'est le cas .
> >
> > Christophe Vergon
> >
> > "le_troll" a écrit dans le message de news:
> > Os4q$
> > > Bonjour, merci, non, je veux pas le code et les API... Parce que,
quand
> on
> > > s'adresse à un logiciel externe, y a toujours le risque qu'il ne


soit
> pas
> > > monté, ou qu'il faille le distribuer avec...
> > >
> > > --
> > > Merci, @+, bye, Joe
> > > troll75 AROBASE iFrance POINT com
> > > ------------------------------------------
> > > Ce message est plein de virus "certifiés"
> > > Le_Troll, éleveur de Trolls depuis César, qui disait:
> > > Avec une hache, celui qui tient le manche a toujours raison !
> > > ------------------------------------------
> > >
> > >
> > > "Denis" a écrit dans le message de news:
> > > O1F#
> > > >
> > > > ----- Original Message -----
> > > > From: "le_troll"
> > > > Newsgroups: microsoft.public.fr.vb
> > > > Sent: Saturday, July 03, 2004 9:17 PM
> > > > Subject: Comment redimensionner 1 photo issue d'1 fichier ???
> > > >
> > > >
> > > > > Bonjour,
> > > > >
> > > > > Comment redimensionner une photo pour qu'elle fasse


exactement
> x*y
> > > > > pixels (sachant qu'elle peut être plus petit comme plus grande)?
> > > > >
> > > > > Je récupère la photo par le choix dans un fichier photo


d'une
> > > > > CommonDialog...???
> > > > >
> > > > bonjour :)
> > > >
> > > > tu peux utiliser un utilitaire en ligne de commande qui s'appelle
> > > > "imagemagick". il te prend une photo à n'importe quel format
> > > > et la conertit, la déforme, la tranforme à souhait.
> > > > il ne reste donc plus qu'à appeler la ligne de commande dans ton
> > > > code. C'est pas très élégant mais c'est efficace.
> > > >
> > > > @++
> > > >
> > > > > --
> > > > > Merci, @+, bye, Joe
> > > > > troll75 AROBASE iFrance POINT com
> > > > > ------------------------------------------
> > > > > Ce message est plein de virus "certifiés"
> > > > > Le_Troll, éleveur de Trolls depuis César, qui disait:
> > > > > Avec une hache, celui qui tient le manche a toujours raison !
> > > > > ------------------------------------------
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
le_troll
François, y a de l'idée, lol, mais ça marche pas, le dimensionnement c'est
pas tout à fait ça, je t'ai envoyé la source par courrier...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"François Picalausa" a écrit dans le message de news:

Hello,

Cette fois ci, c'est clair :-)
Comme je le disais, il y a moyen avec paintpicture:
'On charge l'image
Dim tPicture As Picture
Set tPicture = LoadPicture("D:Documents and SettingsFrançois
PicalausaMes documentsMes imagesf14.jpg")

'Détermine le rapport largeur / hauteur
Dim sngScale As Single
sngScale = tPicture.Width / tPicture.Height

'Si ce rapport est trop grand ou trop élevé, on peut éviter le
chargement
If sngScale < 0.01 Or sngScale > 100 Then
MsgBox "Erreur taille"
Exit Sub
End If

Dim PicXScale As Single
Dim PicYScale As Single

'On calcule les rapports images/container
PicXScale = Picture1.ScaleX(tPicture.Width, vbHimetric, vbTwips) /
Picture1.ScaleWidth
PicYScale = Picture1.ScaleY(tPicture.Height, vbHimetric, vbTwips) /
Picture1.ScaleHeight

'En fonction du rapport le plus petit
If PicXScale < PicYScale Then
'on trace l'image proportionellement
Picture1.PaintPicture tPicture, 0, 0, Picture1.ScaleWidth,
Picture1.ScaleWidth / sngScale
Else
'on trace l'image proportionellement
Picture1.PaintPicture tPicture, 0, 0, Picture1.ScaleHeight *
sngScale, Picture1.ScaleHeight
End If

c'est une des possibilités... y a certainement plus simple...

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"le_troll" a écrit dans le message de
news:%
> A l'aide d'1 CommonDialog je sélectionne une image (jpg ou bmp)
> que je mets dans une pictureBox de 430*600 pixels, donc je voudrais
> que ma photo sélectionné fasse toujours au moins et dans ses 2
> dimensions la taille de la pictureBoxe (pour faire un puzzle
> ensuite), le surplus s'il y a, étant tronqué à droite et en bas de
> facto, mais parfois la taille de l'image copiée est inférieure dans 1
> ou 2 de ses dimension au minimum requis sus-citées, et c'est là ou il
> faudrait agrandir (à la rigueur pour le rétrécissement je m'en moque,
> je tronque), mais agrandir proportionnellement pour ne pas déformer
> l'image, puis ensuite s'il y a lieu les excédants seront tronqués
> quand je la mettrais dans la pirctureBox...
>
> Form1.Picture4.Picture = Picture1.Image
>
> Donc si l'image est inférieures à au moins une des dimensions
> requises, il faut l'agrandir proportionnellement jusqu'à ce que ses
> deux dimension fassent au moins la taille requise, étant donnée que
> l'on conserve la proportion, ça peut amener à une image d'une taille
> très grande.
> Par exemple l'image fait 10*1000 pixels (rapport 1/10), si je veux
> qu'elle remplisse ma pictureBox de 430*800 pixels, je vais devoir
> agrandir de 43 fois la largeur (10*43C0), ce qui va
> proportionnellement agrandir aussi la hauteur qui était déjà
> supérieure à la taille requise (1000 pour 600), la hauteur va faire
> ensuite (même multiplicateur = 43*1000C.000 pixels), j'airais donc
> une image de 430*43000 pixels, que je vais ensuite tronquer au
> dimension requises, soit ici, seulement la hauteur à 600 pixels...
>
> Le problème est que je risque de bouffer toute la mémoire, il
> faudrait peut être imposer une taille minimum de l'image dans sa plus
> petite dimension...
>
> Ci-joint un dessin jpg en exemple à charger, comme suit:
> gris = pcitureBox vierge
> jaune = image copiée
> rouge = excédant tronqué
> Dans cette exemple, les images 3, 4 et 6 doivent être redimensionnées,
> respectivement, (sur la hauteur; sur la largeur; sur les 2
> dimensions)... Il ne doit pas y avoir de zone grise et tout doit
> rester proportionnel...
>
> Heu, j'aimerais le faire en programmation à l'aide du code, des
> fonctions d'image et des API, pas à l'aied de logiciels extérieurs...
>
> Donc, en théorie il faudrait:
> -0- Tester si taille plus petite < à X, rejeter msgbox...; sinon:
> -1- Calculer la taille l/h
> -2- Si une des dimensions est inférieure à sa taille requise,
> calculer le pourcentage d'agrandissement: 100/dimension_requise *
> côté_le_plus_petit_limage
> -3- Agrandir selon le coefficient trouvé
> -4- Balancer dans la pictureBox qui va remettre à la taille voulu et
> tronquer ce qui dépasse.




Avatar
le_troll
Envoi 2/2 lol, ça merde, ça rame, le reste des fichiers, mais je t'ai écrit
aussi...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"François Picalausa" a écrit dans le message de news:

Hello,

Cette fois ci, c'est clair :-)
Comme je le disais, il y a moyen avec paintpicture:
'On charge l'image
Dim tPicture As Picture
Set tPicture = LoadPicture("D:Documents and SettingsFrançois
PicalausaMes documentsMes imagesf14.jpg")

'Détermine le rapport largeur / hauteur
Dim sngScale As Single
sngScale = tPicture.Width / tPicture.Height

'Si ce rapport est trop grand ou trop élevé, on peut éviter le
chargement
If sngScale < 0.01 Or sngScale > 100 Then
MsgBox "Erreur taille"
Exit Sub
End If

Dim PicXScale As Single
Dim PicYScale As Single

'On calcule les rapports images/container
PicXScale = Picture1.ScaleX(tPicture.Width, vbHimetric, vbTwips) /
Picture1.ScaleWidth
PicYScale = Picture1.ScaleY(tPicture.Height, vbHimetric, vbTwips) /
Picture1.ScaleHeight

'En fonction du rapport le plus petit
If PicXScale < PicYScale Then
'on trace l'image proportionellement
Picture1.PaintPicture tPicture, 0, 0, Picture1.ScaleWidth,
Picture1.ScaleWidth / sngScale
Else
'on trace l'image proportionellement
Picture1.PaintPicture tPicture, 0, 0, Picture1.ScaleHeight *
sngScale, Picture1.ScaleHeight
End If

c'est une des possibilités... y a certainement plus simple...

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"le_troll" a écrit dans le message de
news:%
> A l'aide d'1 CommonDialog je sélectionne une image (jpg ou bmp)
> que je mets dans une pictureBox de 430*600 pixels, donc je voudrais
> que ma photo sélectionné fasse toujours au moins et dans ses 2
> dimensions la taille de la pictureBoxe (pour faire un puzzle
> ensuite), le surplus s'il y a, étant tronqué à droite et en bas de
> facto, mais parfois la taille de l'image copiée est inférieure dans 1
> ou 2 de ses dimension au minimum requis sus-citées, et c'est là ou il
> faudrait agrandir (à la rigueur pour le rétrécissement je m'en moque,
> je tronque), mais agrandir proportionnellement pour ne pas déformer
> l'image, puis ensuite s'il y a lieu les excédants seront tronqués
> quand je la mettrais dans la pirctureBox...
>
> Form1.Picture4.Picture = Picture1.Image
>
> Donc si l'image est inférieures à au moins une des dimensions
> requises, il faut l'agrandir proportionnellement jusqu'à ce que ses
> deux dimension fassent au moins la taille requise, étant donnée que
> l'on conserve la proportion, ça peut amener à une image d'une taille
> très grande.
> Par exemple l'image fait 10*1000 pixels (rapport 1/10), si je veux
> qu'elle remplisse ma pictureBox de 430*800 pixels, je vais devoir
> agrandir de 43 fois la largeur (10*43C0), ce qui va
> proportionnellement agrandir aussi la hauteur qui était déjà
> supérieure à la taille requise (1000 pour 600), la hauteur va faire
> ensuite (même multiplicateur = 43*1000C.000 pixels), j'airais donc
> une image de 430*43000 pixels, que je vais ensuite tronquer au
> dimension requises, soit ici, seulement la hauteur à 600 pixels...
>
> Le problème est que je risque de bouffer toute la mémoire, il
> faudrait peut être imposer une taille minimum de l'image dans sa plus
> petite dimension...
>
> Ci-joint un dessin jpg en exemple à charger, comme suit:
> gris = pcitureBox vierge
> jaune = image copiée
> rouge = excédant tronqué
> Dans cette exemple, les images 3, 4 et 6 doivent être redimensionnées,
> respectivement, (sur la hauteur; sur la largeur; sur les 2
> dimensions)... Il ne doit pas y avoir de zone grise et tout doit
> rester proportionnel...
>
> Heu, j'aimerais le faire en programmation à l'aide du code, des
> fonctions d'image et des API, pas à l'aied de logiciels extérieurs...
>
> Donc, en théorie il faudrait:
> -0- Tester si taille plus petite < à X, rejeter msgbox...; sinon:
> -1- Calculer la taille l/h
> -2- Si une des dimensions est inférieure à sa taille requise,
> calculer le pourcentage d'agrandissement: 100/dimension_requise *
> côté_le_plus_petit_limage
> -3- Agrandir selon le coefficient trouvé
> -4- Balancer dans la pictureBox qui va remettre à la taille voulu et
> tronquer ce qui dépasse.






begin 666 Form1.frm
M5D524TE/3B U+C P#0I"96=I;B!60BY&;W)M($9O<FTQ( T*(" @0F]R9&5R
M4W1Y;&4@(" @(#T@(" Q(" #0H@("!#87!T:6]N(" @
M(" @(" @/2 @(")&;W)M,2(-"B @($-L:65N=$AE:6=H=" @(" ](" @.3(U
M-0T*(" @0VQI96YT3&5F=" @(" @(#T@(" S.#0P#0H@("!#;&EE;G14;W @
M(" @(" @/2 @(#4T, T*(" @0VQI96YT5VED=&@@(" @(#T@(" X,C8U#0H@
M("!,:6YK5&]P:6,@(" @(" @/2 @(")&;W)M,2(-"B @($UA>$)U='1O;B @
M(" @(" ](" @," @("=&86QS90T*(" @36EN0G5T=&]N(" @(" @(#T@(" P
M(" @)T9A;'-E#0H@("!38V%L94AE:6=H=" @(" @/2 @(#8Q-PT*(" @4V-A
M;&5-;V1E(" @(" @(#T@(" S(" G4&EX96P-"B @(%-C86QE5VED=&@@(" @
M(" ](" @-34Q#0H@("!"96=I;B!60BY0:6-T=7)E0F]X(%!I8W1U<F4T( T*
M(" @(" @2&5I9VAT(" @(" @(" @(#T@(" T.34-"B @(" @($QE9G0@(" @
M(" @(" @(" ](" @, T*(" @(" @4&EC='5R92 @(" @(" @(#T@(" B
M1F]R;3$N9G)X(CHP,# P#0H@(" @("!38V%L94AE:6=H=" @(" @/2 @(#0S
M-0T*(" @(" @4V-A;&57:61T:" @(" @(#T@(" Q,34U#0H@(" @("!486))
M;F1E>" @(" @(" @/2 @(#8-"B @(" @(%1O<" @(" @(" @(" @(" ](" @
, T*(" @(" @5VED=&@@(" @(" @(" @(#T@(" Q,C$U#0H@("!%;F0-
M"B @($)E9VEN(%9"+E!I8W1U<F5";W@@4&EC='5R93,@#0H@(" @("!(96EG
M:'0@(" @(" @(" @/2 @(#0Y-0T*(" @(" @3&5F=" @(" @(" @(" @(#T@
M(" V.#0P#0H@(" @("!0:6-T=7)E(" @(" @(" @/2 @(")&;W)M,2YF
(-"B @(" @(%-C86QE2&5I9VAT(" @(" ](" @-#,U#0H@(" @("!3
M8V%L95=I9'1H(" @(" @/2 @(#$Q-34-"B @(" @(%1A8DEN9&5X(" @(" @
M(" ](" @-0T*(" @(" @5&]P(" @(" @(" @(" @(#T@(" S-C P#0H@(" @
M("!7:61T:" @(" @(" @(" @/2 @(#$R,34-"B @($5N9 T*(" @0F5G:6X@
M5D(N4&EC='5R94)O>"!0:6-T=7)E,B -"B @(" @($AE:6=H=" @(" @(" @
M(" ](" @-#DU#0H@(" @("!,969T(" @(" @(" @(" @/2 @(#8X-# -"B @
M(" @(%!I8W1U<F4@(" @(" @(" ](" @(D9O<FTQ+F9R>"(Z1C9!- T*(" @
M(" @4V-A;&5(96EG:'0@(" @(#T@(" T,S4-"B @(" @(%-C86QE5VED=&@@
M(" @(" ](" @,3$U-0T*(" @(" @5&%B26YD97@@(" @(" @(#T@(" T#0H@
M(" @("!4;W @(" @(" @(" @(" @/2 @(#$S,C -"B @(" @(%=I9'1H(" @
M(" @(" @(" ](" @,3(Q-0T*(" @16YD#0H@("!"96=I;B!60BY#;VUM86YD
M0G5T=&]N($-O;6UA;F0S( T*(" @(" @0V%P=&EO;B @(" @(" @(#T@(" B
M;6]DZ&QE(&1E('!H;W1O('1R;W @9W)A;F0B#0H@(" @("!(96EG:'0@(" @
M(" @(" @/2 @(#DW-0T*(" @(" @3&5F=" @(" @(" @(" @(#T@(" V.#0P
M#0H@(" @("!486));F1E>" @(" @(" @/2 @(#,-"B @(" @(%1O<" @(" @
M(" @(" @(" ](" @-#4V, T*(" @(" @5VED=&@@(" @(" @(" @(#T@(" Q
M,C$U#0H@("!%;F0-"B @($)E9VEN(%9"+D-O;6UA;F1"qT;]M;6%N
M9#(@#0H@(" @("!#87!T:6]N(" @(" @(" @/2 @(")M;V3H;&&5P:&]T
M;R!J=7-T92(-"B @(" @($AE:6=H=" @(" @(" @(" ](" @,3 Y-0T*(" @
M(" @3&5F=" @(" @(" @(" @(#T@(" V.#0P#0H@(" @("!486));F1E>" @
M(" @(" @/2 @(#(-"B @(" @(%1O<" @(" @(" @(" @(" ](" @,C$V, T*
M(" @(" @5VED=&@@(" @(" @(" @(#T@(" Q,C$U#0H@("!%;F0-"B @($)E
M9VEN(%9"+D-O;6UA;F1"qT;]M;6%N9#$@#0H@(" @("!#87!T:6]N
M(" @(" @(" @/2 @(")P:&]T;R!T<F]P('!E=&ET92 H;6]DZ&QE*2(-"B @
M(" @($AE:6=H=" @(" @(" @(" ](" @-S,U#0H@(" @("!,969T(" @(" @
M(" @(" @/2 @(#8X-# -"B @(" @(%1A8DEN9&5X(" @(" @(" ](" @,0T*
M(" @(" @5&]P(" @(" @(" @(" @(#T@(" R-# -"B @(" @(%=I9'1H(" @
M(" @(" @(" ](" @,3(Q-0T*(" @16YD#0H@("!"96=I;B!60BY0:6-T=7)E
M0F]X(%!I8W1U<F4Q( T*(" @(" @075T;U)E9')A=R @(" @(#T@(" M,2 @
M)U1Rd-"B @(" @($AE:6=H=" @(" @(" @(" ](" @.3 P, T*(" @(" @
M3&5F=" @(" @(" @(" @(#T@(" Q,C -"B @(" @(%-C86QE2&5I9VAT(" @
M(" ](" @-3DV#0H@(" @("!38V%L94UO9&4@(" @(" @/2 @(#,@("=0:7AE
M; T*(" @(" @4V-A;&57:61T:" @(" @(#T@(" T,C8-"B @(" @(%1A8DEN
M9&5X(" @(" @(" ](" @, T*(" @(" @5&]P(" @(" @(" @(" @(#T@(" Q
M,C -"B @(" @(%=I9'1H(" @(" @(" @(" ](" @-C0U, T*(" @16YD#0H@
M("!"96=I;B!60BY,86)E;"!,86)E;#$@#0H@(" @("!#87!T:6]N(" @(" @
M(" @/2 @("(T,S @*B V,# @<&EX96QS(@T*(" @(" @0F5G:6Y0<F]P97)T
M>2!&;VYT( T*(" @(" @(" @3F%M92 @(" @(" @(" @(#T@(" B35,@4V%N
M<R!397)I9B(-"B @(" @(" @(%-I>F4@(" @(" @(" @(" ](" @,3,N-0T*
M(" @(" @(" @0VAA<G-E=" @(" @(" @(#T@(" P#0H@(" @(" @("!796EG
M:'0@(" @(" @(" @/2 @(#<P, T*(" @(" @(" @56YD97)L:6YE(" @(" @
M(#T@(" P(" @)T9A;'-E#0H@(" @(" @("!)=&%L:6,@(" @(" @(" @/2 @
M(# @(" G1F%L<V4-"B @(" @(" @(%-T<FEK971H<F]U9V@@(" ](" @," @
M("=&86QS90T*(" @(" @16YD4')O<&5R='D-"B @(" @($AE:6=H=" @(" @
M(" @(" ](" @-S,U#0H@(" @("!,969T(" @(" @(" @(" @/2 @(#8V,# -
M"B @(" @(%1A8DEN9&5X(" @(" @(" ](" @-PT*(" @(" @5&]P(" @(" @
M(" @(" @(#T@(" W,S(P#0H@(" @("!7:61T:" @(" @(" @(" @/2 @(#$V
M.34-"B @($5N9 T*16YD#0I!='1R:6)U=&)?3F%M92 ](")&;W)M,2(-
M"D%T=')I8G5T92!60E]';&]B86Q.86UE4W!A8V4@/2!&86QS90T*071T<FEB
MqE(%9"7T-R96%T86)L92 ]($9A;'-E#0I!='1R:6)U=&)?4')E9&5C
M;&%R961)9" ](%1Rd-"D%T=')I8G5T92!60E]%>'!O<V5D(#%L<V4-
M"B @#0H@("<@<F5D:6UE;G-I;VYN96UE;"=U;F4@:6UA9V4-"B @(" G
M#0H@($]P=&EO;B!%>'!L:6-I= T*("!$:&EC6%-C86QE($%S(%-I;F=L
M92 G(')A<'!O<G0@:6UA9V4O8V]N=&%I;F5R("AL87)G975R*0T*("!$:6T@
M4&EC65-C86QE($%S(%-I;F=L92 G(')A<'!O<G0@:6UA9V4O8V]N=&%I;F5R
M("AH875T975R*0T*("!$:6T@=%!I8W1U,@4&EC='5R92 G8VAA<F=E
M(&PG:6UA9V4-"B @1&EM('-N9U-C86QE($%S(%-I;F=L92 G(')A<'!O<G0@
M3"](#0H@("<-"@T*#0I3=6(@0V]M;6%N9#%?0VQI8VLH*0T*("!3970@=%!I
M8W1U<F4@/2!0:6-T=7)E,@T*("!#86QL(&-A;&-U; T*16YD(%*#0H-
M"E-U8B!#;VUM86YD,E]#;&EC:#0H@(%-E="!T4&EC='5R92 ](%!I8W1U
M<F4S#0H@($-A;&%L8W5L#0I%;#0H-"@T*4W5B($-O;6UA;F0S
M7T-L:6-K*"D-"B @4V5T('10:6-T=7)E(#&EC='5R930-"B @0V%L;"!C
M86QC=6P-"D5N9"!3=6(-"@T*#0I3=6(@8V%L8W5L*"D-"B @)R!I;6%G92 ]
M(#0S," J(#8P,"!P:7AE;',-"B @)VQA(&QA<F=E;G(@9F%I=" W,2PV-C8V
M-C8@)2!D92!L82!H875T975R("@P+#<Q*0T*(" G;&$@;&]N9W5E=7(@9F%I
M=" Q,SDL-3,T.#@T("&4@;&$@:&%U=&5U<B H,2PS.2D-"B @)PT*(" G
M4V5T('10:6-T=7)E(#&]A9%!I8W1U<F4H(F,Z7&EM86çV=R86YD92YJ
M<&<B*0T*(" G4V5T('10:6-T=7)E(#&]A9%!I8W1U<F4H(F,Z7&EM86=E
M7VIU<W1E+FIP9R(I#0H@("970@=%!I8W1U<F4@/2!,;V%D4&EC='
M8SI<:6UA9V5?<&5T:71E+FIP9R(I#0H@("<-"B @<VYG4V-A;&4@/2!T4&EC
M='5R92Y7:61T:" O('10:6-T=7)E+DAE:6=H=" G('@@/2!L("@: T*(" G
M#0H@("=3:2!C92!R87!P;W)T(&5S="!T<F]P(&=R86YD(&]U('1R;W @Z6QE
M=NDL(&]N('!=&5R(&QE(&-H87)G96UE;G0-"B @268@<VYG4V-A
M;&4@/" P+C Q($]R('-N9U-C86QE(#X@,3 P(%1H96X-"B @("!)9B!S;F=3
M8V%L92 (# N,#$@5&AE;B!-<V=";W@@(D5R<F5U<BP@<&AO=&@=')O<"!P
M971I=&4B#0H@(" @268@<VYG4V-A;&4@/B Q,# @5&AE;B!-<V=";W@@(D5R
M<F5U<BP@<&AO=&@=')O<"!G<F%N9&4B#0H@(" @17AI="!3=6(-"B @16YD
M($EF#0H@("<-"B @)T]N(&-A;&-U;&4@;&5S(')A<'!O<G1S(&EM86=E<R]C
M;VYT86EN97(-"B @4&EC6%-C86QE(#&EC='5R93$N4V-A;&58*'10:6-T
M=7)E+E=I9'1H+"!V8DAI;65T<FEC+"!V8E!I>&5L<RD@+R!0:6-T=7)E,2Y3
M8V%L95=I9'1H#0H@(%!I8UE38V%L92 ](%!I8W1U<F4Q+E-C86QE62AT4&EC
M='5R92Y(96EG:'0L('9B2&EM971R:6,L('9B4&EX96QS*2 O(%!I8W1U<F4Q
M+E-C86QE2&5I9VAT#0H-"B @)T5N(&9O;F-T:6]N(&1U(')A<'!O<G0@;&4@
M<&QU<R!P971I= T*("!)9B!0:6-84V-A;&4@/"!0:6-94V-A;&&AE;@T*
M(" @(" @)V]N('1R86-E(&PG:6UA9V4@<')O<&]R=&EO;F5L;&5M96YT#0H@
M(" @("!0:6-T=7)E,2Y086EN=%!I8W1U<F4@=%!I8W1U<F4L(# L(# L(%!I
M8W1U<F4Q+E-C86QE5VED=&@L(%!I8W1U<F4Q+E-C86QE5VED=&@@+R!S;F=3
M8V%L90T*(" @($5L<V4-"B @(" @("=O;B!T<F%C92!L)VEM86=E('!R;W!O
M<G1I;VYE;&QE;65N= T*(" @(" @4&EC='5R93$N4&%I;G10:6-T=7)E('10
M:6-T=7)E+" P+" P+"!0:6-T=7)E,2Y38V%L94AE:6=H=" J('-N9U-C86QE
K+"!0:6-T=7)E,2Y38V%L94AE:6=H= T*("!%;"D5N9"!3=6(-"@``
`
end

begin 666 Projet1.vbp
M5'EP93U%>&4-"D9O<FT]1F]R;3$N9G)M#0I2969E<F5N8V4]*EQ'>S P,#(P
M-#,P+3 P,# M,# P,"U#,# P+3 P,# P,# P,# T-GTC,BXP(S C+BY<+BY<
M+BY<+BY<+BY<+BY<+BY<5TE.1$]74UQ3>7-T96TS,EQS=&1O;&4R+G1L8B-/
M3$;VUA=&EO;@T*26-O;D9O<FT](D9O<FTQ(@T*4W1A<G1U<#TB1F]R
M;3$B#0I#;VUM86YD,S(](B(-"DYA;64](E!R;VIE=#$B#0I(96QP0V]N=&5X
M=$E$/2(P(@T*0V]M<&%T:6)L94UO9&4](C B#0I-86IO<E9E<CTQ#0I-:6YO
M<E9E<CTP#0I2979I<VEO;E9E<CTP#0I!qO26YC<F5M96YT5F5R/3 -"E-E
M<G9E<E-U<'!O<G1&:6QE<STP#0I697)S:6]N0V]M<&%N>4YA;64](E!E<G-O
M(@T*0V]M<&EL871I;VY4>7!E/3 -"D]P=&EM:7IA=&EO;E1Y<&4], T*1F%V
M;W)096YT:75M4')O*'1M*3TP#0I#;V1E5FEE=T1E8G5G26YF;STP#0I.;T%L
M:6%S:6YG/3 -"D)O=6YD<T-H96-K/3 -"D]V97)F;&]W0VAE8VL], T*1FQ0
M;VEN=$-H96-K/3 -"D9$259#:&5C:STP#0I5;G)O=6YD961&4#TP#0I3=&%R
M=$UO9&4], T*56YA='1E;F1E9#TP#0I2971A:6YE9#TP#0I4:')E861097)/
?8FIE8W0], T*36%X3G5M8F5R3V94:')E861S/3$-"@``
`
end

begin 666 Projet1.vbw
M1F]R;3$@/2 T-"@L(#8V, T+"!:+" R,BP@,CDL(#8T,#<U
%+"!##0H`
`
end
Avatar
François Picalausa
Hello,

le premier zip (2eme tentative) passait bien ;-)

Mais je ne comprends pas bien quel est le problème?
Pour la deuxième image c'est p'têt la bordure qu'on ne voit pas assez?
Dans ce cas tu peux essayer d'enlever un pixel:
'En fonction du rapport le plus petit
If PicXScale < PicYScale Then
'on trace l'image proportionellement
Picture1.PaintPicture tPicture, 0, 0, Picture1.ScaleWidth - 1,
Picture1.ScaleWidth / sngScale - 1
Else
'on trace l'image proportionellement
Picture1.PaintPicture tPicture, 0, 0, Picture1.ScaleHeight *
sngScale - 1, Picture1.ScaleHeight - 1
End If

Pour l'image trop petite, effectivement elle est fortement agrandie.. mais
le but était bien d'occuper toute la picturebox, quite à dépasser la
bordure?
Sinon on peut inverser le signe de la comparaison pour employer le côté le
plus petit:

Picture1.Cls
'En fonction du rapport le plus petit
If PicXScale > PicYScale Then
'on trace l'image proportionellement
Picture1.PaintPicture tPicture, 0, 0, Picture1.ScaleWidth - 1,
Picture1.ScaleWidth / sngScale - 1
Else
'on trace l'image proportionellement
Picture1.PaintPicture tPicture, 0, 0, Picture1.ScaleHeight *
sngScale - 1, Picture1.ScaleHeight - 1
End If

Dans ce cas, l'agrandissement est moindre et on occupe plus tout l'espace
(d'où la nécessité d'effacer le fond par Picture1.Cls)

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"le_troll" a écrit dans le message de
news:
François, y a de l'idée, lol, mais ça marche pas, le dimensionnement
c'est pas tout à fait ça, je t'ai envoyé la source par courrier...


Avatar
Christophe
c'est la taille en octet pour la création de DIB, mais c'est un peu plus
vicieux pour les commandes GDI car pour le NOIR et BLANC (qui est plus petit
en mémoire qu'un même bitmap (height * width) 256 couleur) les fonctions
d'affichage telles que Strechtblt utilisent un AND logique pour "calculer"
la nouvelle image (celle à la taille voulue) et elles plantent pour des
tailles qui passent bien en 256 couleurs.

La taille maxi n'est pas vraiment définie (cf lien).

En fait le pb vient du fait que win98 est en 32 bits pour "kernel32" ou
"user32" mais en 16 pour GDI, donc quand l'image est créer le système au
bout d'un moment croise ses reférences en mémoire.

Je te donnerais bien le lien sur la KB MS mais je crois me souvenir que tu
es allergique à l'Anglais.

pour ceux que ça interresse:
http://support.microsoft.com/default.aspx?scid=kb;en-us;227617

Christophe Vergon

"le_troll" a écrit dans le message de news:
O#
Dis-moi Christophe, ça va me serve, la taille maxi en W98, c'est en pixels
L*H ??? pu en taille octets ???
Merci :o)

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de


news:
cc8qfc$gfo$
> Je crois effectivemenbt que la solution de François est la plus simple
pour
> ce que tu veux faire.
>
> Sache qu'il n'y a qu'un pb avec loadpicture (c'est pour cela que je me
suis
> mis aux API) c'est que la taille du bitmap est limitée si tu tentes de
> charger une tros grosse image echec de la fonction. Ceci sous 98, sous


XP
je
> pense (non testé) qu'ils ont repoussés la limite la GDI étant dans ce


cas
en
> 32 bits.
>
> Christophe Vergon
>
> "le_troll" a écrit dans le message de news:
> upIM#
> > Merci, je crois que François a donné un bon exemple avec paint


picture,
je
> > vais voir ce que j'arrive à faire, j'avais déjà ça mais en réduction
(sauf
> > que je ne calculais pas la taille avant), je n'ai pas l'habitude de
jouer
> > avec les images, merci encore :o)
> >
> > --
> > Merci, @+, bye, Joe
> > troll75 AROBASE iFrance POINT com
> > ------------------------------------------
> > Ce message est plein de virus "certifiés"
> > Le_Troll, éleveur de Trolls depuis César, qui disait:
> > Avec une hache, celui qui tient le manche a toujours raison !
> > ------------------------------------------
> >
> >
> > "Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de
> news:
> > cc8mvm$q7d$
> > > Bonjour,
> > >
> > > Concernant GDI+ utilisable avec XP, il y a les pour et les contres
> (c'est
> > > assez lent), l'investissemnt necessaire pour apprendre les fonctions
> GDI+
> > > est assez important et je pense (ça n'engage que moi) qu'il vaut


mieux
> le
> > > faire avec Donet.
> > > Concernant le jpg, load ou paint picture le gerent mais uniquement
sous
> > XP.
> > >
> > > Pour le pb plus spécifique de Mr le Troll, il te faut convertir le
> fichier
> > > image disque (jpg) en DIB device independant bitmap et utiliser
> > > strechtDIBits par exemple.
> > >
> > > Le problème et que même si ce que tu veux faire parait très simple,
les
> > > notions que cela impliquent pour une utilisation avec les API font
> > plusieurs
> > > chapitre de livre traitant le sujet (celui de Dan Appelman par
exemple).
> > > C'est donc assez difficile de l'expliquer en quelques lignes.
> > >
> > > Si la manipulation des DC et de leurs systèmes de coordonnées t'es
> > familière
> > > ça reduit déjà beaucoup.
> > >
> > > dis nous si c'est le cas .
> > >
> > > Christophe Vergon
> > >
> > > "le_troll" a écrit dans le message de news:
> > > Os4q$
> > > > Bonjour, merci, non, je veux pas le code et les API... Parce que,
> quand
> > on
> > > > s'adresse à un logiciel externe, y a toujours le risque qu'il ne
soit
> > pas
> > > > monté, ou qu'il faille le distribuer avec...
> > > >
> > > > --
> > > > Merci, @+, bye, Joe
> > > > troll75 AROBASE iFrance POINT com
> > > > ------------------------------------------
> > > > Ce message est plein de virus "certifiés"
> > > > Le_Troll, éleveur de Trolls depuis César, qui disait:
> > > > Avec une hache, celui qui tient le manche a toujours raison !
> > > > ------------------------------------------
> > > >
> > > >
> > > > "Denis" a écrit dans le message de


news:
> > > > O1F#
> > > > >
> > > > > ----- Original Message -----
> > > > > From: "le_troll"
> > > > > Newsgroups: microsoft.public.fr.vb
> > > > > Sent: Saturday, July 03, 2004 9:17 PM
> > > > > Subject: Comment redimensionner 1 photo issue d'1 fichier ???
> > > > >
> > > > >
> > > > > > Bonjour,
> > > > > >
> > > > > > Comment redimensionner une photo pour qu'elle fasse
exactement
> > x*y
> > > > > > pixels (sachant qu'elle peut être plus petit comme plus


grande)?
> > > > > >
> > > > > > Je récupère la photo par le choix dans un fichier photo
d'une
> > > > > > CommonDialog...???
> > > > > >
> > > > > bonjour :)
> > > > >
> > > > > tu peux utiliser un utilitaire en ligne de commande qui


s'appelle
> > > > > "imagemagick". il te prend une photo à n'importe quel format
> > > > > et la conertit, la déforme, la tranforme à souhait.
> > > > > il ne reste donc plus qu'à appeler la ligne de commande dans ton
> > > > > code. C'est pas très élégant mais c'est efficace.
> > > > >
> > > > > @++
> > > > >
> > > > > > --
> > > > > > Merci, @+, bye, Joe
> > > > > > troll75 AROBASE iFrance POINT com
> > > > > > ------------------------------------------
> > > > > > Ce message est plein de virus "certifiés"
> > > > > > Le_Troll, éleveur de Trolls depuis César, qui disait:
> > > > > > Avec une hache, celui qui tient le manche a toujours raison !
> > > > > > ------------------------------------------
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




1 2