General Samples

C#
//Convert "c:\SomeFolder\InputFile.png" to "c:\SomeFolder\OutputFile.jpg"
using (var imageTask = new ImageTask(@"c:\SomeFolder\InputFile.png"))
    imageTask.Save(@"c:\SomeFolder\OutputFile.jpg");

//---------------------------------------

//Convert with a virtual path string:
//See below for other path string examples.
using (var imageTask = new ImageTask("~/SomeFolder/InputFile.png"))
    imageTask.Save(@"c:\SomeFolder\OutputFile.jpg");

//Convert with a URL string:
//See below for other path string examples.
using (var imageTask = new ImageTask("http://example.com/SomeFolder/InputFile.png"))
    imageTask.Save(@"c:\SomeFolder\OutputFile.jpg");

//Convert with a Data URL string:
//See below for other path string examples.
using (var imageTask = new ImageTask("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"))
    imageTask.Save(@"c:\SomeFolder\OutputFile.jpg");

//Convert with a file provider instance:
//See below for other file provider examples (UNC Path, AmazonS3, AzureBlob, Database etc.).
var fileProvider = new FileSystemFileProvider
{
    File = "InputFile.png",
    Location = new PhysicalLocation
    {
        Path = @"c:\SomeFolder"
    }
};
using (var imageTask = new ImageTask(fileProvider))
    imageTask.Save(@"c:\SomeFolder\OutputFile.jpg");

//Convert with a provider string:
//See below for other provider string examples (UNC Path, AmazonS3, AzureBlob, Database etc.).
using (var imageTask = new ImageTask(@"Type=FileSystem; File=InputFile.png; Location='Type=Physical; Path=c:\SomeFolder'"))
    imageTask.Save(@"c:\SomeFolder\OutputFile.jpg");
C#
//Get EXIF thumbnail if exists or resize:
using (var imageTask = new ImageTask(@"C:\Input\Picture1.jpg"))
    imageTask.Thumbnail(160).Save(@"C:\Output\Thumbnail1.jpg");

//Just resize:
using (var imageTask = new ImageTask(@"C:\Input\Picture1.jpg"))
    imageTask.ResizeWidth(200).Save(@"C:\Output\Picture2.jpg");
C#
//Using Undo for multiple outputs:
using (var imageTask = new ImageTask(@"C:\Input\Picture1.jpg", enableUndo: true))
    imageTask.ResizeWidth(200).Save(@"C:\Output\Picture2.jpg")
        .Undo().ResizeHeight(400).Rotate(90).Save(@"C:\Output\Picture3.png")
        .UndoAll().Save(outputStream, ImageFormat.Png);
C#
//Load image info of "c:\SomeFolder\InputFile.png"
using (var imageInfo = new ImageInfo(@"c:\SomeFolder\InputFile.png"))
{
}

//---------------------------------------

//Load with a virtual path string:
//See below for other path string examples.
using (var imageInfo = new ImageInfo("~/SomeFolder/InputFile.png"))
{
}

//Load with a URL string:
//See below for other path string examples.
using (var imageInfo = new ImageInfo("http://example.com/SomeFolder/InputFile.png"))
{
}

//Load with a Data URL string:
//See below for other path string examples.
using (var imageInfo = new ImageInfo("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"))
{
}

//Load with a file provider instance:
//See below for other file provider examples (UNC Path, AmazonS3, AzureBlob, Database etc.).
var fileProvider = new FileSystemFileProvider
{
    File = "InputFile.png",
    Location = new PhysicalLocation
    {
        Path = @"c:\SomeFolder"
    }
};
using (var imageInfo = new ImageInfo(fileProvider))
{
}

//Load with a provider string:
//See below for other provider string examples (UNC Path, AmazonS3, AzureBlob, Database etc.).
using (var imageInfo = new ImageInfo(@"Type=FileSystem; File=InputFile.png; Location='Type=Physical; Path=c:\SomeFolder'"))
{
}
C#
//Show all image info including EXIF and IPTC metadata
using (var imageInfo = new ImageInfo(@"C:\Input\Picture1.jpg"))
{
    Console.WriteLine("Info:");
    Console.WriteLine("----------------------------");
    Console.WriteLine("Format: " + imageInfo.Format);
    Console.WriteLine("Width: " + imageInfo.Width);
    Console.WriteLine("Height: " + imageInfo.Height);
    Console.WriteLine("ResolutionX: " + imageInfo.ResolutionX);
    Console.WriteLine("ResolutionY: " + imageInfo.ResolutionY);
    Console.WriteLine("ColorSpace: " + imageInfo.ColorSpace);
    Console.WriteLine("ColorType: " + imageInfo.ColorType);
    Console.WriteLine("BitDepth: " + imageInfo.BitDepth);
    Console.WriteLine("HasAlpha: " + imageInfo.HasAlpha);
    Console.WriteLine("ChannelCount: " + imageInfo.ChannelCount);

    Console.WriteLine();
    Console.WriteLine("Exif:");
    Console.WriteLine("----------------------------");
    foreach (var entry in imageInfo.ExifDictionary)
    {
        Console.WriteLine("Tag: " + entry.Tag);
        Console.WriteLine("Value: " + entry.Value);
        Console.WriteLine("Description: " + entry.Tag.Description);
        Console.WriteLine();
    }

    Console.WriteLine();
    Console.WriteLine("Iptc:");
    Console.WriteLine("----------------------------");
    foreach (var entry in imageInfo.IptcDictionary)
    {
        Console.WriteLine("Tag: " + entry.Tag);
        Console.WriteLine("Value: " + entry.Value);
        Console.WriteLine("Description: " + entry.Tag.Description);
        Console.WriteLine();
    }
}
C#
//Show info for a specific EXIF tag:
using (var imageInfo = new ImageInfo(@"C:\Input\Picture1.jpg"))
{
    var entry = imageInfo.ExifDictionary[ExifTag.Image.Artist];
    Console.WriteLine("Tag: " + entry.Tag);
    Console.WriteLine("Value: " + entry.Value);
    Console.WriteLine("Description: " + entry.Tag.Description);
    Console.WriteLine();

    if (imageInfo.ExifDictionary.TryGet(ExifTag.Image.Software, out ExifEntry entry2))
    {
        Console.WriteLine("Tag: " + entry2.Tag);
        Console.WriteLine("Value: " + entry2.Value);
        Console.WriteLine("Description: " + entry2.Tag.Description);
        Console.WriteLine();
    }
}

//Show info for a specific IPTC tag:
using (var imageInfo = new ImageInfo(@"C:\Input\Picture1.jpg"))
{
    var entry = imageInfo.IptcDictionary[IptcTag.Application2.Byline];
    Console.WriteLine("Tag: " + entry.Tag);
    Console.WriteLine("Value: " + entry.Value);
    Console.WriteLine("Description: " + entry.Tag.Description);
    Console.WriteLine();

    if (imageInfo.IptcDictionary.TryGet(IptcTag.Application2.ObjectName, out IptcEntry entry2))
    {
        Console.WriteLine("Tag: " + entry2.Tag);
        Console.WriteLine("Value: " + entry2.Value);
        Console.WriteLine("Description: " + entry2.Tag.Description);
        Console.WriteLine();
    }

    if (imageInfo.IptcDictionary.TryGet(IptcTag.Application2.Category, out IptcEntry[] entries))
    {
        foreach (var entry3 in entries)
        {
            Console.WriteLine("Tag: " + entry3.Tag);
            Console.WriteLine("Value: " + entry3.Value);
            Console.WriteLine("Description: " + entry3.Tag.Description);
            Console.WriteLine();
        }
    }
}