Farbe eines Bildes wechseln

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Der Eisvogel

Betreff: Farbe eines Bildes wechseln

BeitragMi, Jan 02, 2008 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo
ich würde gerne wissen wie man eine Farbe von einem Bild in eine andere Farbe wechselt.
Das was ich meine geht nicht mit "MaskImage".
Ich meine nämlich ein buntes Bild mit z.B. roten Flächen und die möchte ich z.B. blau färben.

Ich freu mich schon auf eure Antworten.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

blitzuser34

BeitragMi, Jan 02, 2008 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
image=LoadImage("test.bmp")

Graphics ImageWidth(image),ImageHeight(image),32,2
image=LoadImage("test.bmp")
MaskImage image,255,255,0
ClsColor 255,0,255
Cls
DrawImage image,0,0
SaveBuffer FrontBuffer(), "newtest.bmp"
End



Du willst des doch mit Blitz machen, oder? Ansonsten empfehle ich dir Programme wie Photoshop.
  • Zuletzt bearbeitet von blitzuser34 am Mi, Jan 02, 2008 20:31, insgesamt 3-mal bearbeitet

Der Eisvogel

BeitragMi, Jan 02, 2008 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast recht ich will das mit Blitz machen und Photoshop hab ich schon oft gehört, hab es aber nicht.

EDIT: Kann man das ganze auch ohne externe Dateien machen?
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
  • Zuletzt bearbeitet von Der Eisvogel am Mi, Jan 02, 2008 20:30, insgesamt einmal bearbeitet

blitzuser34

BeitragMi, Jan 02, 2008 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab den Code nochmal editiert!

Edit: Sorry, jetzt funktioniert es!

Frage: Was meinst du mit "ohne externe Datei"?

Der Eisvogel

BeitragMi, Jan 02, 2008 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Damit meine ich, dass ich kein Bild abspeichern möchte, sondern das ganze nur innerhalb von BB.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

blitzuser34

Betreff: So?

BeitragMi, Jan 02, 2008 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
image=LoadImage("test.bmp")
Global breite=ImageWidth(image)
Global hoehe=ImageHeight(image)

Graphics breite,hoehe,32,2
image=LoadImage("test.bmp")
MaskImage image,255,0,0
ClsColor 0,0,255

newbild=CreateImage(breite,hoehe)
SetBuffer ImageBuffer(newbild)

Cls
DrawImage image,0,0
SetBuffer BackBuffer()

While Not KeyHit(1)
Cls

DrawImage newbild,0,0

Flip
Wend

End


In etwa so?
 

TeDy14

Gast

BeitragMi, Jan 02, 2008 20:55
Antworten mit Zitat
Die methode ist unschön...
Ich würde jeden Pixel deines Bildes mit readpixelfast() abgehen und gegebenfals mit writepixelfast ersetzen

blitzuser34

Betreff: Neee, lieber nich...

BeitragMi, Jan 02, 2008 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Des hatte ich schon. Da hab ich ein Bild von 256x256 geladen und wie lange dauert des? Wahrscheinlich ne Minute(hab auch nich lang daran programmiert). Auserdem musste dann ne Tolleranz einbauen, weil des nicht ganz genau funktioniert. Und bei JPegs kannste des sowieso vergessen. Bei nem Baum z.B. werden die Pixel zwischen den Ästen nich gescheit ersetzt!

Mein Fazit: sieht zwar für manche im Code nicht schön aus, ist aber sehr viel schneller und leifert bessere Ergebnisse!

BladeRunner

Moderator

BeitragMi, Jan 02, 2008 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
jpeg ist auch kein Format das vernünftig für Spiele zu gebrauchen ist.
Was deine Frage angeht, MP, ist es so dass BB diese Funktion nicht als Bordmittel hat. Du kannst sie jedoch mit einem Trick nachstellen:
Mach den Bereich des Bildes den Du umfärben willst per maskimage durchsichtig. Dann erstelle ein anderes Bild welches diesen Bereich in der gewünschten Farbe darstellt. dieses Bild ist leicht auch in paint und co umzufärben.
Beim Zeichnen kannst du dann beide Bilder, erst das Farbbild, dann das mit dem 'Loch' übereinander einzeichnen und erweckst so den Eindruck eines zusammenhängenden umgefärbten Bildes.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group