使用 SkiaSharp 的 Xamarin.Forms 中的 SKBitmap 操作问题

问题描述 投票:0回答:1

我正在开发一个 Xamarin.Forms 项目并利用 SkiaSharp 进行位图操作。我有一个代码片段,可以直接操作从 ImageButton 源获取的 SKBitmap,并且它按预期工作:

canvas.DrawBitmap(SKBitmap.Decode(picturebox.Source.ToString()), new SKRect((float)lastMousePosition.X - pixell, (float)lastMousePosition.Y - pixell, (float)lastMousePosition.X - pixell + pixell * 2, (float)lastMousePosition.Y - pixell + pixell * 2), new SKRect((float)lastMousePosition.X - pixel, (float)lastMousePosition.Y - pixel, (float)lastMousePosition.X - pixel + pixel * 2, (float)lastMousePosition.Y - pixel + pixel * 2), paint);

但是,当我尝试使用方法(aaaa)进行类似的操作来处理从 StackLayout 中的 ImageButton 获取的 SKBitmap 时,它不会产生预期的结果:

((StackLayout)scrol.Content).Children[b] = aaaa(SKBitmap.Decode(((ImageButton)((StackLayout)scrol.Content).Children[b]).Source), opacity, (int)e.TotalX - int.Parse(ll3[0]), (int)e.TotalY - int.Parse(ll3[1]), size);

这里是aaaa方法:

private SKBitmap aaaa(SKBitmap inputImage, float strength, int brushSize, int brushLocation, int radius)
{
    
}

我已经确认aaaa方法正确接收了SKBitmap,但结果却出乎意料。您能帮我了解可能导致这种差异的原因吗?任何见解或建议将不胜感激。

谢谢!

c# xamarin skiasharp
1个回答
0
投票

我发现我需要先分配它而不是不断地使用它。

© www.soinside.com 2019 - 2024. All rights reserved.