让图片不变形
2015-11-09 13:59
267 查看
#region 让图片不变形 /// <summary> /// 小图标等比例缩小 /// </summary> /// <param name="_files"></param> /// <returns></returns> private ImageList GetImageFrom2(string[] _files) { ImageList list = new ImageList();
int picWidth; int picHeight; int _iconW = 60; int _iconH = 80; int _picTop; int _picLeft; Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback); Bitmap myBitmap = null; Image _tempImage; for (int i = 0; i < _files.Length; i++) {
myBitmap = new Bitmap(_files[i]); CalateSize(myBitmap.Width, myBitmap.Height, _iconW, _iconH, out picWidth, out picHeight); Image myThumbnail = myBitmap.GetThumbnailImage(picWidth, picHeight, myCallback, IntPtr.Zero);
//第一步 Bitmap bp = new Bitmap(_iconW, _iconH); //第二步 Graphics g = Graphics.FromImage(bp); g.Clear(Color.White); g.DrawImage(myThumbnail, (_iconW - picWidth) / 2, (_iconH - picHeight) / 2); list.Images.Add(_files[i], (Image)bp); list.ImageSize = new Size(_iconW, _iconH); } return list; } public bool ThumbnailCallback() { return false; } /// <summary> /// 获取小图标不变形的大小 /// </summary> /// <param name="picW"></param> /// <param name="picH"></param> /// <param name="iconW"></param> /// <param name="incoH"></param> /// <param name="_w"></param> /// <param name="_h"></param> public void CalateSize(int picW, int picH, int iconW, int incoH, out int _w, out int _h) { int _a = picW; // 2488 int _b = picH; // 4288 int _c = iconW; //60 int _d = incoH; //80 if ((_a / _b) > (_c / _d)) { _w = iconW; //40 _h = (_b * iconW / _a); } else { _h = incoH; _w = (_a * incoH / _b); } }
#endregion 让图片不变形
int picWidth; int picHeight; int _iconW = 60; int _iconH = 80; int _picTop; int _picLeft; Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback); Bitmap myBitmap = null; Image _tempImage; for (int i = 0; i < _files.Length; i++) {
myBitmap = new Bitmap(_files[i]); CalateSize(myBitmap.Width, myBitmap.Height, _iconW, _iconH, out picWidth, out picHeight); Image myThumbnail = myBitmap.GetThumbnailImage(picWidth, picHeight, myCallback, IntPtr.Zero);
//第一步 Bitmap bp = new Bitmap(_iconW, _iconH); //第二步 Graphics g = Graphics.FromImage(bp); g.Clear(Color.White); g.DrawImage(myThumbnail, (_iconW - picWidth) / 2, (_iconH - picHeight) / 2); list.Images.Add(_files[i], (Image)bp); list.ImageSize = new Size(_iconW, _iconH); } return list; } public bool ThumbnailCallback() { return false; } /// <summary> /// 获取小图标不变形的大小 /// </summary> /// <param name="picW"></param> /// <param name="picH"></param> /// <param name="iconW"></param> /// <param name="incoH"></param> /// <param name="_w"></param> /// <param name="_h"></param> public void CalateSize(int picW, int picH, int iconW, int incoH, out int _w, out int _h) { int _a = picW; // 2488 int _b = picH; // 4288 int _c = iconW; //60 int _d = incoH; //80 if ((_a / _b) > (_c / _d)) { _w = iconW; //40 _h = (_b * iconW / _a); } else { _h = incoH; _w = (_a * incoH / _b); } }
#endregion 让图片不变形
相关文章推荐
- swift UITableView(八)
- Java方法excel文件转换成xml文件
- Android小记:Android入门教程
- Android 使用SQLiteOpenHelper打开SD卡上的数据库
- eclipse 显示 空格 .回车符号,去掉相应的符号
- Socket中send方法发送结构体和recv接受结构体
- virish start一个问题解决:kvm-spice: Permission denied
- swift UITableView(七)
- swift UITableView(七)
- 代码混淆详解
- 特征选择与特征选择权重之区别
- Subscriber class xxx.xxx.xxx and its super classes have no public methods with the@Subscribe annotat
- 欢迎使用CSDN-markdown编辑器
- 1号 到 100号 数数 123 数到 3 退出 最后剩下几号
- swift UITableView(六)
- swift UITableView(六)
- extjs中gridpanel中怎么获得选中行所对应的行数,比如点击第一行时的行数是1,行所对应的数据用什么方法获得
- 使用ZXing创建二维码
- Schedule用法实例
- BIEE定制化