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

Photo Imaging

Aurigma Graphics Mill 5.5 for .NET is an ideal component for creating different kinds of photo imaging applications. The essential features for this kind of applications are highlighted below.

Multiple File Format

Using Graphics Mill for .NET you can load/save files of different file formats, including most popular formats for storing photo files - JPEG and TIFF. Full list of supported files is the following:

  • JPEG, JPEG2000, PNG, GIF, WBMP, TIFF, BMP (both read and write). Can read and write multipage TIFF and animated GIF files;
  • PCX, PSD (read only);
  • PDF, SWF (write only). Can write animated SWF files.

Fast Thumbnail Extraction

The essential photo imaging task is extracting thumbnails from a large number of photos. The critical requirement for this operation is high speed. Graphics Mill for .NET enables you to solve this task:

  • If the file contains EXIF data, Graphics Mill for .NET enables you to extract the thumbnail from the EXIF data block.
  • If the file does not contain EXIF data, you can generate a thumbnail using special fast and memory-friendly technique.

This way you can increase the speed tens of times compared to common approach when you first load the entire bitmap into memory, and then resize it.

Many Image Editing Algorithms (Effects and Corrections)

After you load the image, you can apply different corrections/effects to this image:

  • Image correction:
    • Hue/Saturation/Lightness correction;
    • Brightness/contrast correction (both automatic and manual);
    • Levels tone correction (both automatic and manual);
    • Curves tone correction;
    • Custom LUT;
    • Histogram equalization;
    • Channel balance;
    • Sharpen;
    • Unsharp Mask;
    • Median Filter (used for removing noise/scratches);
  • Artistic effects:
    • Add Noise (with uniform and Gaussian distribution);
    • Desaturate;
    • Invert;
    • Blur (Gaussian blur and fast implementation);
    • Edge Detect;
    • Median Filter;
    • Waddle;
    • Buttonize (with 3 diffrent button types);
    • Emboss;
    • Mosaic;
    • Page Curl;
    • Shadow;
    • Glow;
    • Solarize;
    • Spray;
  • Geometry transforms:
    • Resize;
    • Rotate (precise rotation on small angle, antialising, fast rotation on 90, 180 and 270 degrees);
    • Crop;
    • Flip;
    • Swirl;
    • Wave;
    • Water drop effect;
    • Cylindrize (used for creating photo mugs);

and some others.

Note

There is also available a separate module - Red-Eye Removal which exposes red-eye effect removal functionality (including unique semiautomatic mode).

The effects/corrections can be applied only to a part of the image. You can either specify a rectangular area to apply an effect to, or a raster mask of any shape.

Demo application screenshot

Metadata

Graphics Mill for .NET enables you to extract and modify EXIF, IPTC, XMP, and Adobe® image resource blocks metadata collections from files.

EXIF data contains information provided by the digital camera, including camera settings, date of capturing, and sometimes even GPS details. You can use EXIF data for different tasks: use some fields to post-process the photo (e.g. automatically rotate the image by analyzing the orientation of the camera during capturing), organize photos in a gallery by capture date, etc.

IPTC is commonly used in journalistic industry to keep information about image author, subject, location, etc. So you can use it for cataloging your photos.

XMP is used by Adobe Photoshop to store different metainformation.

Adobe® image resource blocks are used to store non-pixel data associated with an image, such as image resolution, color management settings, clipping path and so on.

Lossless JPEG Transformations Support

The disadvantage of JPEG files is that if you recompress them several times, the quality noticebly drops. The good news is that Graphics Mill for .NET enables you not only to decode JPEG files, but to also apply certain manipulations with JPEG files without decoding/encoding. This way you can apply some imaging operations which will not reduce the image quality.

  • You can rotate the compressed JPEG image data 90, 180, or 270 degrees and/or flip it, keeping this transform absolutely lossless.
  • You can crop an image without JPEG decompression. The quality of the cropped JPEG will be the same as the quality of the original bitmap.
  • You can copy a bitmap to the compressed JPEG image data. It will encode only the modified part of the image and leave all the rest intact. This way if you modify a small part of the image (e.g. draw a watermark or remove red eyes effect), the overall quality of the image will not be changed.
  • You can modify EXIF, IPTC, and XMP fields and Adobe® image resource blocks without decoding and encoding the JPEG file.

Color Management

Graphics Mill for .NET enables you to apply color management when working with images. You can:

  • Convert pixels between different color spaces using ICC color profiles. It enables you to preserve original colors during conversion;
  • Specify different transformation intents. When using perceptual intent you can use black point compensation technique which increases the contrast of the image after the conversion;
  • View images on the screen using the color profile of your monitor.
  • Preview print result using printer and monitor profiles in conjunction.

Extended Pixel Formats (16 bits per channel)

