Seite 1 von 1

ICON Test für Image

Verfasst: 16.07.2021 08:57
von Velindos
Hallo Leute,

weil mein SW ziemlich lang zum Starten braucht, sprich es werden Bilde eingelesen und Resized, wollte ich meine
ButtonimageGadget auf Icon´s umstellen. Also erstellte ich mir Icon´s die ich wie folgt Lade!
; ------------------

Code: Alles auswählen

;
{ Variante 1:
Global ICO_Player_Stop = CatchImage(#PB_Any,?ICO_Player_Stop)
DataSection:
  ICO_Player_Stop:
  IncludeBinary "D:\[Pure@API]\[STORE]\ICO\API_Player_Stop.ico"
EndDataSection
; ------------------
If OpenWindow(0, 0, 0, 120, 100, "ButtonImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonImageGadget(0, 10, 10, 100, 83, ImageID(ICO_Player_Stop))
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
;}
; ------------------
Nun werden mir die Icon´s angezeigt, aber nicht in der maximalen Buttongrösse, sondern kleiner, obwohl ich das Icon.ico in verschiedenen Formaten gespeichert habe!

Jemand eine Idee was hier fehlt oder wie die Grösser werden?

Gruss ... Velindos!

Re: ICON Test für Image

Verfasst: 16.07.2021 18:44
von Sicro
Wie groß sind den die ursprünglichen Bilder, dass das Programm so lange zum Starten braucht?

Mit PB-Bordmitteln kannst du bei ICO-Dateien keine bestimmten Größen laden -- auch die Größenangabe bei CatchImage() bringt leider hier nichts.

Auf die Schnelle kann ich dir nur das Modul FileInfo[Win].pbi anbieten, dass eine Funktion GetIcon(File$, IconSize, StretchIcon=#False) hat, aber die funktioniert nur mit externen ICO-Dateien:

Code: Alles auswählen

IncludeFile "FileInfo[Win].pbi"

iconSize = 48 ; 16 ; 32 ; ...
stretchIcon = #True ; Falls Größe im ICO nicht vorhanden, strecke es auf die Größe
ICO_Player_Stop = FileInfo::GetIcon("Pfad zur API_Player_Stop.ico", iconSize, stretchIcon)

Re: ICON Test für Image

Verfasst: 16.07.2021 19:37
von Velindos
Hallo,
Danke für deinen Tipp. Habe bereits selbiges festgestellt beim Laden der Images, weil immer das kleinste Icon kommt. Dann bleibe ich bei meiner Lösung, die Icon auf das Buttonformat(xy30/xy22) laden. Somit fällt das Resized weg!
Beschleunigt die Sache und lässt sich momentan schneller Lösen!

Gruss... Velindos

PS: Super dein Purebasic Darkschema, Danke fürs Teilen!