FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Synedit Parameters
par Yannick Aujourd'hui à 0:27

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Hier à 21:16

» Compilateur FBPano
par jean_debord Hier à 9:56

» Bienvenue à Virtualalan !
par UltraVox Hier à 9:18

» Concours de Morpions
par jjn4 Hier à 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

» >199
par maelilou Mar 20 Juin 2017 - 14:13

» NUMBER_FOCUS
par Yannick Lun 19 Juin 2017 - 15:25

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Classement de photos

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Classement de photos   Lun 31 Mar 2014 - 1:10

Le problème:
A partir de deux séries de photos (ou plus), prises par des appareils différents, constituer une seule série avec les photos classées dans l'ordre chronologique de prise de vue (cas fréquent chez moi qui prends des photos avec mon appareil, et mon épouse qui fait de même avec le sien).
(dans le cas présent il y avait 3 appareils différents, nous étions avec des amis, mais peu importe le nombre).

Problème annexe:
Les appareils sont rarement tous réglés pile poil à l'heure exacte, certains dérivent de quelques minutes, ou sont encore à l'heure d'hiver/été. Pour les séries concernées, pour que le classement soit valable, il faut définir une heure de référence (un des appareils par exemple), et modifier les dates/heures des autres en conséquence. Ces dates/heures de prise de vue (en fonction de l'heure de l'appareil) sont contenues dans les données 'Exifs' du fichier JPG. Ce sont ces données qu'il faut modifier pour synchroniser les photos.

