【发布时间】:2021-07-10 18:37:43
【问题描述】:
我在一个 Xamarin.Forms 应用程序上工作,我在其中使用 Syncfusion SfSignaturePad 实现了签名控件
我想将签名图像发送到 API。
为此,我已将相关签名的ImageSource 转换为byte array,如下所示:
SfSignaturePad signaturePad;
public byte[] SignaturePadImage { get; set; }
private void BtnConvert_Tapped(object sender, EventArgs e)
{
signaturePad.Save();
if (signaturePad.ImageSource != null)
{
StreamImageSource streamImageSource = (StreamImageSource)signaturePad.ImageSource;
System.Threading.CancellationToken cancellationToken =
System.Threading.CancellationToken.None;
Task<Stream> task = streamImageSource.Stream(cancellationToken);
Stream stream = task.Result;
// store bytes
SignaturePadImage = new byte[stream.Length];
stream.Read(SignaturePadImage, 0, SignaturePadImage.Length);
}
}
这允许我将byte array 设置为Source 的Image 以显示相应的图像。
但是当我将 byte array 发送到 API 时,无法识别图像格式,因为它基于 Xamarin.Forms.ImageSource。
所以我想在恢复byte array之前将我的ImageSource“转换”为格式化图像(如.PNG、.BMP、...)。
实现这一目标的更好方法应该是什么?
【问题讨论】:
-
我建议改用 Xamarin SignaturePad 控件。 SF控制不是很灵活
-
这个one? 3 年后它仍然“正常工作”吗?
-
是的,我刚刚在一个项目中使用过,效果很好
标签: arrays image xamarin.forms bitmap imagesource