职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 937|回复: 0

C#减少图片文件大小和尺寸

[复制链接]
joe 发表于 2007-2-8 18:54 | 显示全部楼层 |阅读模式
有一个员工管理,需要在数据库字段中保存员工的照片,但已有的照片非常巨大,1024*768, 2M左右,这么大的数据存入数据库,不管是对管理或是传输都是问题,而实际上登记照只要很小就行了,下面进行减肥(C#):


//可以读取一些常用的格式,如jpg,bmp等
Bitmap myBitmap = new Bitmap(\"c:\\\\t.bmp\");  

//生成80*100的缩略图
Image myThumbnail = myBitmap.GetThumbnailImage(80, 100, null, IntPtr.Zero);
System.IO.MemoryStream ms = new System.IO.MemoryStream();

//把生成的缩略图按jpg格式写入到流ms,把这个流转到byte[]并写到数据库就行了,
//如果有需要,也可以把ms流写入到文件
myThumbnail.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

另外:从数据库中读取的照片也可以不存到文件,而直接与Windows控件PictureBox直接绑定显示
//PictureBox控件可以直接显示从数据库中读取byte[]的图片, 见下例
System.IO.MemoryStream ms_p = new System.IO.MemoryStream(byte[] b);
Bitmap bmp = new Bitmap(ms_p);
this.pictureBox1.Image = bmp;

经过以上减肥后,一张照片只有5K左右,程序效率得到提高。
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-11 20:38 , Processed in 0.140214 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表