Was ist aus der "ThumbListGadget" Lib geworden...

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
Ghosty1967
Beiträge: 203
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von Ghosty1967 »

Hallo zusammen...
ich stricke mir gerade ein kleines Programm um diverse Metadaten zu Bildern abzuspeichern. Da habe ich von
der "ThumbListGadget" Lib hier im Forum gelesen. Allerdings sind sämtliche links die ich hier und im Netz finden
konnte tot. Weiß jemand, ob diese Lib noch existiert und wo man die evtl. downloaden kann.
Oder gibt es vielleicht eine andere Möglichkeit Miniaturansichten wie in Picasa, XNView o.ä anzeigen zu lassen,
die einer von euch schon einmal zusammengebastelt hat und mir evtl. zur Verfügung stellen würde ;)

__________________________________________________
Thread verschoben
Ankündigungen>Projekte, Ressourcen, Tools
06.04.2018
RSBasic
Benutzeravatar
Bisonte
Beiträge: 2425
Registriert: 01.04.2007 20:18

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von Bisonte »

Wie der Zufall so will, hab ich doch letzt erst im englischen Forum drüber gelesen....

http://www.purebasic.fr/english/viewtop ... 12&t=70295

Wenn es sowas ist.... Aber da ging es definitiv um Thumbnails.
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
Ghosty1967
Beiträge: 203
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von Ghosty1967 »

Hmm, geht in die richtige Richtung.Allerdings nicht so gaaaannnz das, was ich mir vorstelle. Ich habe mal eben schnell was
zusammengestrickt, was wohl am besten zeigt, was ich mir so vorstelle. Ich lese in dem Beispiel alleBilddateien des ausgewählten
Verzeichnis in eine Datenliste ein und generiere zu jeder Datei ein "Icon" zur Darstellung im ListIconGadget.
Ich komme aber irgendwie nicht so richtig mit dem Handling der ImageListe klar. Warum muss ich erst ein 0tes-Elementn hinzufügen,
damit alle Bilddateien angezeigt werden und wie kann ich die Liste zurücksetzen, wenn ich ein neues Verzeichnis auswähle.
Schaut euch doch den Beispielcode einfach mal an, aber bitte... der ist echt heiß gestrickt, haut mich nicht zu sehr :mrgreen:

Code: Alles auswählen

UseJPEG2000ImageDecoder()
UseJPEGImageDecoder()
UseTIFFImageDecoder()
UseGIFImageDecoder()
UsePNGImageDecoder()
UseTGAImageDecoder()

Enumeration 0
  #WIN_INTERFACE
  #LST_PREVIEW
  #TRE_FILELIST
  #CON_LISTINFO: #TXT_LISTINFO
EndEnumeration  

Enumeration 1000
  #TEMPIMAGE
  #FNT_ARIAL
EndEnumeration    
    
;Struktur für die eingelesenen Daten erstellen (erstmal nur Dateiname, später mehr)
Structure ContentStruct
  FILE.s
EndStructure

;Datenliste und globale Variablen erstellen
Global NewList CONTENT.ContentStruct()
Global imgList.l

;Ein "Dummy-Image" für die Imagelist (Element 0) erstellen (Keine Ahnung warum das nötig ist)
If  CreateImage(0, 156, 156, 32)
  If StartDrawing(ImageOutput(0))
    StopDrawing()
  EndIf  
EndIf

Procedure CreateThumbnail(usrImage.l, file.s)
  ;Bilddatei öffnen, Daten einlesen und Grafik für die Anzeige im ListIconGadget erstellen
  If LoadImage(#TEMPIMAGE, file)
    Debug "Lese Bilddaten von " + file
    imgW.l = ImageWidth (#TEMPIMAGE)
    imgH.l = ImageHeight(#TEMPIMAGE)
    imgN.s = GetFilePart(file)
    imgD.s = Str(imgW) + "x" + Str(imgH) + " - " + Str(FileSize(file)/1024) + "kB"
    imgT.s = FormatDate("%dd.%mm.%yyyy  %hh:%ii:%ss", GetFileDate(file, #PB_Date_Modified))
    ;Neue Bildgrößen berechen
    If imgW > imgH
      relWH.f = imgH / imgW: newW  = 120: newH = 120 * relWH
    ElseIf imgH > imgW
      relWH.f = imgW / imgH: newH  = 96: newW = 96 * relWH
    ElseIf imgW = imgH
      newH  = 120: newW = 120
    EndIf
    If CreateImage(usrImage, 156, 156, 32, $EAEAEA)
      If StartDrawing(ImageOutput(usrImage))
        DrawingFont(FontID(#FNT_ARIAL))
        Box(  14,   4, 128, 104, $FFFFFF)
        Box(   0, 111, 156,  54, $CAEDED)
        DrawText((156 - TextWidth(imgN)) / 2, 112, imgN, $0, $CAEDED)
        DrawText((156 - TextWidth(imgD)) / 2, 126, imgD, $0, $CAEDED)
        DrawText((156 - TextWidth(imgD)) / 2, 140, imgT, $0, $CAEDED)
        DrawingMode(#PB_2DDrawing_Outlined)
        Box(   0,   0, 156, 156, $ACACAC)
        Box(  14,   4, 128, 104, $B7B7B7)
        DrawImage(ImageID(#TEMPIMAGE),  15 + ((126 - newW) / 2),  8 + ((96 - newH) / 2), newW, newH)
        StopDrawing()
      EndIf
    EndIf  
    ImageList_Add_(imgList, ImageID(usrImage), 0)
    FreeImage(#TEMPIMAGE)
  EndIf
EndProcedure

Procedure ReadDirectoryEntries(usrPath.s)
  ;Alle Bilddateien im ausgewählten Verzeichnis auslesen und in der Datenliste speichern
  ;usrPath.s = GetGadgetText(#TRE_FILELIST)
  pattern.s = "gif|jpeg|jpg|tga|tif|tiff|bmp|png"
  Protected dir = ExamineDirectory(#PB_Any, usrPath, "*.*")
  If dir
    ClearList(CONTENT())
    While NextDirectoryEntry(dir)
      If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
        filename.s = usrPath + DirectoryEntryName(dir)
        If FindString(LCase(pattern), LCase(GetExtensionPart(filename))) > 0
          AddElement(CONTENT())
          CONTENT()\FILE = filename
        EndIf
      EndIf
    Wend
  EndIf
EndProcedure

Procedure RefillListicon()
  ;ListIconGadget mit den Grafiken aus der Imageliste befüllen
  If CountGadgetItems(#LST_PREVIEW) > 0
    ;Ist das Gadget bereits gefüllt, den Inhalt löschen und die Imageliste leeren
    ImageList_Destroy_(imgList)
    ClearGadgetItems(#LST_PREVIEW)
  EndIf  
  imgList = ImageList_Create_(156, 156, #ILC_COLOR32|#ILC_MASK, 0, 20)
  ;Wenn ein 0tes Bild in die Imageliste eingefügt wird, funktioniert alles...
  ;ImageList_Add_(imgList, ImageID(0), 0)
  ;ansonsten fehlt immer das erste Element der Liste in der Anzeige
  ForEach CONTENT()
    CreateThumbnail(ListIndex(CONTENT()), CONTENT()\FILE)
  Next
  For i = 1 To ListSize(CONTENT()) - 1
    AddGadgetItem(#LST_PREVIEW , -1, "", ImageID(i))
  Next
  oldIL = SendMessage_(GadgetID(#LST_PREVIEW), #LVM_GETIMAGELIST, #LVSIL_NORMAL, 0)
  SendMessage_(GadgetID(#LST_PREVIEW), #LVM_SETIMAGELIST, #LVSIL_NORMAL, imgList)
  ImageList_Destroy_(oldIL)
  SendMessage_(GadgetID(#LST_PREVIEW), #LVM_SETICONSPACING, 0, 155 * 65536 + 155)
EndProcedure

If OpenWindow(#WIN_INTERFACE, 0, 0, 950, 700, "",  #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  LoadFont(#FNT_ARIAL, "Arial", 8)
  ;GUI erstellen...  
  ListIconGadget    (#LST_PREVIEW , 299,  25, 646, 474, "", 200, #PB_ListIcon_MultiSelect)
  TextGadget        (#PB_Any      ,   5,   5, 100,  14, "Verzeichnis")
  ExplorerTreeGadget(#TRE_FILELIST,   5,  25, 289, 474, "", #PB_Explorer_AlwaysShowSelection|#PB_Explorer_NoFiles|#PB_Explorer_AutoSort)
  SetGadgetAttribute(#LST_PREVIEW , #PB_ListIcon_DisplayMode, #PB_ListIcon_LargeIcon)

  ;Events abfragen...
  Repeat
    EventID = WaitWindowEvent()
    Select EventID
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #TRE_FILELIST
            ;Bei einem Verzeichniswechsel, alle Daten einlesen... funktioniert nur beim ersten mal (WARUM?)
            If EventType() = #PB_EventType_LeftClick
              ReadDirectoryEntries(GetGadgetText(#TRE_FILELIST))
              If ListSize(CONTENT()) > 0
                RefillListicon()
              EndIf
            EndIf  
        EndSelect    
    EndSelect
  Until EventID = #PB_Event_CloseWindow
EndIf
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von Micha122 »

Bei mir wird jede Kleinigkeit sofort von RSBasic geändert/korrigiert (nicht immer zum besten) und dieser Thread ist seit Tagen im Unterforum "Ankündigungen".

Muss ich das verstehen?
Barcodes for PureBasic - http://micha122.bplaced.net/
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von RSBasic »

Micha122 hat geschrieben:Bei mir wird jede Kleinigkeit sofort von RSBasic geändert/korrigiert (nicht immer zum besten)
Ich versuche immer, die Bearbeitungszeit (<5s) gering wie möglich zu halten.
Micha122 hat geschrieben:dieser Thread ist seit Tagen im Unterforum "Ankündigungen".
Ich habe den Thread jetzt verschoben.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von Micha122 »

Thread verschoben
Ankündigungen>Offtopic
06.04.2018
RSBasic
Verschoben ist schon mal gut, aber die Wahl des Unterforums ist doch etwas fragwürdig.
Barcodes for PureBasic - http://micha122.bplaced.net/
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von RSBasic »

Ich war mir nicht sicher, ob Allgemein oder Offtopic. Da das keine spezielle Frage zur Programmierung mit PB ist, sondern nur über die Verfügbarkeit einer Library, habe ich deshalb in Offtopic verschoben. Dort können auch allgemeine PB-Fragen gestellt werden.
Oder hast du einen anderen Vorschlag?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von ts-soft »

Wie wäre es mit: Projekte, Ressourcen, Tools
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von RSBasic »

Ja, das klingt besser.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Ghosty1967
Beiträge: 203
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Re: Was ist aus der "ThumbListGadget" Lib geworden...

Beitrag von Ghosty1967 »

Sorry für die Arbeit...weiss auch nicht warum die Frage da gelandet ist.
Werde in Zukunft besser aufpassen!!!
Antworten