In this tutorial, you will configure a C# or VB.NET project for a console application and use ImageGear .NET capabilities. You will also learn how to load an image, then resize and convert it to a new format.
For local development, ImageGear .NET must be installed from the product installer. This will ensure that licensing is set up properly for local development. Once ImageGear .NET is installed, projects can use NuGet for building and deployment.
The following tutorial refers specifically to 64-bit installations; for 32-bit installations:
- Your project should already be set to compile to target Debug and x86, and you should have the directory: $YOURLOCALPROJ\bin\x86\Debug\.
- Throughout these instructions, replace x64 with x86.
- The 32-bit ImageGear binaries are found in $INSTALLDIR\ImageGear .NET v24\Bin\x86
Using Visual Studio 2015 or later:
- Create a new "Console Application" project, using C# or VB.NET, and name the project: IG_Tutorial_Console.
- Using the Configuration Manager, create a new project platform (if you don't have one already) for x64. Make sure your project is set to compile targeting Debug and x64. Make sure you now have $YOURLOCALPROJ\bin\x64\Debug\, and if it is not there, create it.
- Add references and required resources into your projects in one of the following ways:
- Recommended: use our NuGet Packages. For this project, you need the following package:
Accusoft.ImageGear.Core.nupkg (https://www.nuget.org/packages/Accusoft.ImageGear.Core/)
- Manually:
- Copy all files (and folders) inside $INSTALLDIR\ImageGear .NET\Bin\x64 to your local output bin directory in your project (i.e., $YOURLOCALPROJ\bin\x64\Debug\ ).
- Add the following references to your project from $YOURLOCALPROJ\bin\x64\Debug\:
- ImageGear24.Core.dll
- ImageGear24.Evaluation.dll
- ImageGear24.Formats.Common.dll
Your output target directory should be set to $YOURLOCALPROJ\bin\x64\Debug\
- At this point your project is ready for some code. You can use the following code to load an image, resize it to a 150 x 150 dimension, and convert it to another specified format. In the next section, we will go over some areas of this sample code in more detail.
C# |
Copy Code |
using System;
using System.IO;
using ImageGear.Core;
using ImageGear.Evaluation;
using ImageGear.Formats;
using ImageGear.Processing;
using ImageGear.Display;
namespace IG_Tutorial_Console
{
class Program
{
static void Main(string[] args)
{
// Initialize evaluation license.
ImGearEvaluationManager.Initialize();
// Initialize common formats.
ImGearCommonFormats.Initialize();
Console.WriteLine("Enter the complete path to the image to be converted:");
string fileName = Console.ReadLine();
Console.WriteLine("Enter the format for the new image among BMP|GIF|JPG|PNG|TIFF:");
string newFormat = Console.ReadLine();
try
{
using (FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
try
{
// Load the image into the page.
ImGearPage imGearPage = ImGearFileFormats.LoadPage(stream, 0);
// Resize the image to the width and height specified.
// ImGearInterpolations.BILINEAR is the value indicating the type of interpolation employed.
// It may be changed to other values, e.g. ImGearInterpolations.BICUBIC, ImGearInterpolations.NEAREST_NEIGHBOR.
ImGearProcessing.Resize(imGearPage, 150, 150, ImGearInterpolationOptions.GetDefault(ImGearInterpolations.BILINEAR));
string outputFileName = fileName.Substring(0,fileName.LastIndexOf('\\') + 1) + "out.";
// Indicate the format used when saving the image.
// It may be changed to other values, e.g. ImGearSavingFormats.JPG, ImGearSavingFormats.PNG.
ImGearSavingFormats savingFormat = ImGearSavingFormats.UNKNOWN;
// Identify the format selected.
switch (newFormat)
{
case "BMP":
outputFileName += "bmp";
savingFormat = ImGearSavingFormats.BMP_UNCOMP;
break;
case "GIF":
outputFileName += "gif";
savingFormat = ImGearSavingFormats.GIF;
break;
case "JPG":
outputFileName += "jpg";
savingFormat = ImGearSavingFormats.JPG;
break;
case "PNG":
outputFileName += "png";
savingFormat = ImGearSavingFormats.PNG;
break;
case "TIFF":
outputFileName += "tiff";
savingFormat = ImGearSavingFormats.TIF_UNCOMP;
break;
default:
Console.WriteLine("Unsupported format.");
break;
}
if (savingFormat != ImGearSavingFormats.UNKNOWN)
{
using (FileStream imGearConverted = new FileStream(outputFileName, FileMode.Create))
{
// Save the image to the format selected.
ImGearFileFormats.SavePage(imGearPage, imGearConverted, 1, ImGearSavingModes.OVERWRITE, savingFormat, new ImGearSaveOptions());
}
Console.WriteLine("Conversion successful.");
}
}
catch (ImGearException ex)
{
Console.WriteLine("Conversion failed: " + ex.Message);
}
}
}
catch (Exception)
{
Console.WriteLine("Incorrect path to an image file.");
}
Console.ReadLine();
}
}
} |
VB.NET |
Copy Code |
Imports System
Imports System.IO
Imports ImageGear.Core
Imports ImageGear.Evaluation
Imports ImageGear.Formats
Imports ImageGear.Processing
Imports ImageGear.Display
Module Module1
Sub Main()
'Initialize evaluation license.
ImGearEvaluationManager.Initialize()
'Initialize common formats.
ImGearCommonFormats.Initialize()
Console.WriteLine("Enter the complete path to the image to be converted:")
Dim fileName As String = Console.ReadLine()
Console.WriteLine("Enter the format for the new image among BMP|GIF|JPG|PNG|TIFF:")
Dim newFormat As String = Console.ReadLine()
Try
Using stream As New FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)
Try
' Load the image into the page.
Dim imGearPage As ImGearPage = ImGearFileFormats.LoadPage(stream, 0)
' Resize the image to the width and height specified.
' ImGearInterpolations.BILINEAR is the value indicating the type of interpolation employed.
' It may be changed to other values, e.g. ImGearInterpolations.BICUBIC, ImGearInterpolations.NEAREST_NEIGHBOR.
ImGearProcessing.Resize(imGearPage, 150, 150, ImGearInterpolationOptions.GetDefault(ImGearInterpolations.BILINEAR))
Dim outputFileName As String = fileName.Substring(0, fileName.LastIndexOf("\") + 1) + "out."
' Indicate the format used when saving the image.
' It may be changed to other values, e.g. ImGearSavingFormats.JPG, ImGearSavingFormats.PNG.
Dim savingFormat As ImGearSavingFormats = ImGearSavingFormats.UNKNOWN
' Identify the format selected.
Select Case newFormat
Case "BMP"
outputFileName += "bmp"
savingFormat = ImGearSavingFormats.BMP_UNCOMP
Case "GIF"
outputFileName += "gif"
savingFormat = ImGearSavingFormats.GIF
Case "JPG"
outputFileName += "jpg"
savingFormat = ImGearSavingFormats.JPG
Case "PNG"
outputFileName += "png"
savingFormat = ImGearSavingFormats.PNG
Case "TIFF"
outputFileName += "tiff"
savingFormat = ImGearSavingFormats.TIF_UNCOMP
End Select
If Not savingFormat = ImGearSavingFormats.UNKNOWN Then
Using imGearConverted As FileStream = New FileStream(outputFileName, FileMode.Create)
' Save the image to the format selected.
ImGearFileFormats.SavePage(imGearPage, imGearConverted, 1, ImGearSavingModes.OVERWRITE, savingFormat, New ImGearSaveOptions())
Console.WriteLine("Conversion successful.")
End Using
Else
Console.WriteLine("Unsupported format.")
End If
Catch ex As Exception
Console.WriteLine("Conversion failed: " + ex.Message)
End Try
End Using
Catch ex As Exception
Console.WriteLine("Incorrect path to an image file.")
End Try
Console.ReadLine()
End Sub
End Module |
Now we'll take a closer look at each section of the code.
- First add the ImGearEvaluationManager.Initialize() call if you are evaluating the product. You also need to initialize common formats.
C# |
Copy Code |
// Initialize evaluation license.
ImGearEvaluationManager.Initialize();
// Initialize common formats.
ImGearCommonFormats.Initialize(); |
VB.NET |
Copy Code |
'Initialize evaluation license.
ImGearEvaluationManager.Initialize()
'Initialize common formats.
ImGearCommonFormats.Initialize() |
- Next, load the image:
C# |
Copy Code |
// Load the image into the page.
ImGearPage imGearPage = ImGearFileFormats.LoadPage(stream, 0); |
VB.NET |
Copy Code |
' Load the image into the page.
Dim imGearPage As ImGearPage = ImGearFileFormats.LoadPage(stream, 0) |
- Now, resize the image by defining the width, the height, and the interpolation approach:
C# |
Copy Code |
// Resize the image to the width and height specified.
// ImGearInterpolations.BILINEAR is the value indicating the type of interpolation employed.
// It may be changed to other values, e.g. ImGearInterpolations.BICUBIC, ImGearInterpolations.NEAREST_NEIGHBOR.
ImGearProcessing.Resize(imGearPage, 150, 150, ImGearInterpolationOptions.GetDefault(ImGearInterpolations.BILINEAR)); |
VB.NET |
Copy Code |
' Resize the image to the width and height specified.
' ImGearInterpolations.BILINEAR is the value indicating the type of interpolation employed.
' It may be changed to other values, e.g. ImGearInterpolations.BICUBIC, ImGearInterpolations.NEAREST_NEIGHBOR.
ImGearProcessing.Resize(imGearPage, 150, 150, ImGearInterpolationOptions.GetDefault(ImGearInterpolations.BILINEAR)) |
- Finally, save the image based on the savingFormat specified:
C# |
Copy Code |
// Save the image to the format selected.
ImGearFileFormats.SavePage(imGearPage, imGearConverted, 1, ImGearSavingModes.OVERWRITE, savingFormat, new ImGearSaveOptions()); |
VB.NET |
Copy Code |
' Save the image to the format selected.
ImGearFileFormats.SavePage(imGearPage, imGearConverted, 1, ImGearSavingModes.OVERWRITE, savingFormat, New ImGearSaveOptions()) |