Графика SkiaSharp в Xamarin.FormsSkiaSharp Graphics in Xamarin.Forms

Загрузить образец загрузить примерDownload Sample Download the sample

Использование SkiaSharp для двумерной графики в приложениях Xamarin.FormsUse SkiaSharp for 2D graphics in your Xamarin.Forms applications

SkiaSharp — это система Двухмерная графика для .NET и C# на платформе Skia графики открытым исходным кодом, которая широко используется в продуктах Google.SkiaSharp is a 2D graphics system for .NET and C# powered by the open-source Skia graphics engine that is used extensively in Google products. SkiaSharp в приложениях Xamarin.Forms можно использовать для рисования двухмерной векторной графики, точечные рисунки и текст.You can use SkiaSharp in your Xamarin.Forms applications to draw 2D vector graphics, bitmaps, and text. См. в разделе двухмерного рисования руководство более общие сведения о библиотеке SkiaSharp и других учебников.See the 2D Drawing guide for more general information about the SkiaSharp library and some other tutorials.

В этом руководстве предполагается, что вы знакомы с программированием для Xamarin.Forms.This guide assumes that you are familiar with Xamarin.Forms programming.

Веб-семинар: SkiaSharp для Xamarin.FormsWebinar: SkiaSharp for Xamarin.Forms

Предварительные действия SkiaSharpSkiaSharp Preliminaries

SkiaSharp для Xamarin.Forms упакован в виде пакета NuGet.SkiaSharp for Xamarin.Forms is packaged as a NuGet package. После создания решения Xamarin.Forms в Visual Studio или Visual Studio для Mac, можно использовать диспетчер пакетов NuGet для поиска SkiaSharp.Views.Forms пакета и добавить его в решение.After you've created a Xamarin.Forms solution in Visual Studio or Visual Studio for Mac, you can use the NuGet package manager to search for the SkiaSharp.Views.Forms package and add it to your solution. Если проверить ссылки раздел проекта после добавления SkiaSharp, можно увидеть, что различные SkiaSharp библиотеки были добавлены все проекты в решении.If you check the References section of each project after adding SkiaSharp, you can see that various SkiaSharp libraries have been added to each of the projects in the solution.

Если приложение Xamarin.Forms предназначено для iOS, используйте страницы свойств проекта для изменения минимальной цели развертывания iOS до версии 8.0.If your Xamarin.Forms application targets iOS, use the project properties page to change the minimum deployment target to iOS 8.0.

На любой странице C#, использующий SkiaSharp нужно будет включать using директив для SkiaSharp пространство имен, которое включает в себя все SkiaSharp классы, структуры и перечисления, которые будут использоваться в графики программирование.In any C# page that uses SkiaSharp you'll want to include a using directive for the SkiaSharp namespace, which encompasses all the SkiaSharp classes, structures, and enumerations that you'll use in your graphics programming. Также стоит using директив для SkiaSharp.Views.Forms пространство имен для классов, определенных в Xamarin.Forms.You'll also want a using directive for the SkiaSharp.Views.Forms namespace for the classes specific to Xamarin.Forms. Это гораздо меньше пространства имен, с наиболее важных класса, SKCanvasView .This is a much smaller namespace, with the most important class being SKCanvasView. Этот класс является производным от Xamarin.Forms View класса и размещает в SkiaSharp графический вывод данных.This class derives from the Xamarin.Forms View class and hosts your SkiaSharp graphics output.

Важно!

SkiaSharp.Views.Forms Пространство имен также содержит SKGLView класс, производный от View , но использует OpenGL для рендеринга графики.The SkiaSharp.Views.Forms namespace also contains an SKGLView class that derives from View but uses OpenGL for rendering graphics. Для простоты в этом руководстве задействует для SKCanvasView, однако применение SKGLView вместо очень похож.For purposes of simplicity, this guide restricts itself to SKCanvasView, but using SKGLView instead is quite similar.

Основы рисования в SkiaSharpSkiaSharp Drawing Basics

Самый простой числа графики, которые можно нарисовать с SkiaSharp представлен ряд круги, овалы и прямоугольники.Some of the simplest graphics figures you can draw with SkiaSharp are circles, ovals, and rectangles. При отображении эти цифры, вы узнаете о координатах SkiaSharp, размеры и цвета.In displaying these figures, you will learn about SkiaSharp coordinates, sizes, and colors. Отображение текста и точечные рисунки более сложен, но в этих статьях также вводит эти методы.The display of text and bitmaps is more complex, but these articles also introduce those techniques.

Строки и пути SkiaSharpSkiaSharp Lines and Paths

Графический путь представляет собой ряд соединенных прямых линий и кривых.A graphics path is a series of connected straight lines and curves. Пути можно заштриховывать, заполнен, или оба.Paths can be stroked, filled, or both. В этой статье включает многие аспекты рисования линии, включая stroke концами и соединениями, а также пунктирная и пунктирные линии, но не хватает, кривая геометрических объектов.This article encompasses many aspects of line drawing, including stroke ends and joins, and dashed and dotted lines, but stops short of curve geometries.

Преобразование SkiaSharpSkiaSharp Transforms

Преобразования также позволяют графические объекты равномерно перевода, масштабировать, поворачивать, и синхронизована.Transforms allow graphics objects to be uniformly translated, scaled, rotated, or skewed. В этой статье также показано, как можно использовать матрицу стандартные преобразования 3 x 3 для создания неаффинные преобразования и применение преобразования к пути.This article also shows how you can use a standard 3-by-3 transform matrix for creating non-affine transforms and applying transforms to paths.

Пути и кривые SkiaSharpSkiaSharp Curves and Paths

Просмотр путей продолжается с добавлением кривых в контурные объекты и использовать другие функции эффективные пути.The exploration of paths continues with adding curves to a path objects, and exploiting other powerful path features. Вы увидите, как можно указать весь путь в краткую текстовую строку, как использовать эффекты пути и как внутренние компоненты пути во всех подробностях.You'll see how you can specify an entire path in a concise text string, how to use path effects, and how to dig into path internals.

Растровые изображения SkiaSharpSkiaSharp Bitmaps

Точечные рисунки имеют прямоугольную массивы биты, соответствующие точкам устройства отображения.Bitmaps are rectangular arrays of bits corresponding to the pixels of a display device. Этой серии статей показано, как загрузить, сохранить, отображения, создать, рисовать на, анимация и доступ к биты SkiaSharp точечных рисунков.This series of articles shows how to load, save, display, create, draw on, animate, and access the bits of SkiaSharp bitmaps.

Эффекты SkiaSharpSkiaSharp Effects

Эффекты являются свойствами, которые изменить обычный отображение графики, включая линейными и круговыми градиентов, мозаичное заполнение для точечных рисунков, blend режимы, размытия и другим пользователям.Effects are properties that alter the normal display of graphics, including linear and circular gradients, bitmap tiling, blend modes, blur, and others.