#!/usr/local/bin/tclsh #rR Copyright Raymond Ripp #rR Photorama prend toutes les images d'un repertoire et en fait une page html #rR il crée aussi le javascript pour le Diaporama #rR Si l'arborescence de NikonView avec www01/images existe il l'utilise. (du temps de Windows) #rR sinon il la crée (en utilisant ImageMagick convert pour créer les petites images) package require Tk set VersionPhotorama "Photorama.tcl 2017/01/12" global PhotoramaDir proc ImagesPourWww {{Rep ""} {LesGrandes ""} {DoAll ""} {Taille ""}} { global PhotoramaDir if {$DoAll!=1} { set DoAll [regexp -nocase "DoAll" $DoAll] } if {$Taille==""} { set Taille 400 } set RepWww "$Rep/www01" if {$DoAll} { file mkdir $RepWww file mkdir $RepWww/images set Keep 0 } if { ! $DoAll } { if { ! [file exists $RepWww] } { if { ! [OuiOuNon "$RepWww n'existe pas. Je le cree en y mettant les petites images ?"]} { return "" } file mkdir $RepWww file mkdir $RepWww/images set DoAll 1 } } if { ! $DoAll } { if { ! [file exists $RepWww/images] } { if { ! [OuiOuNon "$RepWww/images n'existe pas. Je le cree en y mettant les petites images ?"]} { return "" } file mkdir $RepWww/images set DoAll 1 } } if { ! [info exists Keep]} { set Keep [OuiOuNon "Je garde telles quelles les images dans www01/images/"] } if { ! [file exists "$RepWww/parts/mbb1.png"]} { file mkdir $RepWww/parts; file copy -force "$PhotoramaDir/mbb1.png" "$RepWww/parts/mbb1.png" } set LesPetites {} foreach Grande $LesGrandes { set Queue [file tail $Grande] set Petite "$RepWww/images/$Queue" if {$Keep && [file exists $Petite]} { continue } set W [exec identify -format "%w" $Grande] set H [exec identify -format "%H" $Grande] if {$H<$W} { exec convert $Grande -resize ${Taille}x $Petite } else { exec convert $Grande -resize x${Taille} $Petite } lappend LesPetites $Petite } return $LesPetites } proc NikonViewWithLink {{Rep ""}} { global PhotoramaDir if {$Rep==""} { set Rep [ChoixDuRepertoire] } # FaireLire $Rep set LesFichiers [glob -nocomplain "$Rep/page*.htm" "$Rep/*/page*.htm"] set Fichier [ChoixParmi [ChoixParmi $LesFichiers]] if {$Fichier==""} { return ""} set RepWww [file dirname $Fichier] set RefFullSize "" set EmmettreMessage 1 foreach Ligne [LesLignesDuFichier $Fichier] { if {$EmmettreMessage && [regexp "" $Ligne]} { set EmmettreMessage 0 regsub "" $Ligne \ "
Click on the lower right corner to see the full size picture" Ligne } if {[regexp {]+>} $Ligne Reference]} { regsub "images/" $Reference "../" RefFullSize Espionne "+++++++++++++++++++++++++++++= $Reference $RefFullSize" } if {$RefFullSize!="" && [regexp {]+>} $Ligne Coin]} { regsub ">$" $Coin "" CoinSans regsub "$CoinSans" $Ligne "$RefFullSize$CoinSans border=\"0\">.*} $OldPhotorama Match]} { set OldDiv $Match } if {$OldDiv==""} { set StartTitleDiv -1 Espionne $OldPhotorama if {[regexp -indices {
[ \n\t]+([ \n\t]+" set TexteFin "" set Deb [string first $TexteDebut $NouveauPhotorama] set Fin [expr [string last $TexteFin $NouveauPhotorama] + [string length $TexteFin]] set NouveauPhotorama [string replace $NouveauPhotorama $Deb $Fin $Div] } regsub -all "" $NouveauPhotorama $TRX NouveauPhotorama regsub -all "" $NouveauPhotorama $CRX NouveauPhotorama regsub "Photorama.tcl 0000/00/00" $NouveauPhotorama $VersionPhotorama NouveauPhotorama set f [open $NouveauFichier "w"] puts $f $NouveauPhotorama close $f catch { set f [open $PhotoramaLog "w"] puts $f $Rep close $f } #FaireLire "$VersionPhotorama\nJ'ai cree\n$NouveauFichier !" ImagesPourWww $Rep $LesGrandes $DoAll exit