Skip to main content Skip to footer

Introducing Imaging library for .NET Core

https://www.mathworks.com/help/vision/ug/interpolation-methods.html

Most apps have some need for image processing: you might be uploading profile photos, or storing photographs, or need to use images for interpretation and analysis. The sharper your images' quality, the better your users can interpret information (and the better your app will look). While many languages are versatile enough to provide image processing, there's a dearth of full-featured libraries supported on .NET .NET Core, which means you'd lose the ability to write a single code base for cross-platform support.

Introducing an Imaging API for .NET Core

GrapeCity's Documents API line now features a full imaging library that fills that gap: Documents for Imaging, .NET Edition (a.k.a. GcImaging). With GcImaging, you can create, load, modify, and save images in .NET Core applications with full support on Windows, macOS, and Linux and deploy as FaaS with AWS Lambda, Azure functions, and more.

This feature-rich API can:

  • Load images of popular formats like BMP, JPEG, TIFF, GIF, and PNG
  • Apply advanced image processing techniques and save them back
  • Load and save image files
  • Modify images like rotate, crop, resize, and convert images
  • Apply effects like dithering, thresholding effects on grayscale images
  • Apply effects on RGB images
  • Draw graphics on images and fill regions
  • Draw advanced text with full font handling, text, and paragraph formatting on images
  • Apply advanced TIFF features

...and more!

When would you need GcImaging for .NET Core?

If you require image processing and you're migrating .NET Standard, GcImaging is a must—it's the only imaging library currently available for .NET Standard. Top use cases include:

  1. Dithering high-color-depth images to view them on low-color-depth environments like embedded systems
  2. Producing accurate images for image transmission
  3. In medical imaging, generating images from X-rays and ultrasounds to detect conditions for patient screening
  4. Analyzing remotely-sensed images for further research
  5. Enhancing images for acoustic imaging
  6. Restoration and enhancement of surveillance imagery in forensic sciences
  7. Job application forms as a profile image
  8. Documents where company logos need to be inserted for example shipping labels
  9. Product requirements where a Product Manager would use images to explain better end result of a software
  10. E-commerce apps where people choose products based on images, and more the quality of images, the more likely they are to choose the products.
  11. Articles where images can increase traffic to the pages,
  12. Social media marketing makes heavy use of illustrative examples

And so on!

Let's look at what GcImaging can do for you.

Top features include:

GcImaging can load images from files, streams, or byte arrays and save images to files or streams. GcImaging supports:

  • BMP
  • JPEG
  • GIF (single-frame only)
  • PNG
  • TIFF

2. Process images in code

GcImaging allows you to apply variety of image processing techniques: modify images, apply effects, convert, and save images in original or other image formats.

2.1 Create thumbnails and apply watermarks

Apply various interpolation algorithms and downscale the images to thumbnails of any size. You can also apply watermark text to the thumbnails and save them.

Original image

Thumbnail image

Try demo | Documentation

2.2 Rotate and flip images in code

Rotate and flip images clockwise or counter-clockwise to render on different devices, or to create mirror effects. Flip images horizontally to create a water reflection, or vertically to create a mirror effect.

Rotate images in code Flip images in code

Try demo | Documentation

2.3 Resize images using several interpolation modes

Images often need to be enlarged to view small details, or scaled down to adjust to the available space. GcImaging supports popular interpolation algorithms that control a pixel's color and intensity while transforming to final images:

  • Nearest neighbor interpolation algorithm
  • Bilinear interpolation algorithm
  • Bicubic interpolation algorithm
  • Resampling algorithm for downscaling

Try demo | Documentation

2.4 Convert images to grayscale (monochromatic gray) in accordance with standards

Desaturate your images to grayscale in these standards:

  • BT.601 (old standard for color TV and video systems like PAL and NTSC)
  • ITU-R BT.709 standard used for HDTV
  • ITU-R BT.2100 standard for HDR television

Original image

Create grayscale images in code

2.5 Apply effects to RGB images

RGB images can be altered with a variety of effects:

  • HueRotationEffect
  • SaturationEffect
  • SepiaEffect
  • TemperatureAndTintEffect
  • LuminanceToAlphaEffect
  • OpacityEffect
  • BrightnessContrastEffect
  • GammaCorrectionEffect

Original RGB image

Color correct RGB images in code

Try demo | Documentation

2.6 Apply dithering effects to grayscale and RGB images

