Thank you to the people providing constructive criticism, everything is taken on board.
I want to dedicate this post to another partnership we have been able to embark upon, and maybe the most impressive yet. The features you are soon able to play with push Synergy IDE into the world of professional IDE's. You no longer have to use a seperate imaging application for viewing media or creating graphics, Synergy IDE now has a professional imaging solution built in.
Information
Synergy IDE now has professional imaging functionality (load/saving images, applying effects, transforms, drawing, etc). Here is the overview of its features:
• Load and Save Images
• Natural Pixel Formats Are Preserved
• Advanced Color Management
• Color Reduction
• Imaging Operations
• Unique Multithreading Support
• Drawing
Load and Save Images
Synergy IDE supports the following file formats:
• JPEG, PNG, GIF, WBMP, TIFF, BMP, JPEG2000 (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 and multipage PDF files;
One more great feature is possibility to process uncompressed JPEG files. In particular you can:
• Apply lossless rotate and flip.
• Recompress only a part of JPEG file. E.g. if you put a watermark at the image, you can just recompress only the part of the JPEG file which is updated and leave the rest intact.
• Edit EXIF and IPTC metadata without JPEG recompression.
Natural Pixel Formats Are Preserved
Synergy IDE allows you loading and saving images in their natural pixel formats: 1, 4, 8, 16, 24, 32, 40, 48, 64, 80 bits per pixel. So if you load 1-bit image, it won't be converted to 32-bit image (occupying 32 times memory more);
Most effects can be applied directly on RGB, Grayscale and CMYK image without any conversion. It not only prevents wasting of extra resources, but preserves image from degradation.
Another important feature of Synergy IDE is that it supports extended pixel formats, i.e. 16 bits per channel.
Advanced Color Management
To be sure that hardcopy image will have the same colors as an image file, you need to apply color management. Synergy IDE allows to do it as easy as possible. The following features are available:
• Load and save embedded ICC profiles in files;
• Conversion between color spaces (RGB, CMYK and Grayscale) based on ICC profiles;
• Not only bitmaps can be converted, but individual colors too;
• Displaying image on screen using device profile. Ability to use two profiles together (to see on the device how image will be looking on target device);
• Specifying rendering intent and possibility to use black point compensation algorithm to preserve image contrast after conversion;
• Extract the color profile information;
Color Reduction
Color reduction is a process of converting TrueColor images into the images with 2-256 colors (i.e. indexed images). It consists of two subtasks - palette generation and the convertation itself. Synergy IDE excellently resolves both of them.
With Synergy IDE you can:
• Generate adaptive palette using Octree algorithm;
• Use one of predefined palettes:
o Windows;
o Macintosh;
o Web Safe;
o Adaptive;
• Use custom palette;
When the convertation is started, to reduce halftone "washing out" special technique called dithering is used. Synergy IDE supports the following dithering modes:
• Error Diffusion (8 algorithms - Floyd Steinberg, Fan, Jarvis, Original, Stucki, Sierra, Burkes, and Stephenson);
• Ordered Dithering (2 algorithms - Bayers and spiral);
• White Noise;
Imaging Operations
Synergy IDE allows you applying different imaging operations. You can apply geometry transforms:
• Resize (12 interpolation algorithms, including Scale-To-Gray for 1-bit images displaying, and Scale-To-Color for color indexed bitmaps);
• Rotate (precise rotation on small angle, antialising, fast rotation on 90, 180 and 270 degrees);
• Arbitrary affine and projective transforms (e.g. skew, perspective, etc.);
• Crop;
• Flip;
• Swirl;
• Wave;
• WaterDrop;
• Cylindrize;
You can also apply tone and color adjustment algorithms:
• Hue/Saturation/Lightness correction;
• Brightness correction (both automatic and manual);
• Contrast correction (both automatic and manual);
• Levels tone correction (both automatic and manual);
• Curves tone correction;
• Custom LUT;
• Histogram equalization;
• Channel balance;
• Desaturate;
Use different filters:
• Blur (Gaussian blur and fast implementation);
• Edge Detect;
• Maximum Filter (also known as Erosion);
• Median Filter;
• Minimum Filter (also know as Dilation);
• Sharpen;
• Unsharp Mask;
Apply artistic effects:
• Waddle;
• Add Noise (with uniform and Gaussian distribution);
• Buttonize (with 3 diffrent button types);
• Emboss;
• Glow;
• Mosaic;
• Page Curl;
• Shadow;
• Solarize;
• Invert;
• Spray;
• Texturize (neighbour images are connected seamlessly).
You can apply effects and color/tone adjustments at a part of image using a rectangle or a raster mask.
You can also combine images with full support of alpha channel and various combine modes (such as Alpha, Add, Xor, Substract, Texturize, Screen, Overlay and others - total 22 modes). Overall opacity can be specified.
To get a statistics about the bitmap you can generate histogram. Analyzing the histogram you can estimate whether the image is too bright, too dark, or have too low contrast.
Unique Multithreading Support
Synergy IDE performs all image operations in it’s own thread to prevent stability issues.
Drawing
Synergy IDE provides powerful drawing features.
o Draw lines, curves (bezier splines, arcs), shapes (rectangles, ellipses, polygons, pies);
o Ability to use various pens to outline shape (you can specify width, color, style, etc.);
o Ability to use various brushes to fill shapes (you can change color, specify whether brush hatched and so on);
o Draw text with True Type, Type1 and OpenType fonts. Text can be both single-line and multi-line with automatic words wrapping, clipping, adding ellipsis, etc;
o Draw outlined text;
o Set affine transformation when some graphics is drawn (rotate, scale, shear);
o Set clipping region when drawing anything;