Xamarin 表单将图像 uri 地址转换为真实图像
Xamarin forms convert image uri address to real image
我正在尝试解决 uri 地址转换为图像的问题。主要思想,我在做什么我想从画廊中挑选图像,绑定它并将它保存到数据库中。一切正常,我可以将字符串图像路径保存到 class 属性,但不幸的是我无法将该地址转换为我将在其中显示图像的 imageSource,因为现在我看到空图像圆圈。
这是我从图库中选择图片并尝试转换为图片的地方:
IGalleryImageService galleryService = Xamarin.Forms.DependencyService.Get<IGalleryImageService>();
galleryService.ImageSelected += (o, imageSourceEventArgs) =>
{
Uri uri = new Uri(imageSourceEventArgs.ImageSource);
(ActivePage.Page as PageTemplate).CarImage.Source = ImageSource.FromFile(uri.ToString());
ActivePage.CarImageBindable = (ActivePage.Page as PageTemplate).CarImage.Source.GetValue(StreamImageSource.StreamProperty).ToString(); // here I am trying to convert from path address to image
};
galleryService.SelectImage();
这是我的页面模板
public partial class PageTemplate: ContentPage
{
public CircleImage CarImage
{
get
{
return Car;
}
set
{
Car = value;
}
}
}
和 PageTemplate.xaml 我正在显示图像的地方。
<controls:CircleImage x:Name="Car" AbsoluteLayout.LayoutBounds=".5,0,-1,-1" AbsoluteLayout.LayoutFlags="PositionProportional" Aspect="AspectFill">
</controls:CircleImage>
这是我来自单元 2 class 的可绑定 属性:
public string CarImageBindable
{
get
{
return base.CarImage;
}
set
{
base.CarImage = value;
OnPropertyChanged(nameof(CarImageBindable));
}
}
还有来自核心项目单元 class 的另一个 属性:
public int Id { get; set; }
public DateTime StartDate { get; set; }
public string CarImage { get; set; }
这就是为什么我决定将所有属性设为字符串数据类型,因为我想保存图像路径。是的,然后再次从数据库转换为物理图像。
感谢您的回答或建议。
好吧,我解决了这样的问题:
IGalleryImageService galleryService = Xamarin.Forms.DependencyService.Get<IGalleryImageService>();
galleryService.ImageSelected += (o, imageSourceEventArgs) =>
{
ActiveParking.CarImageBindable = imageSourceEventArgs.ImageSource.ToString();
(ActiveParking.Page as PageTemplate).CarImage.Source = galleryService.GetImage(imageSourceEventArgs.ImageSource.ToString());
};
galleryService.SelectImage();
我正在尝试解决 uri 地址转换为图像的问题。主要思想,我在做什么我想从画廊中挑选图像,绑定它并将它保存到数据库中。一切正常,我可以将字符串图像路径保存到 class 属性,但不幸的是我无法将该地址转换为我将在其中显示图像的 imageSource,因为现在我看到空图像圆圈。
这是我从图库中选择图片并尝试转换为图片的地方:
IGalleryImageService galleryService = Xamarin.Forms.DependencyService.Get<IGalleryImageService>();
galleryService.ImageSelected += (o, imageSourceEventArgs) =>
{
Uri uri = new Uri(imageSourceEventArgs.ImageSource);
(ActivePage.Page as PageTemplate).CarImage.Source = ImageSource.FromFile(uri.ToString());
ActivePage.CarImageBindable = (ActivePage.Page as PageTemplate).CarImage.Source.GetValue(StreamImageSource.StreamProperty).ToString(); // here I am trying to convert from path address to image
};
galleryService.SelectImage();
这是我的页面模板
public partial class PageTemplate: ContentPage
{
public CircleImage CarImage
{
get
{
return Car;
}
set
{
Car = value;
}
}
}
和 PageTemplate.xaml 我正在显示图像的地方。
<controls:CircleImage x:Name="Car" AbsoluteLayout.LayoutBounds=".5,0,-1,-1" AbsoluteLayout.LayoutFlags="PositionProportional" Aspect="AspectFill">
</controls:CircleImage>
这是我来自单元 2 class 的可绑定 属性:
public string CarImageBindable
{
get
{
return base.CarImage;
}
set
{
base.CarImage = value;
OnPropertyChanged(nameof(CarImageBindable));
}
}
还有来自核心项目单元 class 的另一个 属性:
public int Id { get; set; }
public DateTime StartDate { get; set; }
public string CarImage { get; set; }
这就是为什么我决定将所有属性设为字符串数据类型,因为我想保存图像路径。是的,然后再次从数据库转换为物理图像。
感谢您的回答或建议。
好吧,我解决了这样的问题:
IGalleryImageService galleryService = Xamarin.Forms.DependencyService.Get<IGalleryImageService>();
galleryService.ImageSelected += (o, imageSourceEventArgs) =>
{
ActiveParking.CarImageBindable = imageSourceEventArgs.ImageSource.ToString();
(ActiveParking.Page as PageTemplate).CarImage.Source = galleryService.GetImage(imageSourceEventArgs.ImageSource.ToString());
};
galleryService.SelectImage();