Pour cela on fait appel à un petit logiciel externe (gratuit): Jhead.exe (ici par exemple: http://www.commentcamarche.net/download/telecharger-34069090-jhead ) qui permet tout un tas d'opérations de lecture/écriture de ces données Exifs, en particulier sur les dates/heures. Ce logiciel fonctionne n'importe où sans installation, et surtout de manière transparente en ligne de commande, ce qui est intéressant pour nous programmeurs Panoramic.

En visualisant la série d'images résultante, on peut donc facilement repérer et supprimer les images qui sont similaires et qui font double emploi, ce qui est assez fréquent.


Voilà le programme brut de décoffrage:
Code:
LABEL Quit, Chr, Raz, Signe, Hexif, Modheur, Qtheur, Extraire
LABEL Classement, Vimg, Qimg, Aide
DIM a$,b$,d$,p$,f$,fr$,f1$,f2$,r1$,r2$,ra$,rs$,rd$,ns%,i%,j%,nt%,k%,w%,h%,m%,s%
DIM ex$,jhead$,sg$

jhead$ = "C:\UTIL\jhead.exe "
rs$ = "E:\PHOTOS\Marrakech_2014\Canon": ' pour essais (perso)
rd$ = "E:\PHOTOS\Marrakech_2014\Class": '      "    "

WIDTH 0,600: HEIGHT 0,900: BORDER_SMALL 0: FONT_BOLD 0
COLOR 0,164,255,255
CAPTION 0, " -  INTERCLASSEMENT  CHRONOLOGIQUE  DE  PHOTOS  -"

CONTAINER 10: TOP 10,5: WIDTH 10,WIDTH(0)-20: HEIGHT 10,60: COLOR 10,255,255,190
ALPHA 11: PARENT 11,10: TOP 11,15: LEFT 11,5
CAPTION 11,"Répertoire de classement (résultat) :"
EDIT 12: PARENT 12,10: TOP 12,30: LEFT 12,5: WIDTH 12,WIDTH(10)-60
COLOR 12,255,190,190: ON_CLICK 12,Chr
TEXT 12,rd$
BUTTON 13: PARENT 13,10: TOP 13,TOP(12)-3: WIDTH 13,50: LEFT 13,WIDTH(10)-55
CAPTION 13,"<- RAZ": ON_CLICK 13,Raz

CONTAINER 20: TOP 20,TOP(10)+HEIGHT(10)+5: WIDTH 20,WIDTH(10): HEIGHT 20,90
COLOR 20,255,255,190
ALPHA 21: PARENT 21,20: TOP 21,15: LEFT 21,5
CAPTION 21,"Répertoire d'images à classer (JPG) :"
EDIT 22: PARENT 22,20: TOP 22,30: LEFT 22,5: WIDTH 22,WIDTH(20)-60
COLOR 22,190,190,255: ON_CLICK 22,Chr
TEXT 22,rs$
EDIT 28: PARENT 28,20: TOP 28,TOP(22): LEFT 28,LEFT(22)+WIDTH(22)+1: WIDTH 28,50
COLOR 28,190,255,190: TEXT 28,"IMG_": ' préfixe images
ALPHA 29: PARENT 29,20: TOP 29,TOP(28)-15: LEFT 29,LEFT(28): CAPTION 29,"Préfixe :"
BUTTON 23: PARENT 23,20: TOP 23,55: LEFT 23,10: WIDTH 23,150
CAPTION 23,"Correction Heures Exifs": ON_CLICK 23,Hexif
BUTTON 24: PARENT 24,20: TOP 24,TOP(23): LEFT 24,170: WIDTH 24,110
CAPTION 24,"Copier/Classer": ON_CLICK 24,Classement
BUTTON 25: PARENT 25,20: TOP 25,TOP(24): LEFT 25,290: CAPTION 25,"Déclasser"
ON_CLICK 25,Extraire
HIDE 25
BUTTON 26: PARENT 26,20: TOP 26,TOP(24): LEFT 26,410: CAPTION 26,"Quitter"
ON_CLICK 26,Quit
BUTTON 27: PARENT 27,20: TOP 27,TOP(24): LEFT 27,500: CAPTION 27,"Aide"
ON_CLICK 27,Aide
PROGRESS_BAR 30: TOP 30,TOP(20)+HEIGHT(20): WIDTH 30,WIDTH(0)-20

ALPHA 49: TOP 49,TOP(20)+HEIGHT(20)+25: LEFT 49,50: COLOR 49,255,255,0
LIST 50: TOP 50,TOP(49)+15: WIDTH 50,200: HEIGHT 50,HEIGHT(0)-240
COLOR 50,190,190,255: ON_CLICK 50,Vimg

ALPHA 59: TOP 59,TOP(49): LEFT 59,300: COLOR 59,255,255,0
LIST 60: TOP 60,TOP(50): LEFT 60,WIDTH(50)+5: WIDTH 60,WIDTH(0)-WIDTH(50)-25
HEIGHT 60,HEIGHT(50): COLOR 60,255,190,190: ON_CLICK 60,Vimg
EDIT 62: TOP 62,TOP(59): LEFT 62,WIDTH(60)-50: WIDTH 62,50: COLOR 62,255,255,0
FONT_SIZE 62,12: COLOR 62,255,255,0: HIDE 62

MEMO 70: WIDTH 70,300: HIDE 70

' Form de mise à l'heure Exif des images d'un répertoire
FORM 100: HEIGHT 100,200: BORDER_SMALL 100: FONT_BOLD 100: HIDE 100
COLOR 100,128,255,255
CAPTION 100,"Modification des heures Exif dans toutes les images"
ALPHA 101: PARENT 101,100: CAPTION 101,"Répertoire :"
EDIT 102: PARENT 102,100: TOP 102,15: WIDTH 102,WIDTH(100)-20
ALPHA 103: PARENT 103,100: TOP 103,40
CAPTION 103,"Offset à appliquer sur les heures Exifs:"
BUTTON 104: PARENT 104,100: TOP 104,60: LEFT 104,10: WIDTH 104,20: HEIGHT 104,20
CAPTION 104,"+": FONT_SIZE 104,14: ON_CLICK 104,Signe
BUTTON 105: PARENT 105,100: TOP 105,80: LEFT 105,10: WIDTH 105,20: HEIGHT 105,20
CAPTION 105,"-": FONT_SIZE 105,14: ON_CLICK 105,Signe
ALPHA 106: PARENT 106,100: TOP 106,70: LEFT 106,40: CAPTION 106,"+": FONT_SIZE 106,16
COLOR 106,255,255,0
ALPHA 107: PARENT 107,100: TOP 107,TOP(106)+5: LEFT 107,100
CAPTION 107,"H            M            S"
SPIN 108: PARENT 108,100: TOP 108,TOP(107)-3: LEFT 108,60: WIDTH 108,40
SPIN 109: PARENT 109,100: TOP 109,TOP(108): LEFT 109,120: WIDTH 109,40
SPIN 110: PARENT 110,100: TOP 110,TOP(108): LEFT 110,180: WIDTH 110,40
MIN 108,-100: MAX 108,100: MIN 109,-59: MAX 109,59: MIN 110,-59: MAX 110,59
BUTTON 111: PARENT 111,100: TOP 111,TOP(108)+40: LEFT 111,10: CAPTION 111,"Appliquer"
ON_CLICK 111,Modheur
BUTTON 112: PARENT 112,100: TOP 112,TOP(111)+25: LEFT 112,LEFT(111)+210
CAPTION 112,"Quitter": ON_CLICK 112,Qtheur
ALPHA 113: PARENT 113,100: TOP 113,TOP(111)+30: LEFT 113,10: COLOR 113,255,255,0

' Form d'affichage des caractéristiques d'une image
FORM 200: WIDTH 200,640: HEIGHT 200,290: BORDER_SMALL 200: FONT_BOLD 200: HIDE 200
COLOR 200,255,255,200
PICTURE 203: PARENT 203,200: TOP 203,0: WIDTH 203,320: HEIGHT 203,240
STRETCH_ON 203
ALPHA 204: PARENT 204,200: TOP 204,TOP(203): LEFT 204,WIDTH(203)+5
FONT_NAME 204,"Consolas"
BUTTON 202: PARENT 202,200: TOP 202,HEIGHT(200)-70: LEFT 202,WIDTH(200)-110
CAPTION 202,"OK": ON_CLICK 202,Qimg

' Init
Dir(TEXT$(22)+"\*.jpg","/B"): CLEAR 70: CLIPBOARD_PASTE 70
CLEAR 50: FOR i% = 1 TO COUNT(70): ITEM_ADD 50,ITEM_READ$(70,i%): NEXT i%
CAPTION 49," "+STR$(COUNT(70))+" images "
Dir(TEXT$(12)+"\*.jpg","/B"): CLEAR 70: CLIPBOARD_PASTE 70
CLEAR 60: FOR i% = 1 TO COUNT(70): ITEM_ADD 60,ITEM_READ$(70,i%): NEXT i%
CAPTION 59," "+STR$(COUNT(70))+" images "
END
' ==============================================================================
Quit:
TERMINATE
' ==============================================================================
Chr:
i% = NUMBER_CLICK
OPEN_DIALOG 88
a$ = FILE_NAME$(88)
IF LEN(a$) > 4
    b$ = FILE_EXTRACT_PATH$(a$): b$ = LEFT$(b$,LEN(b$)-1)
    TEXT i%,b$
    Dir(b$+"\*.jpg","/B"): CLEAR 70: CLIPBOARD_PASTE 70
    IF i% = 12
        j% = 60: ' répertoire de classement
    ELSE
        j% = 50
    END_IF
    CLEAR j%: FOR i% = 1 TO COUNT(70): ITEM_ADD j%,ITEM_READ$(70,i%): NEXT i%
    CAPTION j%-1," "+STR$(COUNT(j%))+" images "
    IF j% = 50
        a$ = LEFT$(ITEM_READ$(j%,1),4): TEXT 28,a$: ' préfixe fichiers
    END_IF
END_IF
DELETE 88
RETURN
' ==============================================================================
Raz:
a$ = "Voulez-vous supprimer définitivement les images du répertoire :"
a$ = a$ + CHR$(10)+CHR$(10)+TEXT$(12) + CHR$(10)+CHR$(10)+"    ?"
i% = MESSAGE_CONFIRMATION_YES_NO(a$)
IF i% <> 1 THEN RETURN
Dir(TEXT$(12)+"\*.jpg","/B"): CLEAR 70: CLIPBOARD_PASTE 70
IF COUNT(70) > 0
    FOR i% = 1 TO COUNT(70)
        f$ = TEXT$(12)+"\"+ITEM_READ$(70,i%)
        FILE_DELETE f$
    NEXT i%
    CLEAR 60
    CAPTION 59," "+STR$(COUNT(60))+" images "
END_IF
RETURN
' ==============================================================================
Signe:
i% = NUMBER_CLICK
SELECT i%
    CASE 104: CAPTION 106,"+"
    CASE 105: CAPTION 106,"-"
END_SELECT
RETURN
' ==============================================================================
Hexif:
i% = NUMBER_CLICK
TEXT 102,TEXT$(22)
CAPTION 113,""
SHOW 100
RETURN
' ==============================================================================
Modheur:
' Modification en + ou - de l'heure Exif de prise de vue
CAPTION 113," Mise à jour en cours ... "
ra$ = TEXT$(102): ' répertoire des images à modifier
h% = POSITION(108): m% = POSITION(109): s% = POSITION(110)
sg$ = CAPTION$(106)
a$ = STR$(h%)+":"+STR$(m%)+":"+STR$(s%)
a$ = sg$+a$
FOR i% = 1 TO COUNT(50)
    f$ = ra$ + "\" + ITEM_READ$(50,i%)
    Modexif(f$,a$)
NEXT i%
CAPTION 113,""
GOSUB Qtheur: ' quitter après modifications
RETURN
' ==============================================================================
Qtheur:
HIDE 100
RETURN
' ==============================================================================
Extraire:
' reconstitution d'un répertoire d'origine à partir du répertoire de classement
' (avec reconstitution du nom de fichier initial).
a$ = "Reconstitution du répertoire d'origine à partir du répertoire"+CHR$(10)
a$=a$+"de classement. La recherche se fait à partir du préfixe"+CHR$(10)
a$=a$+"indiqué ('Préfixe') trouvé dans les noms d'images."+CHR$(10)+CHR$(10)
a$=a$+"    OK ?"
i% = MESSAGE_CONFIRMATION_YES_NO(a$)
IF i% <> 1 THEN RETURN
Dir(r1$+"\*.jpg","/B"): CLEAR 70: CLIPBOARD_PASTE 70
nt% = COUNT(70)
p$ = TEXT$(28): r2$ = TEXT$(22): ' préfixe et répertoire récepteur
SHOW 62
FOR i% = 1 TO nt%
    TEXT 62,STR$(i%)+"/"+STR$(nt%): display
    a$ = ITEM_READ$(70,i%)
    b$ = MID$(a$,17,LEN(a$)-16)
    IF INSTR(b$,p$) > 0
        f1$ = r1$+"\"+a$
        f2$ = r2$+"\"+b$
        IF FILE_EXISTS(f2$) = 1 THEN FILE_DELETE f2$
        FILE_COPY f1$,f2$
    END_IF
NEXT i%
HIDE 62
RETURN
' ==============================================================================
Classement:
IF COUNT(50) = 0 THEN RETURN
rs$ = TEXT$(22): ns% = COUNT(50): ' répertoire source
rd$ = TEXT$(12): ' répertoire récepteur (classement)
MIN 30,0: MAX 30,ns%
FOR i% = 1 TO ns%
    POSITION 30,i%
    a$ = ITEM_READ$(50,i%)
    f$ = rs$+"\"+a$: ImgDate(f$)
    d$ = CLIPBOARD_STRING_PASTE$
    d$=left$(d$,4)+"_"+mid$(d$,6,2)+"_"+mid$(d$,9,2)+"_"+mid$(d$,12,2)+mid$(d$,15,2)
    a$ = d$+"_"+a$
    fr$ = rd$+"\"+a$
    IF FILE_EXISTS(fr$) = 0
        FILE_COPY f$,fr$
        ITEM_ADD 60, a$
    END_IF
    CAPTION 59,STR$(COUNT(60))
NEXT i%
Dir(TEXT$(12)+"\*.jpg","/B"): CLEAR 70: CLIPBOARD_PASTE 70
CLEAR 60: FOR i% = 1 TO COUNT(70): ITEM_ADD 60,ITEM_READ$(70,i%): NEXT i%
CAPTION 59," "+STR$(COUNT(60))+" images "
RETURN
' ==============================================================================
Vimg:
' Voir une image et ses données Exifs
CAPTION 204,"": 2D_TARGET_IS 203: STRETCH_OFF 203: PRINT_TARGET_IS 203
FONT_SIZE 203,24: FONT_BOLD 203: PRINT_LOCATE 100,100: PRINT " MOM ... "
SHOW 200: TO_FOREGROUND 200
i% = NUMBER_CLICK: ' liste cliquée
a$ = ITEM_INDEX$(i%): ' image cliquée
IF i% = 50
    f$ = TEXT$(22)+"\"+a$
ELSE
    f$ = TEXT$(12)+"\"+a$
END_IF
CAPTION 200,f$
Exifs(f$): a$ = CLIPBOARD_STRING_PASTE$
a$ = MID$(a$,INSTR(a$,"File size"),800)
CAPTION 204,a$: ' données Exifs
k% = INSTR(a$,"Resolution"): a$ = MID$(a$,k%+15,20)
k% = INSTR(a$," x "): w% = VAL(LEFT$(a$,k%-1)): a$ = MID$(a$,k%+3,20)
k% = INSTR(a$,CHR$(13)): h% = VAL(LEFT$(a$,k%-1))
IF w% > h%
    WIDTH 203,320: HEIGHT 203,320*h%/w%
ELSE
    HEIGHT 203,240: WIDTH 203,240*w%/h%
END_IF
HEIGHT 200,HEIGHT(203)+50
STRETCH_ON 203: FILE_LOAD 203,f$
RETURN
' ==============================================================================
Qimg:
HIDE 200
RETURN
' ==============================================================================
Aide:
b$ = CHR$(13)+CHR$(10)
a$="L'opération consiste à fusionner plusieurs répertoires contenant des photos"+b$
a$=a$+"prises par des appareils différents (un répertoire par appareil)."+b$
a$=a$+"Toutes ces photos seront classées dans un répertoire commun, dans l'ordre"+b$
a$=a$+"chronologique de leur prise de vue, ce paramètre étant extrait des données"+b$
a$=a$+"Exifs de l'image."+b$+b$

a$=a$+"Les différents appareils étant en général désynchronisés les uns par rapport aux"+b$
a$=a$+"autres (heure interne inexacte) il est possible de rectifier ces dates/heures de"+b$
a$=a$+"prises de vues pour une série de photos, en ajoutant ou soustrayant des valeurs"+b$
a$=a$+"à ces données, pour synchroniser les prises de vues (bouton 'Correction Heures Exifs'"+b$
a$=a$+"qui modifie les dates/heures de toutes les photos du répertoire courant)."+b$+b$

a$=a$+"MODE OPÉRATOIRE:"+b$+b$
a$=a$+"1) Choisir le répertoire commun qui recevra les images classées (on peut"+b$
a$=a$+"choisir de le nettoyer s'il contient déjà des images: touche 'RAZ')."+b$+b$
a$=a$+"2) Choisir un des répertoires contenant des photos à classer: la liste des"+b$
a$=a$+"photos contenues s'affiche à gauche. Appliquer éventuellement une correction"+b$
a$=a$+"des heures de prise de vue ('Correction Heures Exifs'), puis 'Copier/Classer'"+b$
a$=a$+"les photos dans le répertoire récepteur commun: elles s'affichent avec un"+b$
a$=a$+"nouveau nom contenant la date/heure de la photo."+b$+b$
a$=a$+"3) Répéter l'opération pour chaque répertoire de photos à intégrer."+b$
a$=a$+"NB: il est possible à tout moment de cliquer sur n'importe quelle image"+b$
a$=a$+"listée pour obtenir son affichage réduit et ses caractéristiques Exifs."+b$+b$

a$=a$+"Toutes les photos sont recopiées dans un répertoire commun de classement,"+b$
a$=a$+"avec leur nom précédé de la date et heure de prise de vue, éventuellement"+b$
a$=a$+"corrigée précédemment, donc de ce fait dans l'ordre chronologique."+b$
a$=a$+"Les répertoires d'origine sont inchangés (seules les dates/heures de prises"+b$
a$=a$+"de vues sont éventuellement modifiées)."+b$+b$
MESSAGE a$
RETURN
' ==============================================================================
SUB Modexif(f$,seq$)
' Modification de l'heure Exif de f$, en fonction de seq$ (modif de +/- durée)
' seq$ = +/-hh:mm:ss
DIM_LOCAL a$, prg$, scr$, bat$
IF VARIABLE("jhead$")=0 THEN DIM jhead$: jhead$ = "C:\UTIL\Jhead.exe"
prg$ = "CMD.exe /c "+jhead$+" -ta"+seq$+" "+f$+" | clip"
scr$ = "C:\TEMP\Vbscript.vbs": bat$ = "C:\TEMP\Bat.bat"
FILE_OPEN_WRITE 9, bat$: FILE_WRITELN 9, prg$: FILE_CLOSE 9: ' Fichier .bat
prg$ = "CreateObject(" + CHR$(34) + "Wscript.Shell" + CHR$(34) + ").Run "
prg$ = prg$ + CHR$(34) + bat$ + CHR$(34) + ",0,True"
FILE_OPEN_WRITE 9, scr$: FILE_WRITELN 9, prg$: FILE_CLOSE 9: ' script vbs
EXECUTE_WAIT "WSCRIPT.exe " + scr$: ' Exécution du script
FILE_DELETE bat$: FILE_DELETE scr$
END_SUB
' ==============================================================================
SUB Exifs(f$)
' Données Exifs f$ -> clipboard
DIM_LOCAL a$, prg$, scr$, bat$
IF VARIABLE("jhead$")=0 THEN DIM jhead$: jhead$ = "C:\UTIL\Jhead.exe"
prg$ = "CMD.exe /c "+jhead$+" "+f$+" | clip"
scr$ = "C:\TEMP\Vbscript.vbs": bat$ = "C:\TEMP\Bat.bat"
FILE_OPEN_WRITE 9, bat$: FILE_WRITELN 9, prg$: FILE_CLOSE 9: ' Fichier .bat
prg$ = "CreateObject(" + CHR$(34) + "Wscript.Shell" + CHR$(34) + ").Run "
prg$ = prg$ + CHR$(34) + bat$ + CHR$(34) + ",0,True"
FILE_OPEN_WRITE 9, scr$: FILE_WRITELN 9, prg$: FILE_CLOSE 9: ' script vbs
EXECUTE_WAIT "WSCRIPT.exe " + scr$: ' Exécution du script
FILE_DELETE bat$: FILE_DELETE scr$
END_SUB
' ==============================================================================
SUB ImgDate(f$)
' Date de prise de vue image f$ -> clipboard, format aaaa:mm:jj hh:mm:ss
DIM_LOCAL a$, prg$, scr$, bat$
IF VARIABLE("jhead$")=0 THEN DIM jhead$: jhead$ = "C:\UTIL\Jhead.exe"
prg$ = "CMD.exe /c "+jhead$+" "+f$+" | clip"
scr$ = "C:\TEMP\Vbscript.vbs": bat$ = "C:\TEMP\Bat.bat"
FILE_OPEN_WRITE 9, bat$: FILE_WRITELN 9, prg$: FILE_CLOSE 9: ' Fichier .bat
prg$ = "CreateObject(" + CHR$(34) + "Wscript.Shell" + CHR$(34) + ").Run "
prg$ = prg$ + CHR$(34) + bat$ + CHR$(34) + ",0,True"
FILE_OPEN_WRITE 9, scr$: FILE_WRITELN 9, prg$: FILE_CLOSE 9: ' script vbs
EXECUTE_WAIT "WSCRIPT.exe " + scr$: ' Exécution du script
FILE_DELETE bat$: FILE_DELETE scr$
a$ = CLIPBOARD_STRING_PASTE$
CLIPBOARD_STRING_COPY MID$(a$,INSTR(a$,"Date/Time")+15,19)
END_SUB
' ==============================================================================
SUB Dir(rep$, arg$)
' Liste des fichiers du répertoire rep$, options arg$, résultat -> CLIPBOARD
' (à coller par exemple dans un Memo). Exécution sans fenêtre noire.
' Arguments optionnels:
'    /A:D répertoires, /A:-D fichiers, /B format abrégé"
'    /-C pas de séparateur de milliers, /-N fichiers à gauche (abrégés)
'    /O: (tri) N tri alpha, E tri par extension, G répertoires en tête,
'        S tri par taille, D tri par date croissante (-D date décroissante)
'    /S y compris sous-répertoires, /X avec noms abrégés.
DIM_LOCAL prg_a$, s_cr$, b_at$
prg_a$ = "CMD.exe /c DIR " + rep$ + " " + arg$ + " | clip"
s_cr$ = "C:\TEMP\Vbscript.vbs": b_at$ = "C:\TEMP\Bat.bat"
FILE_OPEN_WRITE 9, b_at$: FILE_WRITELN 9, prg_a$: FILE_CLOSE 9: ' Fichier .bat
prg_a$ = "CreateObject(" + CHR$(34) + "Wscript.Shell" + CHR$(34) + ").Run "
prg_a$ = prg_a$ + CHR$(34) + b_at$ + CHR$(34) + ",0,True"
FILE_OPEN_WRITE 9, s_cr$: FILE_WRITELN 9, prg_a$: FILE_CLOSE 9: ' script vbs
EXECUTE_WAIT "WSCRIPT.exe " + s_cr$: ' Exécution du script
FILE_DELETE b_at$: FILE_DELETE s_cr$
END_SUB
' ==============================================================================

Edit du 31/3 petites modifs, rectifications mineures.


Dernière édition par JL35 le Lun 31 Mar 2014 - 19:03, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7809
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 31 Mar 2014 - 2:48

J' ai bien téléchargé le *.exe mais où est la doc ?...

Va falloir un bon tutoriel pour se servir de cet outils
et je dirai même plus, faudra qu' on le publie sur le mag.
Cela fait parti de son utilité.

 Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Classement de photos   Lun 31 Mar 2014 - 10:34

Bonjour ygeronimi,

Si tu parles de Jhead.exe, il te suffit de taper en ligne de commande
jhead.exe -h
et tu as toute la documentation voulue (mais en british, désolé  Very Happy ) et là tu vois toute l'étendue des possibilités.
(J'avais aussi exiftool, freeware également, et là il y a des centaines de paramètres, à voir, mais pour ce que je voulais faire jhead fait l'affaire).
Fonctions très intéressantes pour qui s'intéresse à la photo et aux données Exif des photos.

Une petite précision quand même, les répertoires que j'ai mis en 'dur' dans le programme (pour mes essais) sont mes répertoires à moi, pour l'exemple, mais ils sont évidemment à supprimer/modifier.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7809
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 1 Avr 2014 - 1:18

Je ne suis pas un spécialiste de la ligne de commande
mais l' instruction | Clip fonctionne t elle avec W7 ?
Je n' ai pas de retour des exifs.  scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7809
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 1 Avr 2014 - 2:32

Bravo !
Ton outils est très bien, je me le mets sous le coude, ou plutôt sur le bureau... Laughing 

Je me suis fait un petit outils à partir de Jhead 
pour récupérer les infos de mes photos.
jhead fonctionne très bien, en plus avec la sub qui évite la fenêtre noire
c' est génial.
Je range cette outils avec 7z et senditquiet.
Si tu as d' autres outils utilisable comme celui ci, on pourrait en faire une belle
bibliothèque, en tout cas, je suis preneur... Laughing 

J' ai mis ce petit outils sur mon webdav, il évoluera avec le temps, comme les autres... Wink 


Ps : Ne cherchez pas mes autre productions, elles sont dans le dossier YGERONIMI du webdav.
J' ai fait un peu de rangement... Rolling Eyes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5384
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Classement de photos   Mar 1 Avr 2014 - 12:27

Ygeronimi a écrit:
Je ne suis pas un spécialiste de la ligne de commande
mais l' instruction | Clip fonctionne t elle avec W7 ?

La commande clip fonctionne bien avec VISTA, W7 et W8.
Pour XP, il faut la télécharger.

clip.exe est un utilitaire en ligne de commande qui permet de rediriger la sortie d’une autre commande vers le press-papier Windows.
Cette commande utilise un pipe (|)

Pour tester cette commande, ouvre une fenêtre de l’invite de commande et tape ceci (par exemple) :
dir | clip
La sortie de la commande DIR est redirigée vers le presse-papier.
Pour te convaincre, ouvre une fenêtre du bloc-note et fais un coller

MIEUX :
Exécute ce code Panoramic
Code:
 execute_wait "cmd /c dir | clip"

Puis fais un coller où tu voudras

Info :
L'utilitaire clip.exe peut aussi être utilisé pour lire un fichier texte et placer son contenu dans le presse-papier de Windows. La commande à utiliser est :
clip < unFichier.txt
Le symbole de redirection (<) signifie que le contenu du fichier unFichier.txt sera rediregé vers clip (c-à-d vers le presse-papier)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Classement de photos   Mar 1 Avr 2014 - 15:38

Effectivement papydall, clip n'était pas en standard dans XP, mais je l'avais installé et ça me paraissait tout naturel depuis le temps que je l'utilise  Very Happy 
C'est bien pratique pour toutes les commandes Dos, plutôt que d'envoyer le résultat dans un fichier, puis lire le fichier, puis le détruire... alors qu'on a sous panoramic Clipboard_Paste$ et Clipboard_String_Paste$ bien pratiques pour récupérer le presse-papier directement dans un objet ou une chaîne.

@ygeronimi
des outils j'en ai pas mal, mais il faudrait faire un sacré tri...
et puis il faut que ça ait un rapport avec panoramic, ou du moins exploité par un programme panoramic.
On parle donc exclusivement d'outils utilisables en ligne de commande, appelables de manière transparente (sans affichage à l'écran) depuis Panoramic et qui renvoient un résultat éventuel utilisable en Panoramic (presse-papier ou fichier).
Dans cette optique j'utilise beaucoup Irfanview, mais il y en a bien d'autres, je vais regarder.
Ce serait évidemment intéressant de récapituler tout ça, en classant par catégories, chacun pourrait apporter ses trouvailles, parfois ça simplifie bien la vie.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7809
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 1 Avr 2014 - 19:49

Surtout ce genre de *.exe qui ne nécessite pas d' installation.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5384
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Classement de photos   Mar 1 Avr 2014 - 20:53

Voici un exemple d'utilisation de la commande CLIP avec un code en Panoramic

Code:
' Exemple d'utilisation de la commande CLIP
 full_space 0
 memo 1 : width 1,300 : height 1,500
 memo 2 : left 2, 400 : width 2,800 : height 2,10000
 execute_wait "cmd /c dir | clip" : ' La sortie de la commande DIR est redirigée vers le presse-papier
 message clipboard_string_paste$  : ' Afficher un message dont le contenu est celui du presse-papier
 clipboard_paste 1 : ' Afficher le contenu  du presse-papier dans le MEMO 1
 execute_wait "cmd /c clip < test.bas" : ' Lire le fichier 'test.bas' et placer son contenu dans le presse-papier
' Le fichier 'test.bas' (par exemple ce même fichier) doit bien sûr exister dans le répertoire courant.
' Si le fichier 'test.bas' n'existe pas, la commande 'CLIP < test.bas' n'enverra rien au presse-papier
'  et ne modifie pas son ancien contenu
 clipboard_paste 2 : ' Afficher le contenu du presse-papier dans le MEMO 2
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: Classement de photos   

Revenir en haut Aller en bas
 
Classement de photos
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Album Photos de famille
» Hébergement gratuit images photos fichiers
» Neuf conseils pour réussir vos photos
» [Résolu] compresser mes photos
» Photos de l'avant-première des bagnoles 2

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: