标签: skiasharp

SkiaSharp Tiff支持

目前,SkiaSharp不支持tiff图像.(它支持jpg,gif,bmp,png和其他一些.)

如何将tiff图像转换为SKBitmap对象?

一个想法:也许有一种有效的方法来转换tiff流> png流> SKBitmap对象?我不确定System.Drawing能否有效处理tiff> png流.另一个可能的选择是LibTiff.Net,但需要一个如何将tiff流转换为png流的示例.

另一个想法:访问tiff像素并将其直接绘制到SKCanvas上?

其他想法?

.net c# libtiff.net .net-core skiasharp

3
推荐指数
1
解决办法
825
查看次数

在Skiasharp中加载字体

如何在Xamarin表单的skiasharp中使用自定义字体。

我试过了

paint.Typeface = SKTypeface.FromFamilyName("CoText_Bd"); 
Run Code Online (Sandbox Code Playgroud)

paint.Typeface = SKTypeface.FromFile("CoText_Bd");
Run Code Online (Sandbox Code Playgroud)

但是两者都没有解决。我是否需要使用依赖项服务访问字体的路径?

xamarin.ios xamarin.android xamarin xamarin.forms skiasharp

3
推荐指数
2
解决办法
1700
查看次数

在Visual Studio中使用SkiaSharp

我正在研究将SkiaSharp用于未来的项目,遵循GitHub上现有的文档:

https://developer.xamarin.com/guides/cross-platform/drawing/introduction/

我正在使用Windows 7上的Visual Studio 2013进行开发.我尝试使用Xamarin Android App项目类型,但它需要SkiaSharp软件包中的DllImportAttribute的营业执照.

我想知道是否有可能选择一个C#Visual Studio项目,如何能够显示SkiaSharp画布,如果是这样,我该怎么做?

c# visual-studio skia xamarin skiasharp

2
推荐指数
1
解决办法
5903
查看次数

Skia View中的透明部件

我正在尝试在Xamarin.forms中使用SkiaSharp在图像上绘制一些多边形.图像从服务器下载,而不是在后台缓存.所以我宁愿不操纵图像本身,而是绘制一个新的画布并将其放置在图像顶部的新视图中,就像在屏幕截图中一样.(使用相对布局)正如您在屏幕截图中看到的那样,放置矩形不是问题,但"透明"部分并不是真正透明的.

第一个截图的代码:

using (var paint = new SKPaint ()) {
  paint.IsAntialias = true;
            using (var path = new SKPath ()) {
                path.MoveTo (0f, 0f);
                path.LineTo (width, height);
                path.LineTo (0, width);
                path.Close ();

                paint.Color = SKColors.Orange;
                canvas.DrawPath (path, paint);

            }
        }
Run Code Online (Sandbox Code Playgroud)

在第二次我尝试使用

            canvas.Clear(SKColors.Transparent);
Run Code Online (Sandbox Code Playgroud)

但它只会改变为黑色背景.

有谁知道在滑雪视图中是否可以有完全透明的部分?

skia xamarin xamarin.forms skiasharp

2
推荐指数
1
解决办法
1592
查看次数

如何使用Skia或SkiaSharp绘制富文本

我想FormattedStringSkiaSharp绘制iOS的Attributed Text或Xamarin.Forms等富文本,但我找不到如何.

我找到了这个DrawText方法,但它是用一种颜色和一种字体进行简单的文本渲染.没有混合颜色和/或字体,也没有粗体,斜体,透视或下划线等样式.

我是否必须使用自己的富文本渲染逻辑?

c# skia xamarin skiasharp

2
推荐指数
1
解决办法
3739
查看次数

SkiaSharp 使用 ICC 配置文件保存图像

在SkiaSharp中,当您从现有图像创建新图像时(例如调整大小时),如何使用原始图像的ICC配置文件保存新图像?

c# .net-core skiasharp

2
推荐指数
1
解决办法
1163
查看次数

SkiaSharp 镜像位图

