Vignettes sur un form et agrandissements photos
# 0000000577
ajouté le 20/05/2008 15:48:06 et modifié le 20/05/2008
consulté 7334 fois
Niveau
initié
Version(s) Foxpro : VFP 6.0
Description
Ce programme écrit en VFP6.0 affiche sur un form toutes les miniatures (vignettes) d'un répertoire donné (en photos bmp,jpg,gif).
Un clic sur une photo l'agrandit un autre clic la réduit.
Il permet le déroulement d'un diaporama simple avec temporisation inter images de 4 sec.
Si le nombre de photos est important des appels de mémoire supplémentaire sont nécessaires et ralentissent le programme.
benameuryousfi1@gmail.com
Code source :
&& miniatures de photos jpg,gif et bmp d'un répertoire donné sur form+visualisations photos+diaporama
mess="Ce programme crée les miniatures de photos jpg,gif et bmp d'un répertoire donné.Cliquer sur une miniature pour l'agrandir et clic sur photo pour la fermer."+chr(13)+; "Un diaporama (sans musique et sans transitions) est disponible et temporisé à 4s.Le programme demande de la mémoire système."+chr(13)+; "J'ai testé 100 photos sans problème à signaler! benameuryousfi1@gmail.com " messagebox(mess,0,"Avertissement")
yrep0=sys(5)+sys(2003)+'\'
yrep=getdir() ifempty(yrep) return
endi
yrep='"'+yrep+'"' set defa to &yrep
gnbre1=adir(gabasedonnées1,'*.jpg')
gnbre2=adir(gabasedonnées2,'*.bmp')
gnbre3=adir(gabasedonnées3,'*.gif')
gnbre=gnbre1+gnbre2+gnbre3
createcursor ythumb (image c(100))
sele ythumb for i=1 to gnbre1
appe blan
repl imagewithjustpath(yrep)+"\"+gabasedonnées1(i,1) endfor for i=1 to gnbre2
appe blan
repl imagewithjustpath(yrep)+"\"+gabasedonnées2(i,1) endfor for i=1 to gnbre3
appe blan
repl imagewithjustpath(yrep)+"\"+gabasedonnées3(i,1) endfor
*brow gotop *********************** PUBLIC oform,xx
oform=CREATEOBJECT("yForm")
oform.Show() readevents return
DEFINECLASS yForm ASForm showtips=.t. scrollbars=3 showwindow=2 caption=" Création de miniatures (jpg,bmp,gif) sur un objet Form" width=sysmetric(1) height=sysmetric(2)
************** Procedureinit
publi clic,l0,t0,w0,h0
clic=0
xwidth=sysmetric(1)-40
xheight=sysmetric(2)
thumwidth=80 && default thumbnail dim
thumheight=80 && ""
delta=10 &&espace sur ligne et sur colonne
marge=25 &&marge sup .pour titre
sele ythumb gotop
k=1 for j=1 to nvert for i=1 to nhoriz
aa="bouton"+allt(str(k))
k=k+1
sele ythumb ifnoteof() thisform.addobject(aa,"Mybutton") withthis.&aa if i=1
.left=delta else
.left=(i-1)*(thumwidth)+i*delta
endi
.top=(j-1)*(thumheight)+(2*j-1)*delta +marge
.picture=image endwith
bb="label"+allt(str(k)) thisform.addobject(bb,"Mylabel") withthis.&bb if i=1
.left=delta else
tt="this."+aa+".left"
.left=&tt
endi
tt="this."+aa+".top"
rr="this."+aa+".height"
.top=&tt+&rr+2 &&+marge
.caption=juststem(image)+justext(image) endwith
endi
sele ythumb ifnoteof() skip else exit
endi endfor
i=1 iflastkey()=27 exit
endi endfor