博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF中Image显示本地图片
阅读量:5298 次
发布时间:2019-06-14

本文共 2072 字,大约阅读时间需要 6 分钟。

1        private void SetSource(System.Windows.Controls.Image image, string fileName) 2         { 3             System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(fileName); 4             int imageWidth = 0, imageHeight = 0; 5             InitializeImageSize(sourceImage, image, out imageWidth, out imageHeight); 6            7             Bitmap sourceBmp = new Bitmap(sourceImage, imageWidth, imageHeight); 8             IntPtr hBitmap = sourceBmp.GetHbitmap(); 9             BitmapSource bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty,10                    BitmapSizeOptions.FromEmptyOptions());11             bitmapSource.Freeze();12             WriteableBitmap writeableBmp = new WriteableBitmap(bitmapSource);13             sourceImage.Dispose();14             sourceBmp.Dispose();15             image.Source = writeableBmp;16         }17 18         /// 19         /// Initialize ImageSize.20         /// 21         /// 22         /// 23         /// 24         /// 25         private static void InitializeImageSize(System.Drawing.Image sourceImage, System.Windows.Controls.Image image,26             out int imageWidth, out int imageHeight)27         {28             int width = sourceImage.Width;29             int height = sourceImage.Height;30             float aspect = (float)width / (float)height;31             if (image.Height != double.NaN)32             {33                 imageHeight = Convert.ToInt32(image.Height);34                 imageWidth = Convert.ToInt32(aspect * imageHeight);35             }36             else if (image.Width != double.NaN)37             {38                 imageWidth = Convert.ToInt32(image.Width);39                 imageHeight = Convert.ToInt32(image.Width / aspect);40             }41             else42             {43                 imageHeight = 100;44                 imageWidth = Convert.ToInt32(aspect * imageHeight);45             }46         }

调用:  SetSource(this.imageCur, “C:\1.png”);

转载于:https://www.cnblogs.com/yunyou/archive/2013/01/25/2876054.html

你可能感兴趣的文章
SVN部署和使用
查看>>
Build Tools
查看>>
Mysql的基础使用之MariaDB安装
查看>>
单链表操作B 分类: 链表 2015-06-0...
查看>>
周赛-Heros and Swords 分类: 比赛 ...
查看>>
Error:No suitable device found: no device found for connection "System eth0"
查看>>
Go beego框架使用笔记(一)
查看>>
jQuery各种效果举例
查看>>
Day47:HTML(简介及常用标签)
查看>>
Redis.md
查看>>
软件工程课堂小测01
查看>>
大道至简阅读笔记02
查看>>
自定义日志工具LogUtil
查看>>
Linux下安装PHP遇到的各种问题
查看>>
transition
查看>>
shell脚本自动备份数据库(精简版)
查看>>
充分发挥FPGA优势 Altera首推新颖OpenCL工具
查看>>
ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序
查看>>
ORACLE手工删除数据库
查看>>
LCD 1602A
查看>>