Code :D←but - Ceci est un texte qui va ↑tre ←cris dans l'image, pour cela nous allons utiliser la m←thode de st←ganographie.
l'id←e est de stocker des donn←es dans une image en modifiant les valeurs des canaux de chaque pixel de mani│re subtile.
Pour chaque pixel, on va utiliser les valeurs de ses canaux (Rouge, Vert, Bleu, et Alpha le cas ←ch←ant) pour stocker un bit d'information.
On va consid←rer que la valeur du canal est 1 si elle est impaire, et 0 si elle est paire.
En faisant cela pour tous les pixels de l'image, on va pouvoir stocker des bits d'information dans l'image sans que cela ne soit visible ¢ l'ワil nu.
Si l'image contient un canal alpha, ceci sera pris en compte dans le traitement. - Stop
Code : Tout sélectionner
InitSprite()
InitMouse()
InitKeyboard()
UsePNGImageDecoder()
;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS )
ExamineDesktops()
dw.w=DesktopWidth(0)
dh.w=DesktopHeight(0)
win=OpenWindow(#PB_Any, 0, 0, 0, 0, "Opération Stégano", #PB_Window_Maximize | #PB_Window_BorderLess )
scr_w=WindowWidth(win) : scr_h=WindowHeight(win)
OpenWindowedScreen (WindowID(win),0 , 0, scr_w, scr_h,0, 0, 0, #PB_Screen_SmartSynchronization)
LoadSprite(1,"f:\PureBasic573\shadow24.png")
DisplaySprite(1,0,0)
StartDrawing(ScreenOutput())
Dim octet.b(10000)
la=0
bit=128
For u=0 To 61
For i=0 To 61
p=Point(i,u)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If Red(p)%2=1
octet(la)+bit
EndIf
bit/2
If bit=0
bit=128
la+1
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If Green(p)%2=1
octet(la)+bit
EndIf
bit/2
If bit=0
bit=128
la+1
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If Blue(p)%2=1
octet(la)+bit
EndIf
bit/2
If bit=0
bit=128
la+1
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Next
Next
StopDrawing()
;
a$=""
For i=0 To la+1
a$+Chr(octet(i))
Next
Debug a$