|
|
|
@ -14,14 +14,19 @@ namespace Avalonia.Skia.Helpers |
|
|
|
/// </summary>
|
|
|
|
/// <param name="image">Image to save</param>
|
|
|
|
/// <param name="fileName">Target file.</param>
|
|
|
|
public static void SaveImage(SKImage image, string fileName) |
|
|
|
/// <param name="quality">
|
|
|
|
/// The optional quality for PNG compression.
|
|
|
|
/// The quality value is interpreted from 0 - 100. If quality is null
|
|
|
|
/// the encoder applies the default quality value.
|
|
|
|
/// </param>
|
|
|
|
public static void SaveImage(SKImage image, string fileName, int? quality = null) |
|
|
|
{ |
|
|
|
if (image == null) throw new ArgumentNullException(nameof(image)); |
|
|
|
if (fileName == null) throw new ArgumentNullException(nameof(fileName)); |
|
|
|
|
|
|
|
using (var stream = File.Create(fileName)) |
|
|
|
{ |
|
|
|
SaveImage(image, stream); |
|
|
|
SaveImage(image, stream, quality); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -29,16 +34,30 @@ namespace Avalonia.Skia.Helpers |
|
|
|
/// Save Skia image to a stream.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="image">Image to save</param>
|
|
|
|
/// <param name="stream">Target stream.</param>
|
|
|
|
public static void SaveImage(SKImage image, Stream stream) |
|
|
|
/// <param name="quality">
|
|
|
|
/// The optional quality for PNG compression.
|
|
|
|
/// The quality value is interpreted from 0 - 100. If quality is null
|
|
|
|
/// the encoder applies the default quality value.
|
|
|
|
/// </param>
|
|
|
|
public static void SaveImage(SKImage image, Stream stream, int? quality = null) |
|
|
|
{ |
|
|
|
if (image == null) throw new ArgumentNullException(nameof(image)); |
|
|
|
if (stream == null) throw new ArgumentNullException(nameof(stream)); |
|
|
|
|
|
|
|
using (var data = image.Encode()) |
|
|
|
if (quality == null) |
|
|
|
{ |
|
|
|
data.SaveTo(stream); |
|
|
|
using (var data = image.Encode()) |
|
|
|
{ |
|
|
|
data.SaveTo(stream); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
using (var data = image.Encode(SKEncodedImageFormat.Png, (int)quality)) |
|
|
|
{ |
|
|
|
data.SaveTo(stream); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|