问题描述
我从 Xamarin Community Toolkit Cameraview 获取了一个字节 [],将其转换为流并通过 webapi 将其发送到我的服务器:
HttpContent fileStreamContent = new StreamContent(stream);
它可以工作,而且速度快到几毫秒。
我想在发送前旋转和裁剪图像,我用这个代码尝试了 SkiaSharp:
var skBitmap = SKBitmap.Decode(stream);
var rotated = new SKBitmap(skBitmap.Height,skBitmap.Width);
using (var surface = new SKCanvas(rotated))
{
surface.Translate(rotated.Width,0);
surface.Rotatedegrees(90);
surface.DrawBitmap(skBitmap,0);
}
var h = rotated.Height;
var w = rotated.Width;
var skImage = SKImage.FromBitmap(rotated);
var subset = skImage.Subset(SKRectI.Create(0,(h - (w / 2)) / 2,w,w/2));
var encodedData = subset.Encode();
var streamProcessed = encodedData.Asstream();
HttpContent fileStreamContent = new StreamContent(streamProcessed);
它可以工作,但在最近的工业 Zebra TC21 Android 设备上,旋转需要 3 秒,裁剪需要 6 秒,其他操作需要几分之一秒。 正常吗?有什么办法可以加快速度,还是我做错了什么? 如果我在我的笔记本电脑(充当服务器)上执行相同的操作,在从设备接收到完整图片后,使用 ImageSharp(在 Xamarin 上不起作用),相同的操作需要不到半秒的时间。
谢谢, 马蒂亚
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)