问题标签 [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 回答
5865 浏览

c# - 使用 SkiaSharp 旋转照片

我正在尝试SkiaSharp使用以下代码将照片旋转 90 度:

但是当我将位图保存到JPEG文件时,它在图像的顶部和底部都有边距。

原图:http: //imgur.com/pGAuko8。旋转图像:http: //imgur.com/bYxpmI7

我究竟做错了什么?

0 投票
1 回答
435 浏览

xamarin.ios - 在 ILMerge SkiaSharp 进入我的 Xamarin.iOS dll 之后引发 DllNotFoundException

我尝试创建一个 Xamarin.iOS 类库,它在内部使用 SkiaSharp。我想将最终的类库作为单个 dll 分发,而不需要外部依赖。为此,我使用 ILMerge(或 ILRepack)。最终 dll 已成功创建,但是当我尝试从类库中调用某些方法时,我得到了 DllNotFoundException。这是堆栈跟踪:

{System.DllNotFoundException:@rpath/libSkiaSharp.framework/libSkiaSharp at (wrapper managed-to-native) SkiaSharp.SkiaApi:sk_filestream_new (string) at SkiaSharp.SKFileStream..ctor (System.String path) [0x00000] in <9d222c42d8aa4f729033b25ddebc012a> :0 at SkiaSharp.SKBitmap.Decode (System.String filename) [0x00011] in <9d222c42d8aa4f729033b25ddebc012a>:0 at TestMerge.TestClass.TestMethod (System.String imageFile) [0x00001] in <9d222c42d8aa4f729033b25ddebc012a>:0 at Test.Test .Test001 () [0x00002] 在 /Users/mac1/Projects/awxamarin/Xamarin.Tests/Tests.Xamarin/Tests.cs:19 }

重现步骤:

  1. 创建一个简单的 Xamarin.iOS 类库。
  2. 添加对 SkiaSharp 的引用
  3. 使用使用 SkiaSharp 的方法创建一些简单的公共类。例如

    /li>
  4. 使用 ILMerge(或者如果你更喜欢 ILRepack)构建项目并合并 dll。以下是用于合并 dll 的命令:

    ILMerge.exe /log:C:\Temp\ILMerge.log /internalize /ndebug /targetplatform:v4,"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework \Xamarin.iOS\v1.0" /out:C:\Temp\TestMerge.dll C:\Temp\TestMerge\TestMerge\bin\Debug\TestMerge.dll C:\Temp\TestMerge\TestMerge\bin\Debug\SkiaSharp .dll

  5. 创建 Xamarin.iOS 应用程序(我使用 UnitTest 应用程序进行测试)添加对创建的 dll 的引用,调用方法 TestMethod。结果 System.DllNotFoundException: @rpath/libSkiaSharp.framework/libSkiaSharp 发生。

我试图反编译我的 dll 并且 libSkiaSharp.framework 在那里,它作为资源嵌入,就像在 SkiaSharp.dll 中一样。任何帮助表示赞赏,我坚持这一点。顺便说一句,完全相同的方法适用于 Xamarin.Android。

0 投票
2 回答
2341 浏览

xamarin - SkiaSharp 不使用 StrokeAndFill 填充三角形

我正在尝试绘制并填充一个三角形。我提到了一个 android - 问题如何在 android Canvas 上绘制填充三角形并执行了以下操作。它绘制了三角形,但没有填充它。如何填满?另外,是否可以用与线条颜色不同的颜色填充它?

Xamarin 表单

在此处输入图像描述

0 投票
2 回答
1143 浏览

xamarin - SkiaSharp ArcTo Method does not draw curve

I am trying to draw an arc on a SkiaSharp canvas view using following code.

But instead of a curve, it is drawing a straight line. How to make it as a curve?

Complete Code

XAML

enter image description here

0 投票
1 回答
94 浏览

xamarin - 获取 SKPath 中 SKPoint 的索引

我没有看到 SKPath.Points 的 IndexOf 或 FindIndex 方法。我需要能够获得指定点两侧的相邻点。Path.Iterator 只有 .Next,所以我正在寻找使用 SKPoint 的索引。

由于 IndexOf 或 FindIndex 似乎缺失,我正在考虑在后台继承和维护第二个数据集以获取索引。

我错过了一些明显的东西吗?到目前为止,其他人如何获得索引?

0 投票
1 回答
707 浏览

svg - 如何在以 xamarin 形式呈现的 svg 图像上添加标记

我是 xamarin 的新手,并使用 xamarin 形式 PCL 方式开发跨平台应用程序。

我有一个 svg 格式的地图图像。我正在使用 SkiaSharp 库通过 PCL 在我的 UWP 应用程序上加载该图像。我有 1 个具有位置名称的 ListView。我想在单击相应的列表视图项时在图像上绘制注释或位置标记。例如:如果我单击 XYZ 位置,标记将显示在特定位置。

通过使用任何地图 api 或 xamarin 地图可以轻松实现此功能,但我的问题是我不能使用任何地图 api,只能在图像上显示位置。

请提出任何解决方案。任何帮助,将不胜感激。

提前致谢。

0 投票
2 回答
827 浏览

ios - Xamarin.Forms SkiaSharp Gradient 适用于 Android 但不适用于 iOS

我们的页面需要渐变,所以我们使用 SkiaSharp 和 GradientView。这在 Android 上运行良好,但在 iOS 上不起作用 - Gradient 只是不显示。

我们是否需要使用 AppDelegate 中的渲染器或代码对 iOS 上的 SkiaSharp 进行任何特定于 iOS 的初始化?

编辑这是在装有 iOS 10.3.3 的 iPad 上运行的。我们的 XAML:

我们的 XAML.cs

0 投票
1 回答
1176 浏览

c# - SkiaSharp - how to move objects on canvas

Is there a way to draw a line (or any shape) on a canvas, and then move that line?

I didn't see a way to do it, except maybe by constantly clearing and redrawing the entire canvas. Is that the only way?

0 投票
0 回答
873 浏览

canvas - SkiaSharp 如何将文本与另一个对象右对齐

如果我想使用 DrawText 在画布上绘制一些文本,但我希望文本在屏幕中心结束,我该怎么做?我尝试将 DrawText 中的 x 参数设置为屏幕中间,然后在 SKPaint 定义内右对齐,但它位于中间的右侧,而不是左侧。

我觉得这应该相当简单,但它不适合我。帮助将不胜感激。


用我用来尝试做我想做的事情的代码附加我的问题......

...在此之前,我正在做一个paint.MeasureText(text),但意识到右对齐是不可能准确、一致地做到的。

0 投票
2 回答
7353 浏览

ios - Xamarin.Forms IOS 错误替换现有签名

我认为这个错误是在我更改配置文件后开始发生的。

我的应用程序在 Visual 2017 Xamarin.Forms 项目上,并在连接到 MAC 书的 Windows PC 上构建。Android 和 UWP 项目运行良好。

我努力了:

  • 卸载/重新安装skiasharp包
  • 使用卸载脚本卸载 Xamarin.IOS 并清空 MAC 端的缓存文件夹
  • 允许对所有应用程序的钥匙串进行完全访问

这是错误:

/Users/myusername/Library/Caches/Xamarin/mtbs/buildsenter code here/MyAppName.iOS/ec3fa8c87274cfb85c8423bb8f475608/bin/iPhone/Debug/MyAppName.iOS.app/Frameworks/libSkiaSharp.framework/libSkiaSharp:替换现有签名/Users/myusername /Library/Caches/Xamarin/mtbs/builds/MyAppName.iOS/ec3fa8c87274cfb85c8423bb8f475608/bin/iPhone/Debug/MyAppName.iOS.app/Frameworks/libSkiaSharp.framework/libSkiaSharp:未知错误-1=ffffffffffffffff

这是一个相关的帖子,但我不明白:

Codesign 在“替换现有签名”后返回未知错误

更新:新版本更新到 Xamarin.IOS v11 后的更多输出: