ImageEn

What's New

Version 15.0.0

New Features

Added: Can now display and edit individual channels (Red, Green, Blue or Alpha) in TImageEnView
  
Added: ie32RGB and ie48RGB support in TIEColorCurve
Added: GenerateMap helper to create map images
  
Added: IEGenerateSampleImage helper to create test images of all pixel formats
  
Added: Gradiated inversion of 8bit selection masks for TImageEnView
Added: New Layer dialog allows selection and changing of layer type
  
Added: Support for TIFF files that contain a single block larger than 2GB
Added: Mouse wheel and other interactions allow zooming with slippy maps
Added: Scrollbars supported for slippy maps
Added: Auto initialization option for bitmaps when using slippy maps
Added: New Image Properties dialog that shows preview, meta-data, map and histogram for an image
  
Added: Equirectangular Renderer (for 3D images) supports zooming and scrollbars
Added: Virtual Bitmap providers automatically initialize bitmaps for viewing
Added: Complete documentation for TIERichEdit
Added: TImageEnIO PDFium I/O uses a critical section
Added: TIEBitmap.CopyRectTo supports ie8g to ie24RGB drawing
Added: TImageEnProc.SetFromRGBChannels supports updating image by setting a single color channel
Added: Five new Actions: TImageEnViewLayersNew, TImageEnViewMouseSelectShape, TImageEnMViewViewProperties, TImageEnViewChannel, TImageEnViewEnableAlphaChannel
Added: GetRGBChannel and SetFromRGBChannels support ie8g format
Added: Optimization and version checking for IELang DLL
Added: CalcImageNumColors supports ie24RGB, ie1g, ie32RGB
Added: GetHistogram supports ie8g, ie16g, ie24RGB, ie32RGB
Added: CastAlpha supports all color formats with an alpha channel
Added: CompareHistogramWith auto-converts pixel format of second image if necessary
Added: GetRGBChannel supports all pixel formats
Added: Many formats now support ie32RGB natively:
    AdjustBrightnessContrastSaturation, AdjustGainOffset, AdjustLumSatHistogram, AdjustSaturation,
    AdjustTemperature, AdjustTint, ApplyCubeLUT, CalcAverageRGB, CalcDensityHistogram,
    CalcImagePalette, CalcOrientation, CalcStdDev, CastAlpha, CastColor,
    CastColorRange, Colorize, CompareHistogramWith, ComputeImageEquality, Contrast2,
    Contrast3, ConvertToBWLocalThreshold, ConvertToGray, ConvertToPalette, ConvertToSepia,
    Convolve, DisposeChannels, GetCMYKChannels, GetDominantColor, GetHSVChannel,
    GuessChromaKeyColor, Intensity, MapGrayToColor, MatchHSVRange, Random,
    RemoveChromaKey, RemoveIsolatedPixels, RemoveIsolatedPixels, SetFromRGBChannels, GetRGBChannel,
    SkewDetectionFine, Threshold, WallisFilter, Warp, WhiteBalance_AutoWhite,
    WhiteBalance_Coef, WhiteBalance_GrayWorld, WhiteBalance_WhiteAt, IEDrawColorPalette, TIEBitmap.CopyRectTo,
    TIEBitmap.DrawToTIEBitmap, TIEBitmap.SetColorFromAlpha, TIEBitmap.RemoveAlphaChannel
