ImageEn

What's New


Version 14.2.0

New Features

Added: Native PNG is now only compiled into project if ieNativePNG is included in uses
Added: Native JPEG2000 is now only compiled into project if ieNativeJ2K is included in uses
Added: Native JPEG is now included in a separate unit, ieNativeJPEG (for future optional exclusion)
Added: IEGlobalSettings().ImageEnVersion.Status to output status of all plug-ins and imaging engines
Added: TImageEnMView printing supports specification of image indexes
Added: InsertTIFFImageFile and InsertTIFFImageStream support non-TIFF files
Added: InsertTIFFImageFile overload to specify an output file
Added: InsertTIFFImageFile and InsertTIFFImageStream automatically check for matching byte orders and clean up on failure
Added: TIETIFFHandler automatically checks for supported byte orders
Added: More robust checking of 64bit stream positioning
Added: TIETIFFHandler supports progress display
Added: TIETIFFHandler.GetPageBitmap method
Added: Auto-merge option when adding new layers (added directly to background)
Added: Improved layout of DLL loading log
Added: Error icons for TImageEnMView when memory issues occur
Added: TIEWia.DocumentCapabilities and TIEWia.DocumentStatus
Added: Holding Alt key will rotate border shape for text layers
Added: Color Palettes: Magma, Inferno, Plasma, Viridis, Cividis, Twilight, Turbo, Berlin, Managua, Vanimo
Added: MapGrayToColor and AssignColorMap scale the map if it does not contain 256 entries
Added: Debug visualizer outputs the status of all DLLs and imaging engines
Added: Property and status information is grouped in the debugging visualizer
Added: Image effect can be quickly applied to a bitmap using a string, e.g. "RGB/1/255/0/0"
Added: Improved readability of image effect as string
Added: Improved debug information that is shown when hovering over a TIEBitmap
Added: Debug information can be displayed over TImageEnView and TImageEnMView control windows while debugging
Added: More readable debug information is displayed by hovering over ImageEn objects and variables
Added: Debugging visualizer supports keyboard shortcuts
Added: Debugging visualizer allows you to modify ImageEn objects, TBitmaps and color variables
Added: Debugging visualizer includes buttons in all views to change the image index
Added: Views are synchronized in alpha channel debugging visualizer
Added: Can show just a single color channel in the debugging visualizer
Added: Debugging visualizer can launch images to default editor
Added: Ctrl key can optionally be used for multiple selection of layers
Added: Improved centering of Twain dialogs
Added: Method to copy ImageEn debugging information to the clipboard
Added: Application to automatically upgrade projects to resolve compatibility issues
Added: TImageEnMView animations support mouse wheel
Added: Access to color profile of current monitor
Added: Experimental support for popup editor for editing PDF text objects and annotations
Added: Remove Isolated Pixels available in Proc Previews dialog
Added: Feathering option when setting transparency in Proc Previews dialog
Added: Trackbar used to set pixelize effect in Proc Previews dialog
Added: Localization improvements in Proc Previews dialog
Added: Shows a hand-pan cursor if miScroll is the only interaction
Added: TImageEnView mouse interaction to scroll when space bar is pressed
Added: Links in PDF documents to external files can now be enabled
Added: Can now load non-standard TIFF files that store multiple frames as tiles (TIFF_GetTile can be used to specify which frame to load)
Added: Improved support for Delphi 64bit IDE (Note: 64bit IDE still does not support debugging visualizers or IDE menu customization)
Added: Replaced some internal methods for more optimized Delphi ones
Added: CalcImagePalette can work with a rectangular selection, returns the number of colors found and nulls any invalid array values
Added: Improve IEVision MatchTemplate helper method to cope with images that do not have an alpha channel
Added: Encryption and decryption of streams and text using standard algorithms: MD2, MD4, MD5, SHA1, SHA256, SHA384 and SHA512
Added: New options for TIEFolderTree and WindowsSelectDirectory(): foBrowseIncludeURLs, foBrowseFileJunctions, foComputersOnly, foPrintersOnly
Added: WindowsSelectDirectory() will expand the specified folder
Added: Updated PDFium to v140/7269
Added: Objects on a PDF page can be marked non-visible
Added: Objects can be inserted into PDF pages by z-index
Added: Use new PDFium method for changing the z-order of page objects (arranging objects)
Added: Version checking for PDFium DLL
Added: Updated LibRaw to 0.21.4


Bug Fixes

