这是我用于加密和解密图像的简单程序。但我不想单击按钮并加密或解密特定图像。我想在form_load
和中使用它form_closed
。我的图片位置是C:\Users\Mateen\Downloads\MyImage.jpg
。打开Form时,图像应解密并显示在图片框中;关闭Form时,图像应重新加密。
有人可以帮忙吗?
using System;
using System.IO;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void EncryptFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "JPG Files (*.jpg)|*.jpg|PNG Files (*.png)|*.png|JPEG Files (*.jpeg)|*.jpg|EXE Files (*.exe)|*.exe|GIF Files (*.gif)|*.gif";
dialog.InitialDirectory = @"C:\Users\Mateen\Downloads\MyImage.jpg";
dialog.Title = "Please select an image file to encrypt.";
byte[] ImageBytes;
if (dialog.ShowDialog() == DialogResult.OK)
{
ImageBytes = File.ReadAllBytes(dialog.FileName);
for (int i = 0; i < ImageBytes.Length; i++)
{
ImageBytes[i] = (byte)(ImageBytes[i] + 5);
}
File.WriteAllBytes(dialog.FileName, ImageBytes);
}
}
private void DecryptFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "JPG Files (*.jpg)|*.jpg|PNG Files (*.png)|*.png|JPEG Files (*.jpeg)|*.jpg|EXE Files (*.exe)|*.exe|GIF Files (*.gif)|*.gif";
dialog.InitialDirectory = @"C:\Users\Mateen\Downloads\MyImage.jpg";
dialog.Title = "Please select an image file to decrypt.";
byte[] ImageBytes;
if (dialog.ShowDialog() == DialogResult.OK)
{
ImageBytes = File.ReadAllBytes(dialog.FileName);
for (int i = 0; i < ImageBytes.Length; i++)
{
ImageBytes[i] = (byte)(ImageBytes[i] - 5);
}
File.WriteAllBytes(dialog.FileName, ImageBytes);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
EncryptFile();
}
private void button2_Click(object sender, EventArgs e)
{
DecryptFile();
}
}
}
对我来说似乎很难。解密部分并不难,但是如何确保不加密就不会退出程序呢?如果您的程序挂起会怎样?如果从TaskManager中杀死了该怎么办?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句