Farbe eines Pixels aus Graphics holen
Übersicht

cikeBetreff: Farbe eines Pixels aus Graphics holen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Geht das?
Mein Spiel baut derzeit alles nur über den Plot-Befehl auf. Nun möchte ich aber die Farbe eines Pixel auf einer Stelle (x,y) wissen. Wie stelle ich das mit BlitzMax an? Gibt es eine Funktion? Bin für alle Antworten dankbar mfg cike |
||
![]() |
.:BotC:. Pascal |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, für BlitzMax ist das hier die falsche Abteilung.
Aber ich denke mal, dass es in Blitzmax auch die Befehle "Writepixel", "Writepixelfast", "Readpixel" und "Readpixelfast" gibt. Die solltest du die mal angucken. (Wenns die nicht in BMax gibt, dann kann ich dir nicht helfen. Ich kenne mich mit BMax nämlich nicht aus.) |
||
Repeat
Print "Uuuuh und das ist der Beweis, immer das selbe, alles dreht sich im Kreis." Forever |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
~VERSCHOBEN~ falsches Board Dreamora Was die Frage betrifft: Per GrabPixmap die Informationen auslesen, danach kannst du per ReadPixel die gewünschten Pixeldaten aus der Pixmap auslesen |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit:
BlitzBasic: [AUSKLAPPEN]
|
||
between angels and insects |
Hammlet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bei mir geht das nicht ![]() Weiss jemand was am Folgenden Code nicht stimmt: BlitzBasic: [AUSKLAPPEN]
|
||
gamble |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Probier's mal so:
Code: [AUSKLAPPEN] Graphics 1024,768 Bild:Timage=LoadImage("bild.png") Repeat Cls mx=MouseX() my=MouseY() DrawImage bild,0,0 Pixmap:Tpixmap=LockImage(bild) rgb=ReadPixel pixmap,mx,my UnlockImage bild Flip Until KeyHit(27) End |
||
Hammlet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ändert leider nichts.
Es kommt folgende Fehlermeldung: Compile Error Unable to convert from 'Int(TPixnap.Int,Int)'to'Int' und zwar an in der Zeile wo "rgb=ReadPixel pixmap,mx,my" steht. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
rgb=ReadPixel pixmap,mx,my
sollte rgb=ReadPixel (pixmap,mx,my) sein, da Funktionen/Methoden mit Rückgabewerten zwingend Klammern um die Parameter haben müssen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Suco-XBetreff: ....... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Nach deinem Threadtitel zufolge willst du ja die Informationen aus dem Hauptfenster entnehmen, hier eine weitere Lösung dafür Code: [AUSKLAPPEN] Strict Graphics 800,600,0 Repeat Cls SetColor 255,0,0 Plot 60,60 Local r,g,b ColorOnPosition(60,60,r,g,b) SetColor 255,255,255 DrawText "RED: "+r, 10,10 DrawText "GREEN: "+g,10,30 DrawText "BLUE: "+b,10,50 Flip FlushMem() Until KeyHit(KEY_ESCAPE) Function ColorOnPosition(x:Int, y:Int, r:Int Var, g:Int Var, b:Int Var) Local TempPixmap:TPixmap = GrabPixmap(x,y,1,1) Local TempPtr:Byte Ptr = TempPixmap.PixelPtr(0,0) r = TempPtr[2] g = TempPtr[1] b = TempPtr[0] End Function Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Hammlet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dreamora hat Folgendes geschrieben: rgb=ReadPixel pixmap,mx,my
sollte rgb=ReadPixel (pixmap,mx,my) sein, da Funktionen/Methoden mit Rückgabewerten zwingend Klammern um die Parameter haben müssen. Ich habe das mit den Klammern mal geändert, leider kommt jetzt noch ne andere Fehlermeldung: Unhandlet Exception: Image frame cannot be locked Edit: Habe gerade die version von Suco-x probiert, und die funktioniert einwandfrei. Danke dir ![]() |
||
![]() |
Suco-XBetreff: ....... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Die Version ist aber noch sehr langsam wenn du mehrere Pixel Abfragen willst. Je nach Situation kann ich dir also noch folgende Version anbieten: Code: [AUSKLAPPEN] Strict Graphics 800,600,0 Local TempPixmap:TPixmap Repeat Cls SetColor 255,0,0 Plot 100,100 Local r,g,b ColorOnPosition(100,100,r,g,b, False) SetColor 255,255,255 DrawText GetFPS(),10,10 DrawText "RED: "+r,10,30 DrawText "GREEN:"+g,10,50 DrawText "BLUE: "+b,10,70 Flip FlushMem() Until KeyHit(KEY_ESCAPE) Function ColorOnPosition(x:Int, y:Int, r:Int Var, g:Int Var, b:Int Var, Update:Int=False) Global GlobalPixmap:TPixmap Local TempPtr:Byte Ptr If GlobalPixmap = Null Or Update = True GlobalPixmap = GrabPixmap(0,0,GraphicsWidth(), GraphicsHeight()) EndIf TempPtr = GlobalPixmap.PixelPtr(x,y) r = TempPtr[2] g = TempPtr[1] b = TempPtr[0] End Function Hier wird der ganze Screen in eine Pixmap gepackt und nur bei bedarf(Wenn Update auf True ist oder die Pixmap noch nicht exestiert) geupdated wird. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Hammlet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ist wirklich extrem schnell. Habe ca. 750 fps, sogar wenn ich 1000 Pixel abfrage. ![]() übrigens habe ich den Fehler meiner ersten Variante gefunden. Statt " Bild:Timage=LoadImage("bild.png") " muss natürlich " Bild=LoadImage("bild.png",dynamicimage) " stehen. Dann gehts auch, nur extrem langsam. Hab nur 50 fps!! Nun hab ich aber eine neue Frage. Ich möchte jetzt mit Writepixel auf das Bild malen. Bei meiner ersten Version geht das auch, aber eben nur mit 50 fps. Darum hab ich es mal bei der Version von Suco-x probiert. Leider sieht man die Pixel nicht. hier der abgeänderter Code: BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry dass ich den Thread nochmal hoch hole ... aber ich muss mich doch nochmal bei Suco-X bedanken ![]() ![]() Ich brauchte für das Timemill GUI Modul eine Funktion welche die Hintergrundfarbe von GUI Elementen ermittelt. Nachdem ich an Bitverschiebungen auf Basis des ReadPixel Ergebnisses fast verreckt wäre und schon den Umweg über XML Dateien gegenagen bin hat mir dieser Thread hier "den Arsch gerettet" ![]() Hail to the Suchmaschine ![]() |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group