我正在寻找镜像位图,以便可以将图像及其镜像彼此相邻。我正在使用 SkiaSharp,我的位图是 SKBitmap,我将它们绘制在画布上。

canvas.Translate( -imageWidth/ 2.0f, -imageHeight/ 2.0f );
canvas.Scale( -1, 1,0,0 );
canvas.DrawBitmap( bitmap, new SKPoint( 0.0f, 0.0f ) );
canvas.Scale( -1, 1, 0, 0 );
canvas.Translate( imageWidth/ 2.0f, imageHeight / 2.0f );
Run Code Online (Sandbox Code Playgroud)

我将图像围绕原点居中,围绕 Y 轴镜像,在画布上绘制位图,然后撤消变换以获得结果。

我的问题似乎是,当我开始使用缩放方法时,位图就消失了。如果我画一个圆圈之类的东西就不会发生这种情况。

c# android bitmap xamarin skiasharp

2
推荐指数
1
解决办法
2125
查看次数

使用x,y坐标计算角度

我的目标是计算用户手指围绕scren中心点的拖动,我尝试使用Math.Atan2()尝试了一些不好的尝试.仅供参考我在Xamarin应用程序中使用SkiaSharp,但为了简单起见我只需要帮助以下方案.

使用下面的截图可能有人告诉我产生以下结果的最佳方法?

A = 0度

B = 90度

C = 180度

D = 270度

在此输入图像描述

c# math xamarin skiasharp

2
推荐指数
1
解决办法
504
查看次数

如何在 skcanvas.drawImage 中使用资源中的图像?

我正在尝试使用 SkiaSharp SKDocument 类在 xamarin 中编写 PDF,但在 skCanvas.drawImage() 中使用“MyProject.Droid/Resources/Drawable”中的图像时遇到问题。我将图像存储在 ImageSource 中,我需要将其转换为 SKImage,但是如何转换?

SKDocument sKDocument = 
SKDocument.CreatePdf("/storage/emulated/0/Teste5.pdf");
var canvas = sKDocument.BeginPage(2480, 3508);
canvas.Clear(SKColors.White);

Image image = new Image();
image.Source = "MyImage.png";
canvas.DrawImage();
Run Code Online (Sandbox Code Playgroud)

我需要将图像投射到 Skimage 才能绘制它

c# visual-studio xamarin xamarin.forms skiasharp

2
推荐指数
1
解决办法
2915
查看次数

SkiaSharp SKBitmap.Decode() 值不能为空。(参数“缓冲区”)

我正在尝试从 Blazor InputFile 组件上传多个图像:

<InputFile OnChange="@LoadFiles" multiple accept=".png, .jpg, .jpeg, .gif" />
Run Code Online (Sandbox Code Playgroud)

一旦进入内存,我需要使用 SkiaSharp 将它们的大小调整为最大宽/高 1000 像素。我为此创建了一个辅助方法,但它似乎在任何超过大约 4MB 的图像上失败。我通过搜索以及任何可用的(相当缺乏的)Microsoft 文档将以下逻辑拼凑在一起,因此我的方法可能完全错误:

using SkiaSharp;

public static byte[] Resize(byte[] fileContents, int maxWidth, int maxHeight)
{
    using MemoryStream ms = new(fileContents);
    using SKBitmap sourceBitmap = SKBitmap.Decode(ms); // <-- EXCEPTION HERE ON LARGER FILES
                        
    int height = Math.Min(maxHeight, sourceBitmap.Height);
    int width = Math.Min(maxWidth, sourceBitmap.Width);
    var quality = SKFilterQuality.High;

    using SKBitmap scaledBitmap = sourceBitmap.Resize(new SKImageInfo(width, height), quality);
    using SKImage scaledImage = SKImage.FromBitmap(scaledBitmap);
    using SKData data = …
Run Code Online (Sandbox Code Playgroud)

c# memorystream skiasharp blazor-server-side .net-6.0

2
推荐指数
1
解决办法
2238
查看次数