Page 1 sur 1

Redimensionner des images

Publié : mer. 23/févr./2011 17:37
par Parole De JOJO
Dans mon nouveau mp4, on peut visionner des images
les parametres de l'ecran sont 176*220
Evidement, c'est dommage d'y rentrer des images en tres bonne qualites (la plupart de mes images sont en 2592*1944) car de toutes les facons c'est un petit ecran, et on ne peut pas agrandir

alors j'ai cherche un logiciel qui rapeticit les images, et leur fait perdre leur qualite, mais tout ce que j''ai trouve c'est un truc qui prend les images, les convertis, et les place dans UN dossier
moi je voudrait recreer les memes dossiers et sous dossiers, dans mon MP4
disons j'ai sur l'ordi un dossier IMAGES 2011 et dedans des sous dossiers : VACANCES, SORTIE, MANEGE etc

bon, en fin de compte j'ai fait une procedure qui fait ca, comme d'hab je suis complexe de mes programmes et je me gene de les montrer, mais je prends le risque de me faire crier dessus et voici :
(bien sur il faut ajouter une fenetre qui gere ca, mais c'est deja kelkechose)

Code : Tout sélectionner

; config

Global old.s="F:\JOJO\pictures\" ; L'emplacement du dossier a traiter
Global new.s="F:\new\" ; L'emplacement du nouveau dossier, ou vont aller les images, le dossier n'a pas besoin d'etre deja cree
Global width=220
Global height=176
Global quality=6

Global qt_pic
Global num_pic

CreateDirectory(new)

UseJPEGImageDecoder()
UseJPEGImageEncoder()

Declare ParseDirectory1(folder.s, id.l = 0)
Declare ParseDirectory2(folder.s, id.l = 0)

ParseDirectory1(old)
ParseDirectory2(old)

Procedure ParseDirectory1(folder.s, id.l = 0)
  If Right(folder, 1) <> "\"
    folder + "\"
  EndIf
  If ExamineDirectory(id, folder, "*.*")
    While NextDirectoryEntry(id)
      den.s=DirectoryEntryName(id)
      If den <> "." And den <> ".."
        If DirectoryEntryType(id) = #PB_DirectoryEntry_Directory
          ParseDirectory1(folder + den, id + 1)
        ElseIf DirectoryEntryType(id) = #PB_DirectoryEntry_File  
          If LCase(GetExtensionPart(den))="jpg"
            qt_pic+1
          EndIf
        EndIf
      EndIf
    Wend
    FinishDirectory(id)
  EndIf
EndProcedure

Procedure ParseDirectory2(folder.s, id.l = 0)
  If Right(folder, 1) <> "\"
    folder + "\"
  EndIf
  If ExamineDirectory(id, folder, "*.*")
    While NextDirectoryEntry(id)
      den.s=DirectoryEntryName(id)
      If den <> "." And den <> ".."
        If DirectoryEntryType(id) = #PB_DirectoryEntry_Directory
          CreateDirectory(new+Mid(folder+den,Len(old)+1))
          ParseDirectory2(folder + den, id + 1)
        ElseIf DirectoryEntryType(id) = #PB_DirectoryEntry_File
          If LCase(GetExtensionPart(den))="jpg"
            num_pic+1
            new_pic.s=new+Mid(folder+den,Len(old)+1)
            old_pic.s=folder+den
            If LoadImage(0,old_pic)
              ResizeImage(0,width,height)
              If SaveImage(0,new_pic,#PB_ImagePlugin_JPEG,quality)
                FreeImage(0)
                Debug "Saved ("+Str(num_pic)+"/"+Str(qt_pic)+": "+old_pic
              Else
                Debug "Bug 1 : "+old_pic
              EndIf
            Else
              Debug "Bug 2 : "+old_pic
            EndIf
          EndIf
        EndIf
      EndIf
    Wend
    FinishDirectory(id)
  EndIf
EndProcedure

Re: Redimensionner des images

Publié : mer. 23/févr./2011 19:07
par Ar-S
Mon logiciel resiZe 2 ne gère pas les sous dossiers mais le glisser/deposer/redimensionner par lot marche bien.
http://ldvmultimedia.com/telecharger_resize.php
si tu veux y jeter un oeil.
Tu te mets en "redimensionnement libre" et tu indiques la H et la L
puis tu fais un glisser/deposé de tes images. Il ne crées pas de sous dossiers mais tes photos redimensionnées prennent le préfixe new_
(photo1.jpg génère la miniature min_photo1.jpg ou new_photo1.jpg je ne me souviens pas).

Re: Redimensionner des images

Publié : mer. 23/févr./2011 19:28
par Parole De JOJO
tu m'as foutu les boules la

Re: Redimensionner des images

Publié : jeu. 24/févr./2011 1:29
par Ar-S
Pourquoi ? 8O

Re: Redimensionner des images

Publié : jeu. 24/févr./2011 3:38
par falsam
Apparemment tu veux faire du redimensionnement d'images par lots tout en gardant les mêmes dossiers. Tu devrais regarder le logiciel XnView (Gratuit) qui permet de faire se que tu cherches.

Apres avoir sélectionner les dossiers que tu souhaites transformer, XnView a une fonction (Ctrl+U pour y accéder) de conversion et de redimensionnement d'images en une seule fois tout en restant dans les dossiers initiaux avec option de garder ou pas les originaux.

Site de l'auteur : http://www.xnview.com/fr/xnview.html (En français)

Re: Redimensionner des images

Publié : jeu. 24/févr./2011 6:35
par Parole De JOJO
Ben je viens de passer un bon moment a ecrire ce code et pour l'instant je m'en fous qu'il y en a des autres qui font ca
lol, je rigole mais je voulais partager ce code et peut etre recevoir des critiques, c'est tout

Re: Redimensionner des images

Publié : jeu. 24/févr./2011 7:05
par Warkering
Parole De JOJO a écrit :tu m'as foutu les boules la
Ça veut dire quoi, ça? :|

Re: Redimensionner des images

Publié : dim. 27/févr./2011 10:53
par Parole De JOJO
ben j'ai explique non?