ImageGadget - #PB_Image_Raised

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

ImageGadget - #PB_Image_Raised

Beitrag von Josh »

Bevor ich es im englischen Bug-Forum poste, bitte um Bestätigung:

Wenn ich ein Imagegadget mit #PB_Image_Raised erstelle, dann ist das Image im Verhältnis zum Rahmen um 1 Pixel in X und 1 Pixel in Y-Richtung verschoben.

Code: Alles auswählen

  If OpenWindow(0, 0, 0, 245, 105, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If LoadImage(0, "C:\Test.bmp")
      ImageGadget(0,  10, 10, 48, 48, ImageID(0))
      ImageGadget(1,  90, 10, 48, 48, ImageID(0), #PB_Image_Border)
      ImageGadget(2, 170, 10, 48, 48, ImageID(0), #PB_Image_Raised)
    EndIf
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
Hier das Ergebnis bei einem 48x48 Bmp
Bild


Getestet unter:
Win7 64
PB 5.31 86+64
Lord
Beiträge: 313
Registriert: 21.01.2008 19:11

Re: ImageGadget - #PB_Image_Raised

Beitrag von Lord »

Das ist nicht verwunderlich.
Damit soll das Image als erhaben (raised) dargestellt werden.
Wie willst Du sonst eine 3D-ähnliche Darstellung erreichen?
Bild
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: ImageGadget - #PB_Image_Raised

Beitrag von Josh »

Egal ob erhaben oder versenkt. Der 'Rand' ist immer zwei Pixel, nur die Farben sind anders.
Probier es einfach mal, indem du bei den drei ImageGadgets die ImageId auf 0 setzt, dann siehst du es, wie es auszusehen hätte.
dösbaddel
Beiträge: 6
Registriert: 04.07.2013 08:40

Re: ImageGadget - #PB_Image_Raised

Beitrag von dösbaddel »

Moin Josh,

bei mir (pb 5.24 win32) verhält sich alles wie erwartet.
Habe deinen Code mal etwas verändert:

Code: Alles auswählen

If OpenWindow(0, 0, 0, 450, 200, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  If CreateImage(0, 128, 128, 32, RGB(0,0,255))
    StartDrawing(ImageOutput(0))
    Box(1,1,126,126,RGB(255,0,0))
    StopDrawing()
    ImageGadget(0,  10, 10, 128, 128, ImageID(0))
    ImageGadget(1,  148, 10, 128, 128, ImageID(0), #PB_Image_Border)
    ImageGadget(2, 286, 10, 128, 128, ImageID(0), #PB_Image_Raised)
  EndIf
  
  For i=0 To 2
    Debug "Imagegadget "+Str(i)+": "+Str(GadgetWidth(i))+" * "+Str(GadgetHeight(i))
  Next
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  
EndIf
Das Image wird überall korrekt dargestellt. Wäre es verschoben, würde man den blauen 1-Pixel-Rand nicht mehr vollständig sehen. Bei 'Border' und 'Raised' wird ein 2-Pixel-Rahmen ergänzt, um den Tiefeneffekt zu erzeugen. Habe auch einen Screenshot in einer Grafikbearbeitung herangezoomt - alles bestens. Passt das bei dir nicht?
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: ImageGadget - #PB_Image_Raised

Beitrag von Chimorin »

Ich glaube Josh hat Recht. Entweder es sieht wirklich nur so aus, oder das Imagegadget verhunzt da was.
Bild

- formerly known as Bananenfreak -
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: ImageGadget - #PB_Image_Raised

Beitrag von bobobo »

#PB_Image_Raised verschiebt das Bild um einen Pixel nach rechts und unten, so dass links
und oben ein dreipixel-Rand entsteht und rechts und unten ein einpixeliger bleibt.

[win7 64bit pb531(x86)]

Ist wohl ein Käfer und Josh darf den kundtun.
ff code ausführen und mit das Ergebnis mit der Bildschirmlupe angucken.

Code: Alles auswählen

If OpenWindow(0, 0, 0, 450, 200, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  If CreateImage(0, 128, 128, 32, RGB(0,0,255))
    StartDrawing(ImageOutput(0))
    Box(1,1,126,126,RGB(255,0,0))
    StopDrawing()
    ImageGadget(0,  10, 10, 128, 128, ImageID(0))
    ImageGadget(1,  147, 9, 130, 130, ImageID(0), #PB_Image_Border)
    ImageGadget(2, 284, 8, 180, 180, ImageID(0), #PB_Image_Raised)
  EndIf
  
  For i=0 To 2
    Debug "Imagegadget "+Str(i)+": "+Str(GadgetWidth(i))+" * "+Str(GadgetHeight(i))
  Next
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  
EndIf
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
dösbaddel
Beiträge: 6
Registriert: 04.07.2013 08:40

Re: ImageGadget - #PB_Image_Raised

Beitrag von dösbaddel »

Stimmt, jetzt sehe ich es auch, ich Blindfisch... :roll:

Scheint tatsächlich ein Bug zu sein!
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: ImageGadget - #PB_Image_Raised

Beitrag von bobobo »

Passt doch gut zu Joshs Avatar :mrgreen:
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: ImageGadget - #PB_Image_Raised

Beitrag von Josh »

Passt doch gut zu Joshs Avatar :mrgreen:
Hat wer ein Problem mit meinem Avatar? >_<
Angeblich soll schon mal wer mit der Fliegenklatsche auf meinen Avatar gehauen haben :mrgreen:


Hier der Link zur Bugmeldung im englischen Forum.
Antworten