首页 > 解决方案 > 如何在 Xamarin 中将 SKImage 或 SKData 转换为 String 以便能够创建发布请求

问题描述

在这里我有我的代码(来自https://forums.xamarin.com/discussion/102674/how-to-save-finger-painting-from-skcanvasview-into-file

void OnAnalyze(object sender, EventArgs e)
        {
            var surface = SKSurface.Create(new SKImageInfo((int)canvasView.CanvasSize.Width,
                                            (int)canvasView.CanvasSize.Height));
            var canvas = surface.Canvas;
            canvas.Clear();

            foreach (SKPath path in completedPaths)
                canvas.DrawPath(path, paint);

            foreach (SKPath path in inProgressPaths.Values)
                canvas.DrawPath(path, paint);

            canvas.Flush();

            var snap = surface.Snapshot();
            var pngImage = snap.Encode();
        }

上面的代码获取在名为 canvasView 的 skcanvasview 上绘制的内容,并将其放入数据类型为 SKData 的变量 pngImage 中。如何将数据类型为 SKImage 的 pngImage 或 snap 转换为我的发布请求正文中的字符串?以下是我的请求代码:

public async Task<AnalyerResults> AnalyzeWork(SKData pngImage)
        {
            HttpClient client = await GetClient();
            var result = await client.PostAsync(Url + "analyzer", new StringContent(...));
            return JsonConvert.DeserializeObject<AnalyerResults>(await result.Content.ReadAsStringAsync());
        }

我希望正文的格式类似于使用 Postman 发送带有 .png 文件(不是 JSON)的正文类型二进制文件的发布请求。谢谢你。

标签: c#xamarinxamarin.formsskiasharp

解决方案


推荐阅读