Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Redimensionnement d'image [ Multimédia / Image & Vidéo ] (bilaloch)

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

Membre Club
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

Membre Club
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

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
salut,

voici une manière sans contrôle :
http://www.vbfrance.com/codes/DESSINER-PASSANT-PICTUREBOX-MODULE-CLASSE_43226.aspx

++

Prenez un instant pour répondre à ce sondage svp

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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


1 2 3 4

Cette discussion est classé 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


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.