有一个员工管理,需要在数据库字段中保存员工的照片,但已有的照片非常巨大,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左右,程序效率得到提高。
新闻热点
疑难解答