/// <summary> /// Tourne l'image précisée en paramètre /// </summary> /// <param name="image">Image à retourner</param> /// <param name="degres">nombre de degrés pour tourne rl'image</param> /// <returns></returns> public static MyImage RotateDegrees(MyImage image, int degres) { //MyImage result = image; int nbRot = degres / 90; while (nbRot > 0) { nbRot--; image = Traitement.Rotate(image); } return(image); }
/// <summary> /// Insère de manière sthénographique l'imageAcrypter dans l'image support /// </summary> /// <param name="imageSupport">Image de support</param> /// <param name="imageACrypter">Image à cacher</param> /// <returns></returns> public static MyImage Crypter(MyImage imageSupport, MyImage imageACrypter) { //On resize l'image si elle est trop grande if ((imageSupport.GetPixels.GetLength(0) < imageACrypter.GetPixels.GetLength(0)) || (imageSupport.GetPixels.GetLength(1) < imageACrypter.GetPixels.GetLength(1))) { float rapport1 = imageACrypter.GetPixels.GetLength(0) / imageSupport.GetPixels.GetLength(0); float rapport2 = imageACrypter.GetPixels.GetLength(1) / imageSupport.GetPixels.GetLength(1); float rapportFinal = rapport2; if (rapport1 > rapport2) { rapportFinal = rapport1; } imageACrypter = Traitement.Retrecir(imageACrypter, rapportFinal + 1); } // d'abord on met tous les pixels à modulo 16 sur la première image for (int i = 0; i < imageSupport.GetPixels.GetLength(0); i++) { for (int j = 0; j < imageSupport.GetPixels.GetLength(1); j++) { imageSupport.GetPixels[i, j].Red -= imageSupport.GetPixels[i, j].Red % 16; imageSupport.GetPixels[i, j].Green -= imageSupport.GetPixels[i, j].Green % 16; imageSupport.GetPixels[i, j].Blue -= imageSupport.GetPixels[i, j].Blue % 16; } } //puis on ajoute la deuxième image dans la 1ère for (int i = 0; i < imageACrypter.GetPixels.GetLength(0); i++) { for (int j = 0; j < imageACrypter.GetPixels.GetLength(1); j++) { imageSupport.GetPixels[i, j].Red += imageACrypter.GetPixels[i, j].Red / 16; imageSupport.GetPixels[i, j].Green += imageACrypter.GetPixels[i, j].Green / 16; imageSupport.GetPixels[i, j].Blue += imageACrypter.GetPixels[i, j].Blue / 16; } } return(imageSupport); }