Package | NuGet |
---|---|
SkiaImageView.Wpf | |
SkiaImageView.Avalonia11 | |
SkiaImageView.Avalonia | |
SkiaImageView.Xamarin.Forms | |
SkiaImageView.Maui |
A control for easy way showing SkiaSharp-based image objects onto UI applications.
You can simply bind a SkiaSharp image object to Source
property.
SKImageView
is a control of SkiaSharp image drawing.
You can manipulate same as with WPF's System.Windows.Controls.Image
.
Supported SkiaSharp types are: SKBitmap
, SKImage
, SKPicture
, SKDrawable
and SKSurface
.
XAML example:
<Window xmlns:siv="https://github.com/kekyo/SkiaImageView">
<siv:SKImageView
Stretch="Uniform"
Source="{Binding PreviewImage}" />
</Window>
public sealed class ViewModel
{
public SKBitmap? PreviewImage { get; set; }
// ...
}
Fully sample code is here:
Regardless of which platform you use, the usage is almost identical.
- .NET 7, 6, 5 (
net7.0-windows
,net6.0-windows
,net5.0-windows
) - .NET Core 3.1, 3.0 (
netcoreapp3.1
,netcoreapp3.0
) - .NET Framework 4.8, 4.6.2 (
net48
,net462
) - SkiaSharp: 2.80.0 or upper.
- .NET 7, 6, 5 (
net7.0
,net6.0
,net5.0
) - .NET Core 3.1, 3.0, (
netcoreapp3.1
,netcoreapp3.0
) - .NET Core 2.2, 2.1, 2.0 (
netcoreapp2.2
,netcoreapp2.1
,netcoreapp2.0
) - .NET Framework 4.8, 4.6.2 (
net48
,net462
) - Avalonia 11:
- Avalonia: 11.0.0 or upper
- SkiaSharp: 2.88.3 or upper.
- Avalonia (older):
- Avalonia: 0.10.0 or upper
- SkiaSharp: 2.80.0 or upper.
- .NET Standard 2.0 (
netstandard2.0
) - Xamarin Forms: 5.0.0.1874 or upper
- SkiaSharp: 2.80.0 or upper.
- .NET 7, 6 (
net7.0
,net6.0
) - .NET MAUI: 6 or upper.
- SkiaSharp: 2.88.0 or upper. (NOT 2.80.0, because the package contains some invalid type references.)
Name | Detail |
---|---|
Source |
SkiaSharp image related objects. See listed below. |
Stretch |
Stretch enum value |
StretchDirection |
StretchDirection enum value |
RenderMode |
Rendering into back buffer by synchronous or asynchronous. |
The Source
property accepts the following SkiaSharp types:
Supported Type | Aspect ratio from | Note |
---|---|---|
SKBitmap |
Origin | |
SKImage |
Origin | |
SKPicture |
Measured RenderSize |
|
SKDrawable |
Measured RenderSize |
|
SKSurface |
Measured RenderSize |
|
string |
Origin | URL string for downloading content |
Uri |
Origin | URL for downloading content |
Some types are drawn with aspect ratio corresponding to the current measured RenderSize
area.
Therefore, to maintain the aspect ratio, the size must be explicitly controlled in XAML.
Note: If you specify a URL to display, the URL does NOT accept the WPF resource format.
(application:
and pack:
protocol based.)
Choose rendering into back buffer by synchronous or asynchronous:
RenderMode | Note |
---|---|
Synchronously |
All rendering process is synchronously. |
AsynchronouslyForFetching |
Defaulted, Will operate asynchronously when giving URL in Source property (string or Uri ). |
Asynchronously |
All rendering process is asynchronously. |
AsynchronouslyForFetching
is defaulted.
Because, when set to Asynchronously
, all instances given to Source
must not be implicitly modified.
Maybe, this constraint can be difficult to achieve on your project.
Apache-v2.
- 1.5.0:
- Supported Avalonia 11.
- 1.4.0:
- Supported .NET MAUI. (Tested on 6.0.547).
- 1.3.0:
- Supported Avalonia platform (>= 0.10.0).
- Downgraded Xamarin Forms package version (>= 5.0.0.1874).
- 1.2.0:
- Fixed misconfigured bitfield of RGBA on Xamarin Forms.
- Added ProjectionQuality property for Xamarin Forms (You can adjust final image quality when need to make better performance.)
- 1.1.0:
- Supported Xamarin Forms.
- 1.0.1:
- Downgraded SkiaSharp to 2.80.0 (Because known bug related.)
- 1.0.0:
- Reached 1.0.0 🎉
- Fixed updating new image instance.
- 0.4.0:
- Added RenderMode features and supported StretchDirection.
- Added sample code.
- 0.3.0:
- Fixed XAML namespace.
- 0.2.0:
- Fixed some problems, add WIP feature.
- 0.1.0:
- Initial release.