FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» bouton dans autre form que 0
Affichage de photos Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
Affichage de photos Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
Affichage de photos Emptypar Klaus Hier à 10:23

» PANORAMIC V 1
Affichage de photos Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Affichage de photos Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Affichage de photos Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Affichage de photos Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Affichage de photos Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Affichage de photos Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Affichage de photos Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Affichage de photos Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Affichage de photos Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Affichage de photos Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Affichage de photos Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Affichage de photos Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

 

 Affichage de photos

Aller en bas 
AuteurMessage
JL35




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

Affichage de photos Empty
MessageSujet: Affichage de photos   Affichage de photos EmptyMer 6 Aoû 2014 - 16:39

Il va y avoir plein de photos à afficher au retour des vacances, alors...

L'écran est utilisé au maximum de sa capacité, tout le reste est masqué.
Le programme affiche une planche de vignettes (de dimensions choisies), on clique sur une de ces vignettes pour démarrer l'affichage des images, puis on clique 'Suivant' à chaque fois (ou 'Précédent'), soit on passe en automatique (touche 'Auto', original...), genre diaporama, avec délai réglable.
Bouton aide ('?') pour plus de détails, mais c'est tout simple.
Affichage de photos Accuei10
La seule ressource externe nécessaire est IrfanView (encore lui), dont il faut ajuster le chemin en tête du programme.
Le programme n'est pas très long (moins de 300 lignes).
Code:

' Affichage de photos en grand format
LABEL Quit, Quitv, Chr, Calcol, Chrs, Afvi, Suivi, Clicki, Clicks, Precede, Suivant
LABEL Fclick, Auto, Rot90d, Aidsuc
DIM w0,h0,wr,hr,wv,hv,ht,eh,nc,nr,x,y,i%,j%,k%,kv%,ik%,a$,f$,r$,ni%,iv$,wi,hi,rc$
DIM aut%,del%,pa%

iv$ = "C:\Progra~2\Irfanv~1\i_view32.exe ": ' <<<<<<<<<<<<<<<<< IrfanView <<<<<<

w0 = SCREEN_X: h0 = SCREEN_Y
wr = w0-100: hr = 20
HIDE 0: WIDTH 0,w0: HEIGHT 0,h0: BORDER_HIDE 0: FONT_NAME 0,"Arial"
BUTTON 1: TOP 1,0: LEFT 1,w0-90: HEIGHT 1,20: CAPTION 1,"Retour": FONT_BOLD 1
ON_CLICK 1,Quitv
CONTAINER 2: TOP 2,0: LEFT 2,0: WIDTH 2,wr: HEIGHT 2,hr
COLOR 2,255,255,190
ALPHA 3: PARENT 3,2: TOP 3,0: LEFT 3,5: FONT_SIZE 3,12: FONT_BOLD 3
ALPHA 4: PARENT 4,2: TOP 4,0: LEFT 4,(w0-300)/2: FONT_SIZE 4,12: FONT_BOLD 4: font_color 4,164,0,164
CAPTION 4,"Cliquez une vignette pour voir l'image"

MEMO 10: HIDE 10

IMAGE 19
' Picture d'affichage des vignettes
PICTURE 20: TOP 20,hr: WIDTH 20,w0: HEIGHT 20,h0-hr
FONT_NAME 20,"Courier New": FONT_SIZE 20,7
ON_CLICK 20,Clicki
BUTTON 21: TOP 21,TOP(20)+HEIGHT(20)-30: LEFT 21,w0-80: CAPTION 21,"Suite": HIDE 21
FONT_BOLD 21: FONT_SIZE 21,12: ON_CLICK 21,Suivi