You can load and process bitmaps with extended (16 bits per channel) pixel format. It means that you can use benefits of such kind of files - sequent tone corrections do not degrade this kind of images as fast as it does for the 8-bit images.

Graphics Mill for .NET supports all kinds of extended pixel formats:

  • 16-bit grayscale;
  • 32-bit grayscale with alpha;
  • 48-bit RGB;
  • 64-bit ARGB;
  • 64-bit CMYK;
  • 80-bit ACMYK.

Multi-layer Image Control

One of quite wide-spread tasks when working with photos is to create image which consists of several photos or graphical elements. Examples: postcard, collage, etc. Graphics Mill for .NET includes a control and a number of classes which allow to hold several images in the same control, manipulate with them, and then merge them into a single bitmap.

Here is a brief list of features (for more detailed description see the Windows Imaging Applications):

  • Supports multiple layers, each of them can be hidden or locked. Layers can be easily added, removed, or swapped.
  • Each layer can contain multiple objects such as images, multiline text, rectangles, ellipses, lines, etc.
  • Each object can be dragged, rotated, resized, or skewed.
  • All layers and objects can be flattened into a single bitmap.

Multi-layer control used to create postcard.

Composite Print

If your application needs to print multiple photos at a time, Graphics Mill for .NET provides convenient classes to make it easier:

  • They allow printing in two modes - one image per page, or multiple images per page.
  • When multiple images are printed, Graphics Mill for .NET arranges them to preserve as much paper as possible.
  • They can automatically fit the image into some physical dimensions, in particular:
    • Auto resize;
    • Auto crop;
    • Auto center.
  • They handle portrait/landscape orientation of the image properly.
  • They are integrated with standard .NET print dialog.
  • The bitmaps which are printed are not loaded into memory entirely. This makes these classes memory-friendly.

Powerful Web Controls

If you are creating a web application to work with photos, and need a powerful web photo editor, you can use unique web controls shipped with Graphics Mill for .NET.

These controls have the following essential features:

  • Special web-optimized viewport control which has the following features:
    • Smart load-by-demand scheme for image displaying which enables you to browse even huge photos quite fast. According to this scheme the control:
      • Crops and downloads the only portion of image which is visible;
      • If some part of image has been already downloaded, it caches it at the client. When user scrolls to this part, it is displayed immediately;
      • When some portion of the image displayed at the viewport has been already cached, it downloads only the absent part.
    • While a portion of image is downloaded to the viewport, it displays a low-quality version (see the screenshot). This makes it easier to navigate the image.

      Load-by-demand screenshot

    • Rubber-band selection. Can be restricted to have limited proportions. Ideal for creating cropping interfaces.

      Online photo editor screenshot

    • Zoom:
      • Manual zooming (by mouse wheel or modifying appropriate property of the control);
      • Automatic zooming to fit entire image in the control ("fit page" mode);
      • Automatic zooming to fit the image in the control width ("fit width" mode).
    • Several quality modes for zoom in/out display. Supports scale-to-gray resize technique for bitone images;
    • Possibility to associate a navigator control which specifies behavior of mouse events at the control - pan, zoom in/out, zoom in the selected rectangle. Custom behavior can be specified;
    • Source code (C#) provided upon purchase.
  • Remote scripting feature:
    • Possibility to apply transforms to images directly from JavaScript. It will automatically call proper server code and update the image without roundtrip;
    • Extendable architecture: you can add your own remote scripting methods to apply some specific modifications (e.g. draw a border or add some text);
    • Possibility to access/change control properties through the client-side JavaScript.
  • Guarantied compatibility with most modern browsers such as Internet Explorer 5 and above, Mozilla, Netscape.

Powerful Windows Controls

If you are building a desktop Windows application, Graphics Mill for .NET is helpful here too. It provides powerful and convenient Windows Forms controls.

  • Scrollable viewport control with the following key features:
    • Rubber-band selection. Can be restricted to have limited proportions;

      Rubber-band selection screenshot

    • Zoom:
      • Manual zooming (by mouse wheel or modifying appropriate property of the control);
      • Automatic zooming to fit entire image in the control ("fit page" mode);
      • Automatic zooming to fit the image in the control width ("fit width" mode).
    • Several quality modes for zoom in/out display.
    • Color management during displaying;
    • Possibility to associate a navigator control which specifies behavior of mouse events at the control - pan, zoom in/out, zoom in the selected rectangle. Custom behavior can be specified;
    • Source code (C#) provided upon purchase.
  • Powerful demo application (C# and VB.NET source code is included) which can be used as a perfect starter kit. Includes dialogs for all the effects and many other features.

Examples of Usage

Graphics Mill for .NET is a highly versatile component and can be used in a wide range of applications. Here are a few examples:

  • Batch thumbnail generator;
  • Batch photo processor;
  • Image editing application;
  • Online photo hosting/photo ordering web site;
  • Web photo gallery;
  • Photo printing application.