Cet opérateur va prendre tout les bits d'un nombre et les inverser, ainsi tout les 0 vont devenir 1 et tout les 1 vont devenir 0.
Cas pratique avec une image.
Code : Tout sélectionner
Enumeration
#Mainform
EndEnumeration
Enumeration
#Image0
#Image1
EndEnumeration
Dim Pixels(0)
;Download d'une image
InitNetwork()
ReceiveHTTPFile("http://www.purearea.net/pb/pics/Fred_2012_2_t.jpg", "test.jpg")
UseJPEGImageDecoder()
LoadImage(0, "test.jpg")
ResizeImage(0, 480, 400)
Width = ImageWidth(0)
Height = ImageHeight(0)
ReDim Pixels(Width*Height)
;Lecture des composant de l'image original
StartDrawing(ImageOutput(0))
For x=0 To Width-1
For y=0 To Height-1
Pixels(Index) = Point(x,y)
Index + 1
Next
Next
StopDrawing()
index = 0
;Création de l'image inversée : Utilisation de ~
CreateImage(1, Width, Height)
StartDrawing(ImageOutput(1))
For x=0 To Width-1
For y=0 To Height-1
Plot(x, y, ~Pixels(Index))
Index + 1
Next
Next
StopDrawing()
;Affichage de la fenêtre avec les deux images
OpenWindow(#Mainform, 0, 0, (Width*2)+15, 600, "opérateur d'inversion de bits ~", WindowStyle)
ImageGadget(#Image0, 5, 5, 0, 0, ImageID(0))
ImageGadget(#Image1, Width + 10, 5, Width, Height, ImageID(1))
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow