This class enables you to apply lossless operations on the JPEG files.
Namespace:
Aurigma.GraphicsMill.Codecs
Assembly:
Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)
Public NotInheritable Class LosslessJpegTransform _ Inherits SyncHandler _ Implements IMetadataWriteSupport, IMetadataReadSupport
public sealed class LosslessJpegTransform : SyncHandler, IMetadataWriteSupport, IMetadataReadSupport
This class is intended to operate with JPEG files without recompression. It is useful if you need to modify Adobe® image resource blocks, XMP, EXIF or IPTC data only (without modifying the image), rotate or/and flip the JPEG image without recompression, or recompress only a part of image (e.g. if you add a text caption on the image, it makes sense to recompress only the part of image where the caption is placed and leave all the rest of image intact).
To use this class, you need to open the JPEG file with the Open(String) method first. After that, if you need to apply the following task:
According to JPEG specification an image is represented by blocks of pixels so-called JPEG Minimum Coded Units (MCU). Typically MCU size is a number divisible by 8. That fact allows to peform lossless rotation or flip: MCU blocks are rearranged in new order as well as the order of pixels is changed inside each MCU. Examine the situation when width or height of an image is non-divisible by MCU size, it means that the last column or row contains partially-filled MCU blocks. Such images do not support some types of rotation and flip. They will be cropped during tranformation and width and height of the result image will be divisible by MCU size. If you need to know whether dimensions of your image will be changed after a transformation, you can use the IsTrimmingRequired(RotateFlipType) method. This method returns whether dimensions will be changed taking into account the dimensions of currently opened JPEG image and the desired type of transformation.
Do not forget to close the transform object after you made all necessary operations (using the Close() method). It will release the file you opened.