ImageOutput(ImageID) - Wie Inhalt löschen?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

ImageOutput(ImageID) - Wie Inhalt löschen?

Beitrag von diceman »

This:
Wenn ich in einen Image-Buffer zeichne - wie kann ich den Inhalt mit einer vorgegebenen Farbe löschen? Default-mäßig ist der ja immer schwarz. Aber Gesetz den Fall ich will's weiß haben, oder es wurde bereits drinnen gezeichnet und ich möchte den Inhalt wieder löschen? Im Prinzip suche ich sowas wie ClearScreen(), halt nur für den jeweiligen Image-Buffer. Oder muß ich da tatsächlich immer eine mit DrawingMode(#PB_2DDrawing_Default) erstellt Box in Image-Größe drübermalen? :?
ClearScreen(RGB(r,g,b)) funktioniert nur außerhalb von StartDrawing.
Danke!
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: ImageOutput(ImageID) - Wie Inhalt löschen?

Beitrag von Bisonte »

Ich weiss zwar jetzt nicht was du mit "ImageBuffer" meinst....

Um in einem Bild etwas zu ändern, lösche ich es entweder komplett (mit Box), oder ändere nur die Stelle die geändert werden soll (die wird dann
aber auch erst mit Box überschrieben usw) oder ich lösche das Image und erstelle es neu. Je nachdem was gerade gebraucht wird und was schneller geht. Aber mit Box auf komplett Image ist man eigentlich immer am besten bedient.

Edit : Box(0, 0, OutPutWidth(), OutPutHeight(), Farbe) ist das ClearScreen der Images ;)
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: ImageOutput(ImageID) - Wie Inhalt löschen?

Beitrag von diceman »

Okay danke!
Ja, mit den Basis-Grafik-Befehlen komme ich soweit klar. Fluppt allgemein schon ganz gut mit mir und PureBasic. :)
ImageBuffer() hieß das in Blitzbasic - also wennst nicht auf den Bildschirm zeichnest (ScreenOutput()), sondern in ein vorher geladenes oder erstelltes Bild.
Eine Box drüber packen war auch mein erster Gedanke, funtzt ja soweit auch.
Aber hin und wieder lohnt es sich nachzufragen, ob jemand einen tollen, weniger dokumentierten Trick kennt!
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: ImageOutput(ImageID) - Wie Inhalt löschen?

Beitrag von #NULL »

CreateImage() hat auch noch den BackColor Parameter, funktionert aber nur mit RBG und nicht mit RGBA, weil er älter ist als die Alpha Unterstützung. Opaque White ($ffffffff) wird dabei als transparent behandelt. Also lieber gleich bei Box bleiben.
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten