Aspose.Imaging
22.2.0
See the version list below for details.
dotnet add package Aspose.Imaging --version 22.2.0
NuGet\Install-Package Aspose.Imaging -Version 22.2.0
<PackageReference Include="Aspose.Imaging" Version="22.2.0" />
paket add Aspose.Imaging --version 22.2.0
#r "nuget: Aspose.Imaging, 22.2.0"
// Install Aspose.Imaging as a Cake Addin #addin nuget:?package=Aspose.Imaging&version=22.2.0 // Install Aspose.Imaging as a Cake Tool #tool nuget:?package=Aspose.Imaging&version=22.2.0
.NET API with Optimized Image Resize Speed
Product Page | Docs | Demos | API Reference | Examples | Blog | Search | Free Support | Temporary License
It is a standalone Imaging API consists of C# routines that enable your .NET applications to draw as well as perform basic to advanced level processing of raster & vector images.
Aspose.Imaging for .NET offers robust image compression and high processing speed through native byte access and a range of efficient algorithms. It not only manipulate, export, and convert images but also lets you dynamically draw objects using pixel manipulation and Graphics Path.
Imaging API Features
- Draw raster images with graphics.
- Draw vector images.
- Converting images to various formats.
- Apply masking as well as Median & Wiener filters.
- Crop, rotate & resize images via API.
- De-skew & transform images.
- Set image properties.
What's new in v22.2.0
Optimized Image Resize Speed
Improved the image resize speed and made it faster.
resize(ResizeType.AdaptiveResample, 3);
resize(ResizeType.AdaptiveResample, 2);
resize(ResizeType.AdaptiveResample, 0.25d);
resize(ResizeType.LanczosResample, 4);
resize(ResizeType.LanczosResample, 0.25d);
private void resize(ResizeType resizeType, double scale)
{
string baseFolder = @"D:\";
string fileName = "tiger.bmp";
string inputFileName = Path.Combine(baseFolder, fileName);
long value = 0;
int count = scale < 1 ? 50 : 5;
for (int i = 0; i < count; i++)
{
using (Image image = Image.Load(inputFileName))
{
var s = new Stopwatch();
s.Start();
image.Resize((int) Math.Round(image.Width * scale),
(int) Math.Round(image.Height * scale), resizeType);
s.Stop();
value += s.ElapsedMilliseconds;
}
}
Console.WriteLine("{0}(scale - {1}:{3} times):
{2:0.00}ms", resizeType, scale, value, count);
}
Accurate Text Alignment
Added the support to perform the pixel perfect text alignment.
string baseFolder = @"D:\test";
string[] alignments = new[] {"Left", "Center", "Right"};
FontSettings.Reset();
FontSettings.SetFontsFolder(Path.Combine(baseFolder, "fonts"));
FontSettings.UpdateFonts();
foreach (var alignment in alignments)
{
DrawString(baseFolder, alignment);
}
private void DrawString(string baseFolder, string align)
{
string fileName = "output_" + align + ".png";
string outputFileName = Path.Combine(baseFolder, fileName);
string[] fontNames = new[]
{
"Arial", "Times New Roman",
"Bookman Old Style", "Calibri", "Comic Sans MS",
"Courier New", "Microsoft Sans Serif", "Tahoma",
"Verdana", "Proxima Nova Rg"
};
float[] fontSizes = new[] { 10f, 22f, 50f, 100f };
int width = 3000;
int height = 3500;
using (System.IO.FileStream stream =
new System.IO.FileStream(outputFileName, System.IO.FileMode.Create))
{
//Create an instance of PngOptions and set its various properties
Aspose.Imaging.ImageOptions.PngOptions pngOptions
= new Aspose.Imaging.ImageOptions.PngOptions();
//Set the Source for PngOptions
pngOptions.Source = new Aspose.Imaging.Sources.StreamSource(stream);
//Create an instance of Image
using (Aspose.Imaging.Image image
= Aspose.Imaging.Image.Create(pngOptions, width, height))
{
//Create and initialize an instance of Graphics class
Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
//Clear Graphics surface
graphics.Clear(Aspose.Imaging.Color.White);
//Create a SolidBrush object and set its various properties
Aspose.Imaging.Brushes.SolidBrush brush
= new Aspose.Imaging.Brushes.SolidBrush();
brush.Color = Color.Black;
float x = 10;
int lineX = 0;
float y = 10;
float w = width - 20;
var pen = new Pen(Color.Red, 1);
StringAlignment alignment = StringAlignment.Near;
switch (align)
{
case "Left":
alignment = StringAlignment.Near;
lineX = (int)Math.Round(x, 0);
break;
case "Center":
alignment = StringAlignment.Center;
lineX = (int)Math.Round(x + w / 2f, 0);
break;
case "Right":
alignment = StringAlignment.Far;
lineX = (int)(x + w);
break;
}
var stringFormat = new StringFormat(StringFormatFlags.ExactAlignment);
stringFormat.Alignment = alignment;
foreach (var fontName in fontNames)
{
foreach (var fontSize in fontSizes)
{
var font = new Font(fontName, fontSize);
string text = String.Format("This is font: {0}, size:{1}", fontName, fontSize);
var s = graphics.MeasureString(text, font, SizeF.Empty, null);
graphics.
DrawString(text, font, brush, new RectangleF(x, y, w, s.Height), stringFormat);
y += s.Height;
}
graphics.DrawLine(pen, new Point((int)(x), (int)y), new Point((int)(x+w), (int)y));
}
graphics.DrawLine(pen, new Point(lineX, 0), new Point(lineX, (int)y));
// save all changes.
image.Save();
}
}
}
Improved YCbCr to RGb Subsampling
This release has improved YCbCr
to RGb
subsampling test coverage for the Jpeg2000
.
string[] files = new string[]
{
"resultyuv420_watermark.jp2", "resultyuv422_watermark.jp2",
"resultyuv444_watermark.jp2"
};
string output = string.Empty;
foreach (string file in files)
{
string path = file;
output = file + ".png";
using (RasterImage image = (RasterImage)Image.Load(path))
{
image.Save(
output,
new PngOptions()
{ ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha });
}
}
For a complete list of features, enhancements, and bug fixes in this release please visit, Aspose.Imaging for .NET 22.2.
Read & Write Image Formats
Raster Formats: JPEG2000, JPEG, BMP, TIFF, GIF, PNG, APNG
Medical Imaging: DICOM
Metafiles: EMF, WMF, EMZ, WMZ
Truevision: TGA
Vector Graphics: SVG, SVGZ
Save Images As
Fixed: PDF
Photoshop: PSD
Web: HTML5 Canvas
Read Image Formats
eBook: DjVu
Digital Camera Raw: DNG
OpenOffice: ODG, OTG
Bitmap: DIB
Web Image: WebP
CorelDRAW: CDR (X6, X7), CMX (V2.0 32-bit)
PostScript: EPS
Platform Independence
Aspose.Imaging for .NET can be used to develop applications on Windows Desktop (x86, x64), Windows Server (x86, x64), Windows Azure, Windows Embedded (CE 6.0 R2), as well as Linux x64. The supported platforms include .NET Framework version 2.0 or higher, and .NET Compact Framework 3.5.
Getting Started with Aspose.Imaging for .NET
Are you ready to give Aspose.Imaging for .NET a try? Simply execute Install-Package Aspose.Imaging
from Package Manager Console in Visual Studio to fetch the NuGet package. If you already have Aspose.Imaging for .NET and want to upgrade the version, please execute Update-Package Aspose.Imaging
to get the latest version.
Resize a JPG
Image via C# Code
Execute the below code snippet to see how Aspose.Imaging performs in your environment or please visit the GitHub Repository for other common usage scenarios.
using (Image image = Image.Load(dir + "template.jpg"))
{
image.Resize(300, 300);
image.Save(dir + "output.jpg");
}
Recover a Broken TIFF
using C# Code
You can programmatically recover a damaged TIFF file with the help of Aspose.Imaging for .NET API as demonstrated below.
// create an instance of LoadOptions and set LoadOptions properties
var loadOptions = new LoadOptions();
loadOptions.DataRecoveryMode = DataRecoveryMode.ConsistentRecover;
loadOptions.DataBackgroundColor = Color.Red;
// create an instance of Image and load a damaged image by passing the instance of LoadOptions
using (var image = Image.Load(dir + "template.tiff", loadOptions))
{
// do processing
}
Product Page | Docs | Demos | API Reference | Examples | Blog | Search | Free Support | Temporary License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net20 is compatible. net35 is compatible. net35-client is compatible. net40 is compatible. net40-client is compatible. net403 was computed. net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.1
- System.Drawing.Common (>= 5.0.0)
- System.Text.Encoding.CodePages (>= 5.0.0)
-
.NETFramework 2.0
- No dependencies.
-
.NETFramework 3.5
- No dependencies.
-
.NETFramework 3.5 Client
- No dependencies.
-
.NETFramework 4.0
- No dependencies.
-
.NETFramework 4.0 Client
- No dependencies.
-
.NETStandard 2.0
- System.Drawing.Common (>= 5.0.0)
- System.Text.Encoding.CodePages (>= 5.0.0)
-
net5.0
- System.Drawing.Common (>= 5.0.0)
- System.Text.Encoding.CodePages (>= 5.0.0)
NuGet packages (9)
Showing the top 5 NuGet packages that depend on Aspose.Imaging:
Package | Downloads |
---|---|
Aspose.Total
Aspose.Total for .NET is the most complete package of all .NET file format APIs offered by Aspose. It empowers developers to create, edit, render, print and convert between a wide range of popular document formats within any .NET, C#, ASP.NET and VB.NET applications. |
|
Weavy.Core
A class library containing core business logic, data access and utility methods required by Weavy. |
|
SenseNet.Preview.Aspose.PreviewImageGenerators
Aspose Preview image generator classes for the sensenet platform. |
|
SenseNet.Preview.Aspose
sensenet Aspose Preview Provider makes it possible to generate and serve preview images using Aspose libraries. |
|
NovaQual.DocumentConversionLib
This contains all the document conversions functionality e.g word to pdf, exce to pdf etc |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
24.9.0 | 10,206 | 9/5/2024 | |
24.8.0 | 15,988 | 8/5/2024 | |
24.7.0 | 16,773 | 7/3/2024 | |
24.6.0 | 23,174 | 6/4/2024 | |
24.5.0 | 33,711 | 5/3/2024 | |
24.4.0 | 23,474 | 4/4/2024 | |
24.3.0 | 39,700 | 3/11/2024 | |
24.2.0 | 37,452 | 2/1/2024 | |
23.12.0 | 137,844 | 12/18/2023 | |
23.11.0 | 32,839 | 11/29/2023 | |
23.10.0 | 46,749 | 10/30/2023 | |
23.9.0 | 102,483 | 9/26/2023 | |
23.8.0 | 72,033 | 8/29/2023 | |
23.7.0 | 45,017 | 7/31/2023 | |
23.6.0 | 57,668 | 6/29/2023 | |
23.5.1 | 65,483 | 5/30/2023 | |
23.5.0 | 10,801 | 5/25/2023 | |
23.4.0 | 86,497 | 4/27/2023 | |
23.3.0 | 58,041 | 3/30/2023 | |
23.3.0-beta | 3,330 | 3/18/2023 | |
23.2.0 | 101,352 | 2/20/2023 | |
22.12.0 | 133,961 | 12/5/2022 | |
22.11.0 | 69,355 | 11/14/2022 | |
22.10.0 | 66,068 | 10/3/2022 | |
22.10.0-beta | 174,160 | 9/28/2022 | |
22.9.0 | 64,231 | 9/2/2022 | |
22.8.0 | 52,756 | 8/4/2022 | |
22.7.0 | 42,004 | 7/7/2022 | |
22.6.0 | 46,641 | 6/7/2022 | |
22.6.0-beta2 | 2,717 | 6/1/2022 | |
22.5.0 | 52,766 | 5/13/2022 | |
22.4.0 | 48,079 | 4/11/2022 | |
22.3.0 | 71,971 | 3/7/2022 | |
22.2.0 | 113,401 | 2/1/2022 | |
21.12.0 | 83,681 | 12/1/2021 | |
21.11.0 | 41,230 | 11/3/2021 | |
21.10.0 | 36,061 | 10/7/2021 | |
21.9.0 | 39,987 | 9/13/2021 | |
21.9.0-beta | 9,994 | 8/23/2021 | |
21.8.0 | 33,692 | 8/5/2021 | |
21.8.0-beta | 4,380 | 7/19/2021 | |
21.7.0 | 34,971 | 7/5/2021 | |
21.7.0-beta | 5,566 | 6/21/2021 | |
21.6.0 | 39,894 | 6/1/2021 | |
21.6.0-beta | 5,448 | 5/21/2021 | |
21.5.0 | 45,956 | 5/6/2021 | |
21.5.0-beta | 4,404 | 4/19/2021 | |
21.4.0 | 33,403 | 4/5/2021 | |
21.3.0 | 41,048 | 3/9/2021 | |
21.3.0-beta | 5,723 | 2/20/2021 | |
21.2.0 | 24,373 | 2/8/2021 | |
21.2.0-beta2 | 2,345 | 2/19/2021 | |
21.2.0-beta | 2,319 | 2/3/2021 | |
20.12.0 | 50,519 | 12/31/2020 | |
20.12.0-beta | 4,080 | 12/16/2020 | |
20.11.0 | 47,047 | 11/26/2020 | |
20.11.0-beta | 3,441 | 11/17/2020 | |
20.10.0 | 14,164 | 10/24/2020 | |
20.10.0-beta | 4,517 | 10/16/2020 | |
20.9.0 | 35,139 | 9/28/2020 | |
20.9.0-beta | 2,444 | 9/16/2020 | |
20.8.0 | 21,574 | 8/26/2020 | |
20.8.0-beta | 3,790 | 8/12/2020 | |
20.7.0 | 15,812 | 7/22/2020 | |
20.6.0 | 20,661 | 6/17/2020 | |
20.5.0 | 23,122 | 5/20/2020 | |
20.4.0 | 35,108 | 4/23/2020 | |
20.3.0 | 118,798 | 3/19/2020 | |
20.2.0 | 13,888 | 2/21/2020 | |
19.12.0 | 43,988 | 12/16/2019 | |
19.11.0 | 41,953 | 11/13/2019 | |
19.10.0 | 15,195 | 10/4/2019 | |
19.9.0 | 19,318 | 9/10/2019 | |
19.7.0 | 8,050 | 7/30/2019 | |
19.6.0 | 15,742 | 6/28/2019 | |
19.4.0 | 59,728 | 4/25/2019 | |
19.3.0 | 9,895 | 3/28/2019 | |
19.2.0 | 8,468 | 2/27/2019 | |
19.1.0 | 12,807 | 1/23/2019 |