Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go



  1. #1
    paillassou

    Smile Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go


    ------

    Bonjour,

    ma question va vous paraître peut être suprenante mais je reste convaincu que la (ou les) réponse(s)
    pourrai(en)t bien intéresser pas mal de monde dans le même cas que moi... donc je croise les doigts...

    Conditions initiales:
    • Je possède un disque dur de 500Go qui contient des tas de photos familiales. (c'est une sorte d'espace d'archivage / de sauvegarde de mes photos)
    • Ces images et photos sont essentiellement des fichiers JPG, qui plus est, de tailles différentes
    • je possède un cadre photo numérique avec une carte SD1Go dédiée à son utilisation

    Question:

    Existe-t-il un logiciel spécifique qui me permettrait de remplir de photos ma carte SD1Go, en y copiant des images
    en allant piocher, de manière aléatoire, dans les photos stockées sur mon disque dur de 500Go ???


    J'espère que j'ai bien formulé ma question...

    MERCI à tous d'avance pour vos réponses, vos commentaires et/ou vos interventions.
    Cordialement,

    -----

  2. #2
    Magneau

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    Bonjour,

    Un logiciel de ce type doit certainement exister mais je n'en connais pas. Mais ta demande est relativement simple pour réaliser toi même ce logiciel si tu possède un peu de connaissances en programmation. Personnelement je dévellope en VB6 (J'avoue c'est dépassé mais ca marche encore) et develloper un tel logiciel ne me parraît pas compliqué.

    En fait il suffit de lister toutes les photos présente dans le disque dur. Ensuite utiliser la fonction aléatoire pour choisir les photos. Et on remplit au fur et à mesure la carte jusqu'a ce que l'espace soit plein. Mais on peut très bien voir la chose autrement et même la complexifier. Par exemple choisir des photos dans un ou plusieurs dossiers prédéfini. Limiter le remplissage de la carte à 500 Mo, ect.

  3. #3
    Towl

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    Marrant ca, je me suis développé un script y a pas une semaine pour faire la meme chose

    Je viens de le tester sous Windows, et il marche bien, donc je te le passe, ca peut toujours te servir

    Pour l'utiliser, il faut installer python : http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi

    Ensuite, tu édites le fichier joint avec ton éditeur favori (par exemple bloc note) et tu modifies les variables qui te conviennent :

    dir_src : repertoires sources des photos. Peux contenir une liste de répertoire
    Exemples :
    dir_src = ['c:\\']
    dir_src = ['c:\\', 'd:\\', 'e:\\photos']

    dir_dst : repertoire destination (la ou tu souhaites copier tes fichiers)
    Exemple :
    dir_dst = 'd:\\'
    dir_dst = 'e:\\photos'

    dst_max_size : la taille en octet que tu souahite copier au total :
    Pour 10Mo :
    dst_max_size = 10000000
    Pour 3Mo :
    dst_max_size = 3000000
    ...

    img_extensions : liste des extensions d'images.
    Exemples :
    img_extentions = ['.jpg', '.jpeg']
    img_extentions = ['.jpg', '.jpeg', '.gif']
    img_extentions = ['.jpg', '.jpeg', '.JPEG']
    img_extentions = ['.jpg']



    Ensuite, tu n'as qu'a double cliquer dessus pour qu'il s'execute.
    Attention par contre, il vide la destination en premier (en supprimant les fichiers images). Si tu ne souhaite pas se comportement, supprime la ligne
    print "Cleaning up destination %s" % dir_dst
    clean_dst(dir_dst)

    Contenu du fichier copy_photos.py

    Code:
    # -*- coding: latin1 -*-
    import os
    import os.path
    import random
    import shutil
    
    
    dir_src = ['c:\\', 'D:\\Documents and Settings\\Towl\\Documents\\Mes images\\Photos']
    dir_dst = 'c:\\toto'
    dst_max_size = 10000000
    img_extentions = ['.jpg', '.jpeg']
    
    
    
    def is_img(file):
        for ext in img_extentions:
            if file.endswith(ext):
                return True
        return False
    
    
    def search(path):
        file_founds = []
        try:
            for file in os.listdir(path):
                file = os.path.join(path,file)
                if os.path.isdir(file):
                    file_founds += search(file)
                elif is_img(file):
                    file_founds.append(file)
        except Exception, e:
            print e
        return file_founds
    
    
    def clean_dst(path):
        for file in os.listdir(path):
            file = os.path.join(path,file)
            if is_img(file):
                os.remove(file)
                
    
    
    def copy(files, dst, max_size):
        random.seed()
        size = 0
        while size < max_size and len(files) > 0:
            if len(files) is 1:
                shutil.copyfile(files[0], os.path.join(dst, os.path.basename(files[0])))
                break
            file_number = random.randint(0, len(files) -1)
            file = files[file_number]
            files.remove(file)
            size += os.path.getsize(file)
            if size > max_size:
                break
            shutil.copyfile(file, os.path.join(dir_dst, os.path.basename(file)))
    
    
    
    print "Cleaning up destination %s" % dir_dst
    clean_dst(dir_dst)
    
    files = []
    for dir in dir_src:
        print "Searching files in %s" % dir
        files += search(dir)
    
    print "Copying files from to %s (max size %d)" % (dir_dst, dst_max_size)
    copy(files, dir_dst, dst_max_size)
    print "Done"
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  4. #4
    paillassou

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    IMPRESSIONNANT !!!!
    une gros merci ... MERCI

  5. A voir en vidéo sur Futura
  6. #5
    paillassou

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    euh.... bon après un petit essai... il semble que sous vista cela ne passe pas ...
    De ton côté, avais tu essayé sous XP ?

    MERCI encore...

  7. #6
    Towl

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    Je l'ai testé sous 2000, mais en théorie, ca ne devrait pas changer beaucoup.
    Tu as quoi comme message d'erreur ?
    Pour le voir plus précisement, rajoute ca à la fin du fichier (pas d'espace avant)

    import time
    time.sleep(100000)

    Ca te laissera 100000s pour lire et recopier l'erreur Tu pourras ensuite fermer la fenetre
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  8. #7
    paillassou

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    déjà, je tiens à te féliciter...
    mon message "ça marche pas" n'est pas du tout approprié...*
    tu as déjà tout développé et je trouve ça fabuleux...
    ENCORE UNE ENORME MERCI pour ta contribution "libre"..

    Pour revenir à mon pb sous vista...
    sois je suis neuneu (c'est bien possible...)
    sois j'y comprends rien...
    j'ai installé python
    j'ai créé un rép "C:\source" avec 50 photos de tests
    j'ai créé un rép "C:\destination" vide
    j'ai bien modifié dans ton fichier .py
    les indications des répertoires (source et destination)

    dir_src = ['c:\\source']
    dir_dst = 'c:\\destination'

    et quand je double-clique => il semble rien se passer... sous VISTA

    je suis passer sur une machine XP
    je vais faire le test...
    @+

  9. #8
    Towl

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    Eh beh, ca fait plaisir de voir que ca te plait (enfin il faut que ca marche ). Mais rassure toi, j'ai pas tout développé pour toi, j'ai quasiment eu les meme besoin, j'ai donc juste adapté un minimum pour répondre aux tiens. Et ca m'a permis de rendre mon code un peu plus propre, ce qui n'est pas un mal.

    Sinon, as tu bien mis l'extension en .py (et non .py.txt) ? Windows a tendance à cacher les extensions quand il les connait. Autrement essaye de faire bouton droit sur le fichier, ouvrir avec, et la tu cherche l'executable python (c:\program files\.....)
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  10. #9
    paillassou

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    bon et bien VISTA a fait encore des siennes ...

    car sous XP cela fonctionne parfaitement => BRAVO

  11. #10
    paillassou

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    retour d'infos:
    J'ai dû faire une étourderie sous VISTA car après avoir repris la procédure correctement depuis le début cela fonctionne également.
    DONC récapitulatif => BRAVI TOWL pour ton petit soft en python...
    Ma femme (qui sait développer sous Visual Studio) va essayer d'utiliser ta logique de prog et les fonctionnalités de ton fichier pour faire un soft plus convivial sous WINDOWS... avec des fonctions avancées concernant les répertoires...

    Je ne manquerai pas d'en faire part ici.

    Dores et déjà ton soft permet de remplir ma SD de 4Go de photos
    pour aller ensuite dans mon CPN.

    MERCI sincèrement encore pour ta contrib.

    MERCI encore

  12. #11
    paillassou

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    ET voilà, ma femme a enfin bossé. !
    => faut bien que les femmes bossent un peu pour la communauté ;o)
    je plaisante... mesdames

    voici SON soft de sa conception, développé en C#.
    On l'a baptisé RFC - Random File Copy
    c'est joli comme nom, je trouve... ;o)

    téléchargeable ici
    http://www.paillassou.com/RFC/RFCv1.0.rar

    1ère version BRUT de décoffrage
    alors ayez de l'indulgence...

    A vos remarques et comentaires...
    => de prochaines versions améliorées arriveront bientôt...
    Merci à ma puce
    Dernière modification par paillassou ; 21/04/2008 à 22h34.

  13. #12
    Towl

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go

    Bravo à elle
    Effectivement, ca à l'air plus convivial que mon petit script (même si pour mes besoins, je préfère mon script )

    Bon par contre, j'ai pas encore testé (flemme de démarrer un Windows ). Mais j'aurais quelques petites remarques (on appelles pas son soft RFC (Request For Comments) sans attendre de remarques )


    Quelques pistes d'évolutions qui me viennent à la lecture du source.
    Peut être qu'utiliser un thread pourrait être interresasnt. Cela permettrait de garder une interface réactive lorsque l'on fait une grosse recherche. Regarder aussi s'il est possible de baisser la priorité du thread de recherche.
    Rajouter un bouton de stop (au cas ou on se soit trompé)

    public void searchFiles(string path, string pattern)
    J'ai l'impression que cette méthode ne marche pas si l'on a plusieurs extensions différentes (en meme temps y a t'il un besoin ?)

    Sinon, une petite règle au niveau "propreté" du code, on évite de coder les séparateurs de chemin en dur ( sous windows on utilise le \, mais sous les unix, mac os, on utilise le /). Je pense notamment à cette ligne
    string destFileName = dst + @"\" + fileName;
    Il doit y avoir un FileSeparator ou qqch dans le genre qui doit exister en C#. Je sais que c'est peu utile, mais de bonnes habitudes sont toujours bonnes à prendre


    Enfin, sinon, bah encore bravo à elle et merci de le faire partager.
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  14. #13
    paillassou

    Re : Remplir une SD1Go avec images aléatoires issues d'un HDD 500Go


Discussions similaires

  1. enregistrer sur un Archos 404 des images issues d’une webcam
    Par kp10 dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 31/01/2008, 15h48
  2. Remplir une matrice de variance/covariance
    Par FiReTiTi dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 27/07/2006, 13h17
  3. Remplir une sphère d'autres sphères plus petites
    Par LicenceXP dans le forum Mathématiques du collège et du lycée
    Réponses: 12
    Dernier message: 28/06/2006, 11h31
  4. installer une image sur HDD avec boot direct par loader
    Par tarask dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 01/02/2006, 21h36
  5. Préférendum écologiques avec une série d observations aléatoires
    Par Jerome_c dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 22/10/2005, 02h20
Découvrez nos comparatifs produits sur l'informatique et les technologies.