图片处理与绑定

图片处理与绑定

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Visual Studio 2015

作者:朱海恩

撰写时间:2019年6月10日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

服务端的图片处理:根据图片名称提取文件夹中对应的图片。并不是提取所有的图片,而是提取对应的那张图片,而对应的那张图片名称有保存在表格里面,所以在方法中有一个变量(strFileName接收图片的名称。

第一步:因为图片放在一个文件夹里面的,所以要获取文件夹,这里的文件夹比较特殊,它放在服务端里,所以要获取服务器部署路经:

string strPath=AppDomain.CurrentDomain.BaseDirectory+ "image\\";

获取到路径后,要对获取到的路径进行判断,判断文件夹路径是否存在,如果路径不存在,就创建文件夹路径:

Directory.CreateDirectory(strPath);

第二步:判断传递过来的图片名称是否为空,如果不等于空, 就获取图片路径并且进行判断。

最后一步:返回路径

 

服务端代码:

[OperationContract]

public string btn_Select_UC_StaffPhoro(string strFileName)

        {

            try

            {

                string strPhotoLuJing = null;//接收文件返回路径

                //(1)获取服务器部署路径

                string strPath=AppDomain.CurrentDomain.BaseDirectory+ "image\\";

                //第一步:判断文件夹是否存在

                if (!Directory.Exists(strPath))

                {

                    //路径不存在:创建文件路径

                    Directory.CreateDirectory(strPath);

                }

                //(0)判断传递过来的图片名称是否为空

                if (strFileName != null)

                {

                    //获取图片路径

                    string strEndPath = strPath + strFileName;

                    if (strEndPath != "")

                    {

                        //找到文件

                        strPhotoLuJing = strEndPath;

                    }

                    else

                    {

                        //找不到文件返回null

                        strPhotoLuJing = null;

                    }

 

                }

                return strPhotoLuJing;

 

            }

            catch (Exception)

            {

                return null;

            }

        }

 

C#编程步骤:

第一步:提取选中行的单元格(图片路径)

第二步:获取路径,所以要声明一个字符串来接收服务器传递过来的路径

第三步:判断路径是否为空,如果不为空,就绑定图片(因为判断的图片是流,所以要注意流的开始和关闭),如果为空就返回null

 

C#代码:

if ((DataRowView)dgvstaff.CurrentItem != null)

{

//获取图片

string strLuJing = (((DataRowView)dgvstaff.CurrentItem).Row["picture"]).ToString();

myPictureByte = myStaffClient.btn_Select_UC_StaffPhoro(strLuJing);

if (myPictureByte != null)

{

//绑定图片

BitmapImage bi = new BitmapImage();

bi.BeginInit();

//增加这一行(指定位图图像如何利用内存缓存=在加载时将整个图像缓存到内存中。对图像数据的所有请求将通过内存存储区进行填充。)

bi.CacheOption = BitmapCacheOption.OnLoad;

bi.UriSource = new Uri(myPictureByte);

bi.EndInit();

//获取内存图片

img_picture.Source = bi;

}

else

{

img_picture.Source = null;

}

}

 

效果图如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值