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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
VB.NET ET COMBOBOXVB.NET ET COMBOBOX par minouthebreaker
Cliquez pour lire la suite par minouthebreaker
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|