FORM 50: TOP 50,200: LEFT 50,w0/2-150: WIDTH 50,300: HEIGHT 50,200: COLOR 50,255,164,90
BORDER_SMALL 50: FONT_NAME 50,"Arial": FONT_BOLD 50: ON_CLOSE 50,Quit
CAPTION 50,"- VISUALISATION  DE  PHOTOS  PLEIN  ÉCRAN -"
ALPHA 51: PARENT 51,50: LEFT 51,5: TOP 51,5: CAPTION 51," Répertoire des images (clic) : "
COLOR 51,255,255,0
EDIT 52: PARENT 52,50: TOP 52,20: LEFT 52,5: WIDTH 52,WIDTH(50)-25: ON_CLICK 52,Chr
BUTTON 53: PARENT 53,50: TOP 53,TOP(52)+95: LEFT 53,WIDTH(52)/2-70: WIDTH 53,140
CAPTION 53,"Voir les vignettes": ON_CLICK 53,Chrs
ALPHA 62: PARENT 62,50: TOP 62,TOP(53)+25: LEFT 62,20
CAPTION 62,"(puis cliquer une vignette pour voir l'image)"
BUTTON 54: PARENT 54,50: TOP 54,0: LEFT 54,WIDTH(50)-70: WIDTH 54,50: HEIGHT 54,19
CAPTION 54,"Quitter": ON_CLICK 54,Quit
OPEN_DIALOG 55
BUTTON 61: PARENT 61,50: TOP 61,TOP(54): LEFT 61,LEFT(54)-25: WIDTH 61,25: HEIGHT 61,19
CAPTION 61,"?": ON_CLICK 61,Aidsuc
ALPHA 60: PARENT 60,50: TOP 60,TOP(52)+23: LEFT 60,30: COLOR 60,255,190,164
ALPHA 56: PARENT 56,50: TOP 56,TOP(52)+48: LEFT 56,30
CAPTION 56,"Vignettes de                  x              pixels."
SPIN 57: PARENT 57,50: TOP 57,TOP(56)-3: LEFT 57,LEFT(56)+75: WIDTH 57,50
EDIT 58: PARENT 58,50: TOP 58,TOP(57): LEFT 58,LEFT(57)+WIDTH(57)+12: WIDTH 58,33
ALPHA 59: PARENT 59,50: TOP 59,TOP(56)+25: LEFT 59,20: COLOR 59,255,190,164
' Affichage d'une image
wi = 1280: hi = wi*3/4
hi = SCREEN_Y-80: wi = 4*hi/3
FORM 100: TOP 100,(SCREEN_Y-hi-60)/2: LEFT 100,(SCREEN_X-wi)/2: WIDTH 100,wi+16: HEIGHT 100,hi+60
BORDER_SMALL 100: HIDE 100: COLOR 100,255,0,0: FONT_BOLD 100: FONT_SIZE 100,10
ON_CLOSE 100,Fclick
PICTURE 101: PARENT 101,100: WIDTH 101,wi: HEIGHT 101,hi: STRETCH_ON 101
ON_CLICK 101,Suivant
BUTTON 102: PARENT 102,100: TOP 102,TOP(101)+HEIGHT(101): LEFT 102,wi-300
WIDTH 102,95: CAPTION 102,"Précédente": ON_CLICK 102,Precede
BUTTON 103: PARENT 103,100: TOP 103,TOP(102): LEFT 103,LEFT(102)+100
WIDTH 103,95: CAPTION 103,"Suivante": ON_CLICK 103,Suivant
BUTTON 104: PARENT 104,100: TOP 104,TOP(102): LEFT 104,LEFT(103)+100
WIDTH 104,95: CAPTION 104,"Quitter": ON_CLICK 104,Fclick
EDIT 105: PARENT 105,100: TOP 105,TOP(102)+1: LEFT 105,10: WIDTH 105,420
BUTTON 106: PARENT 106,100: TOP 106,TOP(102): LEFT 106,wi/2-40: WIDTH 106,40
CAPTION 106,"Auto": ON_CLICK 106,Auto
SPIN 107: PARENT 107,100: TOP 107,TOP(106): LEFT 107,wi/2: WIDTH 107,40
POSITION 107,2
ALPHA 108: PARENT 108,100: TOP 108,TOP(107)+3: LEFT 108,LEFT(107)+40
CAPTION 108,"sec.": COLOR 108,255,180,180
BUTTON 110: PARENT 110,100: TOP 110,TOP(102): LEFT 110,LEFT(102)-30: WIDTH 110,28
FONT_NAME 110,"Wingdings 3": FONT_SIZE 110,14: CAPTION 110,CHR$(80): ON_CLICK 110,Rot90d

