Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }