Quicksilver.PictureResizer 1.1.0

dotnet add package Quicksilver.PictureResizer --version 1.1.0                
NuGet\Install-Package Quicksilver.PictureResizer -Version 1.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Quicksilver.PictureResizer" Version="1.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Quicksilver.PictureResizer --version 1.1.0                
#r "nuget: Quicksilver.PictureResizer, 1.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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 more Watermark 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

MIT

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.0 112 8/29/2024
1.0.0 103 7/10/2024

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.