{"id":18009839,"url":"https://github.com/kekyo/skiaimageview","last_synced_at":"2025-07-20T05:33:07.192Z","repository":{"id":42773222,"uuid":"480673907","full_name":"kekyo/SkiaImageView","owner":"kekyo","description":"A control for easy way showing SkiaSharp-based image objects onto WPF/XF/.NET MAUI/Avalonia applications.","archived":false,"fork":false,"pushed_at":"2023-07-10T00:41:55.000Z","size":1044,"stargazers_count":34,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-26T11:46:19.759Z","etag":null,"topics":["avalonia","control","dotnet","imaging","maui","skbitmap","skdrawable","skiasharp","skimage","skpicture","sksurface","wpf","xamarin-forms"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kekyo.png","metadata":{"files":{"readme":"README.ja.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-12T05:59:38.000Z","updated_at":"2025-05-22T16:53:03.000Z","dependencies_parsed_at":"2024-10-30T02:32:03.796Z","dependency_job_id":null,"html_url":"https://github.com/kekyo/SkiaImageView","commit_stats":{"total_commits":55,"total_committers":1,"mean_commits":55.0,"dds":0.0,"last_synced_commit":"efbf8812cd3870683ae01879a2583f3e34d7a97e"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/kekyo/SkiaImageView","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FSkiaImageView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FSkiaImageView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FSkiaImageView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FSkiaImageView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kekyo","download_url":"https://codeload.github.com/kekyo/SkiaImageView/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FSkiaImageView/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266071519,"owners_count":23871940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avalonia","control","dotnet","imaging","maui","skbitmap","skdrawable","skiasharp","skimage","skpicture","sksurface","wpf","xamarin-forms"],"created_at":"2024-10-30T02:11:14.042Z","updated_at":"2025-07-20T05:33:07.171Z","avatar_url":"https://github.com/kekyo.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SkiaImageView\n\n![SkiaImageView](Images/SkiaImageView.100.png)\n\n[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n\n## NuGet\n\n|Package|NuGet|\n|:----|:----|\n|SkiaImageView.Wpf|[![NuGet SkiaImageView.Wpf](https://img.shields.io/nuget/v/SkiaImageView.Wpf.svg?style=flat)](https://www.nuget.org/packages/SkiaImageView.Wpf)|\n|SkiaImageView.Avalonia11|[![NuGet SkiaImageView.Avalonia11](https://img.shields.io/nuget/v/SkiaImageView.Avalonia11.svg?style=flat)](https://www.nuget.org/packages/SkiaImageView.Avalonia11)|\n|SkiaImageView.Avalonia|[![NuGet SkiaImageView.Avalonia](https://img.shields.io/nuget/v/SkiaImageView.Avalonia.svg?style=flat)](https://www.nuget.org/packages/SkiaImageView.Avalonia)|\n|SkiaImageView.Xamarin.Forms|[![NuGet SkiaImageView.Xamarin.Forms](https://img.shields.io/nuget/v/SkiaImageView.Xamarin.Forms.svg?style=flat)](https://www.nuget.org/packages/SkiaImageView.Xamarin.Forms)|\n|SkiaImageView.Maui|[![NuGet SkiaImageView.Maui](https://img.shields.io/nuget/v/SkiaImageView.Maui.svg?style=flat)](https://www.nuget.org/packages/SkiaImageView.Maui)|\n\n----\n\n[English language](https://github.com/kekyo/SkiaImageView/)\n\n## これは何?\n\n[SkiaSharp](https://github.com/mono/SkiaSharp) ベースのイメージオブジェクトを、UIアプリケーションに簡単に表示するためのコントロールです。\n`Source` プロパティに、SkiaSharpのイメージオブジェクトをバインディングするだけで表示できます。\n\n`SKImageView` コントロールは、[WPFの `System.Windows.Controls.Image`](https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.image?view=windowsdesktop-6.0)\nとほぼ同じ使い方で表示させることが出来ます。\n\nSkiaSharpイメージオブジェクトとしてサポートしているクラスです: `SKBitmap`, `SKImage`, `SKPicture`, `SKDrawable`, `SKSurface`\n\nXAMLの例:\n\n```xml\n\u003cWindow xmlns:siv=\"https://github.com/kekyo/SkiaImageView\"\u003e\n    \u003csiv:SKImageView\n        Stretch=\"Uniform\"\n        Source=\"{Binding PreviewImage}\" /\u003e\n\u003c/Window\u003e\n```\n\n```csharp\npublic sealed class ViewModel\n{\n    public SKBitmap? PreviewImage { get; set; }\n\n    // ...\n}\n```\n\nサンプルコードの一覧です:\n\n* [Avalonia 11サンプル](https://github.com/kekyo/SkiaImageView/tree/main/samples/SkiaImageView.Avalonia11.Sample)\n* [Avalonia (older)サンプル](https://github.com/kekyo/SkiaImageView/tree/main/samples/SkiaImageView.Avalonia.Sample)\n* [WPFサンプル](https://github.com/kekyo/SkiaImageView/tree/main/samples/SkiaImageView.Wpf.Sample)\n* [Xamarin Formsサンプル](https://github.com/kekyo/SkiaImageView/tree/main/samples/SkiaImageView.Xamarin.Forms.Sample)\n* [.NET MAUIサンプル](https://github.com/kekyo/SkiaImageView/tree/main/samples/SkiaImageView.Maui.Sample)\n\nどのプラットフォームで使用しても、使いかたはほぼ同一です。\n\n----\n\n## サポートされているプラットフォーム\n\n### WPF\n\n* .NET 7, 6, 5 (`net7.0-windows`, `net6.0-windows`, `net5.0-windows`)\n* .NET Core 3.1, 3.0 (`netcoreapp3.1`, `netcoreapp3.0`)\n* .NET Framework 4.8, 4.6.2 (`net48`, `net462`)\n* SkiaSharp: 2.80.0以上\n\n### Avalonia\n\n* .NET 7, 6, 5 (`net7.0`, `net6.0`, `net5.0`)\n* .NET Core 3.1, 3.0, (`netcoreapp3.1`, `netcoreapp3.0`)\n* .NET Core 2.2, 2.1, 2.0 (`netcoreapp2.2`, `netcoreapp2.1`, `netcoreapp2.0`)\n* .NET Framework 4.8, 4.6.2 (`net48`, `net462`)\n* Avalonia 11:\n  * Avalonia: 11.0.0以上\n  * SkiaSharp: 2.88.3以上\n* Avalonia (older):\n  * Avalonia: 0.10.0以上\n  * SkiaSharp: 2.80.0以上\n  * \n### Xamarin Forms\n\n* .NET Standard 2.0 (`netstandard2.0`)\n* Xamarin Forms: 5.0.0.1874以上\n* SkiaSharp: 2.80.0以上\n\n### .NET MAUI\n\n* .NET 7, 6 (`net7.0`, `net6.0`)\n* .NET MAUI: 6以上\n* SkiaSharp: 2.88.0以上 (2.80.0ではありません。何故なら、このバージョンには不正な型参照が含まれており、MAUI環境では正しく機能しないためです。)\n\n----\n\n## プロパティ一覧\n\n|プロパティ名|内容|\n|:----|:----|\n|`Source`|SkiaSharpオブジェクトを設定します。一覧は後述。|\n|`Stretch`|[Stretch列挙型](https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.stretch?view=windowsdesktop-6.0)|\n|`StretchDirection`|[StretchDirection列挙型](https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.stretchdirection?view=windowsdesktop-6.0)|\n|`RenderMode`|レンダリングモードを示す列挙型|\n\n### Source property\n\n`Source`プロパティには、以下のSkiaSharpオブジェクトを設定出来ます:\n\n|使用可能な型|アスペクト比の計算元|備考|\n|:----|:----|:----|\n|`SKBitmap`|元のイメージ| |\n|`SKImage`|元のイメージ| |\n|`SKPicture`|配置先の`RenderSize`による| |\n|`SKDrawable`|配置先の`RenderSize`による| |\n|`SKSurface`|配置先の`RenderSize`による| |\n|`string`|元のイメージ|イメージをダウンロードするURL|\n|`Uri`|元のイメージ|イメージをダウンロードするURL|\n\nいくつかの型は描画時のアスペクト比を、コントロールが配置された場所の `RenderSize` によって決定します。\nその場合、イメージの正しいアスペクト比を維持するためには、XAMLによって制御する必要があります。\n\n注意: WPFにおいてURLを指定する場合は、WPFのリソースフォームURLを認識できません。\n(これらは、`application:` や `pack:` から始まります。)\n\n### RenderModeプロパティ\n\nイメージのレンダリングを行う方法を、以下から選択出来ます:\n\n|RenderMode|詳細|\n|:----|:----|\n|`Synchronously`|全てのレンダリングは、同期的に実行されます。|\n|`AsynchronouslyForFetching`|デフォルトです。`Source`プロパティがURLで指定された場合のみ、イメージのフェッチを非同期で実行し、その後表示します。|\n|`Asynchronously`|全てのレンダリングは、非同期的に実行されます。|\n\n`AsynchronouslyForFetching`がデフォルトです。\n`Asynchronously`を使用する場合は、`Source`に指定されるイメージの詳細が、暗黙の内に変更されないようにする必要があります。\nこの制約を実現するのは難易度が高いかもしれません。\n\n----\n\n## ライセンス\n\nApache-v2.\n\n----\n\n## 履歴\n\n[英語のREADME](https://github.com/kekyo/SkiaImageView#history)を参照して下さい。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkekyo%2Fskiaimageview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkekyo%2Fskiaimageview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkekyo%2Fskiaimageview/lists"}