Seite 1 von 1

line = Image und nicht linie ????

Verfasst: 01.04.2008 12:59
von The_ride
hi!

Linux user

ich habe einen sorce von den mitgelieferten genommen

wie binde ich da ein bild (.jpg oder .png) ein ?? am besten über den rasterbalken (linie)
:) und könnte mir einer bitte sagen was If CreateImage(0, 255, 255) ; bedeutet ????
kann ich auch .svg grafiken verarbeiten ???

danke im vorraus :)

The_ride

Code: Alles auswählen

; ------------------------------------------------------------
;
;   PureBasic - Image example file
;
;    (c) 2001 - Fantaisie Software
;
; ------------------------------------------------------------
;

If OpenWindow(0, 100, 100, 800, 600, "Test-Fenster")               ; (0,Position,Position,Breite,Höhe,"fenster-Titel")

  Gosub CreateImage

  CreateGadgetList(WindowID(0))
    ImageGadget(0, 10, 10, 200, 200, ImageID(0))                ; bedeutet was ??????

  Repeat
    EventID = WaitWindowEvent()
  Until EventID = #PB_Event_CloseWindow  
  
EndIf

End   


;
; Some 2D graphics functions...
;

CreateImage:

  If CreateImage(0, 255, 255)                             ; bedeutet was ??????
    If StartDrawing(ImageOutput(0))
        
      For k=30 To 30
        FrontColor(RGB(255, 255, 255))                          ;  Farbe Raster erstellen
        Line(0, k, 255, 0)                                                 ;  (Positioin-L,Raster,breite,winkel) 
      Next

   
  EndIf
  EndIf
  
  ResizeImage(0, 800, 600)

Return   

Re: line = Image und nicht linie ????

Verfasst: 01.04.2008 13:16
von RSBasic
The_ride hat geschrieben:...und könnte mir einer bitte sagen was If CreateImage(0, 255, 255) ; bedeutet ????
1. Bitte nicht so viele ? benutzen.
2. Der Befehl CreateImage() erstellt ein leeres Bild. Darauf kannst du zeichnen (mit ImageOutput())

Verfasst: 01.04.2008 13:38
von #NULL
CreateImage() erstellt wie gesagt ein neues bitmap im hauptspeicherspeicher. darauf kannst du dann zeichnen und/oder du kannst es auf etwas zeichnen. das If ist dazu da, um zu überprüfen, ob die erstellung fehlerfrei verlief (-->rückgabewert der funktion), denn nur dann sollte man versuchen, es in (zeichen-)operationen zu verwenden.
StartDrawing(ImageOutput(0)) bereitet die zeichenoperationen vor, in diesem fall das zeichnen auf dieses bitmap mit Line(..)

diese image kannst du in einem ImageGadget() anzeigen 'lassen'. dazu übergibst du deinem ImageGadget() das handle des bildes mit ImageID(bildNr).


>> wie binde ich da ein bild ein..
direkt in die exe mit einbinden geht über IncludeBinary und CatchImage().
vielleicht meinst du aber einfach 'laden'? --> LoadImage(..), wobei für jpg/png noch UseJPEGImageDecoder() / UsePNGImageDecoder() nötig ist (für bmp brauchst du keinen extra decoder).

Verfasst: 01.04.2008 22:56
von xperience2003
liess dir erstmal das handbuch durch und verschaff dir einen ueberblick ueber den befehlssatz

ein bild einbinden geht mit IncludeBinary "pfad/dateiname"
welches du dann mit CatchImage(?adresse) erstellen und mit Drawimage()
anzeigen kannst