Fixed: PNG files may not load natively if IEVision is undefined
Fixed: Does not fallback to EXIF resolution when no DPI found in JPEG header (Native and DLL)
Fixed: Potential twain dialog handle error
Fixed: Some difficulty deselecting multi-selected layers
Fixed: Rounding errors when drawing TIELineLayer at low zoom
Fixed: Twain dialog centering can cause paint issues on Twain dialogs
Fixed: Copying to clipboard does not include owner handle
Fixed: Error when using native PDF code to create files > 2GB
Fixed: Potential A/V when editing points of line and angle layers
Fixed: TIEMediaFoundationSourceReader.PauseCapture is slow because it always waits for a time-out
Fixed: TIEFolderTree may not set folder if specified in FormCreate
Fixed: Position is offset when moving or sizing PDF objects with keyboard
Fixed: Clicking to select an effect position in the Proc Previews dialog causes a zoom
Fixed: Loading icons of TImageEnMView may not display within thumbnail area
Fixed: Click area for web links is sometimes not fully accurate
Fixed: TImageEnView.OnSelectionChanging/OnSelectionChange not called for keyboard adjustments
Fixed: CalcImagePalette does not return the actual palette when the image is gray-scale
Fixed: IEDecode64 processes trailing padding chars
Fixed: Params.ImageCount is 0 when loading from WebP DLL
Fixed: EXIF_AsStr may not return some string values
Fixed: Exceptions when using EXIF_AsStr instead of setting null values
Fixed: TIEMetaList may not properly clear set meta-data fields


Changes to Classes

Added: TImageEnMView.MultiSelectedImagesList is now a read/write property
Added: TIETIFFHandler.PageCount property
Added: TImageEnView.LayersSelectedList
Added: TIECanvas.FontTransparency
Added: TIEICC.SaveToFile


Changes to Method Parameters

Added: GenerateDicomColorPalette includes ColorCount parameter


Demo Changes

Added: Many improvements to TIFF Handler demos (Demos\InputOutput\TiffHandler2\TiffHandler2.dpr)
New: Imaging Engines Demo (Demos\InputOutput\ImagingEngines\ImagingEngines.dpr)
Added: New methods added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)


Compatibility Issues

Changed Behavior: To include native PNG support (32bit apps), you must add ieNativePNG to the uses clause of one of your project units
Changed Behavior: To include native JPEG2000 support (32bit apps), you must add ieNativeJ2K to the uses clause of one of your project units
Potential Future Change: You should add ieNativeJPEG to the uses clause of one of your project units, as it may be optional in the future
Unit Renamed: The hyieutils unit has been renamed iexUtils. The hyiedefs has been renamed iexDefs. This is to avoid any break in functionality regarding native PNG and JPEG2000 support. You should perform a Find/Replace across your project units or use our Compatibility Fixer
Component Moved: TImageEn component moved to the legacy hyiedefs unit
Changed Behavior: loResizeOnRotate is not enabled by default for LayerOptions, and has no effect when AspectRatioLocked is enabled to prevent duplicated behavior
Changed Behavior: OnActivateTextEditor and OnDeactivateTextEditor will activate when editing PDF objects and annotations and the LayerIndex may not be valid
Renamed: TIEImageEffect.Transparency_ChromaFeathering has been renamed Transparency_Feathering and also applies when setting transparent colors (default is now 0)
Changed Behavior: peTransparency has moved from the ppeColorAdjustments set to ppeEditingFunctions
Changed Behavior: pePixelize has moved from the ppeEditingFunctions set to ppeSpecialEffects
Removed: ppeColorAdjust and ppeEffects have been removed. Instead use ppeColorAdjustments, ppeEditingFunctions or ppeSpecialEffects
Removed: TImageEnView.AutoFixRotationBorders has been removed. Instead use: ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [loAutoFixBorders];
Removed Parameter: TImageEnProc.Rotate/RotateAndCrop() no longer include a boolean AntiAlias parameter. Instead you should pass ierNone to disable anti-aliasing, or specify an anti-alias method, e.g. ierFast. If you have used ImageEnProc1.Rotate(45) (i.e. with only one parameter and a non-90 degree rotation) then the anti-aliasing has changed from "None" to "Fast". To preserve the old behavior, change your code to: ImageEnProc1.Rotate(45, ierNone);
Moved: Instead of TImageEnIO.DialogsMeasureUnit / TImageEnMIO.DialogsMeasureUnit use: TIEGlobalSettings().DialogMeasureUnit
Changed Default: TImageEnMView.ThumbnailDisplayFilter now defaults to rfFastLinear (instead of rfNone)


See Also

Complete History
Updating and Compatibility