del% = 2000: ' intervalle entre images en automatique (millisecondes)
wv = 160: hv = wv*3/4: ' dimensions des vignettes, à ajuster, au choix
POSITION 57,wv: TEXT 58,STR$(hv)
ON_CHANGE 57,Calcol
ht = 9: ' hauteur texte (légendes)
eh = 1: ' espacement horizontal entre vignettes
GOSUB Calcol
TO_FOREGROUND 50
END
' ==============================================================================
Quit:
TERMINATE
' ==============================================================================
Quitv:
' Retour à l'écran d'accueil
HIDE 0: CLS: SHOW 50: TO_FOREGROUND 50
RETURN
' ==============================================================================
Chr:
' Choix du répertoire des images
CAPTION 60,""
a$ = FILE_NAME$(55): IF LEN(a$)<4 THEN RETURN
r$ = FILE_EXTRACT_PATH$(a$)
TEXT 52,r$
IF DIR_EXISTS(r$) = 0 THEN MESSAGE "Répertoire non trouvé !": RETURN
Dir(r$+"*.jpg","/B"): CLEAR 10: CLIPBOARD_PASTE 10
ni% = COUNT(10)
CAPTION 60," (= "+STR$(ni%)+" images) "
pa% = 1: ' 1ère vignette à afficher
RETURN
' ==============================================================================
Calcol:
' Rangées/Colonnes en fonction de la dimension choisie des vignettes
wv = POSITION(57): hv = INT(wv*3/4): ' dimensions des vignettes, à ajuster, au choix
TEXT 58,STR$(hv)
nc = INT(w0/(wv+eh)): ' -> nombre de colonnes calculé
nr = INT((h0-hr)/(hv+ht)): ' -> nombre de rangées calculé
CAPTION 59,"=> "+STR$(nr)+" rangées de "+STR$(nc)+" colonnes, soit "+STR$(nc*nr)+" images."
RETURN
' ==============================================================================
Chrs:
' Affichage des vignettes (dans la limite de la capacité de l'écran)
r$ = TEXT$(52)
IF DIR_EXISTS(r$) = 0 THEN MESSAGE "Répertoire non trouvé !": CAPTION 60,"": RETURN
CAPTION 3,r$ + "  ("+STR$(ni%)+" images)"
SHOW 0
HIDE 50
pa% = 1: GOSUB Afvi
RETURN
' ==============================================================================
Afvi:
2D_TARGET_IS 20: PRINT_TARGET_IS 20: CLS: COLOR 20,200,200,200
HIDE 21
x = 0: y = 0
FOR kv% = pa% TO ni%
    a$ = ITEM_READ$(10,kv%): f$ = r$ + a$
    EXECUTE_WAIT iv$+f$+" /resize=("+STR$(wv)+",0) /aspectratio /clipcopy /killmesoftly": ' redim
    CLIPBOARD_PASTE 19
    2D_IMAGE_PASTE 19,x,y
    PRINT_LOCATE x,y+hv-1: PRINT STR$(kv%)+": "+a$
    x = x+wv+eh
    IF x>(w0-wv)
        x = 0: y = y+hv+ht
        IF y>(HEIGHT(0)-hv-ht)
            IF kv% < ni%
                SHOW 21
            END_IF
            EXIT_FOR
        END_IF
    END_IF
NEXT kv%
RETURN
' ==============================================================================
Suivi:
' planche de vignettes suivante
pa% = kv%+1
GOSUB Afvi
RETURN
' ==============================================================================
Clicki:
' Affichage d'une image (cliquée, ou en continu)
x = MOUSE_X_LEFT_DOWN(20): y = MOUSE_Y_LEFT_DOWN(20)
x = 1+INT(x/(wv+eh)): ' colonne cliquée
y = 1+INT(y/(hv+ht)): ' rangée cliquée
ik% = (y-1)*nc + x: ' rang de l'image cliquée dans la fenêtre d'affichage
ik% = ik%+pa%-1: ' rang dans la liste globale
Clicks:
a$ = ITEM_READ$(10,ik%)
f$ = r$ + a$
ImgInfos(f$)
' IF rsw%>rsh%
'    WIDTH 101,wi: HEIGHT 101,hi
' ELSE
'    HEIGHT 101,hi: WIDTH 101,hi*rsw%/rsh%
' END_IF
WIDTH 101,wi: HEIGHT 101,hi: ' dimensions implicites
FILE_LOAD 101,f$
SHOW 100: TO_FOREGROUND 100
CAPTION 100,"  -  Répertoire :  "+r$+"  ( "+STR$(ni%)+"  images )"
TEXT 105," "+STR$(ik%)+"_  "+a$+"  -  "+rsd$+"  -  ("+STR$(rsw%)+" x "+STR$(rsh%)+")"
RETURN
' ==============================================================================
Precede:
ik% = ik%-1
IF ik%<1 THEN ik% = 1: RETURN
GOSUB Clicks
RETURN
' ==============================================================================
Suivant:
ik% = ik%+1
IF ik% > ni%
    aut% = 0
ELSE
    GOSUB Clicks
    WHILE aut% = 1: ' défilement auto
        del% = 1000*POSITION(107)
        del% = del%-500: ' pour tenir compte du temps de traitement (approx.)
        FOR i% = 1 TO del% STEP 200
            WAIT 200
            IF CLICKED(106) = 1 THEN EXIT_WHILE
        NEXT i%
        ik% = ik%+1: IF ik% > ni% OR aut% = 0 THEN EXIT_WHILE
        GOSUB Clicks
    END_WHILE
    aut% = 0
    CAPTION 106,"Auto"
END_IF
RETURN
' ==============================================================================
Fclick:
' Retour à l'écran des vignettes
HIDE 100
aut% = 0: CAPTION 106,"Auto"
RETURN
' ==============================================================================
Auto:
IF aut% = 1
    aut% = 0: ' touche Stop
    CAPTION 106,"Auto"
ELSE
    ' touche Auto
    IF CLICKED(106) = 1: ' pour désarmorçer le dernier click
    END_IF
    aut% = 1
    CAPTION 106,"Stop"
    GOSUB Suivant
