WPF的bmp和二进制转换
bmp转二进制: FileStream fs = File.OpenRead(filepath); //filepath文件路径 Byte[] tempBuff = new Byte[fs.Length]; fs.Read(tempBuff, 0, tempBuff.Length); 二进制还原bmp: BitmapImage BI = new BitmapImage(); BI.BeginInit(); BI.StreamSource = new MemoryStream(bufPic); //bufPic是图片二进制,byte类型 BI.EndInit(); image_emp.Source = BI;//image_emp是图片控件
January 25, 2011
BMP格式分析
C#下将BMP转换成二进制是比较容易的,方法如下 byte[] bufPic; string filePath = ""; Stream myStream; MemoryStream picFile = new MemoryStream(); OpenFileDialog open = new OpenFileDialog(); open.Filter = "bmp files (*.bmp) | *.bmp"; open.RestoreDirectory = true; if (open.ShowDialog() == DialogResult.OK) { if ((myStream = login.OpenFile()) != null) { myStream.Close(); } } filePath = open.FileName.ToString(); Image image = Image.FromFile(filePath); image.Save(picFile, ImageFormat.Bmp); bufPic = picFile.GetBuffer(); 其实转换的结果是以8位二进制分割的十进制数(0~255),若是真要得到纯二进制,还需要进一步转换。我曾做过很多实验,目的是测试这些数字和图片本身之间的关系,虽然学习过多媒体技术,但是对于详细的bmp分解,并没有太多认识。当然,在实验前还要把"二进制"还原bmp的方法说明一下:
January 20, 2011
玩转IPv6
前段时间小结了一下 IPv6的相关设置和用途,比如免费上网,下载IPv6资源等。经过近一年的使用,对于IPv6有了更进一步的认识,恰逢csdn学习心得活动,所以特意整理一番,针对使用IPv6做一个全面的介绍。不足之处还请大家提出宝贵意见。
December 21, 2010
ADO.net存取image类型
最近试验需求,用到了sql server中的image字段,存取方法如下: 存 public void Save() { using (System.IO.FileStream stream = new System.IO.FileStream()) { byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, (int)stream.Length); stream.Close(); string strName = System.IO.Path.GetFileNameWithoutExtension(file); SqlCommand cmd = new SqlCommand("Insert into Temp(name,photo) values(@name,@image)", sqlConn); cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = strName; cmd.Parameters.Add("@image", SqlDbType.Image).Value = buffer; cmd.ExecuteNonQuery(); } } 取: public void GetImage() { SqlCommand cmd = new SqlCommand(@"SELECT name, photo FROM Temp", sqlConn); sqlConn.Open(); SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { image_filename = (string)reader.GetValue(0); byte[] image_bytes = (byte[])reader.GetValue(1); MemoryStream ms = new MemoryStream(image_bytes); Bitmap bmap = new Bitmap(ms); return bmap; } }
December 10, 2010
安装Win7进RAM
以前看过别人将XP装进内存,开机5-8秒, 于是无聊着尝试了将win7装进内存。 需要的东西有: 至少4g的内存, win7精简版(1.3G) http://blog.163.com/prosen@yeah/blog/static/122513287201082992043836/
December 5, 2010
凯撒密码(一)
“恺撒密码"据传是古罗马恺撒大帝用来保护重要军情的加密系统。(即今天我们所说的:替代密码) 它是一种代换密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
October 24, 2010
凯撒密码(二)
上篇显示了用错误的key得到了错误的结果,现在使用正确的key 这样就得到了正确的结果。 当然,这个程序只是演示凯撒密码的一个思路,没有对其他符号加密,这样有个很严重的后果,就是很key容易被破解。
October 24, 2010
C#网页自动填表自动登录
自动填表的方式有很多,关键是获取控件的id或者name。 比如源代码有 <input id="pwdInput" tabindex="2" class="ipt-t" type="password" name="password" onMouseOver="fEvent('mouseover',this)" onFocus="fEvent('focus',this)" onBlur="fEvent('blur',this)" onMouseOut="fEvent('mouseout',this)"/> 那么就可以用
September 12, 2010
C#实现扫雷游戏中左右键同时点击
private MouseButtons Button; private long Ticks; private long TicksDelay = 100000L; private void btn_Click(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { if (DateTime.Now.Ticks - Ticks < TicksDelay && Button == MouseButtons.Right) { //左右键"同时"(先左后右) } else { //左键 } } else if (e.Button == MouseButtons.Right) { if (DateTime.Now.Ticks - Ticks < TicksDelay && Button == MouseButtons.Left) { //左右键"同时"(先右后左) } else { //右键 } } Button = e.Button; Ticks = DateTime.Now.Ticks; }
September 2, 2010