bon c est un petit programme qui permet de ' crypter ' une image .
La fonction de cryptage se fait ac shr et xor et le decryptage ac xor et shl
Ce n est pas un reel cryptage je pense mais
Le but n est pas de faire un programme de cryptage mais juste une application marrante .
J ai mis un exemple et les valeurs pr le decrypter sont 4 , la deuxieme il ne faut pas y toucher
Source / Exemple :
TypeRGB = Record
Bleu, Vert, Rouge : Byte;
End;
TypeTRGBArray = Array [0..12000] Of TypeRGB; // pour la largeur de l'image
TypePRGBArray = ^TypeTRGBArray;
procedure PRDecrypter(DEimage:Timage;Gauge1:Tgauge;ValSHL:integer;ValXor:integer);
var
Scan : TypePRGBArray;
x,y:integer;
ir,iv,ib,mv,mb,mr,Fin: Integer;
begin
gauge1.MaxValue:=DEimage.Picture.Bitmap.Height-1 ;
for y:=0 to DEimage.Picture.Bitmap.Height-1 do
begin
gauge1.Progress:=y;
Scan := DEimage.picture.Bitmap.ScanLine[Y];
for x:=0 to DEimage.Picture.Bitmap.Width-1 do
begin
// Valeurs en rouge vert et bleu
mR := Scan[X].Rouge;
mV := Scan[X].Vert;
mB := Scan[X].Bleu;
// Transo en rgb
fin:=rgb(mr,mv,mb);
fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) xor ValXor;
Scan[X].Rouge := getRvalue(fin);
Scan[X].Vert := getGvalue(fin);
Scan[X].Bleu := getBvalue(fin);
end;
end;
DEimage.Refresh;
gauge1.Progress:=0;
for y:=0 to DEimage.Picture.Bitmap.Height-1 do
begin
gauge1.Progress:=y;
Scan := DEimage.picture.Bitmap.ScanLine[Y];
for x:=0 to DEimage.Picture.Bitmap.Width-1 do
begin
// Valeurs en rouge vert et bleu
mR := Scan[X].Rouge;
mV := Scan[X].Vert;
mB := Scan[X].Bleu;
// Transo en rgb
fin:=rgb(mr,mv,mb);
fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) shl ValSHL;
Scan[X].Rouge := getRvalue(fin);
Scan[X].Vert := getGvalue(fin);
Scan[X].Bleu := getBvalue(fin);
end;
end;
DEimage.Refresh;
gauge1.Progress:=0;
end;
procedure PrCrypter(image:Timage;Gauge1:Tgauge;ValSHR:integer;ValXOR:integer);
var
Scan : TypePRGBArray;
x,y:integer;
ir,iv,ib,mv,mb,mr,Fin: Integer;
begin
gauge1.MaxValue:=image.Picture.Bitmap.Height-1 ;
for y:=0 to image.Picture.Bitmap.Height-1 do
begin
gauge1.Progress:=y;
Scan := image.picture.Bitmap.ScanLine[Y];
for x:=0 to image.Picture.Bitmap.Width-1 do
begin
// Valeurs en rouge vert et bleu
mR := Scan[X].Rouge;
mV := Scan[X].Vert;
mB := Scan[X].Bleu;
// Transo en rgb
fin:=rgb(mr,mv,mb);
fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) shr ValSHR;
Scan[X].Rouge := getRvalue(fin);
Scan[X].Vert := getGvalue(fin);
Scan[X].Bleu := getBvalue(fin);
end;
end;
image.Refresh;
gauge1.Progress:=0;
for y:=0 to image.Picture.Bitmap.Height-1 do
begin
gauge1.Progress:=y;
Scan := image.picture.Bitmap.ScanLine[Y];
for x:=0 to image.Picture.Bitmap.Width-1 do
begin
// Valeurs en rouge vert et bleu
mR := Scan[X].Rouge;
mV := Scan[X].Vert;
mB := Scan[X].Bleu;
// Transo en rgb
fin:=rgb(mr,mv,mb);
fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) xor ValXOR;
Scan[X].Rouge := getRvalue(fin);
Scan[X].Vert := getGvalue(fin);
Scan[X].Bleu := getBvalue(fin);
end;
end;
image.Refresh;
gauge1.Progress:=0;
end;
Conclusion :
Marche ac SCanline
Bon pr savoir decrypter son image faut pas perdre les 2 valeurs de cryptage
PS: si vous mettez une valeurs de cryptage trop grand a shr votre image sera mauvaise
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.