SignaturePad.PCL Nuget 패키지를 사용 중이므로 플러그인에서 Draw Points를 가져 와서 이미지를 만드는 Stream을 복구 할 수 있습니다. 그런 다음 이미지를 웹 서비스에 기본 64 문자열로 전달하고 웹 응용 프로그램에 표시합니다. 그럼 난 변환이 차이가 이유를 알고이Xamarin.Forms MemoryStream 조작. Android가 iOS와 다른 이유는 무엇입니까?
//This works on android but not iOS
string base64Str = Convert.ToBase64String(((MemoryStream) theStream).ToArray());
//Works on iOS but not android
string base64Str = Convert.ToBase64String(StreamConvert(theStream));
private byte[] StreamConvert(Stream stream){
using (var ms = new MemoryStream())
{
stream.CopyTo(ms);
return ms.ToArray();
}
}
//For both I use this, unless someone else can figure out a cross platform solution
string base64Str = Convert.ToBase64String(Device.OS == TargetPlatform.Android ? ((MemoryStream) theStream).ToArray() : StreamConvert(theStream));
사람처럼 작동 64 문자열을 기반으로 얻을 수 있었던 것을 발견?
이 예제에서는 System.IO.Stream입니다. –
당신은 이해하지 못합니다. System.IO.Stream으로 변환하기 전에 android에서 'theStream '유형을, ios에서'theStream '을 알고 싶습니다. – jzeferino