farben im bild ändern
Übersicht

onkelz89Betreff: farben im bild ändern |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
ist es möglich per befehl in blitz die farben in bildern zu ändern? also beispiel habe ein bild (schwarzer hintergrund) mit einem roten kreis (255,0,0) <-so ein rot was ich suche ist ein befehl der in diesem bild alles was (255,0,0) ist auf zb. (0,0,255) ändert. geht das? mfg onkelz |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
da kann ich dir nur die befehle readpixel(fast) und writepixel(fast) ans Herz legen, schau mal in der Onlinehilfe | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1.
hab gerade eben mal angefangen: Code: [AUSKLAPPEN] For y=0 To GraphicsHeight() For x=0 To GraphicsWidth() pix(x,y)=ReadPixelFast(x,y,farbe$) If farbe$="0,0,0,0" Then RuntimeError("BLACK") WaitKey() Else Print farbe$ var=var+1 EndIf Next Next aber der sieht nie schwarz und macht einfach weiter und die variabel farbe$ ist immer leer (nicht gleich 0) was mache ich falsch? 2. achja nochwas... ist mir durch zufall aufgefallen und ist nur bei diesem programm: Code: [AUSKLAPPEN] Graphics 640,480,16,2 Print "Press a key to read color values" WaitKey() ; Load and draw an image on to the screen - can be anything pic=LoadImage("Gfx/Auto/1.bmp") DrawImage pic,0,0 ; Initialise an array big enough to fit all the color information of the screen Dim pix(GraphicsWidth(),GraphicsHeight()) ; Lock buffer before using ReadPixelFast LockBuffer ; Use ReadPixel to get all the color information of the screen For y=0 To GraphicsHeight() For x=0 To GraphicsWidth() pix(x,y)=ReadPixelFast(x,y,farbe$) If farbe$="0,0,0,0" Then RuntimeError("BLACK") WaitKey() Else Print farbe$ var=var+1 EndIf Next Next ; Lock buffer after using ReadPixelFast UnlockBuffer Locate 0,0 Print "Press a key to write pixels"+var Print "Once this has finished, you can then press a key to end the program" WaitKey() ; Lock buffer before using WritePixelFast LockBuffer ; Use WritePixel to redraw the screen using the color information we got earlier For y=0 To GraphicsHeight() For x=0 To GraphicsWidth() WritePixelFast x,y,pix(x,GraphicsHeight()-y) ; get y array value in backwards order, to flip screen Next Next ; Unlock buffer after using WritePixelFast UnlockBuffer WaitKey() wenn ich das mehrmals starte dann klappt es irgendwann nicht mehr bis ich pc herunterfahre und wieder hoch... außerdem klappen alle anderen blitz-prgramme danach auch nicht mehr (aber nur wenn ich das do oben mehrmals starte) wieso? mfg onkelz |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] LockBuffer ImageBuffer(pic) ;image sperren ich glaube aber, das Print und RuntimeError bei einem gesperrten Buffer evtl. zu Schwierigkeiten führen könnte. zu deinem zweiten Problem, setz mal nach dem letzten Waitkey noch die Zeile : BlitzBasic: [AUSKLAPPEN] FreeImage pic Du lädst das Bild bei jedem Start von BB in den Speicher. Da bleibt es dann auch, bis dein Speicher irgendwann voll ist. Du solltest ein paar Tutorials lesen und die Onlinehilfe benutzen... [edit] was macht der denn da smilies in den code-tags ??? [/edit] |
||
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke das hilft mir weiter... auch zu problem 2
ehm das var=var+1 war nur ein zähler wollte wissen ob der alle überprüft.... naja und mit dem farben umändern schau ich mir jetzt noch an (hoffe ich bekomme es hin) falls nicht bis gleich ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group