Yaume1
Messages postés86Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention13 septembre 2005
-
6 sept. 2005 à 09:45
Yaume1
Messages postés86Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention13 septembre 2005
-
6 sept. 2005 à 16:19
Bonjour tout le monde,
voilà j'ai un petit problème : je fais une impression écran et je colle
mon image dans une PictureBox (picture1) qui se dimensionne
automatiquement à la taille de l'image. Je voudrais copier l'image dans
une autre PictureBox qui a une taille fixe et je voudrais que l'image
contenue dans Picture1 soit redimensionner à la taille de Picture2
(taille que moi j'ai définie).
J'utilise le code suivant pour passer de l'une à l'autre mais ça ne fonctionne pas :
ça me marque : erreur d'éxécution : image incorrecte
est-ce que j'ai fait une erreur de syntaxe ou connaissez-vous un moyen
plus simple pour que mon image très grande (de la taille de l'écran)
qui est contenue dans Picture1 soit redimensionné à la taille de
picture2 et placée dans celle-ci ?
Merci pour votre aide à tous
Cédric
___________________________________________
Si tout seul on va plus vite, ensemble on va plus loin
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 6 sept. 2005 à 10:17
De rien ;)
Petites précisions :
Le PaintPicture n'est pas forcément très rapide (par rapport à la
fonction de l'API StretchBlt par exemple), mais permet de
redimensionner une image sans ce soucier des ScaleMode de chaque image
(les API travaillant principalement en Pixels).
Ne pas oublier de faire un : Set Picture2.Picture = Picture2.Image si
par la suite tu veux travailler sur l'image (enregistrer, ou imprimer
par exemple).
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 6 sept. 2005 à 12:48
Dès que tu réduit une image (ou que tu l'agrandit), tu as forcément une
perte de qualité, soit parce que tu perds des informations sur les
pixels, soit parce qu'il y a une interpolation pour combler les pixels
manquant.
Le mieux pour éviter une trop grande perte de qualité, c'est de
redimensionner l'image proportionnellement, par exemple, 90 % de
l'image (donc 90 % de la largeur ET de la hauteur), car sinon, ton
image sera étirée !
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Yaume1
Messages postés86Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention13 septembre 20051 6 sept. 2005 à 11:44
dis-moi DarKSidious je voulais juste savoir un truc :
j'utilise le code ci-dessous pour faire une impression ecran et pour
balancer cette impression ecran dans ma picture1 (je ne comprend pas ce
code, mes connaissances en vb sont très limitées, mais en tous cas il
fonctionne). Je voulais savoir si tu penses qu'on peux augmenter la
résolution de ce screenshot pour obtenir une image de meilleure qualité
?
Voici le code que j'utilise :
Private Declare Function BitBlt Lib "gdi32.dll" ( _
ByVal hDestDC 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 dwRop As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32.dll" () As Long
Private Declare Function GetDC Lib "user32.dll" ( _
crois-tu qu'il est possible de modifier ceci pour que la qualité
d'image soit meilleure (peu m'importe la taille que ça prendra sur le
disque, c'est pas un problème !!!)
Merci pour ton aide en tous cas
@ bientôt
Cédric
__________________________________________
Si tout seul on va plus vite, ensemble on va plus loin
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 6 sept. 2005 à 11:52
Que veux tu dire par "augmenter la qualité d'image" ? La qualité d'image n'est pas au rendez-vous ?
Pourtant, il s'agit de la meilleure qualité que tu puisse obtenir
puisque la fonction de l'API Windows BitBlt ne fait que copier une
image, sans la redimensionner => pas de perte de qualité.
Après, si tu la redimensionne avec un PaintPicture, c'est normal que tu
obtienne une moins bonne qualité vu que tu touche au proportions entre
les pixels !
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Yaume1
Messages postés86Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention13 septembre 20051 6 sept. 2005 à 12:25
en fait voici mon problème :
je veux imprimer exactement ce que j'ai à l'écran donc pour ça je fais
une impression écran et je balance l'image dans une picturebox qui se
redimensionne automatiquement à la taille de l'image. Ensuite, si
j'imprime cette image telle qu'elle est, elle déborde de ma feuille A4
donc je la recopie dans une picturebox qui a la taille qu'il me faut
pour que tout rentre correctement sur une feuille pendant
l'impression... je suis obligé de perdre en qualité si je rétrécie
cette image ?
à moins que tu connaisses le moyen d'imprimer une image qui est trop
grande pour rentrer sur une feuille en théorie et pour que l'imprimante
se débrouille toute seule pour que ça rentre quand même... (oups, je
sais pas si je me fais bien comprendre)
merci pour ton aide en tous cas
Cédric
__________________________________________
Si tout seul on va plus vite, ensemble on va plus loin
Yaume1
Messages postés86Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention13 septembre 20051 6 sept. 2005 à 16:19
Salut DarKSidious.
Tu as parfaitement raison et j'ai trouvé la parade : je dimensionne ma
picture en fonction de la résolution de mon écran. En effet, mon image
screenshot a une résolution qui est la même que la résolution de mon
écran donc, comme je suis en 1280x1024, il me faut un un rapport 5/4
entre largeur et hauteur de picture mais si mon prog est utilisé sur un
PC dont la résolution est en 800x600 alors il me faut un rapport 4/3.
Merci pour ton aide, tu fais parti des incontournables de vbfrance.com
et ça fait plaisir de pouvoir compter sur des gens comme toi.
@ bientôt
Cédric
__________________________________________
Si tout seul on va plus vite, ensemble on va plus loin