begin process at 2008 07 06 07:20:13
1 205 472 membres
51 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PIC-VIEWER


Information sur la source

Catégorie :AddOns Classé sous : picwin, viewer, image, visionneur Niveau : Débutant Date de création : 22/07/2005 Date de mise à jour : 22/07/2005 22:01:06 Vu : 1 873

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Pic-viewer est un chargeur d'image entierement en picwin.
L'image une fois ouverte sera redimensionné dans un cadre. Vous pouvez regarder l'image dans sans taille rélle en double-cliquant sur celle-ci dans la pré-visualisation.
Pour l'ouvrir: /pic

ps: utilisation du code de $fileinfo par FiberOptics. N'ayant pas pu me decider entres les flags -d et -o j'ai opter pour le -d. Un @window s'ouvre donc dans la barre de tâche.

Source

  • alias pic {
  • window -c @pic
  • window -Bdk0pCk0zh +d @pic 0 0 400 400
  • drawrect -r @pic $rgb(100,100,100) 1 0 0 400 400
  • drawrect -fr @pic $rgb(117,134,172) 1 1 1 398 398
  • drawline -r @pic $rgb(100,100,100) 1 0 15 400 15
  • drawtext -r @pic $rgb(255,255,255) Verdana 10 5 2 Pic viewer
  • drawtext -r @pic $rgb(255,255,255) Verdana 10 390 2 X
  • drawline -r @pic $rgb(100,100,100) 1 10 30 63 30
  • drawline -r @pic $rgb(100,100,100) 1 10 30 10 52 70 52 70 35 62 30
  • drawtext -r @pic $rgb(255,255,255) Verdana 10 25 35 Open
  • drawrect -r @pic $rgb(255,255,255) 1 110 30 250 340
  • }
  • menu @pic {
  • sclick:{
  • if $inrect($mouse.x,$mouse.y,10,30,62,23) {
  • set %view.directory $sfile(c:\,Choose an image,ok)
  • if (.jpg isin %view.directory || .bmp isin %view.directory || .png isin %view.directory) { set %format.good yes }
  • else { set %format.good no }
  • if %view.directory && %format.good == yes {
  • drawrect -fr @pic $rgb(117,134,172) 1 2 380 395 15
  • drawpic -sm @pic 115 35 240 330 $shortfn(%view.directory)
  • drawtext -r @pic $rgb(255,255,255) Verdana 10 5 380 $shortfn(%view.directory)
  • }
  • }
  • if $inrect($mouse.x,$mouse.y,389,5,391,5) { window -c @pic }
  • }
  • dclick:{
  • if $inrect($mouse.x,$mouse.y,110,30,250,340) {
  • window -Bdk0pCk0zh +d @view 0 0 $gettok($fileinfo(%view.directory,Dimensions),-3,32) $gettok($fileinfo(%view.directory,Dimensions),-1,32)
  • drawpic @view 0 0 $shortfn(%view.directory)
  • }
  • }
  • }
  • menu @view {
  • Close:/window -c @view
  • }
  • alias fileinfo {
  • if !$isid { echo -ac info * $!fileinfo: This function can only be used as an identifier. | return }
  • var %file = $shortfn($1)
  • if !$isfile(%file) { echo -ac info * $!fileinfo: Incorrect filepath specified. | return }
  • var %categories = $&
  • Name Size Type DateModified DateCreated DateAccessed Attributes Status Owner Author Title $&
  • Subject Category Pages Comments Copyright Artist AlbumTitle Year TrackNumber Genre Duration $&
  • BitRate Protected CameraModel DatePictureTaken Dimensions . . EpisodeName ProgramDescription . $&
  • Audiosamplesize Audiosamplerate Channels Company Description FileVersion ProductName ProductVersion
  • if $2 == $null {
  • echo -ac info * $!fileinfo: Category missing.
  • echo -a Categories: $remove(%categories,.)
  • return
  • }
  • var %tmp = $ticks
  • var %objShell = a $+ %tmp, %objFolder = b $+ %tmp, %objFile = c $+ %tmp
  • var %separator = $iif($0 == 3,$3,$lf), %result
  • .comopen %objShell shell.application
  • if !$comerr {
  • %tmp = $com(%objShell,namespace,1,bstr,$nofile(%file),dispatch* %objFolder)
  • if $com(%objFolder) {
  • %tmp = $com(%objFolder,parsename,1,bstr,$nopath(%file),dispatch* %objFile)
  • if $com(%objFile) {
  • tokenize 32 $remove($2,.)
  • while $0 {
  • if $findtok(%categories,$1,1,32) {
  • %tmp = $com(%objFolder,getdetailsof,9,dispatch,%objFile,uint,$calc($ifmatch - 1))
  • %tmp = $iif($com(%objFolder).result,$ifmatch,0)
  • %result = %result $iif($prop == raw,%tmp,$1: %tmp) %separator
  • }
  • tokenize 32 $2-
  • }
  • .comclose %objFile
  • }
  • .comclose %objFolder
  • }
  • .comclose %objShell
  • }
  • return $left(%result,- $+ $len(%separator))
  • }
  • on *:load:{ echo -a Pic viewer loaded [ /pic ] | echo -a Thanks for FiberOptics for $fileinfo }
