Accueil > Forum > > > > Redimensionnement d'image
Redimensionnement d'image
mercredi 26 décembre 2007 à 11:14:42 |
Redimensionnement d'image

bilaloch
|
Bonjour à tous, J'aimerais en savoir plus sur le redimensionnement d'image. Toutes les techniques que j'ai vu sur le site utilisent des PictureBox pour redimensionner les images. Or, j'aimerais pouvoir le faire par d'autres moyens (APIs, ou autres fonctions...) car d'un côté je ne veux pas être dépendant de contrôles (histoire d'être plus propre de mon point de vue...) et d'un autre le résultat est plutôt moche (l'image ainsi redimensionnée semble avoir perdu de la qualité)... Merci d'avance à tous, BILALoch
|
|
mercredi 26 décembre 2007 à 11:32:07 |
Re : Redimensionnement d'image

pneau
|
salut as tu regardé du coté de l'api "StretchBlt" perso je l'utilise lorsque je souhaite géré un redimensionnement dynamique d'une picture box.... la dégradation éventuelle de l'image est plus liée à sa qualité d'origine qu'au redimensionnement proprement dit.. sur ce... bonne journée Pat Don't Worry , Be Happy 
lorsque le problème est résolu, pensez Réponse Acceptée 
|
|
mercredi 26 décembre 2007 à 11:58:53 |
Re : Redimensionnement d'image

jmfmarques
|
car d'un côté je ne veux pas être dépendant de contrôles (histoire d'être plus propre de mon point de vue...) et d'un autre le résultat est plutôt moche (l'image ainsi redimensionnée semble avoir perdu de la qualité)...
Je vois mal comment tu pourrais ne pas être dépendant d'un contrôle, à moins que tu ne nous aies pas tout dit de ce que tu entends par "redimensionnement d'une image" .... Qu'est exactement pour toi une image ? Ne voudrais-tu pas plutôt parler de fichier graphique ?
Une image redimensionnée perd forcément de sa qualité (en retrécissement, il va bien falloir enlever des pixels quelque part, par exemple... ce sera moins mal en agrandissement, mais se posera quand même un problème également ... tiens : imagine que tu augmentes la largeur d'un pixel ... lequel ajouteras-tu ?))
|
|
mercredi 26 décembre 2007 à 12:13:04 |
Re : Redimensionnement d'image

bilaloch
|
Merci pour vos réponses. Bon, alors dans l'ordre :
- pneau : je te remercie de ton idée. Je garde à l'esprit ton API si je n'ai pas d'autres solutions (car dans ton API on passe encore en arguments des contrôles PictureBox, or, c'est ce que j'aimerais éviter).
- jmfmarques : je t'explique. Une image est pour moi un fichier image. En gros j'aimerais pouvoir écrire une fonction dans un module indépendant (donc sans contrôle) qui pourrait faire quelque chose comme : "ReDimensionner (CheminSource As String, CheminDestination As String)", où "CheminSource" désigne le lien du fichier image à redimensionner et "CheminDestination" désigne le lien du fichier image redimensionné. Pour finir, je dirai qu'une perte de qualité dans tes deux cas est normale, mais que certains algos permettent de garder le maximum de qualité dans le fichier redimensionné par certaines techniques (par exemple, au lieu de supprimer des pixels, ça fait une sorte de moyenne entre les différents pixels de l'endroit du redimensionnement...), et je ne suis pas sûr que cela se fait rapidement en VB, c'est pourquoi je voulais en savoir davantage...
BILALoch
|
|
mercredi 26 décembre 2007 à 13:46:47 |
Re : Redimensionnement d'image
|
mercredi 26 décembre 2007 à 17:50:22 |
Re : Redimensionnement d'image

bilaloch
|
Aujourd'hui PCPT, tu es une vraie furie :D Non sérieusement, merci pour tes réponses instructives. J'aimerais te poser une question : comment puis je perdre le moins de qualité sur le redimensionnement d'une image ? Parce que je remarque bien qu'entre une classe de redim écrite en VB et le résultat obtenu sur toshop, il y a une réelle différence de qualité :(
BILALoch
|
|
mercredi 26 décembre 2007 à 18:23:58 |
Re : Redimensionnement d'image

PCPT
|
re, c'est pas le principe d'une classe mais de ce que tu fais au final... c'est sur que de re-dimensionner un bmp 800*600 en bmp 400*300, çà rendra bien plus net qu'un jpg de 1000*850 en bmp 400*300 .... après reste à voir comment tu t'y prendras, à savoir ma classe (pour l'exemple), un bitblt, du stretchblt, paintpicture, gdi+ etc.... le lien que je t'ai donné permet d'avoir un hdc sans picturebox et contient quelques fonctions pratiques dont le resize mais ce n'est pas forcément optimisé pour.... à toi de voir selon tes images. surtout si, cumulé avec ta dernière question, tu travailles en jpg! pour conserver la qualité il sera peut-être préférable de re-dimensionner avant de convertir bon courage ++ PCPT [AFCK] Prenez un instant pour répondre à ce sondage svp 
|
|
mercredi 26 décembre 2007 à 21:28:08 |
Re : Redimensionnement d'image

