ImageEn

What's New

Version 15.1.0/15.1.1

New Features

Added: Support for reading TIFF files with WebP compression (Experimental)
Added: Much more error checking code
Added: Unloads IEVision/IELib if version checking fails
Added: Alpha channel cut-off for GIF files can be specified with DefaultAlphaThreshold
Added: Default font for fallback usage can be specified
Added: Text Border Transparency property for text layers
Added: TImageEnMView.AssignTo supports TImageEnView as a destination
Added: CastColor automatically creates an alpha channel if required
Added: More reliable auto-column sizing for TIEMetaListView
Added: Document Permissions property for PdfViewer
Added: Support for DICOM files which are labeled as Lossless-Jpeg2, but are uncompressed
Added: Only checks IELib/IEVision version on first load
Added: GDI+ used for ruler drawing
Added: Cross hairs can be used for TImageEnView cursor

Added: Cursor position shown on ruler even if grip region is hidden
Added: TIEBitmap.AlphaFill supports RGBA without changing AlphaLocation
Added: Improved default frequencies when setting ruler units
Added: Improved draw performance when using TImageEnView rulers
Added: TImageEnView rulers can now be transparent

Added: PDF and Zip password properties and events are now handled by TImageEnIO and TImageEnMIO
Added: PNG can be rendered with ICC color profiles (ie24RGB)
Added: Falls back to DefaultICCProfile for rendering if ICC Profile not found in image
Added: ColorProfileMode property allows you to render or apply ICC color profiles for images
Added: Support for applying and rendering of ICC color profiles with PNG and WIC
Added: Security checks for embedded and remote content within SVG files
Added: PDF JavaScript and other document actions can be disabled
Added: Guards against malicious zip paths that escape the extraction directory
Added: More overflow checking
Added: Improved performance of interactive hint drawing
Added: Updated the Compatibility Fixer tool
Added: Many improvements to help documentation including thousands of new examples and links to relevant topic
Added: Can set the size of a PDF page (v15.1.1)

Bug Fixes

Fixed: Small leak in webp loading
Fixed: Result is False when loading params using the LibHeif library
Fixed: Possible memory leak in LibHeif write
Fixed: Make layer reading code more robust
Fixed: Potential memory leak on polygonal selection drawing
Fixed: IERandomColor() does not use full color range
Fixed: Small memory leak on exception with DICOM loading
Fixed: Alpha channel is not reset when assigning a TBitmap to a TIEBitmap
Fixed: Undo/redo may return the wrong image when editing with multiple layers
Fixed: Paint issue with soft shadows for non-image layers
Fixed: TIETextLayer fails to render when unsupported fonts are encountered
Fixed: Workaround when text of PDF object is set to nil
Fixed: Some layout issues with when Text layers use stylized text borders
Fixed: Improved TIETextLayer layout when using text borders
Fixed: OnFinishWork called twice when importing a SVG file
Fixed: TIEBitmap.Resize may fail when resizing the alpha channel (potential error when loading PSD)
Fixed: Camera Make and Model not read from some Canon Raw images
Fixed: Exception if free IEVision/IELib after version checking fails
Fixed: Cannot pass a custom PDFium DLL filename
Fixed: Correct window center/Width set when saving gray scale 16 bit DICOM
Fixed: TIECanvas FillRect may have anti-aliased borders
Fixed: TOpenImageEnDialog.FilterIndex is not readable if ModernDialog is enabled
Fixed: Error if use TIEBitmap.IECanvas after setting Width or Height
Fixed: Offset area of TRulerBox is drawn black
Fixed: Potential freeze when browsing folders that contain an encrypted PDF
Fixed: May save color profile to PSD files even if colors have been applied
Fixed: May not use best codec when loading HEIF using WIC
Fixed: When a Twain file transfer fails the file is not deleted
Fixed: ImageEn may save layers to PSD as clipped
Fixed: TImageEnView interaction hints don't hide when hover off the control
Fixed: Localized word for Czech language may output incorrectly
Fixed: Corrupt stream error when using miSelectZoom (v15.1.1)
Fixed: Workaround for BCB wingdi.h clash with TextOut/DrawText (v15.1.1B)