alias pic {
  window -c @pic
  window -Bdk0pCk0zh +d @pic 0 0 400 400
  drawrect -r @pic $rgb(100,100,100) 1 0 0 400 400
  drawrect -fr @pic $rgb(117,134,172) 1 1 1 398 398
  drawline -r @pic $rgb(100,100,100) 1 0 15 400 15
  drawtext -r @pic $rgb(255,255,255) Verdana 10 5 2 Pic viewer
  drawtext -r @pic $rgb(255,255,255) Verdana 10 390 2 X
  drawline -r @pic $rgb(100,100,100) 1 10 30 63 30
  drawline -r @pic $rgb(100,100,100) 1 10 30 10 52 70 52 70 35 62 30
  drawtext -r @pic $rgb(255,255,255)  Verdana 10 25 35 Open
  drawrect -r @pic $rgb(255,255,255) 1 110 30 250 340
}
menu @pic {
  sclick:{
    if $inrect($mouse.x,$mouse.y,10,30,62,23) { 
      set %view.directory $sfile(c:\,Choose an image,ok)
      if (.jpg isin %view.directory || .bmp isin %view.directory || .png isin %view.directory) { set %format.good yes }
      else { set %format.good no }
      if %view.directory && %format.good == yes {
        drawrect -fr @pic $rgb(117,134,172) 1 2 380 395 15
        drawpic -sm @pic 115 35 240 330 $shortfn(%view.directory)
        drawtext -r @pic $rgb(255,255,255) Verdana 10 5 380 $shortfn(%view.directory)
      }
    }
    if $inrect($mouse.x,$mouse.y,389,5,391,5) { window -c @pic }
  }
  dclick:{
    if $inrect($mouse.x,$mouse.y,110,30,250,340) {
      window -Bdk0pCk0zh +d @view 0 0 $gettok($fileinfo(%view.directory,Dimensions),-3,32) $gettok($fileinfo(%view.directory,Dimensions),-1,32)
      drawpic @view 0 0 $shortfn(%view.directory)
    }
  }
}
menu @view {
  Close:/window -c @view
}
alias fileinfo {
  if !$isid { echo -ac info * $!fileinfo: This function can only be used as an identifier. | return }
  var %file = $shortfn($1)
  if !$isfile(%file) { echo -ac info * $!fileinfo: Incorrect filepath specified. | return }
  var %categories = $&
    Name Size Type DateModified DateCreated DateAccessed Attributes Status Owner Author Title $&
    Subject Category Pages Comments Copyright Artist AlbumTitle Year TrackNumber Genre Duration $&
    BitRate Protected CameraModel DatePictureTaken Dimensions . . EpisodeName ProgramDescription . $&
    Audiosamplesize Audiosamplerate Channels Company Description FileVersion ProductName ProductVersion
  if $2 == $null {
    echo -ac info * $!fileinfo: Category missing.
    echo -a Categories: $remove(%categories,.)
    return
  }
  var %tmp = $ticks
  var %objShell = a $+ %tmp, %objFolder = b $+ %tmp, %objFile = c $+ %tmp
  var %separator = $iif($0 == 3,$3,$lf), %result
  .comopen %objShell shell.application
  if !$comerr {
    %tmp = $com(%objShell,namespace,1,bstr,$nofile(%file),dispatch* %objFolder)
    if $com(%objFolder) {
      %tmp = $com(%objFolder,parsename,1,bstr,$nopath(%file),dispatch* %objFile)
      if $com(%objFile) {
        tokenize 32 $remove($2,.)
        while $0 {
          if $findtok(%categories,$1,1,32) {
            %tmp = $com(%objFolder,getdetailsof,9,dispatch,%objFile,uint,$calc($ifmatch - 1))
            %tmp = $iif($com(%objFolder).result,$ifmatch,0)
            %result = %result $iif($prop == raw,%tmp,$1: %tmp) %separator
          }
          tokenize 32 $2-
        }
        .comclose %objFile
      }
      .comclose %objFolder
    }
    .comclose %objShell
  }
  return $left(%result,- $+ $len(%separator))
}
on *:load:{ echo -a Pic viewer loaded [ /pic ] | echo -a Thanks for FiberOptics for $fileinfo }

