[Erledigt] Image-Manipulation
Übersicht

![]() |
bruZardBetreff: [Erledigt] Image-Manipulation |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seit einigen Stunden rühre ich nun schon im Module-Brei, aber ich bekomme keine Antwort.
Die Fragestellung: Ich habe ein Image, dieses soll wiederholt in ein anderes (neues, leeres) Image geschrieben werden. Das es weder LockBuffer() noch ein darin wirkendes DrawImage() gibt ist mir bewusst. Muss ich jetzt tatsächlich Pixel für Pixel des Originalbildes in das neue kopieren? Bin dankbar für jede Holzlatte gegen den Hinterkopf. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
- Zuletzt bearbeitet von bruZard am Do, Jun 16, 2005 9:20, insgesamt einmal bearbeitet
![]() |
MVB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du zeichnest das Bild in den Backbuffer und kopiersts es von da dann mit GrabImage. Eine andere Möglichkeit gibt es leider nicht (ausser jeden Pixel einzel). Finde ich auch zimlich nervig, da GrabImge extrem langsam ist. Ich verzweifel auch zur Zeit, da ich das in meinem derzeitigen Projekt sehr oft machen muss. Und mit der Geschwidigkeit würde das viel zu lange dauern. | ||
aquamonit.de|BlitzMax|MaxGUI |
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nee, das ist totaler Schrott ... ich brauche Pixelmanipulation zur Laufzeit...
Aber trotzdem danke für den Beitrag. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
Henry |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sonst geht da nur noch GrabPixmap...damit bleibt die Pixelmanipulation erhalten. | ||
Aiya Eärendil Elenion Ancalima!
All you have to decide is what to do with the time that is given to you. • Robsite.de ist eine Anlaufstelle für Tutorials und Tools, die Noobs das Leben leichter machen! • Forensuche ist nicht nur als Lückenfüller in den oberen Links gedacht! |
DreamoraBetreff: Re: Ich werd' noch bekloppt: Pixmaps |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bruZard hat Folgendes geschrieben: Ich habe ein Image, dieses soll wiederholt in ein anderes (neues, leeres) Image geschrieben werden. Das es weder LockBuffer() noch ein darin wirkendes DrawImage() gibt ist mir bewusst. Muss ich jetzt tatsächlich Pixel für Pixel des Originalbildes in das neue kopieren? Nö musst du nicht ![]() TPixmap.Paste( source:TPixmap,x,y ) (brl.pixmap pixmap.bmx) Bilder kannst du garnicht manipulieren, falls du dir das erhofft hattest, denn selbst LockImage läuft über Pixmaps ... Es gäbe da zwar eine GL Extension die etwas wie Buffer erlaubt ... aber die setzt GeForce4 voraus und ob das dein Ziel ist (heissen glaub RenderSurfaces und werden sonst für "Videokameras" etc verwendet) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mensch, danke Dreamora. Ich habe zwar schon das Pixmap Modul durchforstet, aber Paste() muss mir dabei entgangen sein. | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hehe das "CodeTab" der Standard IDE is der faulen Menschen bester Freund ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
So gehts bei mir jetzt:
Code: [AUSKLAPPEN] Strict Graphics 800,600,0,0 SetBlend alphablend Local img:TPixmap = LoadPixmap("test.bmp") Local pxm:TPixmap = CreatePixmap(100,16,PF_BGRA8888) For Local x:Int=0 To 99 pxm.Paste(img,x,0) Next Local ready:TImage = LoadImage(pxm) DrawImage ready,100,100 Flip FlushMem WaitKey() End Gäbe es da vielleicht noch was zu verbessern? |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe den Kram mal gezipped ... bei mir dauert der Kopiervorgang 16msecs, das wäre schon fast für Echtzeit zu gebrauchen.
ImageCopyTest (ca. 38kb) |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
Bigmichi |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei mir läuft es mit 3 ms o.O woran liegt es ?
also von 12 auf 3 is ja schon ein stück bei größeren Sachen hab auch net grad son tollen rechner wie er... 3000+ AMD 768 DDR ATI R 9800 Pro |
||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe mich vertippt, es sind 6msecs ![]() |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
Bigmichi |
![]() Antworten mit Zitat ![]() |
---|---|---|
hehe schon besser =) habs mit 1000 probiert da komme ich immer auf 6 ms =) läuft recht gut glaub weniger das man dies noch verbessern kann ? o.O | ||
![]() |
Serendipity |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreamora hat Folgendes geschrieben: Hehe das "CodeTab" der Standard IDE is der faulen Menschen bester Freund
![]() Sorry, wenn ich mich als newbie hier einmische. Was zum Teufel ist "CodeTab" ? sowas wie ". Leertaste" in Eclipse? oder tab in bash? Überhaupt ist die Beschreibung der IDE von BM sehr kurz geraten... |
||
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der "Code"- Tab ist die "Karteikarte" , die sich auf der rechten Seite Der IDE
befindet. Dort gibt es sonst noch "Home" und "Debug". Wenn du auf "Code" klickst erscheinen alle Types und Funktionen, die du in deinem Code verwendest. |
||
![]() |
Serendipity |
![]() Antworten mit Zitat ![]() |
---|---|---|
ahso ![]() Hatte schon gedacht, ich habe was verpasst. ![]() |
||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe den Schnicks jetzt mal insofern ausgebaut dass wesentlich mehr Zeichenoperationen ausgeführt werden müssen pro Update und man demzufolge realistischere Ergebnisse bekommt.
Zum zeichnen eines 320x200 Fensters benötigt meine Möhre ca. 12 Millisekunden. Ein Update wird durchgeführt wenn Ihr [SPACE] drückt. http://www.makegame.de/downloads/pixmap_test.zip (ca. 323kb) Besonders beim zeichnen des Mittelteils gibt es bestimmt noch Optimierungen. Skins müssen im Ordner "gfx/skins/" in einem eigenen Verzeichnis liegen. Das Skin für das Fenster muss im Unterordner "/window" liegen. Die Zeile ... Code: [AUSKLAPPEN] _guiskin.Load("gfx/skins/blue") ... wechselt den Skin. |
||
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