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
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:
- Dithering high-color-depth images to view them on low-color-depth environments like embedded systems
- Producing accurate images for image transmission
- In medical imaging, generating images from X-rays and ultrasounds to detect conditions for patient screening
- Analyzing remotely-sensed images for further research
- Enhancing images for acoustic imaging
- Restoration and enhancement of surveillance imagery in forensic sciences
- Job application forms as a profile image
- Documents where company logos need to be inserted for example shipping labels
- Product requirements where a Product Manager would use images to explain better end result of a software
- 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.
- Articles where images can increase traffic to the pages,
- 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:
1. Load and save images in popular formats
GcImaging can load images from files, streams, or byte arrays and save images to files or streams. GcImaging supports:
- GIF (single-frame only)
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.
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.
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
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
2.5 Apply effects to RGB images
RGB images can be altered with a variety of effects:
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
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
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.
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.
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
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
- 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.
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.
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.