Conclusion

Pas de bug décelés jusqu'à présent (merci aux beta-testeurs).
Critique bonne ou mauvaise, aidez moi à l'amélioré =p
22 juillet 2005 22:01:06 :
Modification d'un menu.
  • signaler à un administrateur
    Commentaire de wims le 23/07/2005 18:41:01

    j'ai essayer avec plusieur image , et a chaque fois l'image est mal chargé, si je load une image tout petite , l'image prend tout la place que tu a faite et l'image est toute pixelisé
    Tu pourrais plutot dessiner le bouton dans la window et lorsque on load l'image , faire en sorte de dessiner la fenetre en fonction de la taille de l'image

  • signaler à un administrateur
    Commentaire de S333 le 23/07/2005 20:37:02

    Coté code: très simple, la seule chose compliqué est le $fileinfo qui necessite de connaitre l'objet com à appeler, sinon... bah c'est très simple !

    Donc voilà, je propose que tu cherches une utilité à cet add-on pour qu'il serve à quelqu'un. Parce que pour voir des images, j'aurais plus vite fait d'utiliser l'aperçu windows :/
    Je sais pas, tu pourrais créer une option de diaporama, des trucs de ce genre qui fasse de ce code quelque chose d'original :)

    Sinon ça marche bien :) mais comme dit wims, si l'on charge une petite image, elle s'affiche dans @pic pixelisée.

  • signaler à un administrateur
    Commentaire de Sykes le 23/07/2005 22:14:04

    Je ne vois pas tellement d'utilité à cet add-on étant donné que je n'avais pas vraiment de but précis lorsque j'ai commencer à le faire. Mais j'peux en trouvé :)

    Pour les petites images, c'est vrais que ça fait asser moche.. mais j'en avais pas sous la mains pour tester (et les beta-testeurs non-plus apparement ;p).

    J'travaille actuellement sur une updates avec differents thème de couleur et des effets de relief, etc. Cela va prendre pas mal de temps vu que je ne maîtrise pas totalement les picwins..mais j'vais trouvé une utilité à tout ça.

    Voili voilou..

  • signaler à un administrateur
    Commentaire de KiNdErMaXi le 23/07/2005 23:29:47

    si l'image est étirée dans le cadre il faut remplacer :
    drawpic -sm @pic 115 35 240 330 $shortfn(%view.directory)
    par :
    drawpic -sm @pic 115 35 $pic($shortfn(%view.directory)).width $pic($shortfn(%view.directory)).height $shortfn(%view.directory)

  • signaler à un administrateur
    Commentaire de S333 le 24/07/2005 12:46:12

    Puis au passage, il peut s'en servir pour ne plus utiliser $fileinfo :) Lorsque j'ai vu le script, j'ai cherché cette commande pour donner la taille d'une image :) Bah Merci kindermaxi :) $pic est là ^^

  • signaler à un administrateur
    Commentaire de tofu le 24/07/2005 14:32:16

    c'est vrment un pic viewer de base, yen a eu des bcp plus complets déjà postés.

Ajouter un commentaire

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS