c# 通过修改图片对象的文件的字节 变相"加密""解密"图片在磁盘的存储
来源:互联网 发布:单片机pwm占空比调速 编辑:程序博客网 时间:2024/06/06 03:07
实现思路比较简单:
1.对图片对象进行byteArray转化后 加一些密码字节后"加密"储存在磁盘
2.图片显示时 去掉加的字串 用原本的图片信息进行图片对象的构建和显示
WinForm下示例代码:
------------------
WinForm下通过PictureBox控件来显示:
只所以用PictureBox的Image对象
是因为有可能图像对象不是平时所见的已存在于磁盘的图片文件
还有可能是从视频采集卡等直接抓取的图像
//图像"加密"保存
private void button1_Click(object sender, EventArgs e)
{
//把pictureBox1中的图像增加一些密码字节的文字信息后 "加密"储存在磁盘
System.IO.MemoryStream ms = new System.IO.MemoryStream();
byte[] byteArrayPwd = System.Text.Encoding.Default.GetBytes("http://freeliver54.cnblogs.com/");
ms.Write(byteArrayPwd, 0, byteArrayPwd.Length);
//
Image img = this.pictureBox1.Image;
//将图片对象存入MemoryStream
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
//保存"图片"文件 此时的图片用平常的图片浏览器是不能正常打开查看的
BinaryWriter bw = new BinaryWriter(File.Open(@"F://images/20081014.jpg", FileMode.OpenOrCreate));
bw.Write(ms.ToArray());
bw.Close();
ms.Close();
}
//"解密"图像显示 注意该解密是在内存中进行 并没有通过中间的tmp文件来搭桥
private void button2_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream(@"F://images/20081014.jpg", FileMode.Open, FileAccess.Read);
byte[] byteArrayFile = new byte[fs.Length];
fs.Read(byteArrayFile, 0, (int)fs.Length);
fs.Close();
byte[] byteArrayPwd = System.Text.Encoding.Default.GetBytes("http://freeliver54.cnblogs.com/");
System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArrayFile, byteArrayPwd.Length,byteArrayFile.Length-
byteArrayPwd.Length);
//需要做相关异常处理 因为截取位置若不正确 将不能正常的构建出图像对象 会抛参数无效等异常
try
{
this.pictureBox2.Image = System.Drawing.Image.FromStream(ms);
}
finally
{
ms.Close();
}
}
----
以上是在WinForm下的简单尝试
可能"加密"后的图片 要在Web页面的Image等控件来显示
此时就不能用直接的src指向图片文件 因为此时的该图片文件是不能正常显示的
可通过另外的页面对图片解密后再返回给控件进行显示<img src="Picture.aspx">
- c# 通过修改图片对象的文件的字节 变相"加密""解密"图片在磁盘的存储
- c# 通过修改图片对象的文件的字节 变相"加密""解密"图片在磁盘的存储
- 【转载】通过修改图片对象的文件的字节 变相\"加密\"\"解密\"图片在磁盘的存储
- c# 图片加密解密的实例代码
- C#对文件的字节加密/解密-可逆
- C#对文件的字节加密/解密-可逆
- 简单的对图片文件进行加密解密
- 图片,音频,视频的文件加密,解密,保护自身资源
- 解密加密的URL图片数据
- 集群下的图片磁盘存储共享
- 文件的加密解密
- C# 返回图片的字节流byte[]
- 加密的存储过程解密
- 通过File文件类的加密和解密文件
- 读取文件,解密,加密,写入文件,存储过程的应用
- 磁盘分区,文件在磁盘上的存储
- 判断上传图片文件的大小(字节)
- c# 使用独立的DLL来存储图片(资源文件)
- [文摘20081016]SOHO_百度百科
- [转]DirectShow应用——视频捕捉WDM Vs VFW
- [转]C#中的IntPtr类型
- [引]C# WinForm DirectShow视频采集及图片抓取实例DxSnap
- [转]C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- c# 通过修改图片对象的文件的字节 变相"加密""解密"图片在磁盘的存储
- c# WinForm 定时执行某个后台操作 如把B文件夹下的文件Copy到A文件夹下
- [转]用C# 实现C/S模式下软件自动在线升级
- C# WinFrom SplitContainer和UserControl组成简单的类似于web系统的框架页
- [转]WebBrowser页面与WinForm交互技巧
- [转]c# winFrom 使窗体显示SplitContainer或Panel中
- 投入热忱 勇往直前
- [转].NET下对二进制文件进行加密解密(C#)
- c# winForm 简单的按钮用户控件示例