コード例 #1
0
ファイル: MainForm.cs プロジェクト: vainia/ImageWithSecret
        private void ButtonEncrypt_Click(object sender, EventArgs e)
        {
            if (hideSize > hiderSize)
            {
                this.toolStripStatusLabel.Text = "Please, select another image!";
                //MessageBox.Show("Please, select another image!");
                return;
            }
            if (hideModeSwitcher.Text == "Text" && (dataToEncrypt = textToHide.Text.ToString()) == "")
            {
                dataToEncrypt = "empty";
            }
            else
            if (hideModeSwitcher.Text == "Picture" && pictureHide.Image == null)
            {
                dataToEncrypt = "empty";
            }
            else if (hideModeSwitcher.Text == "Picture")
            {
                dataToEncrypt = AES.Base64Encode(ImageWithSecret <string> .ImageToByteArray(pictureHide.Image));
            }

            var lib = new ImageWithSecret <string>
            {
                ImageModifying = ImageOriginalHider,
                imageArray     = ImageHelper.BmpToArr(ImageOriginalHider),
                DataReader     = new StringData(),
                WriteReadData  = new EmptyWriteReadPixelData()
            };

            if (checkInteractive.Checked)
            {
                lib.interactive = true;
            }

            foreach (var checkedItems in listOfEncryptions.CheckedItems)
            {
                foreach (var encryptionClass in GetAllEntities(false))
                {
                    if ((string)encryptionClass.GetField("EncryptionName").GetValue(null) == checkedItems.ToString())
                    {
                        if (encryptionClass.Name == "SHI")
                        {
                            lib.Encrypts.Add(new SHI(textKey.Text, SHI.Operator.LEFT));
                        }
                        else
                        {
                            lib.Encrypts.Add((IEncrypt)Activator.CreateInstance(encryptionClass, new Object[] { textKey.Text }));
                        }
                    }
                }
            }
            foreach (var checkedItems in listOfCompressions.CheckedItems)
            {
                foreach (var compressionClass in GetAllEntities(true))
                {
                    if ((string)compressionClass.GetField("CompressionName").GetValue(null) == checkedItems.ToString())
                    {
                        lib.DataCompression = (ICompression)Activator.CreateInstance(compressionClass, null);
                    }
                }
            }
            imageHidden           = lib.Encrypt(dataToEncrypt);
            pictureHidden.Image   = imageHidden;
            buttonDecrypt.Enabled = true;
            labelHidden.Visible   = true;
        }