END_IF
RETURN
' ==============================================================================
Rot90d:
' Rotation à droite 90° de l'image affichée
CLIPBOARD_COPY 101
i% = WIDTH(101): j% = HEIGHT(101)
EXECUTE_WAIT iv$ + "/clippaste /rotate_r /clipcopy /killmesoftly"
IF i% > hi
    HEIGHT 101,hi: WIDTH 101,hi*j%/i%: IF WIDTH(101)>wi THEN WIDTH 101,wi
ELSE
    WIDTH 101,wi: HEIGHT 101,wi*i%/j%: IF HEIGHT(101)>hi THEN HEIGHT 101,hi
END_IF
CLIPBOARD_PASTE 101
RETURN
' ==============================================================================
Aidsuc:
rc$ = CHR$(13)+CHR$(10)
a$ = "      - VISUALISATION  DE  PHOTOS  EN  PLEIN  ÉCRAN -"+rc$+rc$
a$=a$+"- Clic pour choisir le répertoire des images à visualiser."+rc$
a$=a$+"- Choisir la largeur des vignettes à afficher, ce qui conditionnera"+rc$
a$=a$+"  le nombre total de miniatures affichées à l'écran."+rc$
a$=a$+"- Cliquer 'Voir les vignettes': elles s'affichent en plein écran, dans"+rc$
a$=a$+"  la limite de la capacité de l'écran. Cliquer sur le bouton 'Suite'"+rc$
a$=a$+"  éventuel en bas à droite pour voir la série suivante."+rc$
a$=a$+"- Cliquer sur une vignette pour voir l'image en grand format."+rc$+rc$
a$=a$+"  On peut alors :"+rc$
a$=a$+"  - cliquer 'Suivante', 'Précédente', ou bien 'Quitter' pour revenir"+rc$
a$=a$+"      à l'affichage global."+rc$
a$=a$+"  - cliquer 'Auto' pour un affichage en continu des images"+rc$
a$=a$+"      successives à partir de l'image affichée, avec réglage du"+rc$
a$=a$+"      délai en secondes."+rc$
a$=a$+"      Cet affichage continu est interruptible par la touche 'Stop'"+rc$
a$=a$+"      (retour à l'affichage image par image)."+rc$+rc$
a$=a$+"  NB: on peut faire pivoter de 90° à droite une image affichée à"+rc$
a$=a$+"      l'écran à l'aide du bouton flèche circulaire."+rc$+rc$
a$=a$+" Retour à l'écran d'origine : touche 'Retour' en haut à droite"+rc$
a$=a$+" de l'écran des vignettes."+rc$
a$=a$+" Fermer le programme: touche 'Quitter'"
MESSAGE a$
RETURN
' ==============================================================================
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
' ==============================================================================
SUB ImgInfos(f$)
' Image f$ -> rsw%, rsh%, rsd$ (dimensions, date/heure de prise de vue)
DIM_LOCAL a$, fi$: ' variables locales
IF VARIABLE("rsw%") = 0 THEN DIM rsw%
IF VARIABLE("rsh%") = 0 THEN DIM rsh%
IF VARIABLE("rsd$") = 0 THEN DIM rsd$
fi$ = "C:\TEMP\Ifxwz.txt"
EXECUTE_WAIT iv$ + f$ + " /info=" + fi$ + " /fullinfo"
FILE_OPEN_READ 9, fi$
WHILE FILE_EOF(9) = 0: FILE_READLN 9, a$
    IF LEFT$(a$, 16) = "Image dimensions"
        a$ = MID$(a$, 20, 50)
        rsw% = VAL(LEFT$(a$, INSTR(a$, " ") - 1))
        a$ = MID$(a$, INSTR(a$, " ") + 3, 50)
        rsh% = VAL(LEFT$(a$, INSTR(a$, " ") - 1))
    ELSE
        IF LEFT$(a$, 16) = "DateTimeOriginal"
            a$ = MID$(a$, 20, 50)
            rsd$ = MID$(a$,9,2)+"/"+MID$(a$,6,2)+"/"+LEFT$(a$,4)+MID$(a$,11,6)
            EXIT_WHILE
        END_IF
    END_IF
END_WHILE
FILE_CLOSE 9: FILE_DELETE fi$
END_SUB
' ==============================================================================
Je suis parti du principe que les dimensions des images étaient dans le rapport 4/3, ce qui est le cas dans la grande majorité des apn, il faudrait ajuster si ce n'était pas le cas (ce n'est pas automatisé).

PS déjà une petite modif: on peut afficher successivement la totalité des imagettes, une série par écran.
Revenir en haut Aller en bas
 
Affichage de photos
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un catalogue de photos de fleurs, avec KBDD, affichage HTML
» Affichage d'une icône
» Affichage de gif animé.
» amélioration de l'affichage
» Affichage d'une icône

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