bilder aufhellen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Rubber

Betreff: bilder aufhellen

BeitragDi, Aug 04, 2009 10:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich wollte mich mal erkundigen, wie ihr folgendes lösen würdet:

ich habe eine 32*32-tile map.
wenn man nun eine einheit auswählt, sollen die felder, die sie erreichen kann etwas heller dargestellt werden.
wie amcht man das am besten?

meine überlegung war, ob man nicht die "normalen" bilder nimmt, aufhellt und dann über die "normalen" drüber malt.

oder habt ihr andere ideen?
Wenn Gott mich schon liebt, dann dich erstrecht...

Nicdel

BeitragDi, Aug 04, 2009 10:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich grad sehr ideenlos bin fällt mir auch nichts besseres ein. Versuchs doch mal.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Silver_Knee

BeitragDi, Aug 04, 2009 11:12
Antworten mit Zitat
Benutzer-Profile anzeigen
austauschen
du wirst doch sicher irgendeine schleife haben mit Drawimage. Mach davor ein if kanngehehen und entscheide dann nach hell oder dunkel

Ideal wäre eine weiße datei zum drüberlegen. Das wird aber nur 3D klappen (zB Draw3D)...

TimBo

BeitragDi, Aug 04, 2009 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
weißes bild machen
dann einen Alpha wert zuweisen und drübermachen.

Wie gesagt geht nur in 3D. Siehe dazu Draw3D. Da kannst du images mit ColorG3D beliebig einfärben.
Order 2 Tilesets machen, ist aber nicht gerade speicherschonend.
Langsamer dafür schonender ist es, mit writepixelfast das bild zu bearbeiten (mit lockbuffer) dürfte das auch gehen. (ist aber deutlich lahmer)

Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

hazumu-kun

BeitragDi, Aug 04, 2009 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Also da würde mir auch nichts anderes einfallen, aber wie wärs das du bevor du jedes Tile aufgehellt auf der HDD erstellst die Bilder zweimal im Ram zu haben(unterschiedliche varaible) und Dann eins immer aufhellen.

Der Code hier würde dann am Programm anfang stehen,
Ich habe Dims und For..Next gewählt um den Code leicht erweiterbar zu halten.
BlitzBasic: [AUSKLAPPEN]

Dim tile(1)
Dim tile_hell(1)

tile(0)= LoadImage("tile1.jpg")
tile(1)= LoadImage("tile2.jpg")

For i= 0 To 1
tile_hell(i)= CopyImage (tile(i))
buff= ImageBuffer (tile_hell(i))
LockBuffer buff

For x= 0 To tilex-1

For y= 0 To tiley-1
col= ReadPixelFast (x,y,buff)

r=Color2R(col)+50 : If r>255 Then r=255
g=Color2G(col)+50 : If g>255 Then g=255
b=Color2B(col)+50 : If b>255 Then b=255

col= RGB2Color (r,g,b)

WritePixelFast x,y,col,buff
Next
Next

UnlockBuffer buff
Next

; Auszug aus meiner "color.lib.bb"
Function RGB2Color (rd,gr,bl)
Return bl Or (gr Shl 8) Or (rd Shl 16)
End Function
Function Color2R (col)
Return (col And $FF0000)/$10000
End Function
Function Color2G (col)
Return (col And $FF00)/$100
End Function
Function Color2B (col)
Return col And $FF
End Function
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

TimBo

BeitragDi, Aug 04, 2009 12:17
Antworten mit Zitat
Benutzer-Profile anzeigen
dann wäre es schneller \ cooler, es gleich mit einem anderem Programm zu erstellen, denn so, denke ich, wäre es belast zum errechnen.

Aber das hat auch Vorteile weniger Dateien hochladen\brennen

Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

hazumu-kun

BeitragDi, Aug 04, 2009 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo find ich auch.
Aber net mit nem anderem Programm, sondern die hellen Tiles sollen NUR im Ram ihr Dasein fristen als bleiche Mondkinder.
xD
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group