this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
string curFileName = @"Acrobat.ico";
Bitmap bitmap = new Bitmap(curFileName);
MessageBox.Show(string.Format("{0}:{1}", bitmap.Width, bitmap.Height));
this.pictureBox1.Image = bitmap;
MessageBox.Show("加载完成!");
MessageBox.Show(string.Format("{0}:{1}", pictureBox1.Image.Width, pictureBox1.Image.Height));
图片实际 大小
为什么 读取 的 Bitmap 大小是 16x16 ; ???
ico图标并不是单单的一张图片,而是好几张图片的集合,集合中的图片尺寸都不一样。使用C#直接读取ico文件时默认取的都是的尺寸最小的那个图片。
所以如果想通过C#去读取到ico中256*256这种大尺寸图片的,需要使用系统API去读取。
使用PictureBoxSizeMode.Zoom导致图片伸缩了,将PictureBoxSizeMode改为CenterImage或AutoSize试下
不是 , 为什么读取 之后 就是 16x16 像素了
加载到图片后 才是正常像素;
@enych: ico文件大小由系统决定,它跟png文件不同,用Icon类替代Bitmap类结果可能不同
使用 KaitaiStruct.cs和KaitaiStream.cs 来解析 icon