问题标签 [skiasharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5793 浏览

c# - 我可以使用 SkiaSharp 将 SVG 渲染为 PNG 吗?

我正在尝试使用 SkiaSharp 将 SVG 文件转换为 PNG。我知道有很多选择,但我想评估它的 SVG 负载支持。

这可能吗?我试过这个:

但我只是得到一个空图像。

0 投票
1 回答
816 浏览

xamarin - SkiaSharp 和 Xamarin.Forms - 无法解码 png

在 PCL 中使用以下代码时,我得到一个ArgumentNullExceptionfor parameter name codec

异常被抛出SKBitmap.Decode。我可以验证图像是有效的 PNG 文件,并且流的长度大于 0。

我需要单独安装编解码器吗?我在样本中没有看到任何关于它的信息。

0 投票
1 回答
5321 浏览

ios - 如何使用 Skia Sharp 添加矩形并将填充颜色和描边颜色应用于该对象?

如何使用 Skia Sharp 添加矩形或任何形状并将填充颜色和描边颜色应用于 iOS 中的该对象

0 投票
1 回答
453 浏览

c# - UWP SwapChainPanel 内容模糊/缩放

我正在使用skia (通过ANGLE)进行绘图SwapChainPanel,一切顺利。但是,我遇到的一个问题是内容正在高 DPI 屏幕上缩放。

我的机器上有一个高分辨率 (x2) 和一个普通 (x1) 屏幕。面板的内容在 1x 显示器上看起来很棒,但是当我将它拖过来时,窗口会调整大小并缩放内容。我如何告诉面板不要缩放内容,而是让我调整我的一侧?

我当前的解决方案是以所需的比例(例如:)创建我的渲染缓冲区,panel.Width * 2然后使用该RenderTransform属性并设置ScaleTransform(例如:)0.5

内容现在看起来流畅清晰,但现在布局受到影响。由于渲染转换已“调整大小”面板。

这样做的正确方法是什么?

编辑

这就是我正在做的创建缓冲区:

https://github.com/mono/SkiaSharp/blob/master/source/SkiaSharp.Views/SkiaSharp.Views.UWP/AngleSwapChainPanel.cs#L199-L285

0 投票
1 回答
775 浏览

xamarin - 使用 Skia 图形库的 Xamarin 表单(android 项目)错误渲染图像

我正在尝试使用我的 xamarin 表单解决方案中的skia 图形库加载和渲染图像。当我尝试渲染图像(运行 android 项目)时,出现以下错误:

这是代码:

我在网上找不到任何适用于 xamarin 的示例代码。任何示例代码或链接将不胜感激。

提前致谢

0 投票
2 回答
3595 浏览

xamarin - Xamarin 表单上的 SkiaSharp 文本大小

文字大小比较

SKPaint 对象上的 TextSize 属性与“标准”Xamarin Forms FontSize 有何关系?

在图像中,您可以看到标签上的 40 码和涂漆时的区别。我需要做什么才能使它们的大小相同?

0 投票
0 回答
359 浏览

xamarin - Xamarin 表单上的 Skiasharp:SKCodec.Create 返回 null

我正在关注 github repo 中的 SKiaSharps 示例。在我自己的代码中,我执行以下操作:

sourceStream 是从 MediaFile 的 GetStream() 检索的 System.IO.MemoryStream,如下所示:

第一个片段中的市场代码抛出异常,SKCodec 不能为空。

我在这个问题上花了大约一个星期,但无济于事。任何帮助表示赞赏。

谢谢

0 投票
1 回答
107 浏览

skia - Skia 掩码格式中的 BW 代表什么?

我尝试到处搜索,但找不到 BW 代表什么。这是链接:https ://developer.xamarin.com/api/type/SkiaSharp.SKMaskFormat/ 非常感谢。

0 投票
2 回答
9298 浏览

c# - Xamarin:如何获取光标/触摸坐标(位置 X 和 Y)?

介绍

我正在创建我的第一个 Xamarin 应用程序(它将首先针对 UWP,然后是 Android,最后可能是 iOS)。

基本上,应用程序应该检测到多个手指,并且圆圈会在每个手指上弹出并跟随它们。

我的应用

首先,我认为 UI 和图形无法用 Xamarin 编码,所以我开始使用 UWP 代码:

MainPage.xaml.cs

主页.xaml

如您所见,我可以获得光标的 X 和 Y 位置,但我的椭圆不显示。所以我注意到 Xamarin xaml 赢了,而不是我的 UWP xaml。

所以我再次尝试使用 Xamarin。我寻找共享代码图形 API,我找到了 SkiaSharp。我的椭圆出现在 Xamarin 代码中:

MainPage.xaml.cs

主页.xaml

最后,它只停留在每个触摸点的 X 和 Y 位置上来绘制我的椭圆。如您所见,我以不同的方式看待:TapGestureRecognizerPanGestureRecognizer...

但我无法得到那些坐标。

我找到了 MR.Gestures API,但它是按应用名称许可的。

问题

所以,我问实验的人:

  • Xamarin 是否提供触摸位置/手势 API?
  • MR.Gestures 是处理触摸的最佳解决方案吗?
  • 是否有其他触摸共享代码 API?

或者简单地说,我怎样才能用 Xamarin 获得所有接触点的坐标

谢谢

PS:我在写这个堆栈时发现这篇文章,阅读......

0 投票
1 回答
1076 浏览

c# - C#:在 SKCanvas 中绘图时出现 AccessViolationException

介绍

我正在创建我的第一个 Xamarin 应用程序(它将首先针对 UWP,然后是 Android,最后可能是 iOS)。

基本上,应用程序应该检测到多个手指,并且圆圈会在每个手指上弹出并跟随它们。

问题

我正在System.AccessViolationException尝试从 MR.gesturesSKCanvas使用我的onPanning方法。

截屏

UWP 应用和 Visual Studio 2017 上的 AccessViolationException

细节

L'exception System.AccessViolationException s'est produite
HResult=0x80004003 Message=试图读取或写入受保护的内存。这通常表明其他内存已损坏。
来源= Arborescence des appels de procédure:à SkiaSharp.SkiaApi.sk_canvas_draw_circle(IntPtr t,Single cx,Single cy,Single radius,IntPtr paint)à SkiaSharp.SKCanvas.DrawCircle(Single cx,Single cy,Single radius,SKPaint paint)à App1.MainPage.drawCircleOnCanvas(Point pointerPos, Int32 radius) dans d:\Profiles\qpollet\Documents\Visual Studio 2017\Projects\App1\App1\App1\MainPage.xaml.cs :ligne 70 à App1.MainPage.onPanning(Object发件人,PanEventArgs e) dans d:\Profiles\qpollet\Documents\Visual Studio 2017\Projects\App1\App1\App1\MainPage.xaml.cs :ligne 54 à MR.Gestures.GestureHandler.<>c__DisplayClass115_0`1.b__0( ) à Xamarin.Forms.Platform.UWP.WindowsBasePlatformServices.<>c__DisplayClass2_0.b__0()

编码

MainPage.xaml.cs

主页.xaml

结果 Windows 10 模拟器上的 Xamarin SKCanvas 屏幕截图

任何想法 ?