bilaloch
|
Ne t'inquiètes pas, je redimensionne l'image avant de la transformer en JPG. Mais bon... malgré cela, l'image redimensionnée en plus petite a une qualité assez médiocre :S Cela est assez étonnant d'ailleurs... J'ai ensuite essayé de rendre l'image floue avant de la redimensionner, et aussi de la pixeliser avant de la redimensionner, mais dans les 2 cas, la perte de qualité est présente... As tu une idée pour moi ? De la doc, des liens, des contacts...? :)
Merci encore,
BILALoch
|
|
mercredi 26 décembre 2007 à 22:06:48 |
Re : Redimensionnement d'image

PCPT
|
montre un bout de code? voir comment tu t'y prends ?
|
|
mercredi 26 décembre 2007 à 22:27:57 |
Re : Redimensionnement d'image

bilaloch
|
Le code que je te donne permet de redimensionner une image en une autre de 100 * 100 pixels (on centre l'image, sans la déformer). Je précise que je ne peux donner qu'un bout du code ici, pas assez de place pour le reste, donc il y a quelques appels de fonction assez incompréhensibles sans le reste du code, mais c'est le plus important. Voilà :
Public Function Redimensionner(FichierSource As String, FichierDestination As String, frmReDim As Form, PicSource As PictureBox, PicDestination As PictureBox, Taille As Integer) ' ---Change le pointeur de la souris--- Screen.MousePointer = vbHourglass ' ---Déclaration des variables--- Dim Ret As Long Dim Hauteur As Long Dim Largeur As Long Dim Recupere As Long Dim cDib As New cDIBSection Dim Bits() As Byte PicSource.AutoSize = True PicSource.AutoRedraw = True PicDestination.AutoRedraw = True PicSource.Appearance = 0 PicDestination.Appearance = 0 PicSource.BorderStyle = 0 PicDestination.BorderStyle = 0 ' ---Initialisation--- PicSource.ScaleMode = vbPixels PicDestination.ScaleMode = vbPixels frmReDim.ScaleMode = vbPixels PicSource.Picture = LoadPicture(FichierSource) DC = GetPixelData(PicSource.Image, Bits()) Mosaique Bits(), 0, 0, PicSource.ScaleWidth, PicSource.ScaleHeight, 5, 5 SetPixelData DC, PicSource.Image, Bits() PicDestination.Height = Taille PicDestination.width = Taille If PicSource.width > PicSource.Height Then Recupere = PicSource.Height Else Recupere = PicSource.width End If PicDestination.PaintPicture PicSource, 0, 0, PicDestination.ScaleWidth, PicDestination.ScaleHeight, (PicSource.width / 2) - (Recupere / 2), (PicSource.Height / 2) - (Recupere / 2), Recupere, Recupere PicDestination.Picture = PicDestination.Image ' ---Remet le pointeur de la souris par défaut--- cDib.CreateFromPicture PicDestination.Picture Screen.MousePointer = vbDefault SaveJPG cDib, FichierDestination, 100 End Function
J'espère que cela t'a un peu aidé pour comprendre mon problème. Si tu veux le code intégral, je pourrais te l'envoyer par mail.
Merci ^^
BILALoch
|
|
Cette discussion est classée dans : image, redimensionnement
Répondre à ce message
Sujets en rapport avec ce message
module d'affichage 2d [ par Pof ]
je voudrais savoir si il existe un module ou une dll pour faire ces fonctions-ci sous direct-draw :charger une image dans une surface (bmp gif ou png)
pb redimensionnement image [ par chris21 ]
Bonjour, je recherche une méthode pour redimensionner et sauvegarder une image, j'ai essayé ça: Image1.Picture.Width = Image1.Picture.Width / 2Image1.
Redimensionnement d'image [ par ouissler ]
Salut J'ai un soucis. J'ai une serie de bouton dans mon portfolio. Quand je les survole ca affiche une image en miniature. Premier probleme : je voud
Redimensionnement d'image impossible [ par zoglub14 ]
Bonsoir à tous,J'essaie desesperement de redimensionner une image chargé dans une PictureBox, pour ensuite la sauvegarderPour cela j'ai crée une deuxi
redimensionnement image [ par firewaller ]
Bonjour,J'aimerais savoir comment on fait pourredimensionner des images dans un pictureBox ou un Image lorsque celles sont sont plus grande que leur c
Problème de redimensionnement d'image [ par platinum75 ]
Bonjour,j'ai une image de 1024x768 dans un picturebox et je souhaiterai que celle ci soit enregistrée au format jpg en 800x600.J'ai vu que plusieurs p
Envoi d'image+redimensionnement [ par Benji66 ]
salut je recherche un script permettant en php d'uploader une image (ca je sais faire) et de la redimensionner avant l'envoi pour qu'elle prenne moins
Envoi d'image+redimensionnement [ par Benji66 ]
salut je recherche un script permettant en php d'uploader une image (ca je sais faire) et de la redimensionner avant l'envoi pour qu'elle prenne moins
Redimensionnement d’image [ par angelanddelus100 ]
Bonjour à tous, <p class="MsoNor
Redimensionnement d'une image [ par BenoDuJ ]
Bonjour à tous,Je suis en train d'écrire un programme dans lequel je dois copier une image (de n'importe quel format à priori) et l'enregistrer dans u
Livres en rapport
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
VB6 + GRAPHVIZVB6 + GRAPHVIZ par nouirayosra
Cliquez pour lire la suite par nouirayosra
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|