Farbige Images

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

David

Betreff: Farbige Images

BeitragMo, Apr 05, 2004 8:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Folgendes, ich möchte ein Bild laden und dies dann in verschiedenen Farben darstellen.

Achja, das original Bild is grau und ich möchte es eben Blau, Grün etc... anzeigen.

Danke schonmal für die Hilfe.

grüße
 

Dreamora

BeitragMo, Apr 05, 2004 8:51
Antworten mit Zitat
Benutzer-Profile anzeigen
der Code sollte so stimmen (kanns leider grad net testen). Musst einfach die Variable "farbe" setzen um zu bestimmen in welche farbe das bild umgefärbt werden soll vom grauton ausgehend Smile



Code: [AUSKLAPPEN]

bild = loadimage ( "bild.jpg" )

imagewidth = imagewidth ( bild )

lockbuffer imagebuffer( bild )
for x = 0 to imagewidth - 1
for y = 0 to imagewidth - 1
hue = readpixelfast( x, y, imagebuffer( bild )) and 255
select farbe
case 0 ; rot malen
writepixelfast x, y, hue shl 16, imagebuffer( bild )

case 1 ; grün malen
writepixelfast x, y, hue shl 8, imagebuffer( bild )

case 2 ; blau malen
writepixelfast x, y, hue, imagebuffer( bild )

end select

next
next
[/code]

Mr.Keks

BeitragMo, Apr 05, 2004 9:01
Antworten mit Zitat
Benutzer-Profile anzeigen
das geht mit jeder farbe und ich habe es getestet Smile
Code: [AUSKLAPPEN]
Graphics 500,300,16,2
SetBuffer BackBuffer()

image = LoadImage("heightmap.BMP")
DrawBlock image,256,0

SeedRnd MilliSecs()
ImageColor image,Rand(255),Rand(255),Rand(255)
DrawBlock image,0,0

Flip
WaitKey()
End

Function ImageColor(image,r#,g#,b#)
   SetBuffer ImageBuffer(image)
   LockBuffer ImageBuffer(image)
   For x = 0 To ImageWidth(image)
      For y = 0 To ImageHeight(image)
         prgb= ReadPixelFast(x,y,ImageBuffer(image))
         pr   = (prgb And $FF0000)/$10000
         pg   = (prgb And $FF00)/$100
         pb   =  prgb And $FF
         
         er   = Float(pr) * Float(r#/255.00)
         eg   = Float(pg) * Float(g#/255.00)
         eb   = Float(pb) * Float(b#/255.00)
         ergb= er*$10000 + eg*$100 + eb
         WritePixelFast x,y,ergb,ImageBuffer(image)
      Next
   Next
   UnlockBuffer ImageBuffer(image)
   SetBuffer BackBuffer()
End Function


p.s.: werte über 255 bringen auch hübsche effekte Wink
MrKeks.net
 

David

BeitragMo, Apr 05, 2004 9:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Danke an Euch!
Das funktioniert prima!

grüße

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group