Normal full images can contain a near-infinite range of color values. With GcImaging, you can apply dithering effects to reduce the number of bits per color channel in the images:

  • Floyd-Steinberg dithering
  • Jarvis, Judice, and Ninke filter
  • Stucki dithering
  • Bill Atkinson's formula
  • Burkes dithering
  • Frankie Sierra's dithering
  • Simplified two-row Sierra algorithm
  • Sierra Lite dithering

Before and after Stucki Dithering effect

Try demo | Documentation

2.7 Apply thresholding effects to grayscale images

Thresholding effects can help you isolate objects into foreground and background. GcImaging supports:

  • Bradley and Roth's method of adaptive image thresholding
  • Otsu's method of clustering-based image thresholding

Original image

Apply thresholding in code

Try demo | Documentation

2.8 Apply other image processing techniques

In addition to above, you can modify and enhance the images even more, with various image processing techniques like following:

  • Apply a 5x4 color matrix to an image
  • Apply a bi-level or half-tone transparency mask to an image
  • Set the background color for a semi-transparent image (make the image opaque)
  • Check whether an image has transparent pixels
  • Get the list of unique pixel colors in the image
  • Convert full-colored images to indexed images with palette
  • Change image resolution
  • Clear image

3. Draw graphics on images

Apply various geometrical figures with advanced properties and graphics on the images.

  • Draw and fill geometric figures (lines, polygons, rectangles, round rectangles, ellipses, paths).
  • Create graphic paths containing lines, cubic and quadratic Bezier curves, arcs.
  • Draw using different pen styles.
  • Fill with solid colours or gradients.
  • Draw images using different image alignment modes.
  • Clip images to rectangular or free-form regions.
  • Apply matrix transformations.

Draw graphics on images

Try demo | Documentation

4. Draw text on images

With GcImaging text features, you can caption an image, add a company name or logo, or even create memes for images. GcImaging's advanced text features can work on any environment and in multilingual applications where the image is being used.

Here's a list of text features and properties supported with GcImaging:

  • Powerful text layout engine with full support for TrueType, OpenType, WOFF fonts.
  • Text processing, layout and formatting is platform-independent and follows Unicode standards.
  • Fallback, linked and EUDC fonts are fully supported.
  • Draw coloured fonts and characters with 4-byte Unicode codes.
  • Font features and bold/italic emulation are supported.
  • Right-to-left and Far Eastern languages are fully supported, including Kashida in Arabic and Tate Chu Yoko for CJK languages and vertical text.
  • Vertical text
  • Various paragraph formatting options, support for multi-column text with balanced columns.
  • Measure and split text.
  • Draw text around images or other rectangular areas.
  • Aliased and two anti-aliasing modes for rendering text and graphics.

Draw text on images in code

Try demo | Documentation

5. Work with TIFF images

GcImaging supports creating, editing and saving TIFF images, the format preferred to store multiple BMP images of different pixel depths. The following features are supported:

  • Read and write TIFF frames as separate images.
  • Support various compression schemes.
  • Support PhotometricInterpretation tag values WhiteIsZero, BlackIsZero, RGB, RGB Palette, and transparency mask
  • Support tiled, planar, and differencing storage methods

Try demo | Documentation

6. Convert images

Convert images to multiple image formats as per your application needs. Images can be converted to BMP, JPEG, GIF, PNG, and TIFF.

7. Extract Exif metadata from Images

Metadata information is attached to the images when they're captured, and these fields can tell you about:

  • The model of the camera
  • The time it was taken
  • Shutter speed
  • Focal length
  • Light value and even the location
  • Whether the flash was used
  • Title
  • Creator
  • Date
  • Description
  • Copyright
  • And more!

Such information is helpful to analyze images further by intelligence, investigative agencies, news agencies, or remote sensing research. With GcImaging, you can extract all Exif metadata from the images and make use of it as per the business needs.

Extract Exif metadata from images

Try demo | Documentation

8. Watermark your images

You can add watermark text with all advanced text features that can render on any system. The resulting image can be saved to any of the image formats.

Apply watermarks to images in code

Try demo | Documentation

Deploying GcImaging as FaaS (AWS Lambda, Azure Functions etc.)

You can also use GcImaging as FaaS with AWS Lambda, Azure functions, and other cloud services.

Know more about GcImaging

Samples

Check out GcImaging's full featured demo sample at http://demos.componentone.com/gcdocs/gcimaging for code samples and feature demonstration. These samples are .NET Core applications, available for download from the demo sample.

Documentation

To learn about GcImaging product architecure and features in detail, visit the GcImaging documentation.

Shilpa Sharma - Product Manager

Shilpa Sharma

Product Manager
comments powered by Disqus