xamarin UWP图片读取
xamarin使用listview时经常会使用图片,而图片的图片源设置在uwp平台中是有平台特性的,这点请注意区分处理。也就是说在android和IOS上正常的处理在uwp下却是错误的方式。
如同一张图片在不同的内容页同时出现的情况,即存在导航页面的时候,通常我们会用一个listview来显示人员列表,人员列表包含每个人的头像图片,如果我们点击listview同时使用Navigation.PushAsync()方法进入人员信息详细页面的时候,如果在详细页面你同时也有这张头像图片的情况。如果你只是简单的如下设置一个图片路径,那将会报The process cannot access the file “Image\test.png” because it is being used by another proce
Image Img=new() Image();
Img.Source= ImageSource.FromFile("Image\test.png");
由于uwp的平台特性,当我是设置图片的路径的时候,这个图片会被这个进程占用,同时阻止其他进程使用,当我们在另一个页面也同样使用这种图片时,有用上一个导航页面没有释放到这张图片,导致我们在新页面不能使用这种图片。这造成我们不能对资源操作。
下面提供一种解决方案,在我们读取资源图片的时候,尽量不要使用进程独占并且不会主动释放的方式,我们可以使用FileStream方式读取资源。然后释放掉,方法如下
public byte[] PhotoStream(string path)
{
byte[] byData;
using (FileStream fs = new FileStream(path, FileMode.Open))
{
byData = new byte[fs.Length];
fs.Read(byData, 0, byData.Length);
fs.Dispose();
}
return byData;
}
在uwp平台下使用下列方式调用上面的方法即可。
Image Img=new() Image();
if (Device.OS == TargetPlatform.Windows)
{
byte[] bytes = Dependencies.FileUtil.PhotoStream(value.ToString());
stream = new System.IO.MemoryStream(bytes);
Img.Source= ImageSource.FromStream(GetStream);
}
xamarin UWP图片读取的更多相关文章
- xamarin UWP证书问题汇总
打算开发一个软件使用rsa加密的东西,所以有用到数字证书这块,最近遇到些问题, 问题一:使用如下代码添加数字证书后,在证书管理器的当前用户和本地计算机下都找不到这张证书. using (X509Sto ...
- 限制Xamarin获取图片的大小
限制Xamarin获取图片的大小在App开发中,经常会使用网络图片.因为这样不仅可以减少App的大小,还可以动态更新图片.但是手机使用网络环境千差万别.当网络环境不是理想的情况下,加载网络图片就是一个 ...
- 【学习笔记】tensorflow图片读取
目录 图像基本概念 图像基本操作 图像基本操作API 图像读取API 狗图片读取 CIFAR-10二进制数据读取 TFRecords TFRecords存储 TFRecords读取方法 图像基本概念 ...
- 【Android】内存卡图片读取器,图库app
上一篇<[Android]读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示>(点击打开链接)在真机上測试非常有问题.常常遇到内存溢出.卡死的情况.由于如今真机上的内存上,2G ...
- OpenCV笔记(1)(图片读取与现实、色彩空间、基础运算、均值方差、逻辑运算、泛洪填充、均值中值及自定义平滑)
一.图片读取和显示 import cv2 as cv # 图片读取cv.imread(img_path) car_img = cv.imread("car1.png") # 图片显 ...
- xamarin UWP设置HUD加载功能
使用xamarin开发的时候经常用到加载HUD功能,就是我们常见的一个加载中的动作,Android 下使用 AndHUD , iOS 下使用 BTProgressHUD, 这两个在在 NuGet 上都 ...
- UWP 图片模糊
先看一下效果: 这是微识别的个人中心页面,顶部有头像,以及背景图片模糊. 要实现这样的效果,有两种方法. 第一种麻烦点,也是我现在用的.想看简单的,翻到最后 1. 首先看一下xaml代码: <S ...
- xamarin UWP ActivityIndicator
在xamarin的UWP平台使用ActivityIndicator时,如果你时后台创建的这个对象,请设置他的宽度,不然在UWP平台下会发现找不这个对象,其实是在这个平台和特点版本下的宽度没设置,导致有 ...
- Kanzi编程基础3 - 图片读取与显示
Kanzi开发的时候会遇到需要从外部读取图片的情况.Kanzi2.8版本和3.3版本读取方法稍有不同,我们先看看2.8版本的api. [2.8版本] 1)首先要从文件中读取一张图片 struct Kz ...
随机推荐
- ios6 滤镜相关知识内容网址---摘要
http://blog.csdn.net/justinjing0612/article/details/8145607#
- 安卓奇葩问题之:运行OK,打包安装崩溃(原因是:代码不规范导致编译出错)
咳咳,还是那句话,真是日了狗了 这个问题真的很难找,废话不多少,上酸菜. 报错信息是这个方法返回的图片找不到 public static int getImgID(boolean isBig, int ...
- VMware 12 的vmware tools安装和如何使用(系统是CENTOS6.5)
1.用了一下虚拟机vmware12,但是总是没法使用它的vmware Tool ,网上一直说在哪个哪个文件夹,其实并没有 2.于是我用命令行找到了在系统中的VMware Tools 3.首先,保证li ...
- C++builder中使用TScrollBox 以后,让scrollBox相应鼠标的上下滑动
1.在窗口的事件里搜索 mouseWheel的方法 2.在.cpp文件里实现下面的代码 void __fastcall TForm1::mouseWheel(TObject *Sender, TShi ...
- hdu 5543 Pick The Sticks(动态规划)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5543 题意:给你一根长为m的长木板和一些小木棒,每一根小木棒有它的长度和价值,这些小木棒要放在长木板上 ...
- 分析Linux内核创建一个新进程的过程
一.原理分析 1.进程的描述 进程控制块PCB——task_struct,为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct ...
- Request三种获取数据的方式
今天在做ajax请求后台代码时,发现ajax的方法都对,但就是请求不了后台代码,后来在同事帮助下才发现前台定义了两个相同参数导致请求出错. 下面记录一下request三种获取数据的方式: 1. Req ...
- HttpURLConnection使用getInputStream无法执行
url = new URL(urlStr); urlConn = (HttpURLConnection) url.openConnection(); // 设置请求方式为"GET" ...
- 利用反射实现类通用的DAO层
public void add(Object object) throws SQLException { ResultSet rs=null; PreparedStatement ps=null; C ...
- HashSet和HapMap取distinct value
public class TestHashSetAndHashMap { private final int setNum=5000; @Test public void doTest(){ List ...