Image Resize 2.0 for Asp.Net Core
This page will demonstrate different samples for ImageResize 2.0 if you are looking for version 3.0 click here.
Github repository : LazZiya.ImageResize
Installation :
install from nuget package manager:
PM > Install-Package LazZiya.ImageResize -Version 2.0.0
Introduction
All ImageResize methods recevies a System.Drawing.Image
file and do the appropriate operation accordingly.
System.Drawing.Image
can be created from local file as below :
using System.Drawing;
//create Image file from local file
var imgFile = Image.FromFile("wwwroot\\Images\\picture.jpg");
or from upload stream :
//create Image file from upload stream
foreach (var file in Request.Form.Files) {
if (file.Length > 0) {
using (var stream = file.OpenReadStream()) {
var uploadedImage = Image.FromStream(stream);
}
}
}
Samples
for all below samples I used image from unsplach photo by LUM3N, original size 6000x4000, the image saved in local folder under wwwroot\\Images\\lum3n-358833-unsplash.jpg
ImageResize
supports resizing images in several ways, all scale methods will keep the aspect ratio of the original image, except Crop method which will have a new aspect ratio according to the crop size.;
Scale
Auto scale down image to fit target size and keep original aspect ratio
//get image from local path
var img = Image.FromFile("wwwroot\\images\\lum3n-358833-unsplash.jpg");
//resize the image to 600x400
var newImg = ImageResize.Scale(img, 600, 400);
//save new image
newImg.SaveAs("wwwroot\\images\\600x400-scale.jpg");
//dispose to free up memory
img.Dispose();
newImg.Dispose();
Result
Scale by Width
Scale down by given width parameter and keep original aspect ratio
//get image from local path
var img = Image.FromFile("wwwroot\\images\\lum3n-358833-unsplash.jpg");
//scale by width, new width = 300
var newImg = ImageResize.ScaleByWidth(img, 300);
//save new image
newImg.SaveAs("wwwroot\\images\\300-scale-by-width.jpg");
//dispose to free up memory
img.Dispose();
newImg.Dispose();
Result image size 300x200
Scale by Height
Scale down by given height parameter and keep original aspect ratio
//get image from local path
var img = Image.FromFile("wwwroot\\images\\lum3n-358833-unsplash.jpg");
//scale by width, new height = 300
var newImg = ImageResize.ScaleByHeight(img, 300);
//save new image
newImg.SaveAs("wwwroot\\images\\300-scale-by-height.jpg");
//dispose to free up memory
img.Dispose();
newImg.Dispose();
Result image size: 450x300
Scale and Crop
Scale down by given width and height parameters. Final image will have a new aspect ratio
//get image from local path
var img = Image.FromFile("wwwroot\\images\\lum3n-358833-unsplash.jpg");
//scale and crop, 250x250 center focus
var newImg = ImageResize.ScaleAndCrop(img, 250, 250, TargetSpot.Center);
//save new image
newImg.SaveAs("wwwroot\\images\\250x250-scale-and-crop-center.jpg");
//dispose to free up memory
img.Dispose();
newImg.Dispose();
Result image size: 250x250
Crop
Crop specified area from the the image by gives sizes
//get image from local path
var img = Image.FromFile("wwwroot\\images\\lum3n-358833-unsplash.jpg");
//crop, 250x250 center focus
var newImg = ImageResize.Crop(img, 250, 250, TargetSpot.Center);
//save new image
newImg.SaveAs("wwwroot\\images\\250x250-crop-center.jpg");
//dispose to free up memory
img.Dispose();
newImg.Dispose();
Result image size: 250x250
Text Watermark
Add text watermark to the bottom area of the image. First we will resize the image to 600x250 then watermark will be applied.
//get image from local path
var img = Image.FromFile("wwwroot\\images\\lum3n-358833-unsplash.jpg");
//scale and crop, 600x250 center focus
var newImg = ImageResize.ScaleAndCrop(img, 600, 250, TargetSpot.Center);
//add text watermark
newImg.TextWatermark("Powered by LazZiya.ImageResize",
"#77ffffff", //text color hex8 value, 77 is opacity (00-FF)
"#22000000", //background color, 22 is for opacity (00-FF)
"Calibri", //font family
34, //font size
TargetSpot.BottomLeft, //target spot to place text watermark text
FontStyle.Italic, //font style
10); //bg margin from border
//save new image
newImg.SaveAs("wwwroot\\images\\600x250-text-watermark.jpg");
//dispose to free up memory
img.Dispose();
newImg.Dispose();
Result image size: 600x250
Image Watermark
Add image watermark to the top right area of the image. First we will resize the image to 600x250 then watermark will be applied.
//get image from local path
var img = Image.FromFile("wwwroot\\images\\lum3n-358833-unsplash.jpg");
//scale and crop, 600x250 center focus
var newImg = ImageResize.ScaleAndCrop(img, 600, 250, TargetSpot.Center);
//watermark image path
var imgWatermark = "wwwroot\\images\\icon.png";
//add image watermark
newImg.ImageWatermark(imgWatermark,
TargetSpot.TopRight, //define target spot
10, //margin
37); //opacity (0-100)
//save new image
newImg.SaveAs("wwwroot\\images\\600x250-image-watermark.jpg");
//dispose to free up memory
img.Dispose();
newImg.Dispose();
Result image size: 600x250
Sample with multilingual watermark texts 😉
Sample watermark texts in multiple languages: Arabic, Turkish and Chinese