Seite 1 von 1

Text in Bild schreiben

Verfasst: 04.05.2006 18:47
von batzilla
Hallo Community,

habe mit der Forensuche nichts richtiges gefunden daher hier die Frage:

Wie schreibe ich einen Text in ein geladenes Bild?

Ich erstelle einen Screenshot und möchte darin einen Text einfügen und das manipulierte Bild anschließend speichern.

Code: Alles auswählen

Procedure MakeDesktopScreenshot(ImageNr, x, y, Width,Height) 
   hImage = CreateImage(ImageNr, Width, Height) 
   hDC    = StartDrawing(ImageOutput(0)) 
   DeskDC = GetDC_(GetDesktopWindow_()) 
   BitBlt_(hDC, 0, 0, Width, Height, DeskDC, x, y, #SRCCOPY) 
   StopDrawing() 
   ReleaseDC_(GetDesktopWindow_(), DeskDC) 
   ProcedureReturn hImage 
EndProcedure

Procedure.s ExePath() 
  ExePath$ = Space(1000) 
  GetModuleFileName_(0,@ExePath$, 1000) 
  ProcedureReturn GetPathPart(ExePath$) 
EndProcedure 

Procedure.s GetInfo()
; TODO
EndProcedure

Procedure.s ManipulateImage()
; TODO
EndProcedure

Datum$ = FormatDate("%yyyy%mm%dd", Date())
Uhrzeit$ = FormatDate("%hh%ii%ss", Date())

MakeDesktopScreenshot(0, 0, 0, 1024, 768)
GetInfo()
ManipulateImage()
SaveImage(0, ExePath() + Datum$ + "-" + Uhrzeit$ + "-" + "DSI.bmp")
Vielen Dank für eure Hilfe.

Verfasst: 04.05.2006 18:56
von bobobo

Code: Alles auswählen

Procedure MakeDesktopScreenshot(ImageNr, x, y, Width,Height) 
   hImage = CreateImage(ImageNr, Width, Height) 
   hDC    = StartDrawing(ImageOutput(0)) 
   DeskDC = GetDC_(GetDesktopWindow_()) 
   BitBlt_(hDC, 0, 0, Width, Height, DeskDC, x, y, #SRCCOPY) 

;folgende Zeile wurde eingefügt
   DrawText(0,0,"Ich kann ja doch was reinschreiben!")

   StopDrawing() 
   ReleaseDC_(GetDesktopWindow_(), DeskDC) 
   ProcedureReturn hImage 
EndProcedure 
...
...
Ansonsten guck Dir mal die 2DDrawing-Funktionen an

Verfasst: 04.05.2006 19:02
von batzilla
Super, danke! Klappt sehr gut. Zum Feintuning werde ich mir mal die von dir angesprochenen Funktionen ansehen.

Verfasst: 04.05.2006 19:17
von bobobo
isto seria feito bem