Nachdem du Load Image ausgeführt hast, ist das Bild auch im Speicher.
Hier noch ein Beispiel, wie du Pixel verändern kannst.
Code: Alles auswählen
; Das erlaubt uns auch PNG Bilder zu laden, Es gibt auch einen UseJPEGImageDecoder() und andere
UsePNGImageDecoder()
Pattern$ = "Bitmap oder PNG Dateien (*.bmp,*.png)|*.bmp;*.png|Alle Dateien (*.*)|*.*"
Pattern = 0 ; wir verwenden den ersten von zwei möglichen Pattern als Standard
File$ = OpenFileRequester("Bitte Bild zum Laden auswählen", StandardFile$, Pattern$, Pattern)
If File$=""
MessageRequester("Fehler","Keine Datei gewählt, beende")
End
EndIf
; Hier wird das Bild geladen
LoadImage(1, File$)
; Breite und Höhe des Bildes abfragen
w=ImageWidth(1)
h=ImageHeight(1)
; brauchen wir um auf den Bild zu Zeichnen, oder Farben abzufragen
StartDrawing(ImageOutput(1))
; gehe das Bild Pixel für Pixel durch
For x=0 To w-1
For y=0 To h-1
; Frage Farbe für den Pixel ab
color=Point(x,y)
; Invertiere die Farbe
color= ~color
; Male den Pixel (nun ivertiert) an die selbe Stelle
Plot(x,y,color)
Next
Next
StopDrawing()
; hier wird das Bild wieder angezeigt, es kann auch stattdessen per SaveImage(1,Dateiname$) gespeichert werden
; Vorsicht, das Fenster sollte nicht größer als der Bildschirm werden.
If w>800
w=800
EndIf
If h>600
h=600
EndIf
; Ein Fenster um das Bild anzuzeigen.
OpenWindow(1,0,0,w+10,h+10,"Bild",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ImageGadget(1,5,5,w,h,ImageID(1))
; Die Eventschleife für das Fenster
Repeat
event=WaitWindowEvent()
Until event=#PB_Event_CloseWindow
Falls du noch weitere Hilfe brauchst, würde ich dir empfehlen erst mal alle Hilfeseiten von
2D Drawing und
Image durchzusehen. Mit Befehlen die du nicht brauchst, musst du dich ja nicht lang beschäftigen.
Dort findest du auch viele schöne Beispielcodes.