如何解决在 Xamarin 上调整图像大小和裁剪图像
我从 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 举报,一经查实,本站将立刻删除。