![]() |
VOOZH | about |
dotnet add package DotNetBrightener.UploadService.ImageOptimizer --version 2026.0.2
NuGet\Install-Package DotNetBrightener.UploadService.ImageOptimizer -Version 2026.0.2
<PackageReference Include="DotNetBrightener.UploadService.ImageOptimizer" Version="2026.0.2" />
<PackageVersion Include="DotNetBrightener.UploadService.ImageOptimizer" Version="2026.0.2" />Directory.Packages.props
<PackageReference Include="DotNetBrightener.UploadService.ImageOptimizer" />Project file
paket add DotNetBrightener.UploadService.ImageOptimizer --version 2026.0.2
#r "nuget: DotNetBrightener.UploadService.ImageOptimizer, 2026.0.2"
#:package DotNetBrightener.UploadService.ImageOptimizer@2026.0.2
#addin nuget:?package=DotNetBrightener.UploadService.ImageOptimizer&version=2026.0.2Install as a Cake Addin
#tool nuget:?package=DotNetBrightener.UploadService.ImageOptimizer&version=2026.0.2Install as a Cake Tool
Copyright ยฉ 2017 - 2026 Vampire Coder (formerly DotnetBrightener)
Image optimization and resizing functionality for DotNetBrightener Upload Service.
Version 2026.0.1+ has migrated from Magick.NET to SkiaSharp due to security vulnerability CVE-2025-65955.
services.AddUploadService(config)
.UseImageMagickOptimizer(); // โ ๏ธ Deprecated - shows warning
services.AddUploadService(config)
.UseSkiaSharpOptimizer(); // โ
Use this instead
dotnet add package DotNetBrightener.UploadService.ImageOptimizer
using Microsoft.Extensions.DependencyInjection;
// In your Startup.cs or Program.cs
services.AddUploadService(configuration)
.UseSkiaSharpOptimizer();
services.AddUploadService(configuration)
.UseSkiaSharpOptimizer()
.ConfigureUploadOptions(options =>
{
options.MaxFileSize = 10 * 1024 * 1024; // 10MB
options.AllowedFileExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif", ".webp" };
});
No changes needed if using centralized package management. The package will automatically use SkiaSharp.
Before:
services.AddUploadService(config)
.UseImageMagickOptimizer();
After:
services.AddUploadService(config)
.UseSkiaSharpOptimizer();
The old UseImageMagickOptimizer() method still works but:
[Obsolete] warning during compilationUseSkiaSharpOptimizer()SkiaSharp supports the following image formats:
public class SkiaSharpImageOptimizer : IImageResizer
{
/// <summary>
/// Resizes an image from the input stream to the specified dimensions
/// </summary>
/// <param name="inputStream">The input image stream</param>
/// <param name="newWidth">The target width (absolute value will be used)</param>
/// <param name="newHeight">The target height (absolute value will be used)</param>
/// <returns>A new stream containing the resized image in PNG format</returns>
Stream ResizeImageFromStream(Stream inputStream, int newWidth, int newHeight);
}
// Recommended method
public static UploadServiceConfigurationBuilder UseSkiaSharpOptimizer(
this UploadServiceConfigurationBuilder builder);
// Deprecated method (backward compatibility)
[Obsolete("Use UseSkiaSharpOptimizer instead")]
public static UploadServiceConfigurationBuilder UseImageMagickOptimizer(
this UploadServiceConfigurationBuilder builder);
The package includes comprehensive unit tests:
To run tests:
cd src/UploadService/DotNetBrightener.UploadService.ImageOptimizer.Tests
dotnet test
SkiaSharp provides excellent performance characteristics:
SKFilterQuality.HighCause: The input stream doesn't contain a valid image or format is not supported.
Solution: Verify the input stream contains valid image data and is in a supported format.
Cause: Invalid target dimensions or corrupted source image.
Solution: Ensure width and height are positive integers and source image is valid.
This package is part of the DotNetBrightener Framework.
ยฉ 2017 - 2025 Vampire Coder (formerly DotNet Brightener)
For issues, questions, or contributions:
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.0.3-preview-777 | 116 | 5/20/2026 |
| 2026.0.3-preview-773 | 110 | 4/24/2026 |
| 2026.0.3-preview-772 | 124 | 4/3/2026 |
| 2026.0.3-preview-770 | 100 | 4/2/2026 |
| 2026.0.3-preview-769 | 98 | 4/2/2026 |
| 2026.0.2 | 111 | 4/2/2026 |
| 2026.0.2-preview-v2026-0-1-755 | 95 | 3/27/2026 |
| 2026.0.2-preview-759 | 111 | 4/1/2026 |
| 2026.0.2-preview-758 | 103 | 3/29/2026 |
| 2026.0.2-preview-757 | 100 | 3/29/2026 |
| 2026.0.2-preview-756 | 107 | 3/27/2026 |
| 2026.0.2-preview-754 | 93 | 3/27/2026 |
| 2026.0.1 | 104 | 3/27/2026 |
| 2026.0.1-preview-752 | 102 | 3/26/2026 |
| 2026.0.1-preview-750 | 99 | 3/26/2026 |
| 2026.0.1-preview-749 | 98 | 3/25/2026 |
| 2025.0.11-preview-776 | 99 | 5/20/2026 |
| 2025.0.11-preview-771 | 102 | 4/2/2026 |
| 2025.0.11-preview-768 | 99 | 4/2/2026 |
| 2025.0.11-preview-762 | 98 | 4/2/2026 |