This documentation is for the old version. Go to the latest Graphics Mill docs

TiffEncoderOptions Class

This class holds TIFF encoder options.

Namespace: Aurigma.GraphicsMill.Codecs
Assembly: Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)

Syntax

Visual Basic
Public NotInheritable Class TiffEncoderOptions _
	Inherits EncoderOptions
C#
public sealed class TiffEncoderOptions : EncoderOptions

Remarks

The main TIFF encoder setting is a compression type. To change compression type use Compression property. This property accepts members of the CompressionType enumeration.

Another setting which can be specified is alpha premultiplication. This option has meaning only when saving image with alpha channel. You can turn it on or off using AlphaPremultiplied property. The default value of this property is false and content of the alpha channel is simply stored along with color channels of the image by default. The second way is to store image with "associated" alpha channel. This way implies that not only alpha channel itself will be encoded into the file, but also color channels of each pixel will be premultiplied with the corresponding alpha channel value.

You should use TIFF files with associated alpha if you have software which gain some benefit from them. For example, TIFF files with premultiplied alpha are correctly shown as partially transparent images in Adobe® Photoshop®, while images with unassociated alpha are shown as non transparent images with additional channel. But you should take into account that premultiplication process slows down encoding and introduces rounding error. So you should not set this property to true without reason.

Also you can provide meta-information for encoding. Use AdobeResources, Exif and Iptc properties to specify corresponding metadata objects.

MediaFormat property of this class always returns value that equals to TiffFormat static field of the FormatManager class. Left and Top are meaningless for TIFF and always set to 0.

Examples

This code sample demonstrates how to save the TIFF with the single frame. It just converts the JPEG file into the TIFF format.

Visual Basic
Dim bitmap As New Aurigma.GraphicsMill.Bitmap("c:\Mountain.jpg")

bitmap.Save("C:\Mountain.tif", _
    New Aurigma.GraphicsMill.Codecs.TiffEncoderOptions(50))

bitmap.Dispose()
C#
using (Aurigma.GraphicsMill.Bitmap bitmap =
    new Aurigma.GraphicsMill.Bitmap(@"c:\Mountain.jpg"))
{
    bitmap.Save(@"C:\Mountain.tif", 
        new Aurigma.GraphicsMill.Codecs.TiffEncoderOptions(50));
}

TIFF files can store EXIF and IPTC data blocks. Graphics Mill for .NET allows you extracting this data from the TIFF file and save it into another TIFF file (as well as into the other file format which supports EXIF and IPTC). This code sample demonstrates how to add the EXIF and IPTC data to the file:

Visual Basic
Dim bitmap As New Aurigma.GraphicsMill.Bitmap("c:\Mountain.jpg")
Dim encoderOptions As New Aurigma.GraphicsMill.Codecs.TiffEncoderOptions(50)

'EXIF
Dim exif As New Aurigma.GraphicsMill.Codecs.ExifDictionary
exif(Aurigma.GraphicsMill.Codecs.ExifDictionary.Software) = "Aurigma Graphics Mill"

encoderOptions.Exif = exif

'IPTC
Dim iptc As New Aurigma.GraphicsMill.Codecs.IptcDictionary
iptc(Aurigma.GraphicsMill.Codecs.IptcDictionary.Category) = "Nature"
iptc(Aurigma.GraphicsMill.Codecs.IptcDictionary.CopyrightNotice) = "Aurigma Inc."
iptc(Aurigma.GraphicsMill.Codecs.IptcDictionary.Keyword) = "mountain"

encoderOptions.Iptc = iptc

'Adobe resource blocks
Dim adobeResources As New Aurigma.GraphicsMill.Codecs.AdobeResourceDictionary
'Create new adobe image resource block with the required metadata
Dim arBlock As New Aurigma.GraphicsMill.Codecs.AdobeResourceBlock("Copyright", New Byte() {1})
'Set this block to the item with 0x040A ID (copyright flag)
adobeResources.Item(&H40A) = arBlock

encoderOptions.AdobeResources = adobeResources

'XMP
Dim xmp As New Aurigma.GraphicsMill.Codecs.XmpData()
'Create a node with the required metadata
Dim node As New Aurigma.GraphicsMill.Codecs.XmpValueNode( _
    Aurigma.GraphicsMill.Codecs.XmpNodeType.SimpleProperty, _
    "John Doe", _
    Aurigma.GraphicsMill.Codecs.XmpTagNames.DCCreator)
xmp.AddNode(node)

encoderOptions.Xmp = xmp.Save()

bitmap.Save("C:\Mountain.tif", encoderOptions)

bitmap.Dispose()
C#
using (Aurigma.GraphicsMill.Bitmap bitmap = 
           new Aurigma.GraphicsMill.Bitmap(@"c:\Mountain.jpg"))
{                
    Aurigma.GraphicsMill.Codecs.TiffEncoderOptions encoderOptions =
        new Aurigma.GraphicsMill.Codecs.TiffEncoderOptions(50);

    //EXIF
    Aurigma.GraphicsMill.Codecs.ExifDictionary exif =
        new Aurigma.GraphicsMill.Codecs.ExifDictionary();
    exif[Aurigma.GraphicsMill.Codecs.ExifDictionary.Software] = "Aurigma Graphics Mill";

    encoderOptions.Exif = exif;
    
    //IPTC
    Aurigma.GraphicsMill.Codecs.IptcDictionary iptc =
        new Aurigma.GraphicsMill.Codecs.IptcDictionary();
    iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Category] = "Nature";
    iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.CopyrightNotice] = "Aurigma Inc.";
    iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Keyword] = "mountain";

    encoderOptions.Iptc = iptc;

    //Adobe resource blocks
    Aurigma.GraphicsMill.Codecs.AdobeResourceDictionary adobeResources =
        new Aurigma.GraphicsMill.Codecs.AdobeResourceDictionary();
    //Create new adobe image resource block with the required metadata
    Aurigma.GraphicsMill.Codecs.AdobeResourceBlock arBlock = new
        Aurigma.GraphicsMill.Codecs.AdobeResourceBlock("Copyright", new byte[] { 1 });
    //Set this block to the item with 0x040A ID (copyright flag)
    adobeResources[0x040A] = arBlock;

    encoderOptions.AdobeResources = adobeResources;

    //XMP
    Aurigma.GraphicsMill.Codecs.XmpData xmp = new Aurigma.GraphicsMill.Codecs.XmpData();
    //Create a node with the required metadata
    Aurigma.GraphicsMill.Codecs.XmpValueNode node = new
        Aurigma.GraphicsMill.Codecs.XmpValueNode(
            Aurigma.GraphicsMill.Codecs.XmpNodeType.SimpleProperty,
            "John Doe",
            Aurigma.GraphicsMill.Codecs.XmpTagNames.DCCreator);
    xmp.AddNode(node);

    encoderOptions.Xmp = xmp.Save();

    bitmap.Save(@"C:\Mountain.tif", encoderOptions);
}

Inheritance Hierarchy

System.Object
L Aurigma.GraphicsMill.Codecs.EncoderOptions
L Aurigma.GraphicsMill.Codecs.TiffEncoderOptions

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are not safe for multi-threaded operations.

Object Model








See Also

Reference