Added: Automatic image orientation supported when loading via WIC
Added: Complete native localization for Slovak language
Added: Splitter to widen font selector on RichEdit toolbar
Added: ConvertToBW_FloydSteinberg, ConvertToBWOrdered, ConvertToBWThreshold and ConvertToBWLocalThreshold support the alpha channel
Added: Alpha channel is not lost when converting the pixel format to ie1g
Added: ie1g pixel format is supported when merging with RemoveAlphaChannel
Added: PerspectiveDraw and ProjectDraw no longer modify the source image
Added: New installer used for improved package downloading, security and styling
Added: clNone can be specified for the Brush Tool color to only paint the alpha channel
Added: Can specify the alpha when performing a color fill interaction
Added: miColorPicker now also returns the click/hover position
Added: TImageEnView can save icon files in compressed PNG format
Added: New brush types: iebfLine, iebfRect, iebfFilledRect, iebfEllipse, iebfFilledEllipse
Added: TIEBitmap.Assign allows assignment from ie16g, ie32f, ieCMYK, ieCIELab, ie48RGB pixel formats
Added: IEDrawColorPalette automatically updates attached TImageEnView
Added: Visualizer displays hint for the color and alpha value under the cursor
Added: EnableHoverHint property to display the color and alpha value under the cursor
  
Added: Improved styling of TImageEnView hover hints
Added: Border width can be specified for TImageEnView hover hints
Added: WicFastLoading is supported even when loading scaled JPEG images
Added: WIC can be used to load scaled JPEG images embedded in Camera RAW files
Added: AutoOptimizeOnSave supports ie1g, ie8g, ie8p and ie32RGB images too
Added: Hover hint for miColorPicker
Added: Weighting options for color and alpha gradient fills, e.g. ease in/out, middle-weighted, etc.
Added: Auto conversion to compatible formats when saving is optional
Added: AutoConvertFormat will automatically promote PNG to 8bit or 24bit when saving with Alpha
Added: Automatically converts to compatible pixel format and compression when saving DICOM if AutoConvertFormat is enabled
Added: Auto converts format when saving WIC to unsupported pixel formats (ie8p, ie32f, ieCIELab, ieCMYK)
Added: ie8g and ie8p images can be merged with their alpha channel
Added: ie8g supported for saving to JPEG
Added: AutoConvertFormat will automatically convert pixel format of TIFF files when incompatible
Added: CastAlphaRange to change a range of transparency
Added: Alpha is stripped from RGBA format images when using RemoveAlphaChannel
Added: CastColorRange supports ie8g
Added: IEDrawColorPalette works better with other pixel formats
Added: New Wallis Filter algorithm to avoid letterbox effect
Added: Source of magnification for magnify layers can be locked by property or ALT key
Added: TImageEnProc.GetRGBChannel supports A channel for 32bit images
Added: Expanded use of standard ImageEn exceptions
Added: Improve error when loading corrupt IEN file
Added: Auto-correction of invalid JPEGQuality value
Added: Allows images of any pixel format when saving to WIC
Added: TImageList can be assigned to a TIEBitmap or TImageEnView
Added: Heif plug-in with support for Alpha channel and multiple frames, including AVIF saving
Added: DICOM images can be saved with custom DICOM_BitsStored values
Added: AddShapesToImageEnMView helper now allows an image to be used as the shape fill and can exclude boring shapes
Added: TImageEnMIO.DoPrintPreviewDialog and TImageEnMIO.DoSavePreviewDialog can be used to print/save a TIEMultiBitmap (without needing a TImageEnMView)
Added: TImageEnMIO.DoPrintPreviewDialog allows a heading to be specified and styled when thumbnail printing
  
Added: DrawToBitmap to output all images in a TIEMultiBitmap to bitmap
  
Added: Over 3000 code samples with sample images added to the documentation
Added: Implemented LibRaw 0.22 with support for many more cameras: Canon (EOS R1, EOS R5 Mark II, EOS R5 C, EOS R6 Mark II, EOS R8, EOS R50, EOS R100, EOS Ra), Fujifilm (X-T50, GFX 100S II, GFX100-II, X-T5, X-S20, X-H2, X-H2S), Hasselblad (CFV-50c, CFV-100c, X2D-100c), Leica (Q3 43, D-Lux8, SL3, Q3, M11), Nikon (Z6-III, Z f, Z30, Z8), Olympus (OM-1 Mark II, TG-7, OM-5), Panasonic (GH7, S9, DC-G9 II, DC-ZS200D, ZS220D, DC-TZ200D, TZ202D, TZ220D, DC-S5-II, DC-GH6), Pentax (KF, K III), Sony (ZV-E10M2, UMC-R10C, A9-III, ILX-LR1, A7C-II, A7CR, ILCE-6700, ZV-1M2, ZV-E1, ILCE-7RM5, A7R-V, ILME-FX30), etc.
Added: Many improvements to the documentation

Bug Fixes

Fixed: Workaround for aborting of URL based loading in TImageEnMView
Fixed: Spaces trimmed from text when cancelling Layer Properties dialog
Fixed: TIEMask.SetShape does not apply any fully unselected pixels
Fixed: TIEMask.Assign() does not work correctly when assigning 24bit bitmaps
Fixed: Issue when TIEMask internally gets promoted to 8bit while TImageEnView.SelectionMaskDepth=1
Fixed: Some Spanish strings not translated
Fixed: TIOParamsHelper.WriteTo does not automatically add supported types if all requested
Fixed: Setting the PageIndex for TIEPdfViewer will fail if there is no parent TImageEnView
Fixed: Small calculation error in Green channel when using SetFromRGBChannels
Fixed: AddInnerShadow and AddSoftShadow do not automatically convert pixel formats
Fixed: RemoveChromaKey did not auto-convert ie1g format
Fixed: SkewDetection fails with 24bit images unless EdgeDetect is enabled
Fixed: Cartoonify does not auto-convert to ie24RGB format
Fixed: Freezing with TIEAnimation if Explorer Thumbnails are enabled
Fixed: TIEImageEnAnnot defaults to IEVect Object annotations
Fixed: Resolves many issues when using ie1g or ie32RGB images in native format
Fixed: TImageEnView.CopySelectionToBitmap adds an alpha channel to the image
Fixed: To avoid image bottom-up issues with Windows Explorer thumbnails, minimum size of 98x98 is enforced
Fixed: Font selector on RichEdit toolbar sets all default text
Fixed: TImageEnMView.OnImageSelect not firing when navigating via attached TImageEnView
Fixed: Alpha channel may be added when rendering a bitmap to another bitmap if it has an alpha channel
Fixed: Drawing rotated text to ImageEnView canvas can mess up output
Fixed: Line layers become too tall at zero rotation
Fixed: Added checking for invalid types specified for TIELayerPointsInteraction.LayerKind
Fixed: Improve painting of line and angle layers when update is pending
Fixed: Handles ie16g, ie32f, ie48RGB, ieCIELab and ieCMYK formats when saving to PNG
Fixed: Conversions from ie1g to ieCIELab fail
Fixed: Paint issue with Retouch Tools when image has an alpha channel
Fixed: In some situations TImageEnView Pen Width is not reset
Fixed: Issues with loading some WIC formats because codec is explicitly specified
Fixed: Compression format ignored when saving a bitmap to IEN format (not attached to TImageEnView)
Fixed: Unable to save iedcJPEG compressed DICOM files if JPEGEngine is WIC
Fixed: Rare freeze that can occur when iterating Twain scanners and none are found
Fixed: Aborting not set to true when saving TIFF to incompatible pixel formats
Fixed: OnFinishWork not called when saving until file is available
Fixed: When saving incompatible pixel formats to save image formats they image may be corrupted rather than raising an exception
Fixed: Failure when saving TIFF with JPEG compression and ie16g, ie32f pixel formats
Fixed: ScanBarcode helper does not consider selection area
Fixed: Potential memory leak if incompatible DICOM save format is specified
Fixed: Potential stack overflow with TPdfObjectList.AddRect, TPdfObjectList.AddPath and TPdfObjectList.AddEllipse
Fixed: TImageEnProc.GetReSel may return a rect larger than the image
Fixed: May get invalid result for TImageEnProc.CalcImagePalette
Fixed: Bound checking issue with TImageEnProc selection
Fixed: Array overload of GetDominantColor does not return a percentage
Fixed: Array overload of GetDominantColor may not return principal color or fill array with null values
Fixed: For some formats a 0 byte file is left if TImageEnIO fails to save image
Fixed: Saving thumbnails to bitmap from TIEMultiBitmap without a TImageEnMView may give invalid fonts
Fixed: Improved positioning of thumbnails when printing a TImageEnMView
Fixed: Some compatibility fixes for 64-bit pointers
Fixed: TOpenImageEnDialog.ZoomFilter may have wrong value in rare case
Fixed: Directory not used for WindowsSelectDirectory if CSIDL constant used