Changes to Classes

Changed: Supports passing nil for Params with LibHeif
Added: Exposed BackBufferImage

Changes to Method Parameters

Added: ForceRefresh parameter for IEWICEnumerateCodecs

Demo Changes

Added: New methods added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
Added: Support for transparency and other improvements in Rulers demo (Demos\Other\ImageEnViewRulers\ImageEnViewRulers.dpr)
New: ICC Color Profiles demo (Demos\Display\ColorProfiles\ColorProfiles.dpr)

Compatibility Issues

Changed: Casing has changed to some identifiers. C++Builder users should run the Compatibility Fixer or add \Source\Legacy\IELegacy.hpp to your project
Changed: TImageEnView.BackBuffer has been deprecated. Instead use BackBufferImage
Changed: Alpha channel cut-off for GIF files is now specified with DefaultAlphaThreshold rather than set to 255
Removed: gPDFiumDllFileName has been removed, instead pass a custom path to RegisterPlugIns
Changed: Standarization of some global method names: TRGB2TColor ➔ IERGBToColor, TRGB2TColor ➔ IERGBToColor, RGB2TColor ➔ IERGBToColor, TColor2TRGB ➔ IEColorToRGB, TColor2TRGBA ➔ IEColorToRGB, TColor2TRGBA ➔ IEColorToRGBA, TRGB2TRGBA ➔ IERGBToRGBA, TRGB2TRGBA ➔ IERGBToRGBA, TRGBA2TRGB ➔ IERGBAToRGB, HSV2RGB ➔ IEHSVToRGB, HSL2RGB ➔ IEHSLToRGB, RGB2HSL ➔ IERGBToHSL, RGB2HSV ➔ IERGBToHSV, IEStrToFloatDefS ➔ IEStrToFloatDef, IEBool2StrS ➔ IEBoolToStr, IERGB2YCbCr ➔ IERGBToYCbCr, IEExtractFileExtS ➔ IEExtractFileExt
Changed: Password support for SevenZip and PDF (IEGlobalSettings().AutoPromptForPassword and IEGlobalSettings().OnPassword) have now been moved to TImageEnIO.AutoPromptForPassword/TImageEnMIO.AutoPromptForPassword and TImageEnIO.OnPassword/TImageEnMIO.OnPassword/TImageEnView.OnPassword/TImageEnMView.OnPassword
Changed: The default for AutoPromptForPassword is now False
Deprecated: IEGlobalSettings().EnableCMS (which defaulted to False) has been deprecated in favor of ColorProfileMode. Enabling EnableCMS will force ColorProfileMode := iecpApply. Rather than setting EnableCMS, you should use ImageEnView1.IEBitmap.ColorProfileMode := iecpApply; (before loading your image)
Removed: IEGlobalSettings().ApplyColorProfileOnRendering (which defaulted to True) has been removed in favor of ColorProfileMode. Rather than setting ApplyColorProfileOnRendering, you should use ImageEnView1.IEBitmap.ColorProfileMode := iecpRender; or ImageEnView1.IEBitmap.ColorProfileMode := iecpIgnore;
Changed: If you get errors for TIOFileType items, like ioJPEG or ioPNG, ensure that iexDefs is included in your uses clause
Removed: Some older file formats (PCX, DCX, Targa and PXM) are not automatically detected by their content
Deprecated: ImageEnView1.IO.TwainParams.CompatibilityMode has been deprecated. Instead of setting CompatibilityMode := True, use IEGlobalSettings().TwainCompatibilityOptions := IEGlobalSettings().TwainCompatibilityOptions + [ietcDontGetCapabilities, ietcForceFileTransferMode];

See Also

Complete History
Updating and Compatibility