bildschirmfoto

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

mirk

Gast

Betreff: bildschirmfoto

BeitragSo, Dez 28, 2003 12:30
Antworten mit Zitat
hi,

gibts mit bb ne möglichkeit bildschirmfotos, also screenshots, zu machen und die dann in eine datei abzuspeichern (bmp, besser noch wäre ein komprimiertes format z.b. jpg)

danke schonmal Rolling Eyes
 

René Meyer

BeitragSo, Dez 28, 2003 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst mit SaveBuffer den angezeigten Bildschirm als BMP-Datei abspeichern.
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb

bruZard

BeitragSo, Dez 28, 2003 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

shot_count=0

Repeat
  Cls

  ;
  ; Zeichne Deinen Kram
  ;

  If KeyHit(88)  ; F12
    screen$="shot"+Str(shot_count)+".bmp"
    shot_count=shot_count+1
    SaveBuffer(FrontBuffer(),screen$)
  EndIf

  Flip
Until KeyHit(1) : End
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

mirk

Gast

BeitragSo, Dez 28, 2003 12:54
Antworten mit Zitat
mhm das schließt aber nur den von bb gezeichneten kram ein, oder? ich wollte eigentlich von "allem" ein screenshot machen, sprich windows-desktop, fenster, etc...

sidolin

BeitragSo, Dez 28, 2003 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
auf deiner tastatur gibts ne taste "Druck S-Abf" , da mal draufhauen und der ganze bildschirm ist im zwischenspeicher. paint öffnen und einfügen. fertig.
 

René Meyer

BeitragSo, Dez 28, 2003 13:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder damit: www.fraps.com
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb

4pac

BeitragSo, Dez 28, 2003 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Sidolin spielt darauf an, daß das eine eingebaute Windows-Funktion ist. Das muss man sich nicht hinsetzen und was coden - ist doch klasse! Taste "Druck /S-Abf", wobei "S-Abf" vermutlich für "Screen abfotografieren" o.ä. steht, und schon hat man das Bild in der Zwischenablage und kann es in jedem beliebige Bildbearbeitungsprogramm einfügen, oder auch (sogar) in Microschorf Word.
 

René Meyer

BeitragSo, Dez 28, 2003 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das ist eine Übersetzung für "System Request". Die Bezeichnungen stammen ja aus den frühen 80ern, da wurden noch gar keine Graphikkarten eingesetzt. :)
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb

D2006

Administrator

BeitragSo, Dez 28, 2003 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
aha, demzufolge System Abfrage.

Wo wir schonmal dabei sind, was zum Teufel ist "Rollen"???
 

mirk

Gast

BeitragSo, Dez 28, 2003 13:54
Antworten mit Zitat
die windows funktion kenne ich Rolling Eyes

nur hatte ich die absicht das evtl in ein tool zu integrieren...

TheShadow

Moderator

BeitragSo, Dez 28, 2003 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
bb+ kann snabshot von desktop machen und man kann es als bmp's speichern

Oder als AVI - ich habe ein prog das avi's speichern kann - man muss nur das Dateiformat kennen - das ist nur bisschen langsam - aber z.B. mit einer DLL in C++/ASM kann man es beschleunigen
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

mirk

Gast

BeitragSo, Dez 28, 2003 14:06
Antworten mit Zitat
@the shadow - wie isn der befehl dazu? Wink

Vertex

BeitragSo, Dez 28, 2003 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
So dürfte es glaube ich gehen (kann es z.Z. nicht testen)
Code: [AUSKLAPPEN]

hWnd = GetActiveWindow()
ShowWindow(hWnd,0)

hDC     = GetDC(0)
Width  = GetDeviceCaps(hDC,8)
Height = GetDeviceCaps(hDC,10)
Bank   = CreateBank(Width * Height * 3)

For X = 0 To Width -1
   For Y = 0 To Height - 1
      RGB = GetPixel(hDC,X,Y)
      PokeByte Bank,(X + Y * Width) * 3 + 0,(RGB Shr 16) And $FF
      PokeByte Bank,(X + Y * Width) * 3 + 1,(RGB Shr 8) And $FF
      PokeByte Bank,(X + Y * Width) * 3 + 2,(RGB And $FF)
   Next
Next
ReleaseDC(hWnd,DC)
 
Graphics 640,480,32,2
AppTitle "Screenshot"
ShowWindow(hWnd,5)

Image = CreateImage(Width,Height)
SetBuffer ImageBuffer(Image)
LockBuffer
For X = 0 To Width -1
   For Y = 0 To Height - 1
      R   = PeekByte(Bank,(X + Y * Width) * 3 + 0)
      G   = PeekByte(Bank,(X + Y * Width) * 3 + 1)
      B   = PeekByte(Bank,(X + Y * Width) * 3 + 2)
      RGB = R * $10000 + G * $100 + B
      WritePixelFast X,Y,RGB
   Next
Next
UnLockBuffer
FreeBank Bank

SetBuffer BackBuffer()
DrawBlock Image,0,0

Waitkey : End


Zitat:

.lib "User32.dll"
GetActiveWindow%() : "GetActiveWindow"
ShowWindow(hWnd,nCmdShow) : "ShowWindow"
GetDC%(hWnd) : "GetDC"
ReleaseDC(hWnd,hDC) : "ReleaseDC"

.lib "gdi32.dll"
GetPixel%(hDC,x,y) : "GetPixel"
GetDeviceCaps%(hDC,nIndex) : "GetDeviceCaps"

mfg olli

TheShadow

Moderator

BeitragSo, Dez 28, 2003 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
DesktopBuffer()
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

mirk

Gast

BeitragSo, Dez 28, 2003 16:11
Antworten mit Zitat
thx probiers sofort aus wenn ich zeit hab Very Happy

Vertex

BeitragSo, Dez 28, 2003 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
So geht es nun (hatte nicht gewusst, das GetPixel BGR statts RGB zurückliefert)
Code: [AUSKLAPPEN]

hWnd = GetActiveWindow()
ShowWindow(hWnd,0)

hDC     = GetDC(0)
Width  = GetDeviceCaps(hDC,8)
Height = GetDeviceCaps(hDC,10)
Bank   = CreateBank(Width * Height * 3)

For X = 0 To Width -1
   For Y = 0 To Height - 1
      RGB = GetPixel(hDC,X,Y)
      PokeByte Bank,(X + Y * Width) * 3 + 0,(RGB Shr 16) And $FF
      PokeByte Bank,(X + Y * Width) * 3 + 1,(RGB Shr 8) And $FF
      PokeByte Bank,(X + Y * Width) * 3 + 2,(RGB And $FF)
   Next
Next
ReleaseDC(hWnd,DC)
 
Graphics 640,480,32,2
AppTitle "Screenshot"
ShowWindow(hWnd,5)

Image = CreateImage(Width,Height)
SetBuffer ImageBuffer(Image)
LockBuffer
For X = 0 To Width -1
   For Y = 0 To Height - 1
      R   = PeekByte(Bank,(X + Y * Width) * 3 + 2)
      G   = PeekByte(Bank,(X + Y * Width) * 3 + 1)
      B   = PeekByte(Bank,(X + Y * Width) * 3 + 0)
      RGB = R * $10000 + G * $100 + B
      WritePixelFast X,Y,RGB
   Next
Next
UnlockBuffer
FreeBank Bank

SetBuffer BackBuffer()
DrawBlock Image,0,0 : Flip

WaitKey : End

die userlib bleibt so

prolapper

Betreff: ???

BeitragSa, Dez 22, 2007 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo muss ich etz da was verändern, wenn des funtzen soll, also genauer gesagt: In BB werden ja manche Befehle in diesem Code nicht erkannt, deshalb muss man etwas in einer Userlib verändern. Aber was ???
Danke schonmal für eine Antwort
P.S: ICH SUCHE NOCH EINEN GRAFIKER UND EINEN PROGRAMMIERER FÜR EIN RPG
E-Mail: prolapper@gmx.net
 

ChristianK

BeitragSa, Dez 22, 2007 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
*hust* Das ist genau 4 Jahre her ...
Außerdem steht die Antwort auf deine Frage vier Posts weiter oben.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

prolapper

BeitragSa, Dez 22, 2007 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
^^ Ich bin durch einen Link draufgekommen.

Also, ok , da steht was verändert werden, oder hinzugefügt werden soll, aber nicht wo und wie !
Ich weiß nicht was ich mit dem da anfangen soll
mfg
P.S: ICH SUCHE NOCH EINEN GRAFIKER UND EINEN PROGRAMMIERER FÜR EIN RPG
E-Mail: prolapper@gmx.net
 

ChristianK

BeitragSa, Dez 22, 2007 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Da steht, was du machen musst -> https://www.blitzforum.de/foru...496#207496
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group