Quicksilver.PictureResizer
1.1.0
dotnet add package Quicksilver.PictureResizer --version 1.1.0
NuGet\Install-Package Quicksilver.PictureResizer -Version 1.1.0
<PackageReference Include="Quicksilver.PictureResizer" Version="1.1.0" />
paket add Quicksilver.PictureResizer --version 1.1.0
#r "nuget: Quicksilver.PictureResizer, 1.1.0"
// Install Quicksilver.PictureResizer as a Cake Addin #addin nuget:?package=Quicksilver.PictureResizer&version=1.1.0 // Install Quicksilver.PictureResizer as a Cake Tool #tool nuget:?package=Quicksilver.PictureResizer&version=1.1.0
Quicksilver Helpers
This repository was created by Navid Sargheiny as a simple library Powerful and Flexible Image Resizing and Thumbnail Creation.
This repository also contains utilities for applying watermarks. Below are descriptions of the available classes and their public methods, along with examples of how to use them.
Installation
Use the package manager Nuget to install Quicksilver.PictureResizer.
dotnet add package Quicksilver.PictureResizer
Usage
This library provides means to resize images and thumbnails, which I will explain below:
1. Picture Resizer
Key Features:
- Resize images based on scale factors and desired extensions.
- Generate thumbnails with customizable heights.
- Handles both byte arrays and base64-encoded image data.
- Provides efficient in-memory processing.
- Offers options to save resized and thumbnail images to specific locations.
using Quicksilver.PictureResizer;
var extension = Path.GetExtension(fileUploadAddress).ToLowerInvariant();
Stream stream = File.OpenRead(fileUploadAddress);
ImageSizer.SaveResize(stream, extension, 0.75, generatedFileName, fileResizePath);
ImageSizer.SaveThumbnail(Path.Combine(fileResizePath, $"{generatedFileName}{extension}"), 150);
2. Watermark
The Watermark
class allows you to apply watermarks to images. The class provides methods to add watermarks to images using various formats.
Public Methods:
AddWatermark(byte[] image, params Watermark[] watermarks)
Applies one or more watermarks to an image provided as a byte array.Parameters:
image
: A byte array representing the image to which the watermark(s) will be applied.watermarks
: One or moreWatermark
objects to be applied to the image.
Example Usage:
using Quicksilver.PictureResizer; byte[] imageData = File.ReadAllBytes("path/to/image.jpg"); byte[] waterMark1 = File.ReadAllBytes("path/to/wm1.jpg"); byte[] waterMark2 = File.ReadAllBytes("path/to/wm2.jpg"); Watermark[] watermark = [ new Watermark(){Image = waterMark1,Position = new System.Drawing.Point(10, 10),ReverseX = true,ReverseY = true,}, new Watermark(){Image = waterMark2,Position = new System.Drawing.Point(10, 10),ReverseX = true,ReverseY = false} ]; byte[] result = WatermarkProcessor.AddWatermark(imageData, watermark); File.WriteAllBytes("path/to/output.jpg", result);
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Quicksilver.DataConversion (>= 1.1.0)
- SkiaSharp (>= 2.88.7)
-
net7.0
- Quicksilver.DataConversion (>= 1.1.0)
- SkiaSharp (>= 2.88.7)
-
net8.0
- Quicksilver.DataConversion (>= 1.1.0)
- SkiaSharp (>= 2.88.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Watermark Class:
Added a new Watermark class to represent watermark data, including properties for the image, reversal, and position.
WatermarkAdapter Class:
Introduced new methods AddWatermark(byte[], Watermark[]) and AddWatermark(string, Watermark[]) to add watermarks to images represented as byte arrays or base64-encoded strings, respectively.
Enhancements:
Watermark Flexibility: The Watermark class now supports both byte array and base64-encoded string representations for the image data, providing more flexibility in watermark usage.
Improved Readability: The code has been refactored to improve readability and maintainability.