Xamarin.ios 如何将图像转换为内存流?
我是xamarin的新手。我正在设计一个使用SignaturePad的应用程序。签名正在使用内存流转换为字节,在Android中运行良好。但在IOS中,我得到了异常指定的强制转换无效或无效强制转换异常。下面是我实现的代码 SignaturepadView.Xaml代码:Xamarin.ios 如何将图像转换为内存流?,xamarin.ios,xamarin.android,xamarin.forms,Xamarin.ios,Xamarin.android,Xamarin.forms,我是xamarin的新手。我正在设计一个使用SignaturePad的应用程序。签名正在使用内存流转换为字节,在Android中运行良好。但在IOS中,我得到了异常指定的强制转换无效或无效强制转换异常。下面是我实现的代码 SignaturepadView.Xaml代码: <Grid VerticalOptions="Center"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/
<Grid VerticalOptions="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<signature:SignaturePadView x:Name="padView"
Grid.Row="0"
Grid.ColumnSpan="2"
HeightRequest="100"
WidthRequest="240"
BackgroundColor="#887e70"
PromptText=""
CaptionText=""
PromptTextColor="Red"
StrokeColor="#ece6dd"
StrokeWidth="3" />
<Button Grid.Row="1"
Grid.Column="0"
Text="Save Signature"
Clicked="OnSaveClicked"/>
<Button Grid.Row="1"
Grid.Column="1"
Text="Clear"
Clicked="OnClearClicked"/>
</Grid>
在Xaml.cs中
private async void OnSaveClicked(object sender, EventArgs e)
{
var format = SignatureImageFormat.Png;
var image = await padView.GetImageStreamAsync(format);`
var signatureMemoryStream = (MemoryStream)image;
byte[] data = signatureMemoryStream.ToArray();
DependencyService.Get<IPicture>().SavePictureToDisk("signimage", data);
}
私有异步void OnSaveClicked(对象发送方,事件参数e)
{
var format=SignatureImageFormat.Png;
var image=await padView.GetImageStreamAsync(格式)`
var signatureMemoryStream=(MemoryStream)图像;
字节[]数据=signatureMemoryStream.ToArray();
DependencyService.Get().SavePictureToDisk(“signimage”,数据);
}
这在Android中运行良好。但我得到的异常指定强制转换对于IOS无效或无效强制转换异常。我做错什么了吗?。请帮帮我。提前谢谢
注意:我也在PCL、Android和IOS中安装了这个软件包。对不起,我的英语不好。哪一行导致了异常?您试图强制转换的对象的类型是什么?感谢您的回复@Jason。我在var signatureemorystream=(MemoryStream)image;。。。。我把这条线改成。。。var ms=新内存流();图像。复制到(ms);它在android中工作正常,但在IOS中我看不到任何东西。它没有引发任何异常。在调试时,我得到了图像的字节数组。但它没有存储在照片中。请帮助我。如果它在一个平台上工作,但在另一个平台上不工作,问题很可能出在您的DependencyServiceYes我理解。我也经历并实现了同样的问题。但我在照片中什么都没有得到。原因可能是什么?您确定您的iOS IPacture代码正在被调用吗?你有没有通过它来验证它在做什么?