Changes to Classes

Added: TIESlippyMap.EnablePin method to draw a pin
Added: THistogramBox.MaxHeightRatio property to prevent too tall histograms
Added: TImageEnView.SelectionShape is now a published property
Added: TImageEnViewToolbar.CurrentButtons
Added: TImageEnVect.DrawTextMode

Changes to Method Parameters

Added: TIOParamsHelper.WriteTo includes a Clear parameter
Added: TIOParams.Create offers a Filename overload
Added: FillColor parameter for TImageEnMView.AppendImage and TImageEnMView.InsertImage
Added: Alpha parameter for TIEBitmap.Fill
Added: MoveAlpha parameter for TIEBitmap.MoveRegion
Added: TIEBitmap overloads for TImageEnIO.PreviewPrintImage and TImageEnMIO.PreviewPrintImages
Added: ClipImages parameter for all TImageEnMIO thumbnail printing and saving methods

Demo Changes

Added: Filtering of methods in Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
Added: Code examples are output in Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
Added: Many new methods added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
Added: ImageEnView selection methods added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
Added: Layers added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
Added: TImageEnIO dialog added methods to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
Added: Improvements to PhotoSphere demo (Demos\Display\PhotoSphere\PhotoSphere.dpr)
Added: Shape selection in Complete Editor demo (Demos\ImageEditing\CompleteEditor\PhotoEn.dpr)
Added: Improvements to all Actions demos (Demos\Actions\)
Added: Quick set options in Toolbar demo (Demos\Other\ImageEnViewToolbar\IEToolbar.dpr)
Fixed: Crash in OCR Layout demo if run twice on same image (Demos\IEVision\OCRwithLayout\OCRwithLayout.dpr)
Added: Complete rewrite of Icon Editor demo (Demos\ImageEditing\IconEditor\IconEditor.dpr)
New: Hough circles detection demo (Demos\IEVision\CirclesDetect\CirclesDetect.dpr)
Added: New drawing features added to Brush Tool demo (Demos\ImageEditing\BrushTool\PaintBrush.dpr)
Added: Locking of the magnification source position in Layer Magnify demo (Demos\Display\Magnify2\Magnify2.dpr)
Added: Improvements to Threaded Processing demos (Demos\ImageEditing\ThreadedProcessing*)
Added: Improvents to Pan/Zoom demo (Demos\Display\PanZoomEffects\PanZoom.dpr)

Compatibility Issues

Removed: ivbLayersFontStyle no longer available as a Toolbar Button ID. Instead use ivbLayersFont
Renamed: Some undocumented ImageEnProc global methods have been renamed or removed
Changed: Visibility of the Twain acquisition dialog is no longer checked unless included in TwainCompatibilityOptions
Changed: Default for FilteredAdjustDPI and FilteredAdjustDPI is True
Changed: To save to TIFF with the following Photometric types: ioTIFF_WHITEISZERO, ioTIFF_BLACKISZERO, ioTIFF_RGBPALETTE, ioTIFF_TRANSPMASK, the SamplesPerPixel of the image must be 1, or the PixelFormat one of ie1g, ie8p, ie8g, ie16g, ie32f with AutoSetBitDepth enabled

See Also

Complete History
Updating and Compatibility