ImageEn History
ImageEn 13.6.0 - 27 September 2024
New Features
◼Added: SVG: Circle and Rect rotation◼Added: SVG: Basic support for defines, gradients and CSS styles
◼Added: SVG: Check for comments within text blocks
◼Added: SVG: Works better with images of unspecified size
◼Added: SVG: Maintain AR with asymmetrically scaled images (as browsers do)
◼Added: SVG: Better rendering of arcs
◼Added: SVG: Basic support for switch tags
◼Added: SVG: Support for uses
◼Added: AutoOrient supported even when printing is already active
◼Added: Mouse and UI editing of PDF annotations
◼Added: TImageEnDBView shows legacy warning at design-time
◼Added: TIEBitmap.AsBase64
◼Added: Application of CUBE 3D LUTs to images
◼Added: Loading and saving of *.cube files (for color adjustment)
◼Added: "A" channel of 32bit RGBA images can be used (as alternative to AlphaChannel)
◼Added: 32bit RGBA bitmaps can be loaded natively
◼Added: Alpha channel is now always loaded for 32bit RGBA bitmaps
◼Added: IERichEditToolbar can be used to edit the active text layer in a TImageEnView
◼Added: Layer caching now also caches the render bitmap for much faster interation
◼Added: Various optimizations to improve responsiveness of layer interation
◼Added: Cartoonify effect available as TAction and in TImageEnProc Effects dialog
◼Added: Auto-sized text layers will no longer exceed the width of the viewer
◼Added: MaxWidth property for text layers to control auto-sizing behavior
◼Added: Support for Twain property "Automatic Color Enabled" and "Double Feed Detection"
◼Added: Auto-converts range when saving DICOM files of iedrSetBlackWhite with TImageEnMView
◼Added: TIEPdfViewer.DrawViewTo to output the current view
◼Added: Transform Tool supports replication when filling border areas, as well as custom colors
◼Added: Availability of Plug-in DLLs now only checked once per session
◼Added: Undo/Redo buttons on TImageEnViewToolbar have drop down menus with recent operations
◼Added: Enabling Mask in Layer Properties or Action does not modify the image
◼Added: Much improved performance of LayerMView by caching and optimized updating
◼Added: Text layers support alignment of wrapped text
◼Added: TIEBitmap.FillWithShape supports drawing to the alpha channel to create shaped images
◼Added: LoadFromText supports Base64 streams with format prefix
◼Added: TIEMultiBitmap helper to load resources
Bug Fixes
◼Fixed: SVG: May inherit styles from soft closed groups◼Fixed: May mistake folders names containing ".zip" for zip files
◼Fixed: TImageEnView buttons may not function
◼Fixed: Freeze that can occur if a PNG file is named .ico
◼Fixed: AttachedImageEnView may prevent copying from PdfViewer
◼Fixed: PdfViewer causes TImageEnView.IEBitmap location to switch to bitmap
◼Fixed: SVG: Not breaking on tab characters
◼Fixed: Slow rendering of bitmaps within SVG images
◼Fixed: TImageEnMView.MIO.LoadFromFile() does not append to end of image list
◼Fixed: TImageEnView.LayersImport() always appends non-importing layers
◼Fixed: Channel display error when loading 16bit BMP files with NativePixelFormat enabled
◼Fixed: Color 16bit BMP files may be loaded as gray-scale
◼Fixed: Improved quality for rotated layers or with shadows
◼Fixed: Added defines for some demos that could not run on Delphi 7 and older
◼Fixed: IEPaperSizeToPoints() fails to support landscape
◼Fixed: LayersImport will append PSD layers rather than replace them
◼Fixed: Minor issues with using layer masks now resolved
◼Fixed: Error if try to save with LibWebP if not 24bit or 32bit
◼Fixed: Effects are not scaled to match preview size in Previews Dialog
Changes to Classes
◼Moved: FillWithShape() is now a method of TIEBitmap, rather than a helper◼Moved: TIEBitmapHelper.Cartoonify() moved to TImageEnProc.Cartoonify()
◼Exposed: TImageEnView.LayerEditingMode
◼Added: TIERichEdit.TextSize.html
Changes to Method Parameters
◼Added: TIETextLayer.SizeToText includes a LengthenOnly parameterDemo Changes
◼Added: PDF Annotations demo supports mouse editing (Demos\PDF\PDFAnnotations\PDFAnnotations.dpr)◼Added: New methods added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
◼Added: Methods are categorized in Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
◼Added: Transform demo supports replication filling, as well as custom colors (Demos\IEVision\TPSShapeTransform\TPSShapeTransform.dpr)
◼Added: Advanced styling settings in Text Layers demo (Demos\LayerEditing\Layers_Text\TextLayers.dpr)
Compatibility Issues
◼Changed: TIOParams.BMP_HandleTransparency so now only affects Bitmap saving (loading will always handle the alpha channel)◼Removed: Instead of TImageEnMView.AppendImage2, use TImageEnMView.AppendImage
◼Changed: Instead of ImageEnView1.CurrentLayer.ResampleFilter := rfLanczos3; use TIEImageLayer( ImageEnView1.CurrentLayer ).ResampleFilter := rfLanczos3;
◼Changed: Instead of ImageEnView1.CurrentLayer.UseResampleFilter := True; use TIEImageLayer( ImageEnView1.CurrentLayer ).UseResampleFilter := True;
◼Changed: Instead of TImageEnIO.ParamsFromFileFormat, use TImageEnIO.ParamsFromFile
◼Changed: Instead of TImageEnIO.ParamsFromStreamFormat, use TImageEnIO.ParamsFromStream
◼Renamed: Instead of TImageEnView.LayersMove, use TImageEnView.LayersArrange
◼Removed: Instead of IEGDIPEnabled() use: TIEGlobalSettings.UseGDIPlus
◼Removed: IEGDIPAvailable() is no longer needed and has been removed. GDI+ is always available on supported Windows versions
◼Moved: TIEBitmapHelper.Cartoonify() moved to TImageEnProc.Cartoonify()
◼Changed: TImageEnView.TransformTool defaults to replicating content when filling new areas rather than filling with black
◼Renamed: IELangAvailable is now named IELang_IsAvailable. Check parameters if you use this method
◼Renamed: PdfiumLibAvailable is now named PdfiumLib_IsAvailable. Check parameters if you use this method
◼Renamed: IEWebAvailable is now named LibWebP_IsAvailable. Check parameters if you use this method
ImageEn 13.5.0 - 26 July 2024
New Features
◼Added: Clean-up of many public methods◼Added: Moved TIEUserInteractions code into separate class
◼Added: Some improvements if unexpected crashes occur when loading thumbnails in a thread
◼Added: Support for 8x8 box anti-aliased smoothing with GDI+
◼Added: Can read and write position of PDF form fields and annotations
◼Added: Can delete PDF form fields and annotations
◼Added: Selected form fields and annotations can be shown as highlighted
◼Added: OuterMargin property for TImageEnView and TImageEnMView
◼Added: IO and Proc helper properties for TImage and TBitmap: Instantly add support for loading and saving to all ImageEn formats, all editing operations, plus printing and acquisition
◼Added: TIEBitmap.Assign()/AssignTo() and TImageEnView.Assign()/AssignSelTo() support TImage and TPicture
◼Added: CreateSearchablePDF() helper checks for language loading success
◼Added: Display time when playing in TImageEnMView is automatically read from relevant properties such as GIF_DelayTime or MEDIAFILE_FrameDelayTime
◼Added: ImportPagesIntoPDF() supports creation of a new PDF file
◼Added: Word selection now ignores text break characters, such as commas and periods
◼Added: Saving to HEIF format now supported (via WIC)
◼Added: Now includes LibWebP plug-in to load and save WebP files, including Lossless
◼Added: Improvements to iexWindowsFunctions.PasteFilesFromClipboard()
◼Added: New helper function: TIEBitmapHelper.Cartoonify()
◼Added: Dynamically fixes alpha channel if wrong size or pixel format
◼Added: Class operators for some ImageEn types
◼Added: Installer now includes all plug-ins
◼Added: Global methods: IESaveShapeAsSVG() and IEConvertImageToSVG()
◼Added: TImageEnProc.GetDominantColor() now supports selections
◼Added: Native support for SVG rendering and importing as layers
◼Added: TImageEnView.LayersImport supports PSD, and regular images
◼Added: Automatic Orientation option when printing images and PDF pages
◼Added: Earth built-in shape
◼Added: Improvements to Design Preview image
◼Added: Documentation supports #Tags to make it easier to search common topics
◼Added: TIEFileListBox support natural, case-insensitive and descending sort options
◼Added: TGraphic overloads for TIEMultiBitmap.AppendImage/InsertImage
◼Added: TIEMultiBitmap.Assign() supports TPicture, TGraphic and TImage
◼Added: TIEMultiBitmap and TImageEnMView.AssignTo() which outputs to TIEBitmap, TBitmap, TPicture, TGraphic and TImage
◼Added: Matrix transformation and GDI+ image drawing for TIECanvas
◼Added: Plug-In DLL logging is optional
Bug Fixes
◼Fixed: J2000_Quality value is ignored when saving JPEG2000 natively◼Fixed: Potential stack overflow when saving WIC formats to stream
◼Fixed: TImageEnMView disk cache may not automatically create folder
◼Fixed: SVG loading using ImageMagick on 64bit systems can fail
◼Fixed: OCR helpers fail to set current directory when needed to access language files
◼Fixed: Folders in zip files can reset the cached password
◼Fixed: In some situations, file folders may be treated as zip paths
◼Fixed: Failure with TIETIFFHandler when reading TIFF files that contain invalid tags
◼Fixed: Exception not raised when loading unsupported BigTIFF format in TIETIFFHandler
◼Fixed: WebP not detected with FindFileFormat on Delphi versions before 12
◼Fixed: Font heights may not be correct for TImageEnMView thumbnails when Windows scaling is used
◼Fixed: TImageEnMView.OnAddImage may return wrong image index when loading on demand
◼Fixed: Stack overflow when selecting word in PDF Viewer in non-Unicode Delphi
◼Fixed: Some define issues in Delphi 6
◼Fixed: ProgressTask not set for some Proc methods
◼Fixed: Small preview for some formats in ImageEn Open dialog
◼Fixed: Importing images as layers will change the IO Params
◼Fixed: Non-visible borders affect polyline layer size
Changes to Classes
◼Added: New property make expanding TIEFolderTree nodes easier: ClickAreaWidth◼Added: Exposed TImageEnView.LayersTextEditor
◼Added: TImageEnView.FindLayer()
◼Added: TIEBrush.FillMode
Changes to Method Parameters
◼Added: ExcludeLighterThan/ExcludeDarkerThan parameters for TImageEnProc.GetDominantColor()Demo Changes
◼Added: New functions added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)◼Fixed: OCR demos fail to set current directory when needed to access language files
◼Added: PDF Annotations Editing demo (Demos\PDF\PDFAnnotations\PDFAnnotations.dpr)
◼Added: Demo of using Parallel.For to process an image (Demos\ImageEditing\ThreadedProcessing2_Image\ThreadTest.dpr)
◼Added: General improvements to the animated GIF demo (Demos\Testing\ImageEditing\AnimatedGIF\GifDemo.dpr)
◼Added: All demos copy any required plug-in DLLs to demo folder
◼Added: Button on Selected Thumbnail only (Demos\Multi\ThumbButtons\ThumbButtons.dpr)
◼New: SVG Parsing demo (Demos\InputOutput\SVGParsing\SVGParsing.dpr)
Compatibility Issues
◼Changed: Tag properties use NativeInt rather than Integer◼Changed: TImageEnView.LayersRotationUseFilterOnPreview now defaults to true
◼Changed: Instead of TIEBitmap/TIEMultiBitmap.Read() use LoadFromFile/LoadFromStream
◼Changed: Instead of TIEBitmap/TIEMultiBitmap.Write() use SaveToFile/SaveToStream
◼Changed: Instead of TIEBitmap.Rectangle use TIEBitmap.IEBitmapRectangleEx (with same parameters)
◼Deprecated: ReadEx/WriteEx/PrintImage helper methods for TIEBitmap have been deprecated
ImageEn 13.2.0 - 8 May 2024
New Features
◼Added: Creation of PDF documents using PDFium◼Added: PDF Engine property to control how PDF documents are loaded and saved
◼Added: Native PDF saving define (IEIncludeNativePDFSaving)
◼Added: Do not need to invalidate ImageEnView after changing PDFium objects
◼Added: TIEPDFBuilder supports using PDFium for output
◼Added: TIEPDFBuilder supports page insertion
◼Added: TIEPdfViewer supports page insertion and advanced object editing
◼Added: Objects in PDF Viewer can be selected, moved and resized
◼Added: Selected object in the PDF Viewer can be removed with the Delete key
◼Added: Clipboard and streaming support for PDF Viewer objects
◼Added: Optimized TImageEnIO Previews dialog
◼Added: TImageEnIO Previews dialog now supports IEGlobalSettings().AutoSetBitDepth
◼Added: Can undo color depth changes by TImageEnIO Previews dialog
◼Added: General layout improvements to TImageEnIO Previews dialog
◼Added: When copying a text layer to the clipboard it includes a text only format
◼Added: TIERichEdit font dialog now only applies changed properties
◼Added: Some optimizations to TIERichEdit property setters
◼Added: XMP and EXIF data is retrieved from PNG files (chunk support)
◼Added: Optimized code by returning many orphaned methods and types
◼Added: TIOParams.PNG_Chunks
◼Added: TFileListBox.SelectedFilename supports filenames from alternative folders
◼Added: ImageEn version info displayed in IDE Splash Screen and About Box
◼Added: Shape cropping supports automatic aspect ratio adjustment (e.g. forcing a circle or other preferred aspect ratio)
◼Added: Updated PDFium to 125.0.6046.0 (includes support for Windows 7)
◼Added: Links to ImageEn Help file, demo projects and new releases via the IDE Help menu
◼Added: Parsing of Document text using Google Vision
◼Added: Debugging Visualizer can show alpha channel separately
◼Added: Improved performance of Debugging Visualizer
◼Added: Layout improvements to Debugging Visualizer
◼Added: Unicode support for some stored properties
◼Added: PDF documents can be printed by page indexes
◼Added: SelectedOnly parameter for SaveToFileIEN()
◼Added: TIEImageEffectsList.Description()
◼Added: Swirl effect in TImageEnProc and Previews dialog
◼Added: Swirl mode for Retouch tool
◼Added: TImageEnProc.GetDominantColor overload to return an array of most common colors in an image
◼Added: Some improvements to PDF Viewer popup menu
◼Added: iesLink shape supports fill
◼Added: IEVision helper methods pre-check for IEVision initialization
◼Added: IO and Proc properties available to TIEBitmap via class helpers
◼Added: MIO and Proc properties available to TIEMultiBitmap via class helpers
Bug Fixes
◼Fixed: Adding an affect to an effect chain via the Previews Dialog may not capture configuration◼Fixed: Font height specified incorrectly with InsertFormattedText()
◼Fixed: Some parameters not honored for methods: TImageEnMView.DrawCheckbox(), SevenZip_IsAvailable(), TIEVirtualClippedBitmap.Create(), TImageEnProc.PrepareTransition(), IEDrawGrip(), TImageEnView.LayersNewLayerDialog(), TImageEnView.SelectShape()
◼Fixed: TOpenImageEnDialog.Files returns multiple filenames if modern dialog
◼Fixed: Default disabled color for TIEColorButton is stored
◼Fixed: Error when calling TImageEnMView.Proc if control is empty
◼Fixed: Offset PNG loading supported by WIC
◼Fixed: 1x1 brush strokes may not show if anti-aliasing is disabled
◼Fixed: Cannot load all frames of a JPEG compressed TIFF file if WIC enging is used
◼Fixed: IsKnownFormat() does not recognize SVG format even if Vcl.Skia is used
◼Fixed: FindFileFormat() does not detect WebP format on Delphi 12 (unless Vcl.Skia is used)
◼Fixed: Border width of 0 can prevent advanced GDI+ drawing
Changes to Classes
◼Added: TIEPdfViewer.AllowObjectEditing◼Added: TIEPdfViewer.AddPage
◼Added: TIEPdfViewer.PageModified
◼Added: TPdfObjectList.AddImage
◼Added: TPdfObjectList.AddPath
◼Added: TPdfObjectList.AddRect
◼Added: TPdfObjectList.AddText
◼Added: TImageEnMView.OnViewChanging
Changes to Method Parameters
◼Added: Exhaustive matching parameter for TImageEnProc.JoinBitmaps()Demo Changes
◼Added: PDFBuilder demo supports using PDFium for output (\Demos\InputOutput\PDFBuilder2\PDFBuilder2.dpr)◼Added: DragDrop support for XMP and EXIF demos (\Demos\InputOutput\EXIF\Exif.dpr)
◼Added: New methods added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
◼Added: Parsing of document text with Google Vision demo (Demos\InputOutput\GoogleVisionApi\GoogleVisionApi.dpr)
◼Added: Many improvements to PDF Object editing demo (\Demos\Other\PDFPageObjects\PDFPageObjects.dpr)
◼Added: DragDrop support and other improvements for Image Comparison demo (\Demos\ImageAnalysis\ImagesDiff\ImagesDiff.dpr)
◼Added: CompareHistogramWith and DragDrop support for Image Differences demo (\Demos\ImageAnalysis\Compare\Compare.dpr)
◼New: Dragging PDF pages to reorder demo (\Demos\Other\PDFPageDragDrop\PDFPageDD.dpr)
◼Added: Alpha support and other improvements for Rotate Tool demo (\Demos\ImageEditing\RotateTool\RotateTool.dpr)
Compatibility Issues
◼Removed: IEIncludePDFLoading define◼Changed: All defines have been standardized
◼Changed: Clipboard includes PNG format by default (for compatibility with MS Paint)
◼Removed: ppPCX and ppTGA no longer provide functionality in TImageEnIO.DoPreviews()
◼Renamed: Rather than TImageEnIO.InjectJpegEXIFStream, use InjectJpegEXIF
◼Renamed: Rather than TImageEnIO.InjectJpegIPTCStream, use InjectJpegIPTC
◼Changed: If you are using the shape overload of Crop, check your parameters
◼Changed: TIEImageEffect.GetProperty() returns boolean values as false/true, rather than 0/1
◼Deprecated: Instead of TImageEnView.SetAlphaRangePixelsColor(), use TImageEnView.IEBitmap.SetColorFromAlpha()
◼Deprecated: Instead of TImageEnView.CopyToBitmapWithAlpha(), use TImageEnView.IEBitmap.AssignTo()
ImageEn 13.1.0 - 14 March 2024
New Features
◼Added: Improvements to TIERenderOperation◼Added: PdfViewer.ImportPages() and TIEPdfViewerImportPages support importing from images
◼Added: Event to optionally specify which images display checkboxes
◼Added: Insertion point can be displayed when dragging images to TImageEnMView
◼Added: ImageEn debugging visualizer supports TBitmap
◼Added: Optimizations to speed and stability of ImageEn visualizers
◼Added: TIFF save optimization and memory enhancements for TIETIFFHandler
◼Added: TIEBitmap params are enabled automatically when accessed
◼Added: When TIEDBMultiBitmap stores images in blobs it will load the image content directly if ImageFormat is not specified
◼Added: Shift key effect added to action hints
◼Added: New overloads for quickly adding polyline layers with specified points
◼Added: Auto-curving for TIEShapeLayer and TIEPolylineLayer
◼Added: Improved polygon simplification method for TIEPolylineLayer
◼Added: MKV included in Explorer thumbnail extensions
◼Added: ielMerged and ielGrouped notifications for OnLayerNotify
◼Added: Polygon selections can now be sized without rounding errors
◼Added: Users can make Rounded Rectangular selections
◼Added: Users can make Polygonal selections of any ImageEn shape, e.g. explosions, dinosaurs, stars, etc.
◼Added: TImageEnMView ensures current thumbnail is displayed even when changing column counts or DPI
◼Added: ImageCount is now valid when loading with ImageMagick
◼Added: Unicode filenames now supported with ImageMagick
◼Added: Now supports multi-frame formats with ImageMagick
◼Added: Custom/user image formats can now be multi-frame formats
◼Added: No internal exception on automatic loading of Zip plug-in
◼Added: TIEEditControls: A pre-built set of controls for image editing and effects
◼Added: Animated GIF optimization using ImageMagick
◼Added: Improvements to PDF annotations support
◼Added: Crop overload that supports shape cropping
◼Added: Proc Previews dialog supports shaped cropping
◼Added: Transparency and Chroma Key support in the Proc Previews dialog (and effects chain)
◼Added: Support for adding images, text, lines and shapes to PDF pages with PDFium
◼Added: Support for embedding fonts in PDF documents with PDFium
◼Added: Warp brush supports alpha channel
◼Added: When saving DICOM with DICOM_Range as iedrSetBlackWhite, it will be automatically saved as iedrAdjust
◼Added: Can save layer files that are supported by older versions of ImageEn
Bug Fixes
◼Fixed: TIEPdfViewerImportPages does not insert at the current position◼Fixed: TImageEnViewViewFullSize does not update the zoom
◼Fixed: Some issues when importing and moving pages in PDF documents (PDFium)
◼Fixed: Some issues loading from alternative 7z formats
◼Fixed: Improved link insertion in TIERichEdit
◼Fixed: Some JPEG embedded EXIF thumbnails are not supported
◼Fixed: Some print methods start a new print job if not using TPrinter
◼Fixed: JPEG2000 reduce method may load bigger images than LoadToWidth x LoadToHeight
◼Fixed: TImageEnVect polyline drawing crash
◼Fixed: May get selection artifacts with TImageEnMView if using very wide selection borders
◼Fixed: OnNewLayer not called for layer cloning with loCtrlClickToCopy
◼Fixed: Transition effects may not update when used in reverse direction
◼Fixed: Allow selection from edge even if MoveLayers is enabled
◼Fixed: Alpha channel not shown after using TIEBitmap.Resize()
◼Fixed: Form fields are highlighted even if editing is not enabled
◼Fixed: Selection issues when moving from image to non-image layers
◼Fixed: Workaround for flattened form PDF after printing
◼Fixed: Loading ImageMagick in custom folder changes the current directory
◼Fixed: Resizing of selection within PDF document does not paint correctly
Changes to Classes
◼Changed: Thread Loader not initialized for TImageEnMView unless needed◼Added: TIEBitmap.AssignTo()
◼Added: TIEPdfViewer.ScrollToPage()
◼Added: TIECropToolInteraction.GetBitmapPolygon()
Demo Changes
◼Added: New methods added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)◼New: Neural network demo (Demos\IEVision\IEVision\NeuralNet\NeuralNet.dpr)
◼Added: Alpha channel and improved editing in RGB channels demo (Demos\ImageEditing\RGBChannels\RGBChannels.dpr)
◼New: Compare User Interaction demo (Demos\Other\CustomUserInteraction_Compare\UserInteraction.dpr)
◼Added: PDF Page Objects demo supports adding objects (Demos\Other\PDFPageObjects\PDFPageObjects.dpr)
Compatibility Issues
◼Changed: TImageEnMView/TImageEnView.Bitmap is deprecated. Use IEBitmap.AssignTo() instead◼Removed: TImageEnIO/TImageEnMIO.DialogsMeasureUnit has been superseded by: TIEGlobalSettings().DialogMeasureUnit
◼Removed: TImageEnMView.SelectionWidthNoFocus has been superseded by HideSelectionOnDefocus
◼Removed: TIOParams.DICOM_CharacterSet has been superseded by DICOM_Tags.CharacterSet
◼Removed: TOpenImageEnDialog/TSaveImageEnDialog.FilenameW and FilesW on Unicode versions of Delphi
◼Changed: Accessing TIEBitmap.Params will set TIEBitmap.ParamEnabled = True
◼Renamed: OrdCor() method is now named OrdCoords()
ImageEn 13.0.0 - 15 November 2023
New Features
- Added: SevenZip plug-in also supports ZipX, 7z and Rar- Added: TIEPolylineLayer supports breaks and close-breaks to create more complex shapes
- Added: New Balloon, Link and "Delphi" Gladiator vector shapes
- Added: IEVision Bitmap Helper methods: TIEBitmap.OCR(), TIEBitmap.OCR_GetRegions(), TIEBitmap.OCR_GetOrientation(), TIEBitmap.MatchTemplate(), TIEBitmap.DetectBlobs(), TIEBitmap.Inpaint(), TIEBitmap.ScanBarcode(), TIEBitmap.FindObjects(), TIEBitmap.DetectPeople(), TIEBitmap.OrbDetectAndDeskew(), TIEBitmap.SubtractImageBackground()
- Added: IEVision MultiBitmap Helper methods: TIEMultiBitmap.CreateSearchablePDF(), TIEMultiBitmap.StitchImages(), TIEMultiBitmap.MergeExposures()
- Added: TImageEnProc.Fill() supports color blending
- Added: TImageEnMView.GetTIEBitmap() supports loading of full quality images even when filled with a multi-page image
- Added: TImageEnMView.AttachedImageEnView supports loading of full quality images even when filled with a multi-page image
- Added: Splitters can be used in TImageEnIO.LoadFromFile() as a shortcut method to specify the Image Index
- Added: PDFViewer (PDFium) available in Delphi 7 and newer
- Added: Many TIEBitmap methods will automatically update owner, so ImageEnView1.Update() is no longer needed
- Added: TImageEnProc.AutoCrop supports inner cropping (leaving no border of rotated or stitched images)
- Added: TIEMultiBitmap.FillFromList() overload for an array of filenames
- Added: Layer saving to internal formats supports much larger images without memory issues
- Added: TIEMultiBitmap Append() overloads supporting bitmap regions
- Added: A Link glyph is shown in the corner of selected layers of the same group
- Added: Rotated text layers are output correctly to PDF
- Added: Many improvements to methods in iexHelperFunctions
- Added: Performance optimizations for layer display
- Added: Formatted rich text layers support rotation
- Added: Improved WIC support for 32bit images
- Added: Timeout option for Twain acquisition
- Added: TIEBitmap.Equals() and TIEMultiBitmap.Equals()
- Added: TIERichEdit can save the selected image to file or bitmap
- Added: Can get and set the RTF formatted selection in TIERichEdit
- Added: Can insert links into TIERichEdit
- Added: New TIERichEdit actions: InsertLink, SaveSelectedImage, RemoveCurrentFormatting, ObjectPropertiesDialog
- Added: Can load SVG and WebP files using in-built Delphi 12 Skia support (just add Vcl.Skia to your uses clause)
- Added: Debugger visualizers to see content and properties of ImageEn bitmaps, controls and variables in the IDE
- Added: Can parse all objects of PDF pages, e.g. get/set all images, text or paths
- Added: Can remove objects from PDF pages
- Added: Updated PDFium to v6043
- Added: Objects on PDF pages can be imported as layer objects (text, images and paths)
- Added: Visualizer for TColor which displays human-readable values and a color preview
- Added: Ctrl key can be used to reverse direction of Zoom interaction
- Added: Delphi 12 Support
Bug Fixes
- Fixed: TImageEnIO.ReplaceFileTIFF() removes frame before failing with Big-Endian TIFF files- Changed: Reversed direction of tab scrolling to more common method
- Fixed: Some issues reading Unicode ICC metadata
- Fixed: TIEBitmap.Canvas may be nil on first access
- Fixed: Alpha channel not supported when saving to a single layer PSD file
- Fixed: Negative curve values for polylines may draw straight
- Fixed: Crop Tool side grips not hidden by ExtendedGrips property
- Fixed: IEVision will not fall back to the system path when a specified path fails
- Fixed: When editing new rich text layer, may inherit old attributes
- Fixed: TIEMultiBitmap.Filename may not be set by some loading/saving methods
- Fixed: TImageEnMView.SelectedFilename works even when multiframe image is loaded
- Fixed: PDFViewer.Find() always returns true when Select parameter is false
- Fixed: TImageEnMView.MultiSelectedImages is not correct when iemoLeaveOneSelected is enabled
- Fixed: Error if enable TImageEnMView.AnnotationsVisible with monochrome images
- Fixed: Screen capture may not include cursor on multiple monitor systems
- Fixed: SizeToFit works for rotated rich formatted text layers
- Fixed: Handles better with GDI resource errors during transitions
- Fixed: Ctrl-deselecting with MView display a PDF can cause deselection
- Fixed: PDFium plug-in may be automatically registered by TOpenImageEnDialog
- Fixed: Fails to create TIFF files larger than 2GB
Changes to Classes
- Added: OnDrawCanvas and OnPaint events for TImageEnMView- Added: TIERichEdit.ShowURLHint and TIERichEdit.OnProtectChange
- Added: OnSelectColor event for TIEColorButton
- Added: DesignTimeView property for TIEFolderTree to prevent designer crashes
Changes to Method Parameters
- Added: Color compare method parameter for TImageEnProc.CompareWith()- Added: Closed parameter for AddLinePath
Demo Changes
- New: Object to parse objects of a PDF Page (Demos\Other\PDFPageObjects\PDFPageObjects.dpr)- Added: New options for CompareWith demo (Demos\ImageAnalysis\ImagesDiff\ImagesDiff.dpr)
- New: Custom User Interaction demo (Demos\Other\CustomUserInteraction\UserInteraction.dpr)
- Added: Scanning and many IEVision helper methods added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
- New: Find Objects with Classifier demo (Demos\Other\GetWithClassifier\GetMisc.dpr)
- Added: Stitcher demo supports cropping (Demos\IEVision\Stitcher\Stitcher.dpr)
- New: Screen Capturing demo (Demos\InputOutput\CaptureFromScreen\CaptureFromScreen.dpr)
- Added: New functions in RichEdit demo (Demos\Other\RichEdit\RichEdit.dpr)
- Added: PDF importing added to all layer demos
Compatibility Issues
- Changed: Moved CreateWallpaperBitmap() and IEDrawShape() to ieHelperFunctions unit- Changed: Do not call PDFViewer.FindNext() to find initial instance after performing a non-visual search with PDFViewer.Find()
- Changed: ievOCRAuto_Only segmentation mode renamed to ievOCRAuto_OnlySegmenting
- Changed: Closed parameter has been added to AddLinePath
- Changed: Add the iexActionsRichEdit unit if you use TIERichEdit actions
- Changed: TIOFileType is now a "type integer" rather than an integer
- Changed: TImageEnFolderMView1.DeproritizeLargeImages/DeproritizeLargeImageMethod now named DeprioritizeLargeImages/DeprioritizeLargeImageMethod
- Changed: Renamed TIEPdfViewerInteraction class to TIEPdfViewere
ImageEn 12.5.0 - 26 August 2023
New Features
- Added: New Transformation Interaction Tool to warp images using a Thin Plate Spline Shape Transformation- Added: Automatically prompts for password when loading encrypted PDF files
- Added: Loading of images and extraction of files from Zip files, including support for AES encryption, dynamic thumbnails and zip folders
- Added: Validates alpha channel when saving PDF files (to create smaller PDF files)
- Added: Random sort order for TImageEnMView
- Added: Box is drawn around selected layers when LayerEditingMode is enabled
- Added: OnPassword event available when opening PDF and ZIP files
- Added: TImageEnMView Proc actions support dynamically added images (not loaded from file)
- Added: Improved IEN thumbnail when background is not stored
- Added: Support for clicking page links within a PDF document
- Added: Dune AAI and OpenRaster ORA formats supported by ImageMagick plug-in
- Added: Line and Polyline layers can be drawn with styles like dashes and dots
- Added: Unicode descriptions are supported for ICC profiles
- Added: Line styles in Layer Properties dialog
- Added: Various improvements to localization
- Added: Warping Retouch tool to push areas of the image
- Added: Improved layout of Layer Properties dialog
- Added: Mouse wheel can be used to navigate tabs in ImageEn dialogs
- Added: Selection grids show for all selection types
- Added: Selection of new items in TImageEnMView can be disabled
- Added: TImageEnMView supports AutoSetBitDepth
- Added: Alpha channel support for helper functions, such as IEResampleImageFile()
- Added: Updated PDFium to v5947
- Added: TIEBitmap can save IEN files
- Added: Read support for BMPv3 format
- Added: Programmatic reading/writing of PDF form fields
Bug Fixes
- Fixed: Supports use of "selections" in navigators- Fixed: TImageEnMView auto-fit does not cope with scaling
- Fixed: Potential infinite loop when processing CR3 meta-data
- Fixed: TImageEnProc.JoinBitmaps may add an alpha channel
- Fixed: DICOM high bit tag not saved
- Fixed: Folder monitoring errors can prevent TImageEnFolderMView updates
- Fixed: TImageEnView hover buttons disappear on load (until mouse move)
- Fixed: TImageEnView.OnIONotify does not occur when loading from database
- Fixed: Checkboxes do not work with preset frames
- Fixed: Preset frames do not work with scaling
- Fixed: Text layers do not auto-size when changing border width
- Fixed: Blur method may not be 64bit safe
- Fixed: Offset issue when changing Text layer shape
- Fixed: Resource error when showing Acquire selector on systems without scaling
- Fixed: Layers are cropped when saving to PSD
Changes to Classes
- Added: TIEGlobalSettings.OnPassword- Added: TImageEnMView.OnChangedEx
- Changed: Now used widestring for DirectShow filenames
- Added: TImageEnMView.GetUnfilteredImage
- Added: TImageEnProc.Warp()
Changes to Method Parameters
- Added: MeasureOnly parameter for TImageEnProc.TextOut- Changed: TImageEnIO.LoadFromResource() ResourceType is no longer case sensitive
Demo Changes
- New: Thin Plate Spline Shape Transformation demo (Demos\IEVision\TPSShapeTransform\TPSShapeTransform.dpr)- New: Warping demo (Demos\ImageEditing\WarpBrush\WarpBrush.dpr)
- New: PDF Form Fields demo (Demos\Other\PDFViewerFormFields\PDFViewerFF.dpr)
- Added: Acquisition support for TIFF handler demo (Demos\InputOutput\TiffHandler2\TiffHandler2.dpr)
- Added: Painting, Retouching and Cloning added to Every Method demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
Compatibility Issues
- Removed: Deprecated action classes TImageEnViewSelCopyToClip and TImageEnViewSelCutToClip have been removed. Instead use: TImageEnViewCopyToClipboard/TImageEnViewCutToClipboard- Changed: Parameters of OnDrawLayer have changed. Remove the event handler and add it again to update
- Removed: PCX (ppPCX) and TGA (ppTGA) properties tabs are no longer shown in the Save Properties dialog. If they are required, define IEIncludeLegacyFormatsInSavePreviews in ie.inc
ImageEn 12.0.0 - 6 March 2023
New Features
- Added: All transitions offer an alternative drawing mode- Added: Four new Zigzag wipe transitions
- Added: Centralized configuration of transition effects in TImageEnView
- Added: Transition effects can be customized in TImageEnMView
- Added: Single property to enable display of transition effects when loading images in TImageEnView
- Added: Simpler overloads to display pan-zoom effects in TImageEnView
- Added: TImageEnView.OnIONotify event which occurs before and after all loading, saving and aquisition events
- Added: ImageMagick saving supports ie1g and alpha formats
- Added: Design-time preview for TIEMetaListView
- Added: Group headings in TIEMetaListView can be double-clicked to expand or collapse
- Added: TImageEnMView filtering supports all text fields
- Added: TImageEnMView can filter by file size, dimension and dates
- Added: IEDrawColorPalette() to output a palette as a bitmap
- Added: TImageEnProc.GetDominantColor() can return a list of most used colors
- Added: Histograms can be drawn to bitmap
- Added: Two bitmaps can be joined (with any overlapping content between them automatically removed)
- Added: Performance tweaks when creating polyline layers
- Added: TImageEnProc.CompareWith() supports comparing of image rectangles
- Added: Advanced drawing methods for TIECanvas: Stylized text, shapes, polygons, angles and lines
- Added: Optimized drawing methods for some in-built vector shapes
- Added: New in-built vector shapes, such as Flag, Dinosaur and Palm Tree
- Added: Shape comboboxes are drawn with anti-aliasing
- Added: TImageEnProc.GradientFill() supports many more gradient directions
- Added: Implemented LibRaw 0.21 adding support for new Canon, Nikon, Sony and other camera formats
- Added: Updated PDFium to v5579
- Added: TIEPdfViewerInteraction.ScrToPage() and PageToScr()
- Added: VCL theming support for TIEColorCurve, TIEColorPalette and THistogramBox
- Added: GenerateHuePalette() and TIEColorPalette.AppendHuePalette()
- Added: Default colors for TIEColorPalette and design-time support
- Added: Full VCL theming support for TImageEnProc.DoPreviews()
- Added: Standardization of all common exceptions
- Added: Many improvements to documentation, including more methods in the "ImageEnProc Preview" section and more detail in the "Updating and Compatibility" and "TImageEnVect to TIELayer Transition Info" sections
- Added: Large thumbnail style for TImageEnMView
- Added: SelectNearestColor() method for TIEColorPalette
- Added: Two new background styles: iebsPaper and iebsMetal
- Added: Selection in TImageEnMView can be hidden when the control loses focus
- Added: Much simpler to load plug-ins from custom folders
- Added: Editor automatically sizes when editing text in a TIETextLayer
- Added: Hard returns can optionally be added to text in the text editor
Bug Fixes
- Fixed: ImageEn Save dialog now uses selected filter to determine Advanced type- Fixed: Layer snapping is offset by the background border even if not visible
- Fixed: Unnecessary canvas access in some cases when drawing to ImageEnView.IEBitmap
- Fixed: Layer shape sizes may be offset by 1
- Fixed: TIECanvas draw methods may include border even if Pen width is 0
- Fixed: Ruler DisplayNegativeValues view is incorrect when layers selected
- Fixed: Div by zero errors when changing some TIEMetaListView properties
- Fixed: Possible corruption error when loading IEN files created in v10.3.5 to v11.3.0 (inclusive)
- Fixed: Overdraw with TImageEnProc.TextOut() if font size too large
- Fixed: Cropped text with TImageEnProc.TextOut() when angled if width or height are not specified
- Fixed: Potential A/V when loading AVI in TImageEnMIO
- Fixed: IsKnownFormat() does not check for PDF plug-ins
- Fixed: TIEPdfViewerInteraction.PdfPrintEvent, was returning one-based values
- Fixed: Some positioning issues when pan-zooming
- Fixed: Text is not truncated for buttons in TImageEnLayerMView
- Fixed: Lag between hint and displayed values for rectangular measurement
- Fixed: Fonts may not be scaled for TImageEnMView when monitor is scaled
- Fixed: Default fonts for TImageEnMView may be stored when monitor is scaled
- Fixed: TImageEnMView.SelectionWidthNoFocus has no effect
- Fixed: Prevent A/V when reading some DICOM files with invalid header sizes
- Fixed: Text may wrap in formatted Text layers even if WordWrap is disabled
- Fixed: Optimized buttons in TIERichEdit hover toolbar
- Fixed: Possible A/V when drawing TIERichEdit to canvas in 64bit
Changes to Classes
- Added: TIEMetaListView.OnGetHeadingText event- Added: TIEMetaListView.CollapseAllGroups/ExpandAllGroups
- Added: TIEMetaListView.Columns/Groups/Items properties are now public
- Added: Exposed TImageEnMView.ImageGetDisplayText()
- Added: TIEBitmap.JoinBitmaps() and TImageEnProc.JoinBitmaps()
- Added: THistogramBox.GetIEBitmap()
- Added: TImageEnView.InteractionState()
- Added: Aspect Ratio can be locked when cropping with TImageEnProc.DoPreviews()
- Added: Published some standard properties: OnMouseActivate, Constraints, DoubleBuffered, etc.
- Added: Optimized storing of Published properties
Changes to Method Parameters
- Added: TIETIFFHandler.InsertPageAsImage() supports TIEBitmap as parameter- Added: Coverage parameter for TImageEnProc.CompareWith() to improve performance with large images
- Added: TImageEnMView.Deselect() adds Index parameter
- Added: TextWidth adds MaximizeWidth parameter to get maximum possible text width
- Added: PaintTo adds AllowWrapping parameter to output text onto a single line
Demo Changes
- Added: Fifty new methods in Every Editing Method demo, such as: TImageEnProc.CalcImagePalette, TImageEnProc.TextOut(), TIEBitmap.StretchValues(Manual/Auto), IEVision.canny(), IEVision.inpaint(), etc.- Added: Improvements to Transitions Demo (\Demos\Display\Transitions\Transitions.dpr)
- Added: Palette exporting to Color Palette Demo (\Demos\Other\ColorPalette\ColorPalette.dpr)
- Added: Rewrite of Image Comparison Demo (\Demos\ImageAnalysis\ImagesDiff\ImagesDiff.dpr)
- Added: Improvements to Magic-Fill to Polygon Demo (\Demos\LayerEditing\MagicFillToPolygon\Magic2Polygon.dpr)
- Added: New Multi Pattern Matching demo (\Demos\IEVision\PatternMatchingMulti\PatternMatchingMulti.dpr)
- Added: Many improvements to Pan-Zoom demo (\Demos\Display\PanZoom\PanZoom.dpr)
- Added: Improved Navigator demo (\Demos\Display\Navigator\Navigator.dpr)
- Added: Show Lookup method in Multi DB demo (\Demos\Database\DBMultiBitmap_AllRecords\DBMultiBitmapFD.dpr)
Compatibility Issues
- Changed: Instead of ImageEnView1.SelectionAspectRatio, use: ImageEnView1.SelectionLockAspectRatio which uses a standard W/H ratio (SelectionLockAspectRatio = 1 / SelectionAspectRatio)- Removed: Transitions_Supporting_TransitionsDrawAlternative no longer needed as all transitions support alternative drawing
- Removed: Removed some transitions: iettLeftRight1, iettLeftRight2, iettRightLeft1, iettRightLeft2, iettUpDown1, iettUpDown2, iettDownUp1, iettDownUp2. Instead use ettLeftRight, iettRightLeft, iettUpDown, iettDownUp
- Changed Behaviour: TImageEnProc.ClearSel(True) always adds an alpha channel to the image
- Removed: IEGlobalSettings().WordTransitionParams.Word/FontName/Style/Quality have been replaced by: ImageEnView1.TransitionParams.WordTransWord/WordTransFontName/WordTransFontStyle/WordTransQuality
- Changed: Instead of ImageEnView1.TransitionTiming, use ImageEnView1.TransitionParams.Timing
- Removed: TIEHistogramContent type, instead use THistogramKind: iehcRed, iehcGreen, iehcBlue, iehcGray, iehcHue become hkRed, hkGreen, hkBlue, hkGray, hkHue
- Removed: Deprecated TIOParams.DCX_ImageIndex. Just use TIOParams.ImageIndex
- Removed: TIEBitmapHelper.IELoadFromFile()/IELoadFromFileFast()/IELoadFromStream()/IELoadFromStreamFast()/LoadFromFileJPEGFast/LoadFromStreamJPEGFast/LoadFromFileRawFast: Instead use TIEBitmapHelper.ReadEx()
- Removed: TIEBitmapHelper.IESaveToFile()/IELoadFromFileFast()/IESaveToStream(): Instead use TIEBitmapHelper.WriteEx()
- Removed: TIEBitmapHelper.WicRead: Instead use TIEBitmap.WicFastLoading
- Removed: TImageEnIOHelper.LoadFromStreamFast. Instead use TImageEnIO.LoadFromStream()
- Removed: TBitmapHelper.IELoadFromFileFast(). Instead use IELoadFromFile()
- Removed: TBitmapHelper.IELoadFromStreamFast(). Instead use IELoadFromStream()
- Removed: TImageEnIOHelper.CreatePSFromFileList(). Instead use TImageEnIO.CreatePSFile()
ImageEn 11.4.5 - 1 December 2022
New Features
- Added: MP4 is a supported format- Added: Google Vision API can be used on older Delphi versions (requires own REST components)
- Added: Google maps can be drawn up to 1280x1280
- Added: Can prevent deselection of all layers in TImageEnView
- Added: Display units for Print Preview and other dialogs can be set globally
- Added: Can specify PDF properties in TImageEnIO.DoPreviews()
- Added: Brush tool cursor can be a preview of the brush
- Added: TIEDBMultiBitmap.OnGetSaveParams event to add custom parameters when saving to blob
- Added: miSelect and mlMoveLayers can be used together
- Added: When layers are deleted, related undo information is also cleared
- Added: Image can be used as cursor for TImageEnView
- Added: Resizing cursors are rotated to match layer rotation
- Added: Acquisition can be aborted when scanning multiple pages
- Added: ImageEnView layers now store a modification date
- Added: PDFium methods that are unused by ImageEn are now undefined
- Added: String parameter and other optimizations
- Added: GetFileExtensionsOfType() supports ioAVI, ioWMV and ioMPEG
- Added: Support for monochrome and grayscale alpha images with ImageMagick
Bug Fixes
- Fixed: Hiding negative values in TImageEnView rulers can look incorrect when scaled- Fixed: Guidelines can look incorrect when hiding negative values and scaling
- Fixed: Blank action does not reset TImageEnView.IsEmpty() state
- Fixed: Setting TImageEnMView.Folder to devices will include USB drives
- Fixed: Some layer actions do not function if loAllowMultiSelect is not specified
- Fixed: Small memory leak in TIEBitmap.Assign()
- Fixed: Broken cursors for TImageEnView.CropTool
- Fixed: Cannot use WPTools PDF plug-in and ImageMagick together (iomscWPPDF clashes with iomscXPM)
- Fixed: Using clipboard to paste files in TImageEnFolderMView will move rather than copy them
- Fixed: Layer Properties dialog restricts layer positions to postive values
- Fixed: Doesn't scroll to current page when enable PdfViewer.ShowAllPages
- Fixed: WindowsSelectDirectory() causes exception in 64bit apps
- Fixed: Layer hint does not hide when move off layer
- Fixed: Issues with DICOM images using RLE encoding
- Fixed: Some form layout and tab issues
- Fixed: No longer raises an run-time error with TTouchKeyboard due to indexed rather than named resources
- Fixed: Typecast exception if save IEV or ALL format from TImageEnView
- Fixed: TImageEnMView.MaintainInvisibleImages may be applied to non-demand images
- Fixed: Date information may not be included in disk cache hash name
- Fixed: Issues with some transition effects
Changes to Classes
- Added: TIEBitmap.OnChanged triggered when loading contentChanges to Method Parameters
- Added: NewAlpha parameter for TImageEnProc.CastColor()Compatibility Issues
- Changed: Instead of ImageEnView1.IO.DialogsMeasureUnit, use IEGlobalSettings().DialogMeasureUnit- Changed: Instead of ImageEnMView1.MIO.DialogsMeasureUnit, use IEGlobalSettings().DialogMeasureUnit
- Changed Behavior: ImageEnView1.IO.AcquireParams.SelectSource() raises an exception if no devices are found
- Changed: When using the fill tool, filled pixels are set as fully opaque
- Changed: PDF support via GhostScript must be explicitly specified
- Removed: Disabled support for Google API on Seattle and lower due to clashes with RestComponents230 package
- Changed: By default, the alpha channel is merged when saving J2K natively (because it is not supported when loading)
- Changed: LayersFastDrawing no longer applies unless layer editing is active
Demo Changes
- Added: Automatic PDF Printing demo (Demos\Other\PdfPrinter\PdfPrinter.dpr)- Added: Added more methods to All Proc Methods demo (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
ImageEn 11.4.0 - 26 September 2022
New Features
- Added: Use Google Vision API to recognize objects, text, handwriting, faces, famous landmarks and logos in images- Added: Use Google Static Maps API to output Google maps to image
- Added: Latitude/Longitude to string method
- Added: Windows file type defaults to "EXT File" for unknown types
- Added: Line, border and font sizes can be locked for layers regardless of zoom
- Added: Single method to display a preview window of image meta-data
- Added: Support for SFW, RFB, XPB and XPM formats via ImageMagick
- Added: Rotate tool will auto-scale large images for more responsive preview
- Added: New action for TImageEnMView to preview images
- Added: Don't colorize 1bpp bitmaps if NativePixelFormat is enabled
- Added: Legacy plug-in code no longer compiled into EXE unless explicitly called
- Added: TIOParams.GetProperty/SetProperty moved to helper unit to reduce exe size
- Added: TIEFolderMView can copy to/from Portable Devices
Bug Fixes
- Fixed: Progress not consistent when saving multiple frames to DICOM- Fixed: Possible A/V when saving an icon with too many frames
- Fixed: Drag-drop support fails when changing themes
- Fixed: Toolbar button images are mixed up when themed
- Fixed: Memory error when sizing a TImageEnView with rulers to null size
- Fixed: No longer show non-functional corner grips in themed applications
- Fixed: Invalid European characters when reading non-unicode DICOM tags
- Fixed: Some issues with uncommon bitmap formats
- Fixed: Terminator is not stripped from TGA_Descriptor when loaded
Changes to Classes
- Added: TImageEnView.BeginSelect() to limit repainting when adding many selection pointsChanges to Method Parameters
- Added: TIEDictionary.Get* methods now include overloads that do not raise exception when key not foundCompatibility Issues
- Changed: Instead of TIELayer.Scaled use ScaleLocking- Changed: If you use TIERFBClient, you will need to add iexOtherClasses to your uses
- Changed: Instead of ImageEnView1.IO.Params.DICOM_CharacterSet, use ImageEnView1.IO.Params.DICOM_Tags.CharacterSet
- Changed: To register the legacy ImageMagick plug-In, ImageMagick.dll, add iexPlugIns to your uses clause and call IEAddExtIOPlugIn('imagemagick.dll');
- Changed: TIOParams.GetProperty/SetProperty moved to iexMetaHelpers unit (as helper methods)
Demo Changes
- Added: All Components demo shows TIEMetaListView (Demos\Other\AllComps\AllComponents.dpr)
ImageEn 11.3.0 - 25 August 2022
New Features
- Added: TImageEnIO can load images directly from attached devices- Added: TImageEnView is cleared when loading a TIEDBBitmap from a null image field
- Added: Effects specified in TImageEnProc.DoPreviews() can be applied to other images
- Added: Advanced text drawing method for TImageEnProc
- Added: Support for "Effects Chains": A list of editing operations to apply to an image
- Added: When editing text layers, the editor background is automatically changed if the text is white
- Added: Preview images for all image editing and effect methods in Help documentation
- Added: TIECanvas helper methods to draw rect and line lists (e.g. from IEVision)
- Added: Improved layout of Proc Previews dialog when localized
- Added: Can specify compression quality when saving with ImageMagick
- Added: Can specify custom ImageMagick defines
- Added: PdfViewer can output page as formatted text
- Added: Cursor keys can optionally be used to scroll TImageEnMView
- Added: More extensive use of TIEGlobalSettings.DefaultResampleFilter
- Added: TImageEnView.FitMode to fit to width, height, or both
- Added: PDF Actions for auto fit, fit to width, fit to height and full size
- Added: TImageEnProc.DoPreviews offers AdjustGainOffset(), WallisFilter() and WhiteBalance_AutoWhite() auto-enhancement methods
- Added: TImageEnProc.DoPreviews Sharpen tab supports AutoSharp()
- Added: TImageEnProc.DoPreviews Smooth tab supports Blur(), UnsharpMask(), fastNlMeansDenoisingColored() and smooth()
- Added: TImageEnProc.DoPreviews supports ConvertToGray(), ConvertToSepia(), Colorize(), Negative(), WhiteBalance_GrayWorld(), Reflection(), PencilSketch()
- Added: TIEColorButton fully supports keyboard usage
- Added: Many improvements to localization of Proc.Previews, IO.Previews, Brush Properties and Layer Properties dialogs
- Added: Optimized all progress calls in Proc.OnProgress
- Added: Method to display a preview of an image
- Added: Tidied list of extensions displayed in the Open/Save dialog format list
- Added: Supports 1bit colored bitmaps
- Added: New double-click to zoom interaction
- Added: Can specify which method to use for the Auto Enhance action
- Added: New actions for smoothing and inpainting
Bug Fixes
- Fixed: DPI incorrect for jpeg images with CM density units- Fixed: Difficult to select layers if background layer is selectable
- Fixed: Changing FFT selection in Preview dialog does not update preview
- Fixed: Ugly images in ImageEn toolbar if theming is not enabled
- Fixed: Right and bottom of border may not show for image layers
- Fixed: Time-zone is inconsistent (not UTC) when loading camera raw images with LibRaw
- Fixed: Proc.Reflection fails if there is a selection
- Fixed: Out-of-range progress values for Proc.Lens
- Fixed: Potential A/V with null width TImageEnView
Changes to Method Parameters
- Added: TIEPdfViewerInteraction.GetText() allows -1 as length to get all text- Added: TImageEnProc.SeparateObjects() includes a minimum size parameter
- Added: TImageEnProc.AddSoftShadow overload
- Added: TImageEnProc.Pixelize() includes an AmountIsPercentage parameter
Compatibility Issues
- Changed: TImageEnView.LayersRotationFilter now defaults to ierFast (not ierNone)- Changed: ievtKnownNetworkDrives is no longer included in TIEFolderTree.ViewTypes
- Changed: peFFT is no longer included in ppeColorAdjustments. Now in ppeSpecialEffects
- Changed: peWave has been merged with "Other Effects". Use peOtherEffects instead
Demo Changes
- Added: Many improvements to text drawing demo (Demos\ImageEditing\DrawText\DrawText.dpr)- New: Demo showing every ImageEnProc method (Demos\ImageEditing\EveryMethod\EveryMethod.dpr)
- Added: Many improvements to Radial Stretch demo (Demos\ImageEditing\Radial\RadialStretch.dpr)
- New: Demo of Effects Chain functionality (Demos\ImageEditing\EffectsChain\EffectsChain.dpr)
- Added: Complete rewrite of Batch conversion demo to use Effects Chains (Demos\InputOutput\BatchConvert\BatchConvert.dpr)
ImageEn 11.0.1 - 1 June 2022
New Features
- Added: TImageEnMView will display device files in attached ImageEnViewBug Fixes
- Fixed: Corrupted component icons in Delphi 10.4 and older versions- Fixed: Error if right-click blank area of TIEFileListBox
ImageEn 11.0.0 - 22 May 2022
New Features
- Added: New component to configure ImageEn global settings at design-time- Added: Support for PDFium/5065
- Added: Can specify transparent background when cropping and rotating in TImageEnProc.DoPreviews
- Added: Easier to specify transparent backgrounds for TIEBitmap.Rotate and TIEBitmap.Resize
- Added: Easier to specify background color and alpha transparency for TImageEnProc.ImageResize, TImageEnProc.Rotate and TImageEnProc.Crop
- Added: Automatically creates new PDF document if needed when importing
- Added: Supports Unicode passwords for PDF files
- Added: Support for devices in TIEFolderTree
- Added: Folders can be created on WPD devices
- Added: Layer names output as ids when creating SVG files
- Added: Meta-data display and editing component
- Added: Can now output PDF properties to TStringGrid, TListView or TStringList
- Added: TDateTime versions of PDF_CreateDate and PDF_ModifyDate
- Added: ShowPrinterWizard() supports TImageEnView
- Added: Added ImageEnView supports file dropping
- Added: Button styling can be edited and previewed at design time in TImageEnLayerMView
- Added: Supports Unicode for Dicom string tags
- Added: Improvements to editing of DICOM tags
- Added: Can save DICOM to 32bit float format and read improvements
- Added: Many improvements to writing of DICOM tags
- Added: Improved support for Big-endian DICOM files
- Added: DICOM injection now supports multi-frame files
- Added: AutoSetFilter is disabled when setting TOpenImageEnDialog Filter
- Added: TImageEnProc.CompareWith can consider alpha channel
- Added: Can specify a path for the ImageMagick plug-in
- Added: WebP format can now be read and written by the ImageMagick plug-in
- Added: JPEG XL format can now be read and written by the ImageMagick plug-in
- Added: HEIF/HEIC/AVIF, TTF, OTF and PICT formats can now be read by the ImageMagick plug-in
- Added: Image properties can be saved as JSON with the ImageMagick plug-in
- Added: Main ImageEn forms remember their position
- Added: Alternative background can be specified for non-image area of TImageEnView
- Added: Gradient direction can be specified for control backgrounds
- Added: Existing selections are favored when selecting overlapping layers
- Added: AVIF support via WIC
- Added: Improved method of calculating DICOM range values
- Added: Range overloads for PDF methods
- Added: Default display size for PDF Viewer is Screen DPI
- Added: Updated packages for BCB 5 and 6
Bug Fixes
- Fixed: Scrollbar position for PDFViewer when showing all pages and default dpi not 72- Fixed: DirectShow events not called after Refresh
- Fixed: Passing filename to TImageEnMView leaves it in unstable state
- Fixed: TImageEnFolderMView doesn't check for zip paths
- Fixed: Layer transparency ignored when outputting to PDF
- Fixed: PDF meta-data not updated until after TImageEnView.OnImageChange event
- Fixed: TImageEnMView does not include SVG files when ImageMagick is used
- Fixed: Disabling TIERichEdit.KeyboardShortcuts does not prevent all shortcuts
- Fixed: Color issue loading RGB encoded JPEG images
- Fixed: Correctly detects DICOM files with TIFF header
- Fixed: Acquire Dialog always shows on Brother scanners
- Fixed: Dicom files with 8bit JPEG Encoding (and others) can raise A/V when loading
- Fixed: Selection issues in TImageEnLayerMView
- Fixed: Erroneous result if pass gpgNone to TIECanvas.GradientFillRect
- Fixed: Layer rotate grip does not function if mlMoveLayers not enabled
- Fixed: Invalid file can be created when saving tags only DICOM
- Fixed: PDF Viewer Find and Highlight text don't work well together
Changes to Classes
- Added: TIOParams.SupportInfo()- Added: TIOParamsHelper.WriteTo/ReadFrom()
- Added: TIEBitmap.ConvertToGray()
- Added: Further overloads for TIEBitmap.Crop()
Compatibility Issues
- Removed PDF options, ieppPrintTextWithGDI and iepoGrayScale, which are no longer supported by PDFium- Deprecated TListView, TStringGrid and TStrings helpers in iexMetaHelpers unit in favor of TIOParams.WriteTo/ReadFrom
- Changed: DicomTags.GetTagString() now returns a string value (not AnsiString)
- Change: Default display size for PDF Viewer is Screen DPI (generally 96) not PDF DPI (72) so pages will appear 33% larger
Demo Changes
- New: TIEMetaListView demo (Demos\Other\MetaListView\MetaListView.dpr)- New: Dicom Tag Editing demo (Demos\InputOutput\DicomTags\DicomTags.dpr)
- Added: Many improvements to PDF Viewer demo (Demos\Other\PDFViewer\PdfViewer.dpr)
- Added: All Comps demo shows Global Settings component (Demos\Other\AllComps\AllComponents.dpr)
- Added: MultiView Buttons demo can use internal images (Demos\Multi\ThumbButtons\ThumbButtons.dpr)
- Added: Dicom demo supports meta-data read improvements (Demos\InputOutput\Dicom\Dicom.dpr)
- Added: EXIF demo supports meta-data read/write improvements (Demos\InputOutput\EXIF\Exif.dpr)
- Added: IPTX demo supports meta-data read/write improvements (Demos\InputOutput\IPTC\Iptc.dpr)
- Added: XMP demo supports meta-data read improvements (Demos\InputOutput\XMP\XMP.dpr)
- Added: Explorer demo supports devices (Demos\Multi\Explorer\ExplorerDemo.dpr)
- Added: WPD demo allows folder creation (Demos\ImageAcquisition\PortableDevices\WPDDemo.dpr)
- Added: Improvements to PDF Viewer demos such as bookmarks (Demos\Actions\Actions_PDFViewer\PdfViewerActions.dpr)
ImageEn 10.3.5 - 11 March 2022
New Features
- Added: New analysis method to calculate the percentage transparency of an image- Added: TImageEnFolderMView blocks illegal characters when renaming files
- Added: Can specify the draw size when outputting PDF pages to bitmap, canvas, etc.
- Added: PTP support added to TImageEnFolderMView
- Added: Can specify the painting color when using iebEraser brush tool
- Added: Can specify that layers are not scaled by zooming
- Added: Double-clicking of items in Acquire Selection dialog
- Added: Refresh method for DirectShow
- Added: Improved caching of frames by TImageEnIO to speed up animated GIF loading
- Added: Custom items can be added to ImageEn hover toolbars and popup menu
- Added: Default DPI can be specified for the PDF Viewer
- Added: Completed translation of Farsi and Serbian (mostly machine translated)
- Added: Progress while loading and saving TImageEnMView Snapshots
- Added: Checks alpha channel is used when saving TIFF
- Added: Frame color of the selected page in PdfViewer can be specified
- Added: TImageEnVect.CopyObjectTo supports layers and moving
- Added: Landscape page layouts can be specified when saving PDF files
- Added: Now reads 8bit JPEG with arithmetic encoding, used in DICOM (requires IELib)
- Added: More detailed WIC errors
- Added: Now supports more Canon CR3 files by falling back to high quality embedded JPEG
- Added: Support for JPEG "Tech Note 2" encoded TIFF files
Bug Fixes
- Fixed: TIEEquirectangularRenderer does not support GetSegment()- Fixed: TImageEnFolderMView.CopySelectedFilesToClipboard() may fail
- Fixed: Invalid size shown in TImageEnMView hover hint when only filenames displayed
- Fixed: Invalid size shown in TImageEnMView for PDF files
- Fixed: TIEFolderTree.SelectSpecialFolder may be unreliable
- Fixed: TImageEnLayerMView content not cleared when remove attached TImageEnView
- Fixed: Russian localization error
- Fixed: Some display values do not round adequately
- Fixed: Stretch to Page printing still maintains AR
- Fixed: WPD does not support some device types
- Fixed: WPD prevents use of extended length filenames
- Fixed: MaintainInvisibleImages may function incorrectly for TImageEnMView
- Fixed: Some issues undefining components
- Fixed: "Invalid Floating Point Operation" with some HD TIFF files
- Fixed: Lower threshold for converting pixels to alpha when converting from 8bit to 1bit alpha PNG
- Fixed: TImageEnMView.LoadSnapshot cannot load files larger than 2GB
- Fixed: TImageEnVect cleans up better after loading fails on corrupted files
- Fixed: TImageEnVect free user memory data if loading fails on corrupted files
- Fixed: A/V if DBComboBox on same form as ImageEn TActions
- Fixed: Issue loading J2K DICOM files with ielib
- Fixed: Some DICOM display issues
- Fixed: EXIF time stamps adjusted to UTC
- Fixed: Floating point error in rare JPEG save situation
- Fixed: PDF paper size not set when rasterizing PDF
- Fixed: Error if re-use TImageEnIO/TImageEnProc.AttachedBitmap
Changes to Classes
- Added: TImageEnProc.CalcImageTransparency()- Added: TIOPrintPreviewParams.Reset()
Demo Changes
- Added: Toolbar demo shows adding custom items to popup menus (\Demos\Other\ImageEnViewToolbar\IEToolbar.dpr)- Added: Many improvements to Batch editing demo (\Demos\InputOutput\BatchConvert\BatchConvert.dpr)
- Added: Many improvements to Cells and Grid editing demo (\Demos\Other\CellsAndGrid\CellsAndGrid.dpr)
- Added: Completed redo of Icon Editor demo (\Demos\ImageEditing\IconEditor\IconEditor.dpr)
- New: Lossless Rotation and Cropping demo (\Demos\ImageEditing\LosslessJpegEdit\Lossless.dpr)
- Added: Many improvements to Threaded Processing Demo (\Demos\ImageEditing\ThreadedProcessing\ThreadTest.dpr)
- Removed: Deprecated all unofficial demos (See: https://www.imageen.com/demos/more.html)
ImageEn 10.3.0 - 17 Dec 2021
New Features
- Added: Improvements to CHM help file layout and buttons- Added: Easier to toggle the visible columns in TImageEnMView
- Added: Ticks can be shown for out-of-range values with TImageEnView rulers
- Added: Image properties available in TImageEnMView even when loading thumbnails (e.g. for sorting or column info)
- Added: Layer snapping makes it easier to position and align layers by snapping to a virtual grid
- Added: Optimized TImageEnProc.TextOut when used with non-transparent images
- Added: Rect/Drag selection can be disabled in TImageEnMView
- Added: 8bit color PNG supports 1bit transparency
- Added: Label values can be truncated for THistogramBox
- Added: TImageEnFolderMView.RenameFile overload prompts user to specify new filename
- Added: Longer display time when playing TIFF or PDF files
- Added: New fast, hiqh quality resampling/zoom filter: "WIC High Quality Bicubic"
- Added: Exporting of PDF pages to file
- Added: TIEFileDragDrop: Drop effect can be customized while dragging
- Added: Improved dragging in TIEFolderTree: prevents dragging of special folders and dropping on vague destinations
- Added: New overloads for Explorer clipboard methods
- Added: Keyboard shortcuts to add folder manipulation functionality in TIEFolderTree
- Added: Support for PDF bookmarks for navigation in PDF viewer
- Added: Inverted color map for DICOM images
- Added: Explicitly checks that Twain sources support UI-less acquisition
- Added: Improved accuracy of angles with TIEAngleLayer
- Added: PDF searching of whole document can be aborted
- Added: ImageEn supports virtual multi-bitmaps allowing large multi-frame files to be generated in memory
- Added: ImageEn can invert (Negative) individual color channels
- Added: Shell controls react directly to System Popup menu
- Added: loProtectBackground also protects layer 0 when deleting selected layers
- Added: Improved scaling of the Open/Save dialog
- Added: Improved styling of selections in PDF documents with auto-merging
- Added: PdfViewer can return the rect of text on a page
- Added: Can flood fill an alpha area of the image with a color
- Added: Automatically smooths the edges of anti-aliased layers
- Added: Improved quality of thumbnails in TImageEnMView when soft shadow is used
- Added: TImageEnMView.GetThumbSize() considers soft shadow
- Added: Rotate and Crop, "Symmetric Nearest Neighbour" smoothing and Pixelize added to Image Processing dialog
- Added: Improved layout of Image Processing dialog
- Added: Can determine if a PDF document contains an editable form
Bug Fixes
- Fixed: Zero does not work with key navigation- Fixed: Ctrl+A does not select all in TImageEnMView
- Fixed: Scale values not updated when assigning a TImageEnView to another one
- Fixed: Use of ROICanvas always adds an alpha channel
- Fixed: On systems where ICC profile can't be converted users may get black image
- Fixed: Columns view header does not scale in TImageEnFolderMView
- Fixed: Memory leaking determining raw colors if image does not have embedded thumbnail
- Fixed: May get incorrect ruler values when using RulerParams.HorzInverted/RulerParams.VertInverted
- Fixed: Cannot disable some editing buttons in PDF Viewer toolbar
- Fixed: Calling TImageEnFolderMView.RefreshFileList when AutoRefresh is enabled may add file twice
- Fixed: Removing mmiSelect does not prevent selection in TImageEnMView
- Fixed: Bitmap display adjustments do not work with ZoomFilters
- Fixed: TImageEnMView unnecessarily discards pre-loaded images
- Fixed: Spell check and auto pop-up menus may clash in TIERichEdit
- Fixed: Cannot disable Ctrl+1/2/5 in TIERichEdit
- Fixed: Popup menu image options not disabled for non-images in TImageEnMView
- Fixed: Lossless rotation of images in TImageEnMView will move selection
- Fixed: Smoother scrolling for TIEFolderTree
- Fixed: A/V for masked non-image layers when zoomed
- Fixed: Localization strings may be offset if IEVect is undefined in ie.inc
- Fixed: Possible A/V when set TImageEnView.SelectionMaskDepth
- Fixed: TIEFolderTree may freeze if using AutoRefresh
- Fixed: Issue with DLL log in multi-threaded applications
- Fixed: Changing line width of TIEAngleLayer is not shown till explicit update
- Fixed: TIEFolderTree Popup menu does not appear on some secondary screens
- Fixed: Autoscroll when resizing is not smooth
- Fixed: Images output to PDF may not appear 1:1
- Fixed: Fill cursor changes when hovering over image alpha
- Fixed: May get white border with rectangular fills of text objects
- Fixed: A/V with invalid values passed to TIEBitmap.RenderToTIEBitmapEx
- Fixed: If right-click when MouseInteractGeneral = [miColorPicker] then color painting occurs
- Fixed: Alpha channel unnecessarily applied in Proc Previews dialog
- Fixed: With TIEDicomTags.SetTag, tags may be deleted if sequence tag is not sorted
- Fixed: TImageEnLayerMView may modify layer bitmaps if caching is enabled
- Fixed: TIELayer.Swap may clear layer bitmap
- Fixed: Saving gray-scale PNG as ie8p creates corrupted image
Compatibility Issues
- Changed: Value for LYR_ALL_LAYERS const changed from -1 to -3 (to prevent a -1 result from IndexOf from removing all layers)- Changed: Instead of TImageEnMView.UnfilteredCount, use TImageEnMView.FilteredCount
- Changed: If you were using an undocumented side-effect of TImageEnMView.MouseInteract where removing mmiSelect prevented rect selection you should instead use iemoPreventRectSelection
- Changed: In Image Processing dialog, peSharpen and peSoftShadow have been moved from ppeSpecialEffects to ppeEditingFunctions
Demo Changes
- Added: Explorer demo allows selection of columns to display (Demos\Multi\Explorer\ExplorerDemo.dpr)- Added: Zoom Filter demo outputs speed comparisons (Demos\Display\ZoomFilter\ZoomFilter.dpr)
- New: Virtual Multi-Bitmap demo (Demos\Multi\VirtualMultiBitmap\VirtualMultiBitmap.dpr)
- Added: PdfViewer demo shows bookmarks (Demos\Other\PdfViewer\PdfViewer.dpr)
ImageEn 10.2.0 - 15 September 2021
New Features
- Added: High quality PDF printing- Changed: TIOParams.OptimizeLoadingParams no longer sets DCT method
- Added: ImageEn now uses a DLL for localization support, reducing the EXE size by 780KB if localization is not needed
- Added: Full translations of eight more languages: Czech, Danish, Finnish, Hungarian, Norwegian, Polish, Swedish, Slovenian (machine translation)
- Added: Mouse interaction and action to measure areas and lengths with polyline
- Added: More information shown in hover hints when measuring, e.g. perimeters when measuring area
- Added: TIELayer.RulerMode to provide more options for display measurement information
- Added: Quality filter option when resizing with TImageEnProc.DoPreviews
- Added: Deletion of layers can be disabled for TImageEnView
- Added: Some performance tweaks for PdfViewer
- Added: Can specify a maximum number of sub-folders to parse in TImageEnFolderMView
- Added: miPdfSelectText/miPdfSelectRgn Mouse Interaction allows selection of text or images in PdfViewer (automatic detection based on what is under cursor)
- Added: TImageEnView Action for PDF selection
- Added: ImageEnViewToolbar supports PDF viewing and editing
- Added: Fit to Height/Width actions function as checkboxes
- Added: SVG image compression can automatically change format for transparent or non-transparent layers
- Added: Easier printing with new overloads and automatic BeginDoc/EndDoc
- Added: Print actions now support PdfViewer
- Added: RichEdit 8.0 features added to TIERichEdit
- Added: Scrolls to top of page when changing zoom mode of PdfViewer
- Added: Can specify selection, highlight and form field colors for PdfViewer
- Added: Soft shadow offsets can be specified by angle and distance
- Added: Language selection now outputs localized languages
- Added: All keyboard shortcuts can now be customized or disabled
- Added: Masks can now be applied to non-image layers, like text and shapes
- Added: Auto adjust color for RAW images can now use the embedded JPEG
- Added: Delphi 11 support
Bug Fixes
- Fixed: Copy does not include transparency with multiple selection- Fixed: Irrelevant font buttons do not hide for rich text layers
- Fixed: PDF Viewer supports transparent pages
- Fixed: Loads TIFF files with inflate issues
- Fixed: When creating layers may not update with only small movements in one dimension
- Fixed: Open dialog offers PDF even if a PDF loading plug-in is not available
- Fixed: Cannot generate multipage DICOM from 256 color bitmaps
- Fixed: Difficult to create angle layers by dragging
- Fixed: Workarounds for some PDFium issues with documents containing hidden content
- Fixed: TImageEnFolderMView.OnIOProgress was called during filling if IncludeSubfolders is enabled
- Fixed: Doesn't save to PDF unless PDF is explicitly specified as format
- Fixed: Saving text layers to PDF may get truncated text
- Fixed: Saving text layers to PDF doesn't consider wordwrap property
- Added: TIEPdfViewerInteraction.Update() does not update view
- Added: Gradient ranges may not be accurate when using custom fills for text layers
Changes to Method Parameters
- Added: TIEBitmap.HasAlphaChannel has parameter to check whether image uses alpha- Added: TImageEnProc.CastColorRange has a tolerance overload
Compatibility Issues
- Changed: TIELayer.IsRuler is deprecated. Instead use RulerMode = iermLabel;- Changed: To support localization, you will need to add ielang32.dll/ielang64.dll to your application exe folder
- Changed: By default, TImageEnFolderMView when parse a maximum of 1000 sub-folders when IncludeSubfolders is enabled
- Removed: TIEPdfViewerInteraction.AllowTextSelection has been removed. To allow text selection in the PdfViewer you set MouseInteractGeneral to miPdfSelectText
- Deprecated: Instead of IEGlobalSettings().MemoShortCuts, use KeyboardShortcuts
Demo Changes
- Added: Measure demo allows measuring of paths and polygons (Demos\ImageAnalysis\MeasureIt\MeasureIt.dpr)- Added: Actions demos now support all new languages (Demos\Actions\*)
- New: PDF Toolbar demo (Demos\Other\PdfViewerToolbar\PdfViewerToolbar.dpr)
ImageEn 10.1.0 - 31 July 2021
New Features
- Added: Access to PDF file version- Added: Improved handling of PDF page drawing rects
- Added: Better page positioning after deleting/moving PDF pages
- Added: Double-click to select word in PDF document
- Added: Draw gradients to ComboBox method
- Added: Layer and Brush Properties dialogs display preview in gradient selector
- Added: More gradient options in Brush Properties dialog
- Added: TImageEnMView.LoadFromFileOnDemand and IEGetFileFramesCount support CUR format
- Added: 12 new shapes (arrows and chevrons)
- Added: TImageEnView buttons have colored border to make them easier to see
- Added: Scrollbars do not affect position of TImageEnView buttons
- Added: Published IEDrawComboListBoxItem
- Added: TImageEnView.PdfViewer.ImportPages supports streams
- Added: TListBox used as shape selector in Layer Properties
- Added: Much faster updating with TIEFolderTree with large folders
- Added: Hover hint text can be specified for layers (and included in SVG files)
- Added: Image Brushes can be rotated
- Added: Auto Toolbars don't automatically hide when layer touches the edge of the control
- Added: Hover toolbars for rich text layers are now centered
- Added: Five new TIERichEdit actions: TIERichEditSelectAll, TIERichEditZoomFullSize, TIERichEditZoomIn, TIERichEditZoomOut, TIERichEditSetZoom
- Added: New directive to read only raw EXIF maker notes
- Added: TIEMultiBitmap can load frames on demand
- Added: Much improved performance when animating and navigating large animated GIF files in TImageEnView
- Added: For IEN_Compression, can specify an alternative method for transparent layers, and JPEG for non-transparent ones
- Added: Navigation keys work in PDFViewer.ShowAllPages mode too
- Added: TImageEnView mouse interaction to adjust the window level and width (brightness and contrast), e.g. for DICOM
- Added: TImageEnViewMouseAdjustBlackWhite action
- Added: Sizing grips for ImageEn preview dialogs
- Added: TImageEnFolderMView will supress error when dragging to current folder
- Added: TImageEnFolderMView/TIEFileDragDrop can show file preview when dragging to/from Windows Explorer
- Added: Progress supported when searching whole PDF document
- Added: Optimized progress update calls to improve performance
- Added: ProgressTask property available for components to determine what has called OnProgress
- Added: TImageEnMView filter now supports filtering by index
- Added: Mouse and keyboard can be used to increase/decrease curvature of TIELineLayer
- Added: PCX, DCX, Targa, PXM and WBMP support can be undefined
- Added: Improved quality of curved TIELineLayer drawing
- Added: Better automatic inclusion of units to uses clause when using ImageEn components
- Added: Layer sizing interactions can be used in combination with selection interactions (for selecting when there are multiple layers)
- Added: Optimize painting of PDFViewer All Pages view
- Added: PDFViewer methods to convert screen positions to character indexes (or words/lines)
- Added: Some improvements to French localization
- Added: TImageEnView Selection mask depth can be changed without resetting selection (e.g. to add feathering to a selection)
- Added: New PDFViewer events: ieiPDFPageLoaded, ieiPDFViewChanged, ieiPDFSelChanged, ieiPDFFieldEnter, ieiPDFFieldLeave, ieiPDFFieldChanged, ieiPDFHoverText, ieiPDFHoverLink, ieiPDFHoverField, ieiPDFHoverOther, ieiPDFError
- Added: Extra controls available even when using themed toolbars
- Added: "Fit Cropping" in ImageEnView to better fill the control with the image
- Added: Improve styling of print dialogs. Now use global settings for background color and style
- Added: Image border option when saving/printing thumbnail sheets
- Added: TIEColorButton better supports theming
- Added: Buttons of TImageEnLayerMView can be customized
- Added: Glyphs in Acquisition dialog listbox can be customized or removed
- Added: Various improvements to ImageEn theming
- Added: PDFViewer much improved at coping with corrupted files
- Added: Much improved performance with large PDF files
- Added: ImageEnVersion class returns the compatible version of IELib/IEVision
- Added: PDF rendering options now available: Annotations, Optimize for LCD, gray-scale, etc.
- Added: Can generate five standard DICOM color tables (for colorizing gray-scale medical images)
- Added: If TImageEnIO.CaptureFromScreen does not succeed with PrintWindow it falls back to a legacy method
- Added: Images can be displayed with an alternative color map (often used to colorize gray-scale DICOM images)
- Added: Arrows can be used with curved TIELineLayers
Bug Fixes
- Fixed: Bit depth not set when acquiring via WIA- Fixed: Layer shortcuts not working on Delphi 2007 and older
- Fixed: Rich Editor popup selection is used for text editor
- Fixed: Some parameter unsupported when using TIEImageEnGlobalSettings.UseWindowsOpenSaveDialogs
- Fixed: Slow processing of FindFileFormat (specifically, TryPXM) with some MOV files
- Fixed: Failures loading some PNG files
- Fixed: SIZE_T clash on older BCB versions
- Fixed: Animated GIF files with frames of lower resolutions (due to compression) may render incorrectly
- Fixed: PDF date does not take time zone offset into account
- Fixed: IO Preview dialog does not remember size
- Fixed: Selection border not drawn fully in TImageEnMView if > 1
- Fixed: Error with PDFViewer.ShowAllPages mode if PDF has zero pages
- Fixed: EXIF_ExposureProgram not set with LibRaw
- Fixed: Line layers with labels can change size when moved
- Fixed: Floating values passed to BlackValue/WhiteValue can give unexpected results
- Fixed: TIEFolderTree does not initalize when themed
- Fixed: Rounding error when calculating DPI via WIC
- Fixed: EMF files may not load fully when threaded
- Fixed: Cannot start drawing polyline if it overlaps another polyline area
- Fixed: TImageEnView.Fit does not consider ScrollBarsAlwaysVisible
- Fixed: Scrollbars not themed with ScrollBarsAlwaysVisible
- Fixed: Scrollbars unnecessarily enabled with ScrollBarsAlwaysVisible
- Fixed: IsEmpty2() not true after loading PSD file
Changes to Classes
- Added: TIEPdfViewer.Update() to refresh content- Added: TImageEnView.OnImageSeek to control automatic seek behavior
- Added: TIEPdfViewerInteraction.FormFieldFocused property
Changes to Method Parameters
- Added: IncludeBackground parameter for TImageEnView.LayerMerge to make it easier to merge to background- Added: Tolerance parameter for TIEBitmap.IsGrayScale
Compatibility Issues
- Changed: Setting custom LZW algorithms for GIF and TIFF is no longer supported by default- Changed: PDFViewer.PageWidth/Height are now integer properties rather than double
- Removed: TIEFolderNode.Attributes no longer includes: ieatCapabilityMask, ieatDisplayAttrMask, ieatValidate, ieatContentsMask
- Changed: Instead of TImageEnMView.FilenameFilter use TImageEnMView.Filter
Demo Changes
- Added: Layer demos shows preview in gradient selector (\Demos\LayerEditing\Layers_AllTypes\Layers.dpr)- Added: Updated TImageEnView button demos to support new button styles (Demos\Multi\MView_AttachedViewer\MViewPreview.dpr)
- Added: TImageEnMView Drag-drop demo supports grid layout (Demos\Multi\DragDrop_MultiView2\Multiview2.dpr)
- Added: New TIERichEdit actions (Demos\Actions\Actions_IERichEdit\RichEditActions.dpr)
- Added: DICOM demos allow dragging to adjust brightness/contrast (Demos\InputOutput\DicomRange\Dicom.dpr)
- Added: Improve graphics in Action demos (\Demos\Action\*)
- Added: Line Layer demos allows curve editing (\Demos\LayerEditing\Layers_Lines\Layers.dpr)
- New: Watershed selection using Polyline layer demo (\Demos\IEVision\WatershedSelection_Polyline\WatershedSelection.dpr)
- Added: Dicom Range demo allows standard color palettes to be used to improve display (\Demos\InputOutput\DicomRange\Dicom.dpr)
- New: Exposure Fusion demo (\Demos\IEVision\ExposureFusion\ExposureFusion.dpr)
- New: Image Alignment (Homography) demo (\Demos\IEVision\ImageAlignment\ImageAlignment.dpr)
- Added: Improvements to Stitcher demo (\Demos\IEVision\Stitcher\Stitcher.dpr)
ImageEn 10.0.1 - 15 May 2021
New Features
- Added: ImageEn Open Dialog support form scaling- Added: Prevents use of External bitmap and AttachedImageEnView together
- Added: PDFViewer now outputs meta-data
- Added: PDFViewer supports adding and removing attachments
- Added: TImageEnMView loads PDF pages on demand if AttachedImageEnView is used
- Added: All Russian text natively translated
- Added: DuplicateCompressionInfo can also propogate PDF page settings
- Added: When saving to PDF, images can be centered and scaling is optional
- Added: Improved dash style for GDI drawing and crop selection
- Added: Can now rotate specific pages of a PDF document
- Added: New TActions for PDF page rotation
- Added: Improve layout of ImageEn dialogs when used with multiple screens
- Added: PDF Viewer supports "All Pages" view
- Added: JPEG autoscaling considers aspect ratio to optimize loading
- Added: Added: Tab key navigates between form fields when editing a PDF
- Added: Can double click PDF form field to select all text
- Added: When converting an image layer, the specified opacity is converted to image alpha
- Added: Global text search of PDF documents
- Added: When searching PDF document, found text is scrolled into view
- Added: Global methods to get page count, import pages and delete pages from PDF files
- Added: New cursor resources
- Added: IEGlobalSettings().ImageEnVersion returns more detailed information
- Added: When enabling the PDF Viewer, incompatible mouse interactions are disabled
Bug Fixes
- Fixed: May get List Index error when deleting pages in PDFViewer- Added: Explicit checks for valid index in MView to resolve issues with database filters
- Fixed: Some cursor issues with PDFViewer
- Fixed: PDF Page position may be off when view is rotated
- Fixed: A/V when drag selecting in empty TImageEnMView
- Fixed: Errors when display Layer Properties dialog or New Layer dialog on older Delphi versions
- Fixed: Improved concurrency issues when using the clipboard with PDFium
- Fixed: Pasting with keyboard into a PDF form field may double-paste
- Fixed: PDFViewer.Find returns true even if text not found
- Fixed: Cannot specify a desired page before loading a PDF
- Fixed: Hand grab cursor does not show when moving the image
- Fixed: Cannot set TIELayerPropertiesDlg tabs in TImageEnView.OnShowDialog
- Fixed: Hand point cursor may not show for PDF links
- Fixed: Selections don't show in PDF pages when document is rotated
Compatibility Issues
- Changed: TIOParams PDF properties are now WideString, not AnsiString- Changed: Instead of TImageEnView.PDFViewer.AutoButtons, add iepoAutoButtons to TImageEnView.PDFViewer.Options
- Changed: TImageEnView.PDFViewer.PageRotation now rotates a specific page. To rotate all pages, use TImageEnView.PDFViewer.ViewRotation
- Changed: When converting an image layer, the specified opacity is converted to image alpha
- Changed: TIELayer.ConvertToImageLayer also converts image layers (fixing rotation and setting opacity)
- Changed: IEGlobalSettings().ImageEnVersion is now of type TIEVersion. Code that referenced IEGlobalSettings().ImageEnVersion should use IEGlobalSettings().ImageEnVersion.VersionStr.
Demo Changes
- Added: PDF Viewer demo shows meta-data (\Demos\Other\PDFViewer\PdfViewer.dpr)- Added: PDF Viewer demo allows attachments to be added and deleted (\Demos\Other\PDFViewer\PdfViewer.dpr)
- Added: PDF pages are loaded on demand (\Demos\Other\PDFViewer\PdfViewer.dpr)
- Added: PDF Viewer demo allows full document search (\Demos\Other\PDFViewer\PdfViewer.dpr)
ImageEn 10.0.0 - 11 April 2021
New Features
- Added: Supports PDFium for loading of rendered PDF pages, viewing and editing of PDF documents (moving, importing and deleting pages), selection of text and editing of form fields- Added: Exposed the Custom Color selection for the color dialog
- Added: CropTool selection now drawn with anti-aliasing
- Added: CropTool selection style can now be specified using TImageEnView selection properties
- Added: Can inject tags into a DICOM file without modifying the image
- Added: DICOM tags can be anonymized (based on official recommendations)
- Added: Can split an image into its C, M, Y and K channels
- Added: Much faster loading images with large XMP data blocks, such as PSD files
- Added: Significant optimization of XMP/Dict assignment code (up to 20x faster)
- Added: Loading of large images in TImageEnView can be deprioritized or loaded as thumbnails to prevent them slowing display
- Added: Home/End/PageUp/PageDown keys can be used if TImageEnView.ShowButtons is enabled
- Added: Centralized properties and methods to register and access all available format and feature plug-ins
- Added: Link support for layers (to create web links and clickable objects)
- Added: loProtectBackground also disables the layer properties shortcut for layer 0
- Added: ImageEnModules property to test for undefined features
- Added: Workaround for VCL issue preventing toolbars in DLLs
- Added: New features for TIERichEdit: Find, Replace, Insert Image, Insert Object, Paste Special, and more
- Added: Six new TIERichEdit Actions: Find, Find Next, Replace, Insert Image, Insert Object, Paste Special
- Added: New ImageEn Actions: TImageEnViewSelectAll, TImageEnViewPixelize, TIELayerAddLink, TIELayerRemoveLink
- Added: Avoids adding both Open/Save Layer File and Open/Save Image File to same toolbar
- Added: Keyboard shortcuts can be disabled for ImageEn toolbars
- Added: Functionality of ImageEn toolbar buttons can be customized using update and action events
- Added: Eleven new actions for PDF Viewer: TIEPDFViewerEnabled, TIEPDFViewerPageRotateNormal, TIEPDFViewerPageRotate90, TIEPDFViewerPageRotate180, TIEPDFViewerPageRotate270, TIEPDFViewerFindDialog, TIEPDFViewerImportPages, TIEPDFViewerPromotePage, TIEPDFViewerDemotePage, TIEPDFViewerDeletePage
- Added: Update delay can be specified
- Added: Magnify layers maintain content even while sizing layer
- Added: TIECanvas.DrawText supports text borders and gradient fills
- Added: Text, line and angle Layers all support text borders and gradient fills
- Added: Eight new gradient effects
- Added: Can shift click color buttons to specify transparency
- Added: TIEDictionary can now output a structural dump
- Added: User interations now initialized on demand for lower memory and faster startup
- Added: Four new actions: TImageEnViewSelectAll, TIELayerAddLink, TIELayerRemoveLink, TImageEnViewPixelize
- Added: Optimized all toolbar graphics
- Added: Custom buttons can be added to the ImageEn toolbars
- Added: Print dialogs display active printer
- Added: Images loaded with ImageMagick can be scaled or loaded at specific sizes (e.g. for vector images, like SVG)
- Added: Images loaded with ImageMagick support the Alpha channel (e.g. for SVG)
Bug Fixes
- Fixed: Setting J2000_Reduce to -1 may cause error- Fixed: PDF files have offset dates in meta-data when saving
- Fixed: Layout invalid on scaled displays when TImageEnView.GridWidth
- Fixed: Progress may exceed 100% loading via LibRaw
- Fixed: CRW was not correctly detected
- Fixed: Fix for DNG files with empty XMP
- Fixed: TImageEnMView may draw selections incorrectly when EnableMultiSelection not enabled
- Fixed: TImageEnMView painting issue with gray-scale images
- Fixed: Some tweaks to resource allocation when showing drives folder and TIEFolderTree
- Fixed: TImageEnMView copes better with unexpected exception during loading
- Fixed: TImageEnMView DiskCache may create folders when not needed
- Fixed: MView showing scrollbars even when no content
- Fixed: TImageEnMView.OnAllDisplayed may trigger prematurely when threaded
- Fixed: TImageEnView selection issues with iesoMarkOuter and keyboard sizing
- Fixed: Some issues with German language and dialogs
- Fixed: Keyboard shortcut hints are shown in hover toolbars and popup menus
- Fixed: Keyboard shortcuts may not fire for ImageEn toolbar buttons
- Fixed: OnLayerSelectionChanged not called after Paste
- Fixed: LayerMView not updated after Paste
- Fixed: Complex gradients may be offset incorrectly
- Fixed: Hints do not show in Layer Properties dialog by default
- Fixed: IELib, Loading NEF files give Invalid Floating point error (64bit)
- Fixed: Error displayed when user cancels out of printing
Changes to Classes
- Added: TOpenImageEnDialog.ExtendedFilters is now publishedChanges to Method Parameters
- Added: Maintain AR parameter for TImageEnIO.ImportMetaFileCompatibility Issues
- Changed: CropTool selection style specified by SelColor1, SelColor2 and SetSelectionGripStyle- Instead of defining SupportToolbarInDLLs to allow ImageEn toolbar usage in DLLs, set IEGlobalSettings().EnableDLLMode := True;
- Layer Gradients are now of type TIEGDIPlusGradient rather than TIELayerGradient. Conversions are as follows: grdNone -> gpgNone, grdHorizontal -> gpgHorizontal, grdVertical -> gpgVertical, grdHorzCenter -> gpgHorzCenter, grdVertCenter -> gpgVertCenter, grdDiagonal -> gpgDiagonal, grdDiagonal2 -> gpgDiagonal2, grdDiagCentered -> gpgDiagCenter, grdDiagCentered2 -> gpgDiagCenter2
Demo Changes
- New: PDF Viewing and Editing Demo (\Demos\Other\PdfViewer\PdfViewer.dpr)- New: PDF Actions Demo (\Demos\Actions\Actions_PdfViewer\PdfViewer.dpr)
- Added: IP Camera Demo: Various improvements (\Demos\ImageAcquisition\CaptFromIPCamera\CaptIPCamera.dpr)
- Added: More performance options added to MView Performance demo (\Demos\Multi\MViewPerformance\Performance.dpr)
- Added: GPS Map demo - Save as Image (\Demos\Testing\InputOutput\GeoMaps\geomaps.dpr)
- Added: Text Layer Demo - support layer links (\Demos\LayerEditing\Layers_Text\TextLayers.dpr)
- Added: All Dialogs Demo - Language support (\Demos\Other\ImageEn_Dialogs\ImageEn_Dialogs.dpr)
- Added: Rich Edit demo includes advanced features like insert image, insert object, paste special, find, replace, etc. (\Demos\Other\RichEdit\RichEdit.dpr)
- Added: Rich Edit Actions demo supports new advanced Actions (\Demos\Actions\Actions_IERichEdit\RichEdit.dpr)
- Added: Toolbar demo - Various improvements including custom buttons (\Demos\Other\ImageEnViewToolbar\IEToolbar.dpr)
- Added: Text Layers demo - Support for font and text borders (\Demos\LayerEditing\Layers_Text\TextLayers.dpr)
- Added: Text Drawing demo - Support for text borders (\Demos\LayerEditing\Layers_TextOut\TextLayers.dpr)
- Added: ImageMagick demo - Scaling (\Demos\InputOutput\ImageMagick\ImageMagick.dpr)
- Added: OCR Demos - New segmentation modes (\Demos\IEVision\OCR\OCR.dpr)
- New: SVG Vector Layers demo (\Demos\LayerEditing\SVGVectorLayers\SVGLayers.dpr)
ImageEn 9.3.1 (15 Feb 2021)
New Features
- Added: PrintingMaintainAR applies to PrintImagePos too- Added: Much optimized performance of TImageEnMView
- Added: Improve performance of TImageEnMView when filtering
- Added: Make calls to TImageEnMView.OnSelectionChanging less frequent
- Added: Improved High DPI support for TIEFolderTree and TIEFIleListBox
- Added: Rotation Grip for TImageEnView CropTool
- Added: Can create new crop selection by clicking outside current selection (if Rotation grip is enabled)
- Added: GPS info can be retrieved from some RAW formats that don't have accessible EXIF
- Added: Can edit size of image brush in Brush dialog
- Added: Various improvements to TIERichEdit
- Added: Prompt to Open/Save methos for TIERichEdit
- Added: Checks for valid file extension when saving with Windows dialog
- Added: TImageEnMView and TIEFolderTree better at detecting false drags
- Added: Improved Engine selection algorithm
Bug Fixes
- Fixed: Natural sorting does not enact in TImageEnMView- Fixed: Cannot enable OK button in Layer Properties dialog
- Fixed: Disabling PrintingMaintainAR has no effect in TImageEnMIO
- Fixed: Difficulty editing layer text using TIELayerProps
- Fixed: Region selection is very slow if start below thumbnails
- Fixed: Edit boxes for Resize Image (Proc.Previews) too narrow
- Fixed: Error when undefine IEIncludeTransitionEffects
- Added: EXIF_HasEXIFData not enabled when LibRaw retrieves meta-data from Canon Raw images
- Fixed: Resize Grips shown for TImageEnView CropTool even if resizing is disabled
- Fixed: Some uncompressed DNG cause a crash with LibRaw
- Fixed: Cannot browse for new brush image in Brush dialog
- Fixed: Difficulty setting PDF paper size to iepAuto
- Fixed: Cannot drag select in TImageEnMView if nothing is selected
- Fixed: Falling back to ieenWIC instead of ieenDLL even when DLL available (Win64)
Compatibility Issues
- Changed: OnSelectionChanging event now includes a NewIndex parameter. Remove existing event and add event handler again- Changed: OnSelectionChanging event now occurs with Seek and SelectSeek
- Added: Some virtual bitmap and other classes moved to iexClasses and iexVirtualBitmaps. You may need to add these units to your uses clause
- Added: TImageEnView user interaction classes moved to iexUserInteractions. You may need to add this unit to your uses clause
Demo Changes
- Changed: FolderTree demo supports drag and drop (\Demos\Testing\Other\FolderTree2\FolderTree.dpr)
ImageEn 9.3.0 (21 January 2021)
New Features
- Added: Blank backgrounds can be hidden in TImageEnLayerMView- Added: support for reading 32 bit (HDR) TIFFs
- Added: All ImageEn dialogs support High DPI
- Added: ImageEn toolbars support High DPI
- Added: ImageEn toolbars can be custom scaled
- Added: TImageEnView rulers support ParentFont
- Added: More extensive use of descriptions for deprecated items
- Added: Does not auto load ielib on Windows XP
- Added: Can output 32bit PNG (with alpha channel) using WIC
- Added: Correctly merges alpha channel when outputting via WIC
- Added: WIC supports offset stream reading/writing
- Added: Can now read EXIF when using WIC
- Added: Skips loading of meta-data in TImageEnMView when using ietFastThumb
- Added: TImageEnMView and TImageEnFolderMView support natural filename sorting (i.e. considers numbered filenames)
- Added: TOpenImageEnDialog.ModernDialog supports all multi-select and Open Options
- Added: Improved zoom in/out steps
- Added: miSmoothZoom interaction
- Added: ImageMagick initialization now recorded in DLL Loading log
- Added: TIFF supports -planar- 8 bit gray scale + alpha
- Added: TIFF supports old-specifications LZW encoding
- Added: Support for larger EXIF thumbnails
- Added: Supports use of custom TImageList classes
- Added: ImageEn copes with PCX/DCX files with invalid DPI
- Added: Easier to specify background color when importing Meta-files
- Added: Alpha channel supported when pasting to rect from clipboard
Bug Fixes
- Fixed: Line Labels may not position correctly when zoomed- Fixed: Unable to load TIFFs with first empty IFD
- Fixed: Cannot change TImageEnView visibility before handle created
- Fixed: Improve design time view in TImageEnLayerMView
- Fixed: TImageEnProc.ConvertToBWThreshold() only supports 24bit images
- Fixed: Changing selection in TImageEnMView may not update attached TImageEnView
- Fixed: Possible error setting AttachedImageEnView at design time
- Added: Faster initial display of ImageEn toolbars
- Added: Optimized preview of images in Open dialog if EXIF thumbnails is disabled
- Fixed: Hints not showing for TImageEnMView buttons when scrolled
- Fixed: Mem size shows incorrectly in TOpenImageEnDialog for very large files
- Fixed: Rich formatted layers paint incorrectly when application is themed
- Fixed: Font editing options not showing on toolbar for angle layers
- Fixed: Scan from flatbed scanners fails when the VisibleDialog is not enabled
- Fixed: A/V if set Handled in OnAcquireBitmap event
- Fixed: EnableAdjustOrientation may not work with RAW images in TImageEnMView (or when getting the embedded JPEG or EXIF thumbnail)
- Fixed: OnFinishWork not called after OnIOProgress for TImageEnMView
- Fixed: ieixRemoveCorrupted does not work well with TImageEnFolderMView
- Fixed: Annotations outside the image area may look odd in TImageEnMView (with ShowAnnotations=True)
- Fixed: Cannot edit colors of rich text layers when theming is enabled
- Fixed: SkewDetectionFine hangs with invalid images
- Fixed: Potential memory loss when monitoring folder changes in TImageEnMView
- Fixed: Some unsupported write formats show as writable (WIC)
- Fixed: Offset view when TImageEnMView.DisplayMode = mdSingle
- Fixed: Unable to read some PGM type P5 files
- Fixed: Unable to read WBMP with sizes bigger than 255
Changes to Classes
- Added: TIEImageEnGlobalSettings.UpdateLanguage/GetLanguageWord/SetLanguageWord- Added: TImageEnMView.OnSelectionChanged
Changes to Method Parameters
- Added: TImageEnView.SetZoomSmooth supports zooming to a specific positionCompatibility Issues
- Changed: Use TImageEnFolderMView.SortOptions, rather than TImageEnFolderMView.SortAscending/TImageEnFolderMView.SortCaseSensitive- Changed: TImageEnMView font size defaults to system font (Screen.IconFont)
Demo Changes
- Added: Localization tweaks to all Action demos- Added: Compare speeds of all imaging engines with Performance demo (\Demos\InputOutput\IEViewPerformance\Performance.dpr)
- New: All ImageEn Dialogs demo (\Demos\Other\ImageEn_Dialogs\ImageEn_Dialogs.dpr)
- New: Subtract Background from Image demo (\Demos\IEVision\BackgroundSubtract\BackgroundSubtract.dpr)
- Added: Sub-Folder progress and cancelling in FolderMView demo (\Demos\Multi\FolderMView\FolderMView.dpr)
- Added: Improved color defaults in Camera Raw demo (\Demos\InputOutput\CameraRaw\CameraRaw.dpr)
ImageEn 9.2.6 (17 November 2020)
New Features
- Added: PSD supports reading 32 bit per channel (HDR) images- Added: TIEBitmap and TIEMultiBitmap can automatically scale images with unequal DPI
- Added: Large image brushes can be reduced to a desired draw size
- Added: Brush Tool now supports pressure (e.g. with tablet pens) to adjust brush size and opacity
- Added: TImageEnView.OnPointer/OnPointerEx events to allow custom handling when using a tablet/pen
- Added: Right-mouse button can be used to erase with brush tool
- Added: DICOM, support for 12 bit jpeg encoding (requires IELIB or IEVISION)
- Added: Drag/Drop from/to Windows Explorer from TIEFolderTree
- Added: TIEFileListBox supports large icons
- Added: TIEFileListBox automatically updates on folder change
- Added: TIEFileListBox can display Windows Explorer popup menu
- Added: TIEFileListBox can display thumbnails for images and videos
- Added: TIEFileListBox supports columns
- Added: DICOM, support for Segmented Palette Color Lookup Table
- Added: Some improvements to Windows Explorer thumbnail handling
Bug Fixes
- Fixed: Slow performance in TImageEnMView when contains many images and ietxAutoPadThumbnailColumns is used- Fixed: Too easy to drag files in TImageEnFolderMView
- Fixed: improved G3FAX1D TIFF compression compatibility
- Fixed: Brush Tool does not update Alpha Channel
- Fixed: Print Preview changes colors in images if it has an alpha channel
- Fixed: AspectRatioLocked affects line layers
- Fixed: Difficulty dropping down controls in hover toolbar
- Fixed: SaveToFile does not work with custom file formats if extension is nil or a plug-in format
- Fixed: Explicit freeing of shell resources
- Fixed: Cannot undefine ImageEn Open/Save dialogs
- Fixed: Clicking on layer 0 may not deselect all layers
- Fixed: Some improvements to toolbar positioning code
- Fixed: Send image layers to background even if loProtectBackground is included
- Fixed: When dragging files onto folder in TImageEnFolderMView it copies to current folder
Demo Changes
- New: ImageEnMView Filtering Demo (\Multi\Filtering\Filtering.dpr)- New: Pen Pointer Events Demo (\Other\PointerEvent\PointerEvent.dpr)
- New: File Drag/Drop Demo (\Other\FileDragDrop\FileDragDrop.dpr)
- Added: TIEFileListBox features in TIEFolderTree demo (\Other\FolderTree\FolderTree.dpr)
ImageEn 9.2.5 (23 October 2020)
New Features
- Added: Exposed Double versions of TIELayer.PosX/PosY/Width/Height- Added: Can now detect file formats using WIC
- Added: Can now specify imaging engine for JPEG/PNG/JPEG2000 from Native, DLL or WIC
- Added: Native code for JPEG/PNG/JPEG2000 can be undefined
- Added: Improved merging of overlapping masked layers
- Added: Installer includes version info file in each package folder
- Added: TImageEnMView can load multi-frame WIC formats
- Added: Open/Save dialogs show preview of Filter at design time
- Added: Can specify multi-only formats for Open/Save dialogs
- Added: Can preview execute Open/Save dialogs at design time
- Added: More subtle design time branding
- Added: Text can be offset in text layers
- Added: Registry methods also output AcquireParams state
- Added: Exposed all method to load/save properties to registry and ini file
Bug Fixes
- Fixed: Error loading very small images with WIC- Fixed: Error loading images with WIC if DPI is invalid
- Fixed: Offset secondary layers after cropping layer 0
- Fixed: DivByZero error when drag creating image layer
- Fixed: Cannot select last character in TImageEnVect memo object when zoomed in
- Fixed: Text in Rich Text layers may not align correctly
Compatibility Issues
- Changed: TIECameraRawEngine type replaced by TIEImagingEngine. Set items change as follows: iecrAuto -> ieenAuto, iecrLibRaw -> ieenDLL, iecrWIC -> ieenWIC, iecrDCRaw -> ieenLegacyDemo Changes
- Added: IPTC Demo: Can show raw IPTC fields (\InputOutput\IPTC\Iptc.dpr)- Added: Text Layers Demo: Adjustment of text offsets (\LayerEditing\Layers_Text\TextLayers.dpr)
ImageEn 9.2.0 (25 September 2020)
New Features
- Added: Size boxes on TImageEnView toolbar offer more relevant options- Added: TIEMultiBitmap.LoadSnapshot gives better error when loading incompatible snapshot
- Added: Improved performance for clone, brush and retouch tools by delaying full quality painting
- Added: Cloning Source can be limited to image area
- Added: GDI+ enhancements
- Added: Actions and toolbar buttons disable when the associated control is disabled
- Added: Detailed progress during WIC loading
- Added: OnActionExecute event for TImageEnView and TImageEnMView to react to action and toolbar usage
- Added: Improved performance with TImageEnView navigator
- Added: Printing size controls automatically scale to aspect ratio
- Added: Will now automatically update the bit depth properties just by specifying PixelFormat if AutoSetBitDepth is enabled
- Added: Improved positioning of line end shapes
- Added: Support for Alpha channel in TPicture
- Added: LayersResizeAspectRatio honored when adding new layers
- Added: TPicture can be assigned to TIEBitmap or TImageEnView
- Added: TImageEnView interactive tools can be undefined
- Added: Improved handling of masks when merging layers
- Added: File extensions can be hidden for TIEFileListBox
- Added: Support 10.4 Sydney per control styling
- Added: Brush Properties dialog
- Added: Output preview of current brush to bitmap
- Added: Action and Toolbar button to modify properties of brush
- Added: Image level adjustment by code and in Previews dialog
- Added: CreateTransitionBitmap overloads for TIEBitmap
- Added: Design time preview of TImageEnView and TImageEnMView properties
- Added: Published further style properties for TImageEnView and TImageEnMView
- Added: Expose GetAllFiles and GetFirstFile methods
- Added: Improve some backgrounds styles
- Added: TImageEnMView now supports DrawVersion
- Added: DrawVersion now also outputs some debugging info when run under Delphi
- Added: TIELayerProps and Layer Properties dialog cope better with narrow sizing
- Added: German localization tweaks for TIELayerProps and Layer Properties dialog
- Added: Raises exception if try to paint on non-image layer
- Added: Now reads EXIF data from more camera raw formats, like CR3
- Added: Updated LibRaw to 0.20 for improved camera raw support
- Added: Holding down the Ctrl key while dragging a layer will clone it
- Added: Raises exception if Dest.PixelFormat is not ie24RGB in RenderToTIEBitmap
- Added: Links to all compiled demos included in the help documentation
Bug Fixes
- Fixed: TImageEnView.OnZoomIn/OnZoomOut not called for some zoom methods- Fixed: Possible A/V when using TImageEnProc.PasteFromClipboard()
- Fixed: Hover toolbars and Color selector may appear off screen
- Fixed: Panels may not be themed in Layer Props dialog
- Fixed: SelectAcquireSource may return False for WPD devices
- Fixed: Prevent 64bit apps from using 32bit TImageEnMView Snapshot files, and vice versa
- Fixed: TIETIFTagsReader.GetString and TIETIFTagsReader.GetMiniString truncate result
- Fixed: Custom Print dialog captions are ignored
- Fixed: Low quality exif thumbnails for small images
- Fixed: Crop Tool used with layers may give invalid crops for Layer 0
- Fixed: loStampMode may not function
- Fixed: Default Chessboard style may not be visible
- Fixed: Removed irrelevant property, TIERichEdit.AutoSize
- Fixed: When auto-fit is temporarily disabled, editing the image reverts it to auto-fit
- Fixed: Corrupted results resizing alpha channel stored into TBitmap
- Fixed: Brushes containing transparent elements may paint incorrectly
- Fixed: Unregistered warning on toolbar buttons
- Fixed: Horizontal only ruler may not paint correctly
- Fixed: Hard return can be added to text layers in layer properties
- Fixed: Improved alignment for text layers when aligned to iejCenter
- Fixed: Some hint issues in TImageEnLayerMView
- Fixed: Snap to angle does not work when creating line layers
- Fixed: Rotation errors caused by rounding errors with very similar numbers (can cause odd movement when rotating line layers)
Changes to Classes
- Added: TImageEnProc.AdjustLevels method- Added: TImageEnMView.OnZoomIn/OnZoomOut methods
Changes to Method Parameters
- Changed: TIOParams.UpdateEXIFThumbnail now uses different defaults to ensure more consistency oriented imagesCompatibility Issues
- Changed: Some changes to default colors of TImageEnMViewDemo Changes
- Added: Clone Tool: Support for new cloning options- Added: General improvements to all layer demos
- New: Layer Stamping Demo
- Added: Viewer Actions Demo: Add Brush Properties
- Added: TIFF Handler Demo: Complete overhaul
- New: Large TIFF Viewer and Editor
- Added: Create Transition Frames demo: Use TIEBitmap overloads
- Added: Layers DropDrop Demo: Support zoomed view
- Added: Camera Raw demo displays EXIF
ImageEn 9.1.1 (28 June 2020)
New Features
- Added: Improved smudging effect- Added: Blur effect when smudging is optional
- Added: Support for CALS and Gimp (EXR) images via ImageMagick
- Added: Brush painting supports images that aren't ie24RGB
- Added: Style property changes to TIEColorCurve are visible at design time
- Added: Display can be centered in TImageEnMView mdSingle mode
- Added: High quality for measurement mouse interactions
- Added: Lower resource usage with large shape layers
- Added: Support for DICOM images with Rescale info specified in Multiframe Shared functional groups
- Added: Can easily iterate through all supported image formats of ImageEn
- Added: Prevents TImageEnMView from loading TImageEnFolderMView snapshots, and vice versa
- Added: Many enhancements to help documentation
Bug Fixes
- Fixed: Cannot set TImageEnViewToolbar.AttachedImageEnView to nil- Fixed: Cannot set DICOM compression until tags have been accessed
- Fixed: Hover toolbars on secondary forms appear behind form on redisplay
- Fixed: TImageEnVect.CreateInternal generates W1029 warning on BCB
- Fixed: Toolbar buttons do not initially display at design time
- Fixed: Under Delphi 10.4 get an A/V if using hover toolbars and VCL theming
- Fixed: Better positioning for auto-shrunk text above line layers
- Fixed: Shrunk text is incorrectly positioned on line layers if zoom not 100%
- Fixed: TImageEnProc.PointPasteFromClip fails
- Fixed: Cannot drag files to FireFox
- Fixed: Changes IEBitmap location to bitmap when saving
- Fixed: Background artifacts appear in anti-aliased edges of brush painting
- Fixed: Thumbnail border and hover background drawn for TImageEnMView in mdSingle mode
- Fixed: Layers may not draw fully when zoomed
- Fixed: Some DICOM tag reading issues
- Fixed: TImageEnProc.Pixelize fails if there is no selection
- Fixed: TImageEnProc.TextOut draws at wrong position if text is selected
- Fixed: ieiPaintEnd event does not occur
- Added: Workaround for VCL bug when use custom TActions in DLLs
- Fixed: Does not compile with some undefine combinations
- Fixed: TIEFileListBox folder change does not call OnSelectionChange event
Changes to Classes
- Added: IETW_MAXSIZE and Twain_Page_Sizes array- Added: TIEFileListBox.Filenames
- Added: TIEFileListBox.SelectedFilename
Changes to Method Parameters
- Added: TImageEnProc.SetTransparentColors overload with Tolerance parameterCompatibility Issues
- Changed: TIEFileListBox.Filename has been renamed TIEFileListBox.SelectedFilename- Changed: TImageEnView.FillTool.ResetAfterColorSelect defaults to False
Demo Changes
- Changed: Complete Re-do of PhotoEn, Editing demo- Added: All Components Demo: New demo showing overview of key components
- Added: Batch Converter Demo: New demo showing how to apply image effects to batch of images
- Changed: ImageMagick Demo: Support for new ImageMagick DLLs
- Changed: Updated many older methods and properties
ImageEn 9.1.0 (27 May 2020)
New Features
- Added: TIEEquirectangularRenderer.DrawTo
- Added: Use less memory when printing via TImageEnView
- Added: Hover toolbars support theming
- Added: Improve "Zoom To" action text
- Added: ImageEnView Rulers display at design-time
- Added: If IELib64 DLL is not available WIC is used to load JPEG and PNG images
- Added: Supports Canon CR3 Raw images
- Removed: No longer includes seldom used Print Position glyphs
- Added: DICOM_ContainsImage property to recognize and write dicom files without images (tags only)
- Added: Inner glow can be specified for layers
- Added: "Effects" available in Layer properties
- Added: Improved layout when using TImageEnMView checkboxes in non-thumbnail view
- Added: TImageEnFolderMView supports shortcuts to folders and files
- Added: All TImageEnView brushes now use anti-aliasing
- Added: Various performance optimizations
- Added: Wider support for ie32RGB format
- Added: The embedded JPEG in RAW files can now be scale loaded to match a desired size for better performance, such as in TImageEnMView
- Added: TImageEnMView persistent disk cache for much improved performance
- Added: TImageEnLayerMView now descends from TIECustomMView not TImageEnLayerMView to make it easier to use
- Added: Much better performance when playing animated GIF files in TImageEnView
- Added: TImageEnMView now automatically pads the spacing between thumbnails to improve styling
- Added: TImageEnMView can now be navigated by clicking the first letter of a filename
- Added: If an image contains an alpha channel, a PNG format image is copied to the clipboard to support transparency
- Added: TImageEnView.AsyncLoading allows image to be loaded in background thread without affecting the UI
- Added: Toolbars can be undefined separately from popup menus
- Added: Selection can be blocked for non-image layers
- Added: Windows 10 style open/save dialogs can be enabled for all load/save tasks
- Added: ModernDialog property for ImageEn Open/Save dialogs to enable Windows 10 styling
- Added: Open/Save File filter is now sorted with more more common image types listed first
- Added: Can specify what image formats are added to clipboard when copying
- Added: ChromaKey removal copes better with low saturation backgrounds (e.g. white)
- Added: New Smart Eraser Brush Tool to remove background without erasing subject
- Added: Create/update an image directly from Red, Green and Blue channels
- Added: Retouch tools: Interactive brush to fix image content: Smudge, Inpaint, Blur, Smooth, Sharpen, etc.
- Added: Round rect brushes now supported for iebfSpray and iebfTexturedSpray
- Added: Clone brushes can now be asymmetrical and "stamped"
- Added: Nine retouching actions: TImageEnViewRetouchTool, TImageEnViewSmudgeTool, TImageEnViewBlurTool, TImageEnViewMotionBlurTool, TImageEnViewSmoothTool, TImageEnViewPixelizeTool, TImageEnViewBrightnessTool, TImageEnViewInpaintTool, TImageEnViewBackgroundEraserTool
- Added: ImageEnView Toolbar includes retouch tools
- Added: Hide Zone cursor on mouse out
Bug Fixes
- Fixed: Hover toolbars can't be set to Wide
- Fixed: Unable to set toolbars to Wide at design time
- Fixed: Align Right/Center inverted in Wide mode
- Fixed: TIERichEdit alignment issues in Right-to-Left text mode
- Fixed: Undeprecate TImageEn
- Fixed: Hover toolbars may remain for hidden forms
- Fixed: On secondary forms hover toolbars may not disappear if application loses focus
- Fixed: Some painting issues with ImageEn toolbars when app is themed
- Fixed: Some painting issues with hover toolbars are hidden
- Fixed: Unexpected stretches with TIEPolylineLayer when out of range values specified
- Fixed: XMP data is not cleared when loading images
- Fixed: Possible List Error when using buttons in TImageEnLayerMView
- Fixed: TImageEnView.IsEmpty2 returns false when themed
- Fixed: Image is not cleared when loading tag only DICOM images
- Fixed: Esc when editing text layer can revert text to previous layer
- Fixed: Renaming files does not check for valid extension
- Fixed: Less aggressive and prompting to rename files (more like Windows Explorer)
- Fixed: CropTool does not work well with layers
- Fixed: May get built-in and system popup menus appearing in TImageEnFolderMView
- Fixed: May get exception at runtime when opening form with TImageEnMView and a specified AttachedImageEnMView
- Fixed: Color select and Fill tools do not cope well with multiple layers
- Fixed: iecoLimitToBounds not honored at start of crop tool selection
- Fixed: Font color cannot be changed in TImageEnMView.OnGetTextEx
- Fixed: FeatherAlphaEdges adds aliased boundary to image
- Fixed: TImageEnLayerMView may not fill on initial load
- Fixed: Lines layers may have invalid pos, size and line width when converted to image layers
- Fixed: Angles layers may have invalid pos and size when converted to image layers
- Fixed: miZoom and popup menus are both effected by right-click
- Fixed: TIEAcquireParams does not correct detect duplex with WIA
- Fixed: EnableAdjustOrientation may not work with embedded JPEG of RAW images
- Fixed: Sizing of line layers with shrunk text can be choppy
Changes to Method Parameters
- Changed: ViewChanging NewValue is var parameter, so can be overridden to control zoom in descendent classes
- Changed: TIEBitmap.CopyToClipboard now includes an IncludePNGFormat parameter
- Added: OnProgress/OnFinishWork is called when merging all layers
Compatibility Issues
- Changed: TImageEnView.IsEmpty2 now uses different method to determine whether content has changed
- Removed: IEGlobalSettings().MinimumRawEmbeddedJpegWidth/Height. Instead use RAW_EmbeddedJpegMinWidth and RAW_EmbeddedJpegMinHeight
- Changed: TImageEnMView.EnableLoadEXIFThumbnails now defaults to false. If EnableLoadEXIFThumbnails is enabled, it uses EXIF thumbnails even if they are lower than the thumbnail resolution
- Changed: EnableTheming now defaults to true, i.e. themed colors will be used by default, if VCL theming has been enabled
- Changed: Increased default TImageEnMView thread pool size to 10 for better performance
Demo Changes
- New: Rich Text Actions and Toolbar Demo (\Demos\Actions\Actions_IERichEdit\RichEdit.dpr)
- Changed: General enhancements to File Format PlugIns demo (\Demos\InputOutput\FileFormatPlugIn\FPlug.dpr)
- New: RGB Channel Editing demo (\Demos\InputOutput\RGBChannels\RGBChannels.dpr)
- New: Retouch Tools demo (\Demos\InputOutput\RetouchTool\RetouchTool.dpr)
- Added: Add new actions to Viewer Actions demo (\Demos\Actions\Actions_Viewer\Actions.dpr)
ImageEn 9.0.0 (12 April 2020)
New Features
- Added: Better handling of TIELineLayers when they have end shapes or labels (no unexpected movement)
- Added: Better handling when layers are sized to minimum values (no unexpected movement)
- Added: Background color can be specified when using iebsPhotoLike
- Added: DuplicateCompressionInfo() supports ICO_Format
- Added: Improved memory handling when resampling images
- Added: Installation and registering of legacy DB components is now optional
- Added: Installation can proceed even if Delphi is running
- Added: Acquisition now defaults to Windows default Twain device
- Added: StyleElements property
- Added: Full Greek translation (partially computer generated)
- Added: TIELayerProps component to view and edit properties of selected layer
- Added: Layer rotation grip to make it easier and more obvious to rotate layers
- Added: More accurate when drag rotating a layer
- Added: Shift key when rotating angle layers, changes which line is rotated
- Added: Custom images can be specified for layers in TImageEnLayerMView
- Added: Can now specify states for TImageEnView buttons
- Added: TImageEnView can be attached to a TImageEnMView to show a preview of the selected image
- Added: Can change selected layers using mouse if MouseWheelParams.Action = iemwNavigate
- Added: TImageEnView now has a Ctrl+MouseWheel property
- Added: Curves can be specified for TIELineLayer
- Added: Text layers with rich formatting can now have transparent backgrounds
- Added: New methods to add graduated masks to layers
- Added: Actions no longer require ImageEn component to be explicitly specified
- Added: Twenty-one new layer actions: TIELayerFill, TIELayerBorder, TIELayerBorderWidth, TIELayerFontColorSelect, TIELayerFontBold, TIELayerFontItalic, TIELayerFontUnderline, TImageEnViewMaskLayersAdd, TIEPolylineLayerSmoothEdges, TIETextLayerRemoveFormatting, TIELineLayerIncreaseCurve, TIELineLayerDecreaseCurve, TImageEnViewLayersMergeToBackground, TIEAngleLayerIncreaseAngle, TIEAngleLayerDecreaseAngle, TIELineLayerStartShape, TIELineLayerEndShape, TIETextLayerEnableFormatting, TIELayerFlipHorz, TIELayerFlipVert, TIELayerRename
- Added: Four new TImageEnView actions: TImageEnViewBrushSize, TImageEnViewInvertSelection, TImageEnViewAutoSharp, TImageEnViewAutoImageEnhance
- Added: Twenty-seven actions for rapid TIERichEdit development
- Added: New TImageEnFolderMView action: TIEFolderMViewExecuteFolder
- Added: New TImageEnMView action: TImageEnMViewShowText
- Added: Toolbar components for TImageEnView and TIERichEdit
- Added: Color of ImageEn toolbar glyphs can be modified
- Added: TImageEnIO.CaptureFromScreen allows capturing of specific monitors
- Added: Can easily create curved selections in code
- Added: Automatic hover toolbars for ImageEnView for viewing, editing, selections and/or layers
- Added: Crop action now supports polygonal selections
- Added: Layers can now be displayed as flipped horizontally or vertically
- Added: Filtering available for TImageEnMView
- Added: Mask drawing can be disabled when fast drawing layers
- Added: Can now configure the effects of layer fast drawing
- Added: Built-in, context sensitive popup menus for TImageEnView, TImageEnMView, TImageEnFolderMView and TImageEnLayerMView
- Added: Color Picker automatically reverts to previous tool after color is selected
- Added: Can set guidelines to auto, to draw the best guideline type based on the view
- Added: Effects dialog can add an inner shadow to images
- Added: Customizable pop-up menu for plain text and rich text layer editing
- Added: Complete documentation for TIECanvas and TIERichEdit
- Added: Optimized default property storage
- Added: Add support for SHA256, SHA384, SHA512 hashing algorithms
Bug Fixes
- Fixed: writing non TIFF using WIC creates corrupted files
- Fixed: Consts like IELayer_Pos_Left don't work for TImageEnView.LayersRepositionAll()
- Fixed: TIETextLayer editing font may be small if Shrink is specified for text overflow
- Fixed: Zoom filter may not be applied after moving image with cursor
- Fixed: Color and font dialog for Rich Text Toolbar may appear off-screen
- Fixed: sometimes IO Params are not correctly loaded
- Fixed: Nothing is returned by TIEDicomTags.GetTagString for FD values
- Fixed: TIEImageLayer.CopyToBitmap does not draw border
- Fixed: Line layers may not drawn properly when image is zoomed
- Fixed: loAllowReturnsInRichText may not have any effect
- Fixed: Cannot adjust zero point in TIEColorCurve
- Fixed: Other changes to TIEColorCurve to make it function more like Photoshop
- Fixed: TIEBitmap.VclBitmap will return nil if the size of the image is 0x0
- Fixed: May get black text editing area if fill not set for formatted TIETextLayer
- Fixed: May not get transparent background if enable border for TIETextLayer
- Fixed: Layer boxes may not follow invisible layers when moved
- Fixed: Font dialog may appear off-screen in a multi-monitor setup
- Fixed: TIELayer.ClientAreaBox may return outdated values
- Fixed: Layers with soft shadows will move when merging
- Fixed: If Layer quality is set to delayed, sometimes may not smooth after changing layer selection
- Fixed: 180 deg angles may show as 0 deg
- Fixed: ielib64.dll installed to Wow64 folder
- Fixed: Sequence tags may be read incorrectly for some Dicom types
- Fixed: MouseWheel ZoomPosition of iemwMouse does not work with navigator
- Fixed: Some Unicode issues with file clipboard functionality
- Fixed: Some 64bit issues with TIEFolderWatch
Changes to Classes
- Added: TIOParams.TIFF_Normalize32fImages property
- Added: TImageEnLayerMView.OnGetLayerImage event
- Added: TIEImageEnGlobalSettings.GetLanguages to get alphabetized list of all supported languages
- Added: TImageEnView.CurrentScrollBars
- Added: TColor overloads to TImageEnProc.CastColor and TImageEnProc.CastColorRange
- Added: TIEBitmap.AddToImageList();
- Added: TImageEnIO/TImageEnMIO.SaveToFile(): If file extension is invalid, existing file type is used as file format
- Added: TIELayer.Flip
- Added: TImageEnMView.OnFilter
- Added: TImageEnMView.FilenameFilter
- Added: TImageEnMView.ImageFiltered
- Deprecated: TImageEnView.LayersRotationAntialias
- Added: TImageEnFolderMView.ExecuteFolderProperties
Compatibility Issues
- Changed: When loading TIELineLayers with labels or start/end shapes saved in older versions, they may slightly move in position
- Deprecated: TIELineLayer.SizeToFit is no longer needed as layer now always the size of the containing line
- Deprecated: TIELineLayer.SetLinePointsEx, has been replaced by SetPoints
- Changed: Background color is used with iebsPhotoLike if it is not clBlack or clBtnFace
- Changed: TIELayerProperties has been renamed TIELayerPropertiesDlg
- Changed: TIEBitmap.UpdateFromTBitmap will convert pfDevice bitmaps to pf24bit
- Renamed: TImageEnMView.InsertTransitionFramesEx, now an overload of TImageEnMView.InsertTransitionFrames
- Renamed: TIEMultiBitmap.InsertTransitionFramesEx, now an overload of TIEMultiBitmap.InsertTransitionFrames
- Renamed: TImageEnProc.PrepareTransitionBitmapsEx, now an overload of TImageEnProc.PrepareTransitionBitmaps
- Changed: ppeSpecialEffects now includes peSharpen
- Changed: ppeEditingFunctions now does not include peSharpen
- Deprecated: TImageEnView.LayersRotationAntialias has been deprecated. Use TImageEnView.LayersRotationFilter instead
Demo Changes
- Added (IEVision\GetFaces\): Option to merge faces
- New (IEVision\FaceRecognizerVideo\): Recognize faces in a video stream
- New (IEVision\NumberPlateBlurring\): Blur any car number plates found in an image
- Added (Actions\Actions_Layers): Now includes a TIELayerProps
- Added (All Actions demos): Improvements to language support
- New (Multi\MView_AttachedViewer\): Attaching a viewer to a TImageEnMView
- New (Other\ImageEnToolbars\): Demo of TImageEnView embedded and hover toolbars
- Added (Other\RichEdit\): Improvements for hover toolbar enhancements
- Added (IEVision\Stitcher\): Checkboxes and deterministic option
ImageEn 8.7.6 (24 November 2019)
New Features
- Added: Polygon auto-closing distance can now be specified
- Added: Updated LibRaw to 201910 to support newer cameras
Bug Fixes
- Added: Do not surface internal exceptions during creation of TIEDBBitmap
- Fixed: OnChanged event called during TImageEnMView destruction
- Fixed: GDI+ unloading issues with DLL/COM
Changes to Classes
- Added: TIEImageEnGlobalSettings.PolygonAutoCloseDistance
- Added: TIELayer.DrawToCanvas
- Added: Exposed TextDrawFontHeight for TIETextLayers and TIELineLayers to access actual drawing font size
Changes to Method Parameters
- Added: TImageEnView.LayersSaveMergedTo returns a boolean result indicating success
- Added: SynchronizeRGBA(False, True); will upscale image to ie32RGB
Demo Changes
- Updated \UserDemos\ResourceExtractor Demo: Now uses ImageEn only controls
ImageEn 8.7.5 (4 November 2019)
New Features
- Added: TIEFileDragDrop can be used as a component for dragging and dropping of files to controls
- Added: FillColor can be specified for TIEBitmap.Crop
- Added: TIEDBBitmap supports Layer saving and ImageEn and Wang annotations
- Added: Can use keyboard shortcuts to enlarge borders on layers
- Added: Layers are always fast drawn when the mouse is pressed if delayed fast drawing is enabled
- Added: New action: TImageEnMViewPromptToFill
- Added: miZoom interaction can be used with some Layer interactions
- Added: Duplicates are ignored when setting polygon points
- Added: PNG compression in ICO file format
- Added: Hard returns can be specified for TIETextLayers
Bug Fixes
- Fixed: Negative values handled incorrectly for TIEBitmap.Crop
- Fixed: Some issues aborting TImageEnFolderMView folder fill when subfolders enabled
- Fixed: Odd scaling when creating and resizing polyline layers
- Fixed: DB Cursor may move with TIEDBMultiBitmap even in record view mode
- Fixed: Cannot drag top,right point in TIEColorCurve when no other points
- Fixed: Incorrect centering of wrapped text layers
- Fixed: Possible crash when adjusting Equalization in Effects dialog
- Fixed: Wrong EXIF-GPS coordinates reading images from DJI
- Fixed: Some painting issues when using ImageEnView as a navigator
- Fixed: Zooming via mouse wheel is incorrect when rulers are visible
- Fixed: OnLayerMoveSize not called when using cursor to move layers
- Fixed: TIEPolylineLayer.SmoothJaggedEdges may fail
- Fixed: Safer checking for DivByZero errors with DICOM images
- Fixed: Issue with "Zero is White" based DICOM images
- Fixed: IEVect curved text outputs in wrong position
- Fixed: TIFF, values normalization reading 32 bit FP images
Changes to Classes
- Added: TImageEnMView.OnViewChange supports zoom and style changes
- Added: TIEDBBitmap/TIEDBMultiBitmap.OnLoaded
- Removed: FlatScrollbars property (no longer has any effect in Windows)
- Added: TIEBitmap.Negative to invert colors, e.g for Alpha channel
- Added: IOParams.ICO_Format property
- Added: TIEBitmap.Normalize method
Changes to Method Parameters
- Added: FillColor can be specified for TIEBitmap.Crop
Compatibility Issues
- Removed: FlatScrollbars property of TImageEnView and TImageEnMView, which no longer has any effect in Windows
- TIEFileDragDrop has been moved to the iexWindowsFunctions unit
Demo Changes
- Added (Database\DBDemo_Layers\DBDemoLayers.dpr): Saving layers to a FireDac database
- Added (ImageEditing\Alpha\AlphaTest.dpr): Inverting of Alpha channel
- Added (Actions\Actions_MView\MViewActions.dpr): Support for TImageEnMViewPromptToFill
- Added (Display\Navigator\Navigator.dpr): General improvements
- Fixed (UserDemos\CellsAndGrid\CellsAndGrid.dpr): Some issues with old demo
- Added (InputOutput\DicomRange\Dicom.dpr): New Dicom viewing demo
ImageEn 8.7.0 (13 September 2019)
New Features
- Added: TImageEnMView thumbnail size can be auto-calculated to the width of the control
- Added: Alt Key will force aspect ratio when creating layers
- Added: Area, perimeter and centroid can be calculated for TImageEnView selections
- Added: Guide lines can now be aligned with rulers
- Added: Layers can now be added in Stamp mode (single-click)
- Added: Disk caching used for saving Layer undo stack to prevent "Out of Memory" errors
- Added: AVI support can be undefined
- Added: Print support can be undefined
- Added: Other ImageEn components can be undefined
- Added: Delayed loading can be specified for all DLLs
- Added: When TImageEnFolderMView.IncludeSubFolders is enabled it shows progress and allows aborting
- Added: Live update option for TImageEnView selection display options: iesoMarkOuter and iesoFilled (updates while editing selection)
- Added: TIEPolylineLayer and TIEShapeLayer use double point values for improved accuracy and scaling
- Added: Rich Edit control with hover toolbar
- Added: TImageEnMView.OnGetColors event to easily custimize background and border colors of thumbnails
- Added: Content can be assigned from TImage and TGraphic classes
- Added: Keyboard shortcuts to toggle bold, underline and italics of text and line layers
- Added: TIETextLayer supports Rich Text formatting, with optional pop-up toolbar
- Added: Color selection dialog pops up at button click position
- Added: Can now read and write the Frame Time for Dicom files, and it is used when animating
- Added: Playback of multi-frame images in TImageEnView and TImageEnMView can be speed up or slowed down using PlaySpeed property
- Added: Standard Windows Open/Save dialogs are used if ImageEn dialogs are undefined
- Added: Global option to use standard Windows Open/Save dialogs
- Added: TIEOpenFolderDialog to browse for Windows folders
- Added: TIEFolderWatch can be used as a component
- Added: Remembers size and active tab of Layer Properties dialog
- Added: Improved text editing in Layer Properties dialog
Bug Fixes
- Fixed: Potential crash on close if using loDynamicCanvas
- Fixed: OnGripClick does not fire for TRulerBox
- Fixed: Some issues saving valid size data to icons
- Fixed: TIELayerMView can give "List index out of bounds" errors after layer removal
- Fixed: Cannot display text editor immediately after adding a text layer
- Fixed: Confusion when enabling ParamsEnabled and then accessing ImageEnIO.Params with a connected bitmap
- Fixed: Params.Filename not available when TImageEnIO.OnFinishWork is called
- Fixed: Params.Filename cleared when using threaded loading in TImageEnMView
- Fixed: Polyline points may move unexpectedly
- Fixed: Errors when using mlEditLayerPoints without mlClickCreatePolylineLayers
- Fixed: Grouped layers may resize when rotating
- Fixed: MouseInteractGeneral not reset fully when setting MouseInteractLayers
- Fixed: Unexpected reset of polyline line aspect ratio
- Fixed: Incorrect lock icon shown in TImageEnLayerMView when big icons are used
- Fixed: Multiline text layers may output oddly to SVG and PDF
- Fixed: Margins for TIELineLayers can cause text issues with large zoom sizes
- Fixed: Area measurement may give zero result
- Fixed: Loading IEVect text may fail
Changes to Classes
- Added: TIEPolylineLayer.CalculateCentroid
- Added: TIEPolylineLayer.SmoothJaggedEdges
- Added: TImageEnView.CalcSelectionArea, CalcSelectionLen, CalcCentroid
- Added: loAutoTextEditing and loStampMode items to TImageEnView.LayerOptions
- Added: TImageEnView.OnInteractionHint
- Added: Text change and click events for TImageEnView.OnLayerNotify
- Added: IPDialogParams.AutoEnhance1_Quality
Demo Changes
- New (LayerEditing\Layers_CustomDraw): Custom layer drawing demo
- Added (Multi\MultiView2): Added support for automatic sizing of thumbnails to match control width
- New (Other\RulerBox_Legacy): Added back demo for legacy TRulerBox component
- Added (Other\ImageEnViewRulers): Added support for more ruler units
- Added: (ImageEditing\SelectAndCrop): Optionally draw crop guides
- Added: (Other\ImageEnViewRulers): Optionally draw ruler guides
- Added: (LayerEditing\Layers_AllTypes): Added Stamp Mode checkbox and removed Alpha Channel option
- Added: (LayerEditing\Layers_AllTypes): Added Undo support
- Fixed: (LayerEditing\Layers_AllTypes): Set Polyline to Heart fails
- Fixed: (LayerEditing\Layers_Lines): Export to SVG and PDF
- New: (LayerEditing\Layers_Text): New Text Layer editing demo
- New: (Other\RichEdit): Demo for TIERichEdit
ImageEn 8.6.0 (10 June 2019)
New Features
- Added: Round Rectangle for cursors and brushes
- Added: Spray fill works with non-square brushes
- Added: Layer rotation does not occur when cursor is too far from grips
- Added: TIEAngleLayer for displaying angles
- Added: Measurement of angles within an image
- Added: Five new TActions for angle measurement and TIEAngleLayer creation
- Added: TIEDBMultiBitmap can be used to show multi-frame images at the current database cursor
- Added: Zoom methods and interactions now have a temporary effect even if AutoShrink or AutoStretch are enabled
- Added: Fields can be edited in-place in TImageEnMView and descendents, including file renaming in TImageEnFolderMView and layer renaming in TImageEnLayerMView
- Added: New ShellExecute methods and actions for TImageEnFolderMView to show properties, edit, print file, etc.
- Added: CaptureFromScreen now allows a window to be specified
- Added: More keyboard shortcuts for TImageEnFolderMView: F2, Ctrl+A, Shift+F10 and Alt+Enter
- Added: Six new defines to reduce EXE size by removing unrequired functionality
Bug Fixes
- Fixed: Position incremented when pasting
- Fixed: Can get A/V when sizing an image layer without content
- Fixed: Selected folder lost when enabling checkboxes in TIEFolderTree
- Fixed: Pasting fails if source pixel format does not match destination image
- Fixed: A/V that can occur with TIEDBMultiBitmap
- Fixed: Hover hint flashes when creating layers using mouse interaction
- Fixed: Layer 0 can get slightly wider/higher when zoom in use, and a layer is added
- Fixed: Pinch zooming using gestures does not zoom at the pinched position
- Fixed: May get inverted color channels when loading WebP images (using WIC)
- Fixed: Some issues using CaptureFromScreen to get the foreground window
- Fixed: Errors when saving BMP with ioBMP_V4 or ioBMP_V5 versions
- Fixed: TImageEnFolderMView did not refresh well when manually filled (Folder not specified)
Changes to Classes
- Added: TImageEnMView.OnGetLoadFilename
- Added: TImageEnIO.Seek stream overload
- Added: TIEDBBitmap allows TMemoFields to be used instead of TStringFields
- Added: TEColorCurve.Clear
- Removed: TImageEnView.AutoFit
Compatibility Issues
- Changed: TImageEnView.MouseInteract has now been split into MouseInteractGeneral and MouseInteractLayers. Layer interaction items have been renamed with an ml* prefix, e.g. miMoveLayers has become mlMoveLayers
- Removed TImageEnView.AutoFit. Use AutoShrink and AutoStretch instead
ImageEn 8.5.0 (21 April 2019)
New Features
- Added: Complete translations for 13 languages: Italian, French, German, Russian, Chinese (Simplified and Traditional), Spanish, Portuguese, Arabic, Japanese, Korean, Dutch, Turkish
- Added: Optimized localization for lower memory footprint and faster startup
- Added: Optimization and many other improvements to JPEG 2000 support (requires IELib or IEVision)
- Added: TImageEnMView can now browse connected cameras and smart phones
- Added: Many improvements to Portable Device functionality
- Added: Thumbnails can now be returned from Portable Devices
- Added: New control, TIEFolderTree, a Windows Explorer style shell TreeView
- Added: New control, TIEFileListBox, an file list box with native icon support
- Added: TImageEnView ruler adds support for all standard unit types
- Added: TIELayerMView can now display a layer masking button
- Added: Retrieval of Stock Icons from Windows
- Added: iemsFilenames display style for TImageEnMView
- Added: The TImageEnMView Text background can be drawn at the full width of the thumbnail
- Added: GDI+ hover hints can be disabled for TImageEnView
- Added: Can hold shift key to snap drawing when using the brush tool
- Added: Can specify different height/width for BrushTool brushes
- Added: Improved support for brushes containing alpha with the BrushTool interaction
- Added: Brush rotation and gradient styles with the BrushTool interaction
- Added: Improved performance of gradient brushes
Bug Fixes
- Fixed: Columns header may not display if all text fields not set
- Fixed: Allows saving DICOM files with invalid frame sizes
- Fixed: Loading issue after using TIEColorCurve as PreviewImageEnView if contains layers
- Fixed: TIEBitmap loses events when changing pixel format
- Fixed: Memory leak when using TImageEnMView.OnImageIDRequest
- Fixed: Layer text editor does not take zoom into account
- Fixed: Initial display of LayerMView may not be aligned
- Fixed: Rotated image layers without content do not draw layer box
- Fixed: PopupSystemMenu fails with drives
- Fixed: Pasting image on clipboard using keyboard shortcut raises error if non-image layer is selected
- Fixed: Correctly free DragDrop object when destroying TImageEnFolderMView
- Fixed: Some issues with TIEEquirectangularRenderer
Changes to Classes
- Removed: TImageEnMView.DrawImageBackground replaced by ietxFillWithImgBackground in ThumbnailOptionsEx
- Added: Exposed TImageEnMView.MultiSelectedImagesAutoSort
- Added: TIEColorCurve.PreviewFullSize
- Added: TImageEnView.OnImageChangeEx which shows the type of the change
- Added: OnProgress event for TIEBitmap and TIEMultiBitmap
- Added: TIOParams.J2000_SubSamplingH and TIOParams.J2000_SubSamplingV
- Added: TIOParams.J2000_Reduce
- Added: TIOParams.J2000_Quality
- Added: TIEImageEnGlobalSettings.JPEG2000SliceMemoryThreshold
- Added: Microsoft Cryptography can be disabled
- Added: Simpler TImageEnMView.FillFromDirectory overload
- Added: TIEColorCurve.OnCurveEdit
- Added: "Use as Mask" Layer Action
Compatibility Issues
- TImageEnMView.SelectionWidth now defaults to 1
- TImageEnMView.DrawImageBackground has been deprecated. Instead add ietxFillWithImgBackground to ThumbnailOptionsEx
- Ruler units are now of type TIEUnits, not TIERulerUnits
ImageEn 8.3.0 (24 February 2019)
New Features
- Added: Updated graphics in Open dialog
- Added: TImageEnLayerMView supports all keyboard shortcuts of TImageEnView
- Added: Exposed methods for returning thumbnails and icons from Windows Explorer
- Added: Supports writing of floating point pixel TIFF format
- Added: Borders can now be drawn even for layer 0
- Added: Grip area of rulers can be hidden
- Added: Editing options can be set for TIEColorCurve
- Added: Now all TIELayer types can be used to mask other layers
- Added: More gradient options for layer fills
- Added: "New Layer" Dialog
- Added: Camera Raw Engine defaults to Auto, which falls back to WIC loading if Raw DLL is not available
- Added: WIC Fast Loading now supports auto-rotation (EnableAdjustOrientation) and meta-data
- Added: Exposed some string versions of complex EXIF properties
- Added: Default DICOM_Range can be set in IEGlobalSettings().IOParamDefaults
- Added: Layers fills can now have a different opacity from borders and text
- Added: Updated LibRaw Raw Image loading library
- Added: Some optimizations to reduce exe size
- Added: TIOParams.ContainsInfo returns the types of meta-data included in the current file
- Added: Morphing sequences can now be created using a TImageEnView with line layers
- Added: Now supports WebP image format (via WIC)
- Added: Wang annotations supported without using TImageEnVect
- Added: WIC Codec info available in I/O Params
- Added: Audio files can be added when outputting images to AVI
- Added: A hover color can be specified for TImageEnMView
- Added: A dark set of colors can now be applied using TImageEnMView.SetModernStyling (similar to Windows dark theme)
- Added: Layers can be excluded from TImageEnLayerMView
- Added: TImageEnProc method and TAction to delete the selected region
Bug Fixes
- Fixed: Issues in TImageEnLayerMView when dragging with lvProtectBackground
- Fixed: Unrecognized RAW file types may be loaded using WIC rather than desired Raw Engine
- Fixed: Crash when using TImageEnIO.SelectAcquireSource without acquire source
- Fixed: May crash on start-up or freeze while loading depending on HEIF driver status of system (or if a DLL)
- Fixed: Previous/Next translations incorrect for German
- Fixed: Animations reset when navigating images
- Fixed: Rare A/V if key press during destruction
- Fixed: Improvements to odd resizing of rotated image layers
- Fixed: Current layer may show as selected in TImageEnLayerMView
- Fixed: DXF files may import too small
- Fixed: Selection changes in TImageEnLayerMView when changing properties
- Fixed: Slow reaction on first use of tools that show interactive hints
- Fixed: Stand-alone TImageEnMIO may misalign params
- Fixed: TIOParams.Read ignores ImageIndex
- Fixed: TImageEnProc.CropSel(true) now works
- Fixed: Improved quality when importing WMF
- Fixed: Fixed DICOM sequences loading
- Fixed: Changing the MouseInteract resets any rotation of the RotateTool
- Fixed: Spacing not on TImageEnMView left in RightToLeft BidiMode
Changes to Classes
- Changed: With lvProtectBackground, buttons are no longer shown in TImageEnLayerMView
- Changed: By default, when arranging moving or deleting the background layer in TImageEnLayerMView, the new background inherits the old properties
- Changed: GradientEndColor is now a published property of TImageEnVIew and TImageEnMView
- Changed: TIEResetInfoItems class renamed TIEMetaInfoItems
- Added: TIEBitmap.IsBlank
- Added: TImageEnMView.ParentFont property
Compatibility Issues
- Changed: lvProtectBackground of TImageEnLayerMView.LayerOptions, is now loProtectBackground of TImageEnView.LayerOptions
- By default, Raw Camera images will be loaded using LibRaw (or WIC) instead of DCRaw. You can revert to old functionality using: IEGlobalSettings().CameraRawEngine := iecrDCRaw;
- Removed TImageEnMView.SetPresetThumbnailFrame, use SetImageEnMViewPresetThumbnailFrame in iepresetim unit instead
ImageEn 8.1.2 (26 November 2018)
New Features
- Added: Zoom buttons for TImageEnView
- Added: ImageEnView hover buttons hide on mouse out
- Added: BrushTool brush step now supports minimum distance values
- Added: Can preview all pages when printing posters
- Added: Font size in Layer Text editor matches what was used for drawing (e.g. if text is shrunk)
- Added: Full localization support for Russian language
- Added: Full localization support for Dutch language
- Added: Now automatically handles bitmaps of PixelFormat pfDevice
- Added: Line End shapes are drawn in layer properties dialog
- Added: Text for shape combos can be disabled in layer properties dialog
- Added: Create polyline layers from a selection
- Added: Can lock background layer in TImageEnLayerMView
- Added: Save dialogs of actions will prompt to overwrite
- Added: Improved hover description for TImageEnLayerMView
- Added: No longer stores Open/Save filters in DFM unless customized
Bug Fixes
- Fixed: Buttons don't leave sufficient space for rulers
- Fixed: In some situations hand drag cursor may appear unexpectedly
- Fixed: JpegLosslessTransform2 leaves a temp file for Read-Only images
- Fixed: TIEImagelayer.create(nil) does not create image layer
- Fixed: TImageEnIO Previews dialog may not scale correctly in apps created in older Delphi versions
- Fixed: Error when using iettExplosionWipeOut effect
- Fixed: Undo may replace image of incorrect layer
- Fixed: Crop Tool does not work well with offset layers
- Fixed: TImageEnView.OnActivateTextEditor may not fire
- Fixed: Deleting Layer 0 with mask, may leave zero layers
- Fixed: Can get unexpected scrollbar with FitToWidth/FitToHeight
- Fixed: TImageEnView button hints do not hide on mouse out
- Fixed: Right and middle mouse buttons effect TImageEnView buttons
- Fixed: Drop-down lists not localized in Layer Properties dialog
- Fixed: Difficulty with drag/drop in TImageEnLayerMView if order is background first
- Fixed: When changing file types in the save dialog, it removes filename after the first period
- Fixed: Cannot print selected in MIO Print Preview if EnableMultiSelect is not enabled
- Fixed: Some issues in Layer Properties dialog when scaled fonts are used
- Fixed: miEditLayerPoints can make selection of other layers difficult
- Fixed: TImageEnFolderMView cannot navigate to desktop
- Fixed: TImageEnFolderMView does not display special folder names
Changes to Classes
- Added: TIECropToolOptions.iecoAllowPerspectiveWraps value
Compatibility Issues
- Changed: Parameters for TImageEnView.OnButtonClick event have changed. Please recreate the event handler
ImageEn 8.1.1 (1 October 2018)
New Features
- Added: TImageEnMView.AutoAdjustStyle to make layout changes easier
- Added: Text of TImageEnLayerMView can be customized
- Added: Text editor is activated only when double-clicking the label of a line layer
- Added: Minus cursor shown when ctrl key is pressed
- Added: Improved error message when ielib DLL is not found
- Added: BrushStep property for BrushTool Interaction
- Added: Vertical ruler uses Font.Orientation to draw rotated text
- Added: Improved styling for TImageEnProc.DoPreviews
- Added: Can now draw Previous/Next buttons on TImageEnView
- Added: Interaction hint style can be customized
Bug Fixes
- Fixed: Error when displaying multi-frame images in TOpenImageEnDialog
- Fixed: Quality filter not used for multi-frame images in TOpenImageEnDialog
- Fixed: Images larger than 2GB show wrong file size in TOpenImageEnDialog
- Fixed: Reset does not clear the color curve adjustments in TImageEnProc.DoPreviews
- Fixed: Rare A/V when printing thumbnails
- Fixed: Line layers may update size when loaded
- Fixed: Improved positioning of line layer text in SVG and PDF
- Added: Text layer draws even if layer not tall enough to fit fully
- Fixed: List index error if remove currently editing text layer
- Fixed: Copes with EXIF User Comments without defined types
Changes to Classes
- Added: TIELayer.Assign supports non-typecasted layers
- Changed: Style of TImageEnLayerMView now defaults to iemsFlatAndWide
- Added: TIEImageEnGlobalSettings.LayerShadowAlphaThreshold to improve layer soft shadow quality
Compatibility Issues
- Changed: Instead of IEDLLLoadLog, use IEGlobalSettings().DLLLoadingLog
ImageEn 8.1.0 (17 September 2018)
New Features
- Added: TImageEnLayerMView: Layer display component (shows preview of all layers in a TImageEnView, and allows drag/drop and other editing)
- Added: New Flood Fill Tool
- Added: Color Picker mouse interaction
- Added: Can drag select multiple layers
- Added: Print Preview dialog can be resized
- Added: Maxi Print Preview can be shown non-Maximized
- Added: Other Print Previews can be shown Maximized
- Added: Much easier to scale ruler and measurements in TImageEnView with SetScale
- Added: IEN files can be saved without the background layer (i.e. annotations only)
- Added: Cursor keys will scroll the view if no other interaction is relevant
- Added: Some improvements to TIEAcquire
- Added: Automatically maintains the sizes of shape and polyline layers when rotating
- Added: If loading with WIC and RAW_GetEmbeddedJpeg is enabled, it will load the preview image
- Added: Aspect ratio locking and border rotation supported by text layers
- Added: TImageEnView.OnUserInteraction event
- Added: Improved keyboard shift-selection in TImageEnMView
- Added: Loading EXIF from MRW (Konica) raw format
- Added: iecpCenterLeft, iecpCenterRight, iecpAuto checkbox positions
- Added: Add buttons to thumbnails in TImageEnMView
- Added: Hover hints can be customized for TImageEnMView
- Added: Keyboard shortcuts for TImageEnView can be disabled
- Added: Slippy Maps cope with insertion of params
- Added: Can now specify different Left and Right gaps for TImageEnMView
- Added: -1 can be specified for all TImageEnMView thumbnail gaps to inherit values
- Added: Unregistered Message can be automatically added to ImageEn controls and saved images
- Added: TImageEnView.MoveSelection allows resizing of selections even if they are not rectangular
- Added: New Actions: TImageEnViewLayersCropBackgroundAll, TImageEnMViewDoSavePreviewDialog, TImageEnSetLanguage, TImageEnViewColorFillTool, TImageEnViewAlphaFillTool, TImageEnViewColorPicker, TImageEnViewPromptForColor, TImageEnViewRemoveChromaKey
- Added: When printing images and thumbnails you can specify a heading
- Added: Save Contact Sheets dialog
- Added: Use ZoomFilter to improve print preview
Bug Fixes
- Fixed: TImageEnMView.OnImageLoaded does not occur when loading multi-frame images
- Fixed: LineLength may be invalid after assigning a line layer
- Fixed: Aspect Ratio may be invalid when resizing circular selections
- Fixed: Opacity not shown when exporting layers to SVG
- Fixed: Merge issues when blending layers of different pixel formats
- Fixed: Color curve may fail in 64bit app
- Fixed: LoadFromFile may fail to load URL based files without extensions
- Fixed: View may change when creating layer if autoshrink is enabled
- Fixed: When zooming, rotated image layers may have incorrect grip position
- Fixed: May lose border, soft-shadow or feathering when merging layers
- Fixed: Extra blank image is added to a TIEMultiBitmap when loading a single file image with an incorrect extension
- Fixed: Brush fails if layer 0 has been moved
- Fixed: Image layer shadow may be affected by resizing
- Fixed: May get artefacts when merging anti-aliased layers with soft shadows
- Fixed: Painting of rotated image layers can cause issues with layer insertion
- Fixed: Background of text objects may change unexpectedly
- Fixed: TImageEnIO and TImageEnProc may erroneously report that there is not an active bitmap
- Fixed: TImageEnMView may use EXIF thumbnails even not enabled
- Fixed: A/V when TImageEnMView simultaneously accesses same frame
- Fixed: ImageEn controls do not honor the Handled parameter of MouseWheel events
Changes to Classes
- Changed: Explicitly sets the intended image type when setting PixelType with a WIA source
- TIEBitmapHelper.FillWithShape method
- TImageEnMView.OnGetHint
- TImageEnMView.LeftGap and TImageEnMView.RightGap
- Changed: When fixing Layer borders it sets the border to the image (so it is correctly rotated)
- Added: TImageEnProc.AddSoftShadow, optional parameter BGAlphaThreshold
- TImageEnView.ScaleX and TImageEnView.ScaleY
- TImageEnView.LayersNameToIndex
Changes to Method Parameters
- Added: AppendAtEnd parameter for TImageEnMIO.Acquire
Compatibility Issues
- Default GridWidth for new TImageEnMViews is -1 (auto-width) instead of 0 (single row)
- TImageEnMIO.PreviewPrintImages/PrintImagesToBitmap/PrintImagesToFile have new parameters for heading. You may need to check the parameters you are using.
- Add the iexActionsLayers unit if you use ImageEn Layer actions
ImageEn 8.0.1 (10 July 2018)
New Features
- Added: Extra error checking for JpegLosslessTransform2
- Added: Can use WIC to load digital raw camera formats (without DLLs)
- Added: Can save to DirectDraw Surface format
- Added: Now Aspect Ratio locking works much better for shape and polyline layers
- Added: Native loading of specific image formats can be overridden to use WIC instead
- Added: Restore Aspect Ratio in Layer Props dialog
- Added: ielEditedProps event for layers
Bug Fixes
- Fixed: FindFileFormat may not recognize some JPEG files
- Fixed: Cannot use TImageEMView.Proc.TextOut()
- Fixed: Annotations don't print for B+W images
- Fixed: Undefining Actions makes uncompilable
- Fixed: Unable to load lossless compressed DICOM
- Fixed: Cancelling property dialog may affect order or polyline points
- Fixed: Double-clicking to end polyline insertion may trigger property dialog
- Fixed: ImageCount is not set when loading via WIC
- Fixed: Errors loading IEN files containing Line layers
- Fixed: Layers may move when CropAlpha() is used
- Fixed: Issues with rfFastLinear filter
Changes to Classes
- Removed: TImageEnProc.TextOut_Legacy method
Compatibility Issues
- Instead of IEGlobalSettings().UseLibRaw use IEGlobalSettings().CameraRawEngine
- Setting TIELayer.AspectRatioLocked no longer resets the AR of the layer (instead locks to current AR)
ImageEn 8.0.0 (1 July 2018)
New Features
- Added: Eraser brush tool
- Added: reading of 32 bit floating point TIFFs
- Added: Compositing of Alpha channel when using a transparent brush
- Added: Use of EXIF date as file creation date is now optional
- Added: Improved performance when using clone and brush tools
- Added: Can now set the painting mode for transparent brushes
- Added: Clone painting is now continuous (i.e. smoother even when moving the mouse quickly)
- Added: Color curve editing component
- Added: Image colors can now be manipulated using a curve in Previews dialog
- Added: Improved styling for TImageEnProc previews dialog
- Added: Resizing of circular and polygon selections
- Added: Optional minimum sizes when resizing selections
- Added: Improvements to TImageEnView Rulers, particularly styling and performance
- Added: Three new ruler grip styles
- Added: When merging layers, layer rotations will be automatically applied
- Added: Text output when previewing thumbnail printing
- Added: Improvements to drawing of text when thumbnail printing
- Added: Output of contact/thumbnail sheets to bitmap
- Added: Always prints with a default title
- Added: Headings can be added when printing images and thumbnail sheets
- Added: PDF saving supports image alpha channel
- Added: Maintains aspect ratio when printing at a specific size
- Added: TIEPDFBuilder class to create scalable Adobe PDF documents
- Added: Images with Layers can now be exported as scalable PDF documents
- Added: Obtains highest quality image when printing from TImageEnMView
- Added: Optimized RGB to CMYK conversion
- Added: Shape drawing performance improved with GDI+ painting for supported shapes
- Added: Forty new shapes for TIEShapeLayer: Candy, Sun, Cog, Brooch, Flower, Splat, Crown, Tag, Pin, Radiance, Raindrop, Smile, Rainbow, Marker, Banner, Power, Music, Pointing Hand, Female and Male
- Added: Text and line layers now support many more border shapes
- Added: Margin properties for text and line layers
- Added: Text is now wrapped as needed when exporting layers to SVG
- Added: WordWrap property for text layers
- Added: GDI+ text drawing in histogram, interaction hints, animation
- Added: Improved styling of ImageEnView hover hints
- Added: New properties to use WIC to speed up loading of JPEGs (200% faster) and PNGs (30% faster)
- Added: IEGlobalSettings().DefaultLayerShape
- Added: Layers are now shown as they are created (instead of created on mouse-up)
- Added: JPEG loading properties included in IEGlobalSettings().IOParamDefaults
- Added: Drawing of line and polyline layers by points
- Added: Editing of line and polyline points
- Added: Calls to TIELayer.Bitmap are now cached for better performance
- Added: Clicking a transparent area of a layer no longer selects it (optional)
- Added: Line labels can auto-flip to ensure text is always upright
- Added: New mouse interact to measure lengths in an image
- Added: miRotateLayers can now be used in combination with other layer editing interactions
- Added: Can automatically shrink text in layers to fit in available space
- Added: New method to add a curve to a polyline layer
- Added: Curved lines can be added to polyline layers by holding Alt key when editing
- Added: TImageEnProc can be selected without being attached to a TImageEnView
- Added: If undefine TActions all relevant language consts are undefined too
- Added: If undefine TImageEnVect all relevant language consts are undefined too
- Added: Many improvements and optimizations for TImageEnView Mouse Interactions
- Added: New Shift Lock property to force behaviours using Ctrl, Alt or Shift keys
- Added: GetMetaData option, which can be disabled to speed up loading
- Added: Keyboard shortcuts for layers
- Added: Can measure rectangular and elliptical areas
- Added: IO.PreviewPrintImage supports printing of layers and annotations
- Added: TIEPolylineLayer supports gradients
- Added: Many more gradient types supported by TIELayers
- Added: Use GDI+ for drawing of all shapes (better performance, full rotation, and gradient support)
- Added: TImageEnView.Select, SelectEllipse, SelectChromaKey, SelectRoundRect and SelectColors support selection subtract
- Added: All shapes can now be point rotated
- Added: TIOParams.OptimizeLoadingParams to set the best properties for fast loading
- Added: TIELayer.ConvertToPolylineLayer
- Added: ImageEn can now retrieve embedded JPEG images from camera raw files of guaranteed size. This is also used to speed up thumbnail display in TImageEnMView
- Added: Can hold Ctrl key to subtract from the current selection
- Added: LayersAdd and LayersInsert overloads for layer cloning
- Added: Dozens of new actions: EraserTool, ConvertToPolylineLayer, MeasureLength, MeasureRect, MeasureEllipse, ZoomAndScroll, EditLayers, EditLayerPoints, ClickCreateLineLayers, ClickCreatePolylineLayers, DrawCreatePolylineLayers, LayerFontSelect, LayerFontEnlarge, LayerFontReduce, LayerAlign, Layer Properties, etc.
- Added: Layer index property is read/write
- Added: TImageEnMView.AssignLayers now uses caching for speed
- Added: Layer support can be undefined
- Added: Layer Properties dialog available for setting common style and other settings
- Added: Debugging for DLL loading
- Added: TImageEnView now supports Arcs from TImageEnVect and DXF files
- Added: TImageEnVect to TIELayers transition guide
- Added: Moved Dicom tags to optional ieDicomTags unit to reduce EXE size by about 400KB
- Added: TImageEnMView.MultiSelectedImages now automatically sorts into display order
- Added: TIEColorButton color selection control
- Added: When saving to an image with LayersSave actions it saves a merged version of image
- Added: Layers Open/Save actions prioritize layer formats
- Added: Open/Save dialog can give priority to layer formats
- Added: TIEColorPalette can now show just used colors in image
- Added: ImageEn can load all formats supported by WIC, such as DirectShow Draw (*.dds)
- Added: Option to limit layer movement to background layer
Bug Fixes
- Fixed: Does not save undo, when using clone tool after a prior undo
- Fixed: DirectShow video input may not be selected
- Added: AV on wrong IEVision or IELib version
- Fixed: Daylight savings time may affect displayed file dates
- Fixed: Excessive repainting when rulers are visible
- Fixed: TImageEnVect text objects may paint font with wrong color
- Fixed: Brush tool stamp mode does not work correctly
- Fixed: wrong colors saving jpegs in RGB color space, on 64 bits (or using ielib.dll)
- Fixed: UpdateRect doesn't work setting ZoomFilter
- Fixed: Saving ICO with non binary alpha channel produces artifacts
- Added: Better Twain driver exception handling
- Fixed: TImageEnMView.AssignLayers outputs in order different from documentation
- Fixed: Selected thumbnail in TIamgeEnMIO PrintPreview may get oversized soft shadow
- Fixed: Odd selection after loading layers file
- Fixed: TImageEnProc.Flip doesn't work with all pixel formats
- Fixed: Transparency issue when using GetIEVisionImage
- Fixed: SVG loading via ImageMagick not working
- Fixed: Installer may not write C++ library path
- Fixed: Layers may move relative to each other if LayersFixRotations(0) is called
- Fixed: Slow performance when first layer is not a visible image
- Fixed: Changing TIEBitmap.MemoryAllocated may crash ImageEn
- Fixed: Use of ALT key may make circles and square objects draw in wrong direction
- Fixed: Images layers odd size if add after a non-image layer
- Fixed: LayerBox not drawn for non-image layers
- Fixed: Invisible layers become visible on merge
- Fixed: TIEShapeLayer.ShapeModifier does not function
- Fixed: LibRaw, loading of embedded jpeg when no thumbnail exists
- Fixed: Zoom actions not enabled if non-image layer is selected
- Fixed: miZoom interaction does not work if Layer 0 is not selected
- Fixed: CropSel with ie8p pixel format does not work
- Fixed: Frame order may change if using TImageEnMIO.SaveToFile* methods with SelectedOnly parameter
- Fixed: TOpenImageEnDialog returns corrupted filenames selecting many files
- Fixed: Odd resizing when multiple layers selected
- Fixed: DICOM wrong colors loading 16 bit colormapped images
- Fixed: DICOM unable to read uncompressed YBR images
Changes to Classes
- Added: ieaeScroll to TImageEnMView.OnAfterEvent
- Changed: Undo is now saved for each clone action
- Changed: When saving ico file with TImageEnIO it uses the current image size if an icon size has not been specified
- Added: TImageEnMView.OnBeforeDrawLayer
- Added: TIEDirectShow.GraphBuilder property
- Added: TIEVisionGrabCut.setSelectionMask optional maskIsInside parameter
- Added: TIOParams.RAW_OutputColorSpace property
- Added: TIOParams.RAW_UserWhiteBalance property
- Added: TIESelOp.iespSubtract value
- Added: TIOParams.RAW_GetEmbeddedJpeg property
- Added: TImageEnView.OnLayersNotifyEx event
- Added: TImageEnView.OnShowDialog event
- Added: TImageEnMView.OnShowDialog event
- Added: TIEPolylineLayer.CalculateLength and TIEPolylineLayer.CalculateArea
- Changed: TIELayer.ClientAreaBox is read/write
- Added: ShowFormats parameter for TImageEnIO.ExecuteOpenDialog and ExecuteSaveDialog
- Added: TImageEnMView.SelectedFilename and SelectedFilenames
Changes to Method Parameters
- Added: TextPos and Reversed parameters for TImageEnMView.AssignLayers
Compatibility Issues
- TImageEnMView.AssignLayers was outputting in an order different from documentation. The default value for the Reversed parameter has been changed. Check any calls to AssignLayers in your code.
- TImageEnIO/TImageEnMIO.PrintImagePos/DoPrintPreviewDialog: When printing at a specified size, the aspect ratio of the image will be maintained. Set PrintingMaintainAR to false to prevent this
- Deprecated TImageEnMView.TrackMouseSelection. Use iemoHideSelectionRect of TImageEnMView.MultiSelectionOptions instead
- TImageEnView.OnDrawLayerBox now uses a TCanvas rather than a TIEBitmap. Remove existing event and add event handler again
- Layer creation interactions for TImageEnView.MouseInteract now create the layer immediately rather than mouse up. Check any code that is called in OnNewLayer
- Deprecated TImageEnView.ForceALTkey, use TImageEnView.ShiftKeyLock
- FillGradient property for layers are now of type, TIELayerGradient, instead of TIEGradientDir. Change gdVertical to grdVertical and gdHorizontal to grdHorizontal
- Removed Supported_Generate_Points_Shapes. All shapes now supported by points
- Removed TImageEnView.AnimPolygonDel method
- Removed TImageEnView.AnimPolygonNew method
- Removed TImageEnView.AnimPolygonClear method
- Removed TImageEnView.AnimPolygonAddPt method
- Removed TImageEnView.AnimPolygonEnabled method
- TImageEnView.OnLayerSelectionChange also fires on programmatic changes
- Removed: TIEDicomTags.GetTagDescription, use IEGetDicomTagDescription in ieDicomTags unit instead
- TImageEnMView.MultiSelectedImages is now sorted by display order. To prevent auto-sorting (maintain order they were selected), set ImageEnMView1.MultiSelectedImagesAutoSort := False;
ImageEn 7.5.0 (13 Dec. 2017)
New Features
- Added: Auto fit options can be automatically disabled when zooming (using iedoDisableAutoFitWhenZoom)
- Added: Improved dialog layout when Windows is set to high DPI
- Added: Optimized XMP loading
- Added: Selection of background using Chroma Key algorithm
- Added: Mouse interact to select subject or background in Chroma Key image
- Added: When sorting a TImageEnMView by filename only, it handles number only filenames better
- Added: When loading PDF files via WPViewPDF you can optionally specify image dimensions and password
- Added: TImageEnIO.LoadFromFilePDF so image dimensions and password can be specified (requires WPViewPDF plug-in)
- Added: Various improvements to TIEColorPalette
- Added: PSD, reading and writing Exif tags
- Added: Can set defaults for some TIOParams load properties
- Added: Filename filtering for TImageEnMView and TImageEnFolderMView
- Added: Can specify the sample size for Magic Wand selection
- Added: Gradient, Alpha and Graduated Alpha fills for TIEBitmap and TImageEnProc
- Added: All settings are saved for TImageEnProc preview dialog
- Added: Optional support for LibRaw libray to decode Raw file formats
- Added: Anti-aliasing of selections in TImageEnView
- Added: ImageEn properties are now categorized in Object Inspector
- Added: IOParams.ImageCount contains number of images contained in a multi-shot raw file (with LibRaw enabled)
- Added: IOParams.ImageIndex can select which image to load from a multi-shot raw file (with LibRaw enabled)
- Added: PSD files can be saved and loaded without embedded merged images (i.e. support files saved in Photoshop with Max Compatibility turned off)
- Added: Sizeable cursors can be set for TImageEnView (e.g. for brush painting)
- Added: New interactive cloning tool to erase unwanted content
- Added: New interactive brush tool to paint images
- Added: Five interpolation qualities when decoding RAW (with LibRaw enabled)
- Added: CropTool selection can now respect the boundaries of the image
- Added: New Actions: TImageEnViewCloneTool, TImageEnViewBrushTool, TImageEnViewSprayTool, TImageEnViewRotateTool, TImageEnViewRotateAndCropTool, TImageEnViewShowGuidelines
- Added: New interactive rotation tool to freely rotate and flip images
- Added: THistogram no longer stateless
Bug Fixes
- Fixed: Text backgrounds may not be correct for line labels when exporting to SVG
- Fixed: Copying to clipboard may not include alpha channel
- Fixed: PSD may be saved with invalid header
- Fixed: Not painting when moving layers and rulers are used
- Fixed: AV loading some JP2K files using ielibXX.dll
- Fixed: AV loading EXE processed by exe-compressors
- Fixed: UpdateRect may work incorrectly when TImageEnView.BackgroundStyle is iebsChessboard
- Fixed: AV setting TIEBitmap.Origin on alpha channel
- Fixed: TwainParams.SelectedSource doesn't work correctly
- Fixed: Saving to PSD writes invalid layer names
- Fixed: SelectionMaskDepth may be invalid after loading selection from file
- Fixed: Unfiltered resample operations affected by rounding
- Fixed: Some TImageEnView methods fail if LegacyBitmap = False
- Fixed: Wrong image sizes capturing multiple pages from Twain sources
- Fixed: No longer initialize OLE on creation when used in a DLL
Changes to Classes
- Changed: Moved uncommon TImageEnView properties to DisplayOptions: ZoomSelectionAspectRatio, OffScreenPaint
- Added: TImageEnView.OnUndoRedo and TImageEnMView.OnUndoRedo
- Added: TIEColorPalette.OnAfterPaintCell
- Added: TIEColorPalette.RightClickSelection
- Added: TIEColorPalette.OnClickCell called even when right-mouse button used
- Added: TImageEnView.UpdateRect optional UpdateNow parameter
- Added: TImageEnMView.OnChanged
- Added: TImageEnMView.OnCreateParams
- Added: iemoForceCTRLKey item for TImageEnMView.MultiSelectionOptions
- Added: TIEImageEnGlobalSettings.UseLibRaw property
- Added: TIOParams.RAW_AutoBright property
- Added: TIOParams.PSD_HasMergedImage property
- Added: TIOParams.RAW_Interpolation property
- Added: TIOParams.RAW_GammaToeSlope property
- Added: TIOParams.RAW_Highlight property
- Added: TImageEnMView.FillFromList and TIEMultiBitmap.FillFromList
Compatibility Issues
- Now ImageEn checks for correct ielib.dll and ievision.dll library version
- When setting EXIF_GPSLatitude or EXIF_GPSLongitude, it automatically sets EXIF_GPSVersionID which will force saving of EXIF GPS data fields
- Exposed TIOParams.IsNativePixelFormat as NativePixelFormat property
- LegacyBitmap now defaults to False for all TImageEnView and TImageEnVect. If your code accesses ImageEnView1.Bitmap, it will automatically set ImageEnView1.LegacyBitmap := True;
ImageEn 7.0.1 (24 Aug. 2017)
New Features
- Added: Layer notifies advises of click events
- Added: IEN format is registered in VCL for use by TImage
- Added: TImageEnProc.RemoveIsolatedPixels now considers diagonal pixels as connected
- Added: New conditional defines: IEINCLUDEIEVECT, IEINCLUDEIMAGEENANNOT, IECanRegisterTPictureFormats, IEINCLUDEIEN, IEINCLUDEMETAFILES, IEINCLUDEICOWRITING, IEINCLUDESVGWRITING
- Added: Can now specify which meta-data items to clear with TIOParams.ResetInfo
- Added: Performing Proc action on a TImageEnMView item now only refreshes that image
- Added: PDF Images are now registered as a graphic class in VCL if TIEWPCubedPDF plug-in is used
- Added: Does not remove ICC Profile marker when using ResetInfo (unless ierICC is included)
- Added: Layer operations are supported when saving/loading to PSD (as PSD Blend Modes)
- Added: Text can now be placed above or below lines in TIELineLayers
- Added: Better calculation of padding when using end shapes for TIELineLayers
- Added: Unfilled Arrow, Reverse Arrow, Diamond and Bar line end shapes for TIELineLayers
- Added: TIELineLayers can be used as rulers
- Added: Ruler objects can be copied to/from TImageEnVect
Bug Fixes
- Fixed: Scrollbars not themed for TIEColorPalette
- Fixed: GetIdealZoom may not take edges into account
- Fixed: Some conditional defines do not compile
- Fixed: Some issues using LayersCreateFromSelection when selected layer is offset
- Fixed: Invalid value set for SizeBytes property of TIEPortableDevices.GetObjectAdvancedProps
- Fixed: Fails when loading TIEVirtualImageList or Snapshot of TIEMultiBitmap and TImageEnMView on Unicode Delphi
- Fixed: May not be able to apply perspective selection with CropTool (depending on lock settings)
- Fixed: CropTool does not support alpha channel when using Perspective
- Fixed: Small memory leak in TOpenImageEnDialog with locked files
- Fixed: Crash acquiring from Twain on some devices
- Fixed: LayersCreateFromSelection clears the saved selection
- Fixed: If the scrollbar visibility is changed during an update, the layout may not be correct until the next update
- Fixed: Under 64bit, A/V when loading TIFF with imaging annotations
- Fixed: Multiple lossless jpeg rotates causes A/V
- Fixed: May not load from stream correctly when using ImageMagick plug-in
- Fixed: Wrong colors loading TIFF-Jpeg (old standard) images using ielib.dll
- Fixed: Excessive redrawing when ImageEnView rulers are visible
- Fixed: Text layer may not show text if alignment is not left and it is rotated to some angles
- Fixed: Plain text Wang annotations may be corrupted
- Fixed: Unable to select Feeder as source via WIA with visible dialog
- Fixed: Caching to file not enabled by default in TIEMultiBitmap
- Fixed: Some issues with TIELineLayer when zooming
Changes to Classes
- Added: TImageEnView.LayersEditingLayer
- Added: TImageEnFolderMView.OnAutoRefresh
- Added: TIEImageEnGlobalSettings.TwainCropBufferedTransferedImage property
- Added: Can specify file type with TImageEnIO.SaveToFile, TIEBitmap.Write and TIEMBitmap.Write
- Added: TImageEnMView.CurrentScrollBars
- Added: TIEImageEnGlobalSettings.DICOMKeepMainImageTag to keep DICOM main image tag
- Added: TIEMarkerList.ClearExcept method
- Added: InsertImage and AppendImage methods for streams now include a FileFormat parameter
- Added: TIEImageEnGlobalSettings.UTF8EncodeImagingAnnot
- Added: TImageEnView.OnRulerGetText
Compatibility Issues
- Changed: Video for Windows components are no longer compiled by default. If needed, define in ie.inc with files from the \Legacy\ folder
ImageEn 7.0.0 (8 Apr. 2017)
New Features
- Added: CropTool can be locked to specific sizes
- Added: Symmetric Neareast Neighbour smoothing filter
- Added: Side grips of CropTool can be set to honor Aspect locking
- Added: Pixelize effect
- Added: TImageEnProc.CalcImageNumColors works on all pixel formats (natively ie24RGB and ie1g)
- Added: Pencil Sketch effect
- Added: Improved Russian translations
- Added: Can now hide deprecated by methods by version number
- Added: 40 new shapes for IEDrawShape/IECreateShapeRegion
- Added: Rotation support for IEDrawShape/IECreateShapeRegion
- Added: Can specify custom shapes for transition effects
- Added: TImageEnView.LayersFastDrawing property to speed up layer drawing
- Added: Rewritten TImageEnProc.RemoveIsolatedPixels algorithm
- Added: Proc.TextOut now uses GDI+ even for rotated text
- Added: Consts can be passed to Layer.PosX/PosY to quickly center or align
- Added: Borders can be applied to image layers
- Added: New layer types for TImageEnView: text, shape, line and polyline layers
- Added: TImageEnIO support for ImageEn native image format
- Added: TImageEnView.Layers to import objects from TImageEnVect IEV, ALL or DXF files as layers
- Added: TIETwainParams.IsCapabilitySupported method to check if a Twain capability is supported
- Added: Much improved clipboard handling
- Added: IECompareImages and TImageEnProc.CompareWith now supports all pixel formats
- Added: TImageEnView.LayersCropBackground
- Added: Forty new layer and other TActions
- Added: Some optimization to initialization of TImageEnView
- Added: DICOM, supported some 32 bit gray scale images (as ie32f pixel format)
- Added: Loading of encrypted PDF files in WPViewPDF
- Added: Layers can be saved and loaded to JPEG and TIFF EXIF data (using Params.ImageEnAnnot)
- Added: Layers can be saved and loaded as TIFF Wang annotations (using Params.ImagingAnnot)
- Added: Styling improvements for TImageEnMView
- Added: Full support for VCL theming (XE2 and newer)
- Added: Print methods can print layers, imaging and ImageEn annotations
- Added: Layer properties can now be set for all selected layers
- Added: Exporting of layers and objects to SVG (Scalable Vector Graphics)
- Added: Now supports RAD Studio 10.2 Tokyo
- Added: Improved layout of Proc Previews dialog
- Added: Improved BMP reader
- Added: TImageEnMView.Assign supports TImageList
- Added: TImageEnMView.SetImageSize can specify size of images
- Added: Documentation now includes an index
- Added: THistogramBox.Scale to plot linear, linear clipped and logarithmic scaled histograms
- Added: Histogram in Proc Previews dialog, added scale combobox
- Added: TImageEnView.Modified
Bug Fixes
- Fixed: Odd colors when load uncompressed DICOM RGB images
- Fixed: ImageEnView cursors may not auto-set as relevant
- Fixed: TImageEnView.ZoomFilter now doesn't change inside MouseDown/MouseUp events
- Fixed: Unable to load some GIF files
- Fixed: Slow ARW find file format by content
- Fixed: Added Nikon Coolpix S50 maker tags detection
- Fixed: TImageEnProc.CalcImageNumColors always returns 2 on black/white images
- Fixed: TDBImageEnVect may not update database for objects added via AddNewObject()
- Fixed: Slow ARW loading
- Fixed: TImageEnView.IsEmpty2 may give incorrect results when multiple layers are used
- Fixed: TImageEnFolderMView may not display IEF_Desktop_Folder or IEF_Drives_Folder
- Fixed: TImageEnProc.TextOut_Legacy does not support both angle and text alignment
- Fixed: Clicking background does not deselect layer if multiple selection is disabled
- Fixed: Use of LYR_SELECTED_LAYERS with LayersMove() fails if multiple selection is disabled
- Fixed: TImageEnMView.Acquire locks up when scanner jams
- Fixed: TImageEnProc.HSVvar and HSLvar incorrectly handles gray scale values
- Fixed: May not print when using TActions
- Fixed: rfNone image stretching may not process last column/row
- Fixed: Maxi print preview may not used specified measurement unit
- Fixed: Corruption when LayersRotationFilter ierBicubic or ierBilinear on not RGB24 images
- Fixed: EXIF data not assigned when acquiring via WPD
- Fixed: May get flickering when using run-time themes and borders are disabled
- Fixed: Some panels in ImageEn open dialog are not themed
- Fixed: ImageEn prevents selection of Ctl3D borders (now allowed, but not default)
- Fixed: TIEAcquireParams.FindSourceByName fails with WIA devices
- Fixed: Ugly initial view for TImageEnView Rulers
- Fixed: Preview button in Open dialog fails if "Show Preview" not checked
- Fixed: May fail to load layer files saved with JPEG compression
- Fixed: IsEmpty2 does not return false on startup
- Fixed: Histogram not blank for blank image
Changes to Classes
- Added: TImageEnProc.SymmetricNearestNeighbour method
- Added: TImageEnProc.Pixelize method
- Added: TImageEnProc.PencilSketch method
- Changed: IEPDFFrameCount uses plug-ins if available in preference to internal code
- Added: TIEImageEnGlobalSettings.BufferedReadStreamSize property
- Added: THistogramBox.Clear
- Added: TImageEnView.LayersInsert now has all overloads of LayersAdd
- Added: IEGlobalSettings().EXIFMakerNotesHandling to decide behavior on unsupported MarkerNotes
- Removed: TImageEnView.LayersSync property
- Added: TImageEnView.CropToolInteraction.Selected property
- Added: Helper methods: IEPointsToPaperSize and IECalcPaperSize
- Added: RemoveIsolatedPixels supports progress
- Added: TIELayer.Tag property
- Added: TImageEnVect.CopyAllObjectsTo allows copying objects to a TImageEnView as layers
- Added: TIEBitmap.CopyToClipboard
- Added: New Action: TImageEnViewCutToClipboard
- Added: TImageEnView.OnLayerSelectionChange
- Changed: TImageEnView.XScr2Bmp, YScr2Bmp, XBmp2Scr and YBmp2Scr take care of current layer bitmap position and size
- Added: Forty new layer actions: TImageEnViewMouseCreateImageLayers, TImageEnViewMouseCreateShapeLayers, TImageEnViewMouseCreateLineLayers, TImageEnViewMouseCreatePolylineLayers, TImageEnViewMouseCreateTextLayers, TImageEnViewLayersPromptToOpen, TImageEnViewLayersSave, TImageEnViewLayersPromptToSave, TImageEnViewLayersAlignLeftEdges, TImageEnViewLayersAlignRightEdges, TImageEnViewLayersAlignTopEdges, TImageEnViewLayersAlignBottomEdges, TImageEnViewLayersAlignHorizontalCenters, TImageEnViewLayersAlignVerticalCenters, TImageEnViewLayersMatchWidth, TImageEnViewLayersMatchHeight, TImageEnViewLayersCropBackground, TImageEnViewLayersFastDrawing, TIELayerAspectRatioLocked, TIELayerLocked, TIELayerRestoreAspectRatio, TIELayerSizeToFit, TIELayerSoftShadow, TIELayerVisible, TIEImageLayerRestoreSize, TIEImageLayerExecuteOpenDialog, TIEPolylineLayerPolylineClosed, TIELayerRotateLeft, TIELayerRotateRight, TIELayerConvertToImageLayer, TImageEnViewImageLayersAdd, TImageEnViewShapeLayersAdd, TImageEnViewLineLayersAdd, TImageEnViewPolylineLayersAdd, TImageEnViewTextLayersAdd, TIELayerEditText, TIELineLayerShowLabel, TIELayerResetRotate, TIELayerCropped
- Added: Other new actions: TIEFolderMViewIncludeSubFolders, TImageEnViewCropToolEnable, TImageEnViewCropToolEnactCrop, TImageEnViewCropToolCancelCrop, TImageEnViewClearAll
- Added: TImageEnMView.AssignLayers to display ImageEnView layers in a TImageEnMView
- Added: Rect overloads for TImageEnProc.TextOut
- Added: TIEBitmap.SyncAlphaChannel to make it easier to assign alternative sources for alpha channel
- Added: TIEBitmap.RenderToCanvas optional BackgroundColor parameter to render images with transparency
- Added: IEGlobalSettings().PreviewImageBackgroundStyle affects Print Preview dialog
- Changed: TImageEnMView Unpublished and documented: MissingFileIcon and DefaultFileIcon
- Changed: TImageEnMView Published: ShowThumbnailHint, SelectedFontColor, ThumbnailResampleFilter, ThumbnailDisplayFilter
- Changed: TImageEnView Published: MouseWheelParams, AutoCursors
- Changed: TImageEnView Unpublished: CropToolInteraction, UserInteractions
- Added: TIEImageEnGlobalSettings.DefaultPreviewHistogramScale property
Changes to Method Parameters
- Changed: TImageEnProc.CopyToClipboard
- Changed: TImageEnProc.PasteFromClipboard
Compatibility Issues
- TIELayer class moved to iexLayers unit
- Although backwardly compatible, TIEImageLayer should now be used for image layers
- DrawCustomShape/CreateCustomShapeRegion/TXCustomShape have been deprecated. Use new IEDrawShape/IECreateShapeRegion/TIEShape instead
- TImageEnView.LayersRotationDelayFilterOnPreview has been deprecated. Instead use TImageEnView.LayersFastDrawing = iefDelayed;
- TImageEnView.LayersCreateFromText has been deprecated. Instead use TImageEnView.LayersAdd Text overload
- TImageEnView.Layers are no longer created at position (0,0), they are given a default position which increments with each new layer
- TImageEnView.GetFitValue: now also considers any layers that lie outside the background image (layer 0)
- TImageEnView.MaxLayerWidth/MaxLayerHeight: result now now also includes any layers that lie outside the background image (layer 0)
- TImageEnView.LayersSync property has been removed
- By default, ImageEn no longer displays warnings for deprecated methods
ImageEn 6.3.2 (2 Sep. 2016)
New Features
- Added: Detects WMV and MPEG files by extension in TImageEnMView
Bug Fixes
- Fixed: Bug may cause Preview dialog display to fail
ImageEn 6.3.1 (1 Sep. 2016)
New Features
- Added: TIEColorPalette for palette display and selection
- Added: Pressing SHIFT key in Crop-tool will rotate by 15 degrees steps
- Added: TImageEnProc.Crop overload to adjust perspective distortion
- Added: Crop-Tool can perform perspective crop
- Added: Crop-tool maintains rectangle aspect ratio pressing ALT key or using LockAspectRatio
- Added: TIEDictionary is case insensitive by default (affects i.e. TImageEnView.IO.Params.Dict)
- Added: TIEDicomTags is sortable
- Added: Reading DICOM sequences are never sorted
- Added: Support for ImageMagick 7
- Added: Support reading of TIFF 16 bit gray scale, multiple channels (additional channels are discarded)
- TImageEnView: LayerMergeTo is able to merge a layer with its own layer mask
- TImageEnView: Second overload of LayersMerge is able to merge a layer with its own layer mask
- Added: Can use cursor keys to move a layer or selection in TImageEnView (Shift for faster movement)
- Added: Can use Ctrl + cursor keys to resize a layer or selection in TImageEnView (Shift for faster resizing)
- Added: Media Foundation Acquisition: added aspect ratio dictionary property (to determine aspect ratio of source)
- Added: IEApplyAlphaToColor method
- Added: Various improvements to TRulerBox, particular when scaling
- Changed: iebsCropped background style uses non-3D borders if windows theming is enabled
- Added: Rulers can be displayed on a TImageEnView by enabling a single property
- Added: New ruler actions: TImageEnViewShowRulers, TImageEnViewRulerUnitPixels, TImageEnViewRulerUnitInches, TImageEnViewRulerUnitMillimeters, TImageEnViewRulerUnitCentimeters
Bug Fixes
- Fixed: When calling TImageEnView.ChangeResolution() it updates the layer position
- Fixed: Weird effect when saving EMF file
- Fixed: DivByZero error when loading into TImageEnVect and DPI not set
- Fixed: May not compile using IEUseLegacyUndoFunctionality
- Fixed: AutoImageEnhance3 doesn't support alpha channel
- Fixed: Wrong colors reading jpeg-RGB images using ielib.dll
- Fixed: Problems reading uncompressed and black/white DICOM
- Fixed: Objects not freed in TImageEnIO.CaptureFromScreen
- Fixed: Angle and ruler objects painted incorrectly calling TImageEnVect.CopyObjectsToBack
- Fixed: Floating point error if zoom too much in Preview dialog
- Fixed: Zoom may not be corrected when switching tab in Preview dialog
- Fixed: Excessive selection flashing when displaying the Crop tab of preview dialog
- Fixed: Mouse wheel zooming permitted in some tabs of Preview dialog where zoom is disabled
- Fixed: Unexpected zoom level when changing tabs in Preview dialog
- Fixed: AV using layer mask when the associated layer does not have an alpha channel
- Fixed: AV loading some jpegs with XMP and assigning IOParams
- Fixed: TImageEnView.LayersRepositionAll would move layer in opposite direction to documentation
- Fixed: TImageEnView.LayersAlign fails if only one layer selected
- Fixed: Slow performance of TImageEnProc.TextOut overload
- Fixed: Uses StyleServices, rather than older ThemeServices
- Fixed: Corners get cut-off when call LayersFixRotations with bilinear anti-alias
- Fixed: TImageEnProc.Rotate, corners get cut-off when antialias is bilinear
- Fixed: Crash with LoadSnapshot
- Fixed: OnFinishWork not called after loading from user format
- Fixed: Background for iebsBlurredImage may not be painted initially
- Fixed: TIFF DPI is wrong if EXIF_ResolutionUnit is CM
- Fixed: TIEMultiBitmap may not store meta-data to blob
Changes to Classes
- Added: TIECropToolInteraction.RotatedBitmapPolygon property
- Added: TIECropToolInteraction.Mode property
- Renamed: TIECropToolInteraction.BitmapRectangle to BitmapPolygon
- Renamed: TIECropToolInteraction.RotatedRectangle to RotatedPolygon
- Renamed: TIECropToolInteraction.SetBitmapRectangle to SetBitmapPolygon
- Renamed: TIECropToolInteraction.ScreenRectangle to ScreenPolygon
- Added: PrintSelected property to TIOPrintPreviewParams
- Added: TIOParamsHelper.DICOM_FindTag()
- Added: Don't need to call Update() after setting text in an TImageEnMView
- Added: CropToolInteraction.LockAspectRatio to lock aspect ratio
- Changed: Zoom always 100% in resize tab of Preview dialog
- TIEBitmap.DetachAlphaChannel: Added CreateIfNotExists optional parameter
- Added: TIEDicomTags.Sorted property
- Added: TIESlippyMap.OnBeginWork/OnFinishWork events
- Added: TIEPortableDevices.Cancel
- Added: TImageEnView.SelectNonAlpha
Changes to Method Parameters
- Added: TImageEnView.LayersAlign includes an Index parameter
- Added: TImageEnView.LayersSizeAll includes a ScalePosition parameter
- Added: TImageEnView.LayersLoadFromFile/LayersLoadFromStream include Append parameter
Compatibility Issues
- See renamed TIECropToolInteraction methods and properties in Updating and Compatibility section
- Now uses themed borders by default
- TIOParams.LoadFromFile/LoadFromStream is incompatible with TIOParams.SaveToFile/SaveToStream from earlier versions, unless CheckMagicString parameter is set to false
- Parameters have changed for TRulerBox events: OnRulerPosChange/OnRulerGripClick/OnRulerGripDblClick/OnRulerClick. Remove old event handler and recreate
ImageEn 6.3.0 (4 May 2016)
New Features
- Added: New procedure to reduce colors using a particular palette
- Added: Undo now provides more readable (and localizable) captions
- Added: When using UndoAt/RedoAt the entire history is transferred to Redo/Undo
- Added: Complete Spanish translation
- Added: Complete Russian translation
- Added: now curved text stretch can be disabled
- Added: RAW loading supports EnableAdjustOrientation property
- Added: AutoImageEnhance3 supports alpha channel
- Added: TImageEnProc.Crop overload to crop rotated rectangles
- Added: Crop-tool to TImageEnView (use TImageEnView.MouseInteract to enable)
- Added: Now supports 10.1 Berlin
- Added: Improved styling and graphics of installer
- Added: TImageEnProc.Wave supports alpha channel and ie8g, ie32RGB, ieCMYK pixel formats
- Added: New "Updating and Compatibility" help section
Bug Fixes
- Fixed: UndoAt/RedoAt do not transfer entire undo/redo history to redo/undo
- Fixed: Floating point errors may occur when using DirectShow
- Fixed: Rare loading issue with some BMP causing offset
- Fixed: If disable English, some strings may be blank
- Fixed: Some rare TIFFs may cause AV
- Fixed: When language is msSystem then untranslated strings may not show
- Fixed: GIFs do not animate on Unicode Delphi
- Fixed: ioJPEG_GRAYLEV outputs as monochrome
- Fixed: Slow fill of TImageEnMView when using animations
- Fixed: Need to force a select to rotate a layer (disconnect from what is indicated by cursor)
- Fixed: After rotation, when change to different mouse interact, rotate cursor remains
- Fixed: Odd situation where FormActivate is called twice during Print Preview
- Fixed: Issue saving 16 bit grey-scale images to GIF
- Fixed: Text blocks may not be calculated correctly after TImageEnMView.LoadFromSnapshot
- Fixed: Memory corrupted using TIERFBClient and Unicode compiler
- Fixed: Zlib compressed TIFFs, improved reliability on corrupted datastream using VCL ZLIB
- Fixed: AV rendering on segmented bitmaps
- Fixed: Folder permissions may not be set for IEVision demo installation files
- Fixed: TImageEnVect.CreateImageFromSelectedArea does not support alpha
- Fixed: TImageEnProc.Wave creates wrong results
- Fixed: Some spacing issues in localized versions
- Fixed: Loading black/white PSD with Width which is not multiple of 8 loses most right columns
- Fixed: Accessing TIEBitmap.Canvas sets TIEBitmap.Modified
Changes to Classes
- Added: TImageEnProc.ConvertTo overload
- Added: TImageEnVect.AddPolyLinePoint and RemovePolyLinePoint
- Added: TImageEnVect.ObjRight and TImageEnVect.ObjBottom properties
- Added: TImageEnVect.ObjTextCurveStretch object property
- Changed: TImageEnView.AutoFixRotationBorders only takes effect after moving out of layer rotation mode
- Added: TImageEnMView.OnImageOut to customize image before drawing thumbnail
- TImageEnView: removed unused property DoubleBuffer
- Changed: interface of TIEVirtualBitmapProvider.Render method
- Removed: ABitmapScanline parameter from TImageEnDBView.PaintToEx, TImageEnDBVect.PaintToEx, TImageEnVect.PaintToEx, TIEBitmap.RenderToTIEBitmap, TIEBitmap.RenderToTBitmap, TImageEnView.PaintToEx
- Changed: TIEDictionary searches are recursive by default
Changes to Method Parameters
- Changed: If ioUnknown is specified as a file type for TImageEnIO/TIEMIO.SaveToStream, the current file type is used
- Added: TIEBitmap.CopyRectTo, added CopyAlpha optional parameter
Compatibility Issues
- Combined parameters of Undo/UndoAt. If AutoRedo parameter is enabled then the entries added to redo will be removed from the Undo list. To return to older functionality, enable the IEUseLegacyUndoFunctionality define in ie.inc
- Combined parameters of Redo/RedoAt. If AutoUndo parameter is enabled then the entries added to undo will be removed from the Redo list. To return to older functionality, enable the IEUseLegacyUndoFunctionality define in ie.inc
- Undo captions are now read from iewords and not hard coded. To use the older undo captions enable the IEUseLegacyUndoCaptions define in ie.inc
- TImageEnProc.UndoPeekAt has been removed. Code such as ImageEnView1.Proc.UndoPeekAt( idx ) should be replaced with ImageEnView1.Proc.GetUndoInfo( ImageEnView1.Proc.UndoCount - 1 - idx, Src, iOp );
- TImageEnProc.RedoPeekAt has been removed. Code such as ImageEnView1.Proc.RedoPeekAt( idx ) should be replaced with ImageEnView1.Proc.GetRedoInfo( ImageEnView1.Proc.RedoCount - 1 - idx, Src, iOp );
- TImageEnView: removed unused property DoubleBuffer
- Changed: interface of TIEVirtualBitmapProvider.Render method
- Removed: ABitmapScanline parameter from TImageEnDBView.PaintToEx, TImageEnDBVect.PaintToEx, TImageEnVect.PaintToEx, TIEBitmap.RenderToTIEBitmap, TIEBitmap.RenderToTBitmap, TImageEnView.PaintToEx
- Changed: Installation folder now defaults to "Common App Data"
ImageEn 6.2.2 (8 February 2016)
New Features
- Added: New algorithm for TImageEnProc.RotateAndCrop
- Added: Now supports loading of Dicom Sequence lists (meta-data)
- Added: TImageEnFolderMView can now display files in sub-folders
- Added: TIEBitmap and TIEMultiBitmap Modified property
- Added: TImageEnViewSave action now only enabled on image change
- Added: Improved text layout with TImageEnMView iemsFlatAndWide style
- Added: New TImageEnMView layout style: iemsColumns
- Added: TImageEnMView.SetStyleEx to automatically set styling to one of five common layouts
- Added: New Actions: TImageEnMViewStyleShowColumns, TImageEnMViewStyleShowLargeThumbs, TImageEnMViewStyleShowFileList, TImageEnMViewShowColumn
- Added: TImageEnMView can now use all thumbnails of Windows Explorer for extra speed and persistent caching
- Added: Column headers in TImageEnFolderMView can be clicked to change sorting
- Added: Improvements to Russian and Polish translations
- Added: Second MouseWheelParams property for TImageEnMView to handle Ctrl + Wheel
- Added: New mouse wheel action to cycle through TImageEnMView file view layouts
- Added: Can now overlay a TImageEnView with guide lines to aid manual rotation
- Added: TIEMultiBitmap.IndexOf() and TIEMultiBitmap.RemoveDuplicates
- Added: Improved video format selection in TIEDirectShow (see DirectShow3 example)
- Added: Supported Black/White TIEBitmap properties for RGB alpha channel images
- Added: Improved rendering speed when a rotated layer is displayed
- Added: Installer now digitally signed with SHA256 certificate
Bug Fixes
- Fixed: DelayZoomFilter does not work when moving layers in some instances
- Fixed: May get exception when displaying I/O preview for TImageEnMView
- Fixed: Colors may be affected when saving to JPEG under IELIB
- Fixed: Issues saving 16bit PNG images
- Fixed: A/V in some rare situations when loading PSD file
- Fixed: IEBitmap.LoadFromResource may fail with some image formats
- Fixed: TImageEnFolderMView.OnFolderChanged may not occur in some situations
- Fixed: Reading TImageEnMView.ThumbWidth/ThumbHeight gave a different value than setting ThumbWidth/ThumbHeight (if zoom is in use)
- Fixed: Icons may appear too large if thumbnails are set to small size
- Fixed: TImageEnIO.OnFinishWork not called when failing on unknown formats
- Fixed: In some rare situations the correct icon may not be displayed in TImageEnMView
- Fixed: Aborting may not be true when TImageEnIO.ParamsFromFile fails
- Fixed: Progress bar does not halt in load dialog if select RAW file and DLL is unavailable
- Fixed: Loaded raw image is darker when NativePixelFormat = true
- Fixed: Corrupted image loading gray scale TIFF with alpha channel
- Fixed: Installer may not recognize installation of "Starter" editions
Changes to Classes
- Added: TImageEnMView.IOOptionsEx to allow loading by file extension
- Changed: TImageEnMView.RemoveCorrupted is now available via TImageEnMView.IOOptionsEx
- Changed: TImageEnMView.LoadFromFileOnDemand now analyzes the file content to determine the format
- Added: TIOParams.DICOM_WindowCenter and TIOParams.DICOM_WindowWidth
- Removed: TImageEnFolderMView.DetectFileFormat replaced by TImageEnView.IOOptionsEx
- Changed: Moved TImageEnFolderMView.ShowThumbnailHint to TImageEnMView
- Changed: Moved TImageEnFolderMView.FilenameToIndex to TImageEnMView
- Changed: Moved TImageEnFolderMView.ImageFileType to TImageEnMView
- Added: TIEVisionObjectsFinder.setEqualizeHistogram method
- Added: TIEVisionObjectsFinder.setHaarMaxSize and setHaarMinSize methods
- Changed: TImageEnView.DPI properties now just reference TImageEnView.IO.Params.DPI
- Added: TIEBitmap.AssignRect method
- Added: Alternative algorithm for TImageEnProc.RotateAndCrop to better support photo fixing
- Added: TIEMultiBitmap.SaveSnapshot and TIEMultiBitmap.LoadSnapshot methods
- Added: TIEMultiBitmap.ImageDictionary[] property
- Changed: Text labels are vertically aligned in TImageEnVect if using rounded labels
- Added: TIEMultiBitmap.ImageHash[] property
- Added: TIEVideoFormat (TIEDirectShow.VideoFormats) BitmapWidth and BitmapHeight fields
- Added: TIEDirectShow.SetVideoInput, bitRate optional parameter
- Added: TImageEnView.LayersRotateAll/LayersRepositionAll/LayersSizeAll
- Added: TIEBitmap.DetachAlphaChannel method
- Added: TIEBitmap.ReplaceAlphaChannel method
- Changed: TIEBitmap.AlphaChannel is now read-only
- Added: TImageEnFolderMView.OnDropFiles
- Removed: TImageEnProc.UndoPeekAt and TImageEnProc.RedoPeekAt. See TImageEnProc.UndoType/RedoType
- Removed: TImageEnProc.SaveUndoCaptioned and TImageEnProc.SaveRedoCaptioned have been deprecated in favor of overloaded TImageEnProc.SaveUndo/SaveRedo
- Added: Undo and Redo actions can now show caption describing type of undo/redo
Changes to Method Parameters
- Changed: TIEBitmap.Read() and TIEMultiBitmap.Read() now have a bCheckUnknown parameter
- Changed: New parameters for TImageEnProc.Undo/UndoAt/Redo/RedoAt
Compatibility Issues
- Now raises exception if try to call ieaddextioplugin('dcrawlib.dll');
- TImageEnMView.ThumbWidth and TImageEnMView.ThumbHeight no longer take zoom into account when read. See TImageEnMView.ThumbSizeInfo instead
- TImageEnMView.UpperGap and TImageEnMView.BottomGap no longer include space for text (which is handled internally) so layout may change
- Rather than ImageEnMView1.RemoveCorrupted := True; Use ImageEnMView1.IOOptionsEx := ImageEnMView1.IOOptionsEx + [ ieixRemoveCorrupted ];
- Rather than TImageEnFolderMView.DetectFileFormat. Use TImageEnView.IOOptionsEx := ImageEnMView1.IOOptionsEx + [ ieixLoadOnlyByFileExt ];
- Rather than TImageEnView.DisplayGrid use TImageEnView.DisplayGridKind
- Parameters have changed for TIEMultiBitmap.OnChanged
- TImageEnProc.UndoPeekAt has been removed. Code such as ImageEnView1.Proc.UndoPeekAt( idx ) should be replaced with ImageEnView1.Proc.UndoType( ImageEnView1.Proc.UndoCount - 1 - idx );
- TImageEnProc.RedoPeekAt has been removed. Code such as ImageEnView1.Proc.RedoPeekAt( idx ) should be replaced with ImageEnView1.Proc.RedoType( ImageEnView1.Proc.RedoCount - 1 - idx );
ImageEn 6.2.1 (16 October 2015)
New Features
- Added: TImageEnView.LayerOptions to configure behavior of layers, such as auto-selecting a layer's mask
- Added: TImageEnView.LayersMove now supports movement of all selected layers
- Added: When copying from a DIB the DPI is returned if IEBitmap.ParamsEnabled = True
- Added: When copying to a DIB the Params.DPI is used if IEBitmap.ParamsEnabled = True
- Added: TImageEnProc.TextOut and TIEBitmap.MergeWithAlpha support all pixel formats
- Added: Blurred Image background style for TImageEnView (like on YouTube when displaying portrait videos)
- Added: Zoom actions are checked if they match the current view
Bug Fixes
- Fixed: DelayZoomFilter does not work when moving layers
- Fixed: Setting AlphaEdgeFeathering may alter layer bitmap
- Fixed: TIOParams.RAW_GetExifThumbnail has no effect
- Fixed: TImageEnMView and TOpenImageEnDialog do not loading
- Fixed: There will be no remaining pixels with 255 alpha after setting feathering
- Fixed: When saving layer objects may move
- Fixed: When loading a legacy IEV file the group index will be inadvertently set
- Fixed: TImageEnProc.TextOut can only handle 24 and 32bit images
- Fixed: Installer may detect delphi versions that no longer exist (if not uninstalled correctly)
- Fixed: Copes better with twain devices that handle ICAP_BITDEPTH incorrectly
- Fixed: Acquisition of multiple images may fail via Twain if TImageEnMView is re-attached to a TImageEnMIO
- Fixed: Threading bug when loading RAW images in IELib
- Fixed: Potential error due to selection misalignment when using TImageEnMView.RemoveBlankPages
- Fixed: Improper initialization of TIEBitmap if IEINCLUDEDEPRECATEDMETHODS is undefined
Changes to Classes
- Added: TImageEnView.LayersAlign
- Added: TImageEnVect.AlignObjects
- Added: TIEAcquireParams.IsPixelTypeSupported
Changes to Method Parameters
- None
Compatibility Issues
- TImageEnView.LayersAllowMultiSelect is now an option of TImageEnView.LayerOptions
- TImageEnView.LayersAutoUndo is now an option of TImageEnView.LayerOptions. Also it is enabled by default if TImageEnView.Proc.AutoUndo is true
ImageEn 6.2.0 (11 September 2015)
New Features
- Added: Can now specify a custom background for ImageEn dialogs
- Added: New EXIF tags: CameraOwnerName, BodySerialNumber, LensMake, LensModel, LensSerialNumber, Gamma, SubjectArea, SubjectLocation
- Added: New edge detection algorithm in TIEVisionImage.canny (IEVision)
- Added: iexMetaHelpers now includes methods and consts for XMP metadata access
- Added: Line and segments detection in TIEVisionImage.houghLines and TIEVisionImage.houghLinesP (IEVision)
- Added: New blur algorithm in TIEVisionImage.blur (IEVision)
- Added: Panorama stitching in TIEVisionStitcher class (IEVision)
- Added: Image denoising using Non-local Means Denoising algorithm TIEVisionImage.fastNlMeansDenoisingColored (IEVision)
- Added: TIEMultiBitmap for non-visual manipulation of multi-page images
- Added: TIEBitmap can now store its own I/O params
- Added: TImageEnMIO can now read params from files and streams
- Added: TIOParams can now read params from files and streams
- Added: New thresholding algorithms in TIEVisionImage.threshold and TIEVisionImage.adaptiveThreshold (IEVision)
- Added: New erode/dilate algorithms in TIEVisionImage.erode and TIEVisionImage.dilate (IEVision)
- Added: ImageEn now automatically adds standard units to uses: hyieutils, iexBitmaps, hyiedefs, iesettings
- Added: TImageEnMIO can load all cursors in a cursor resource
- Added: Automatically loads JPEG at min size if GetExifThumbnail is set, but no EXIF thumbnail is available
- Added: Secondary color can be specified for chessboard background style
- Added: Background subtractor in TIEVisionBackgroundSubtractor class (IEVision)
- Added: Support for EMF+ metafiles
- Added: Code insight now available without setting source path
- Added: Face recognizer in TIEVisionFaceRecognizer class (IEVision)
- Added: new IEVision detectable objects IEVC_CASCADE_SMILE, IEVC_FRONTAL_CAT_FACE, IEVC_FRONTAL_CAT_FACE_EXT, IEVC_LICENSE_PLATE_RUS, IEVC_RUSSIAN_PLATE_NUMBER
- Added: Default text can be specified for all images in a TImageEnMView. Text changes appear without refreshing records
- Added: TIEDBBitmap to create a data-aware instance of TImageEnView and read/write directly to blob fields
- Added: TIEDBMultiBitmap to create a data-aware instance of TImageEnMView
- Added: Multiple selection and grouping of TImageEnView layers now supported
- Added: Grouping of TImageEnVect objects now supported
Bug Fixes
- Fixed: Undrawn area of wallpaper if non-default backgrounds are used for Print Preview dialog
- Fixed: Wrong bitmap orientation using IEVision and TImageEnProc.Undo
- Fixed: Memory leak using TIEBitmap.AssignIEVisionImage with LegacyBitmap = true
- Fixed: TImageEnView.ChangeResolution supports layers
- Fixed: Odd Distortion in Dicom image (when compression is lossless jpeg with predictor)
- Fixed: Custom drawn comboboxes do not cope with Windows font scaling
- Fixed: Items in TImageEnMView without filenames may show a folder icon
- Fixed: Added more extensions for embedded RAW or ielib.dll
- Fixed: Embedded RAW of IELib and IEVision not used by default
- Fixed: FindFileFormat() returns ORF files as ioTIFF
- Fixed: Dragging TRulerBox all the way to the margins stops processing
- Fixed: TImageEnVect.OnBeforeVectorialChanged is not called
- Fixed: Invalid assign from TImageEnView to TImageEnView if LayersCurrent is not last
- Fixed: Rotated TImageEnVect iekTEXT issues
- Fixed: TImageEnMView may load thumbnail size images for metafiles or videos even if mode is ietNormal
- Fixed: Print methods not undefined in iexRegistryFunctions
Changes to Classes
- Added: TImageEnView.ApplyBitmapToSelection
- Added: TIEImageEnAnnot.ObjectsCount
- Added: Added optimistic checking to FindFileFormat
- Added: TImageEnMIO.LoadFromFileCur/LoadFromStreamCur
- Added: TImageEnMView.OnImageAdded and OnImageLoaded events
- Added: TImageEnMView.EnsureImageLoaded to force loading of an image
- Added: TImageEnProc.Merge overloads
- Changed: TImageEnProc.MergeIEBitmap now deprecated (use TImageEnProc.Merge instead)
- Changed: TImageEnIO.LoadFromFileFormat and TImageEnMIO.LoadFromFileFormat now deprecated (use LoadFromFile/Stream instead)
- Changed: TImageEnIO.LoadFromStreamFormat and TImageEnMIO.LoadFromStreamFormat now deprecated (use LoadFromFile/Stream instead)
- Changed: TImageEnView.CopySelectionToIEBitmap now deprecated (use CopySelectionToBitmap instead)
- Changed: TImageEnProc.SelPasteFromClipStretch now deprecated (use SelPasteFromClip instead)
- Added: TIEImageEnGlobalSettings.GridMajorStep
- Changed: TImageEnMView.SetIEBitmap now deprecated (use TImageEnMView.SetImage)
- Changed: TOpenImageEnDialog no longer defaults to filter of filename, unless FilterDefault is set
- Added: New actions: TImageEnViewLayersDeselectAll, TImageEnViewLayersGroup, TImageEnViewLayersSelectAll, TImageEnViewLayersUngroup, TImageEnViewLayersMerge
- Added: DB Helpers in iexHelperFunctions no longer tied to BDE
- Added: TImageEnView.LayersSaveMergedTo
Changes to Method Parameters
- Added: AlphaCompositing parameter to TImageEnView.LayersMergeAll method
- Added: TImageEnProc Paste methods have a boolean result
- Added: StretchSmall parameter to TImageEnView.Fit
Compatibility Issues
- Changed: iegDialogsBackground replaced by IEGlobalSettings().DialogBackgroundStyle
- Changed: Many classes such as TIEBitmap have moved from hyieutils to iexBitmaps unit
- Changed: Renamed TIOParamsVals class to TIOParams
- Changed: ProxyAddress, ProxyPassword and ProxyUser of TImageEnIO and TImageEnMIO are now properties of IEGlobalSettings() so they apply to TIEBitmap and TIEMultiBitmap too
- Changed: TIEBitmap and TIOParamsVals class are now located in the iexBitmaps unit. You will need to add iexBitmaps to your uses clause
- Changed: Many global methods have moved from the imageenio to the iexBitmaps unit
- Removed: No longer supports RAW camera format internally or uses dcrawlib.dll. ImageEn now just needs ielib.dll to load RAW camera files (don't need to initialize, just put in same folder as your EXE)
- Removed: No longer uses ioRawDLLPlugIn, use ioRaw instead
- Removed: IEVision detectable objects: IEVC_MCS_EYE_PAIR_BIG, IEVC_MCS_EYE_PAIR_SMALL, IEVC_MCS_LEFT_EYE, IEVC_MCS_MOUTH, IEVC_MCS_NOSE, IEVC_MCS_RIGHT_EYE, IEVC_MCS_UPPER_BODY, IEVC_MCS_LEFT_EAR, IEVC_MCS_RIGHT_EAR
- Removed: TImageEnFolderMView.ResetAllTextToDefault. No longer needed when setting Default*Text. Otherwise use With IEMView do SetAllText( DefaultTopText, DefaultInfoText, DefaultBottomText );
- Changed: The default text for TImageEnFolderMView is no longer assigned to each frame but is handled on display
ImageEn 6.0.1 (6 May 2015)
New Features
- Added: Test version of Right-to-Left support for TImageEnMView
- Added: Improved GuessChromaKeyColor to sample more image areas
- Added: GuessChromaKeyColor now works on selections too, and can guess the Tolerance
- Added: iesoAutoTerminatePolySelect to automatic end poly selections
- Added: Some improvements to Dutch translations
- Added: Alpha channel is automatically merged (and restored) saving BMP and jpeg file formats
- Added: TImageEnMView when StoreType is ietThumb or ietFastThumb removes some IO parameters
- Added: Delphi XE8 and C++Builder XE8 compatibility
- Added: supported TImageEnMView panning with touch drag and drop
- Added: Pan Zoom effects are now much smoother due to frame blending
- Added: Cooler styling for THistogram
- Added: iexHelperDialog now uses Wic loading for extra speed
- Added: Poster printing (output of a single image to multiple pages)
- Added: Show Windows Print Wizard method
- Added: Excludes untranslated localization strings to reduce exe size
Bug Fixes
- Fixed: TImageEnVectPromptToSave does not set IO.Filename
- Fixed: Loaded low quality images for PCD with ImageMagick
- Fixed: Palette may be messed up if you access VCLBitmap when LegacyBitmap = False
- Fixed: Error with EdgeDetect_ShenCastan WindowSize > 51
- Fixed: TImageEnView.Proc.RemoveNoise() causes AV on 64bit
- Fixed: Floating point error in TImageEnProc.CalcStdDev and WhiteBalance_GrayWorld
- Fixed: Loading jpeg2000 encoded DICOMs with BitsStored less than BitsAllocated may produce incorrect results
- Fixed: TIEImageEnAnnot.LoadFromStream handles null data streams
- Fixed: Some cursors defined incorrectly
- Fixed: Unable to disable AdjustmentsMask
- Fixed: Undo does not reset PixelFormat after RemoveNoise
- Fixed: WIC loading of alpha PNG gives odd result
- Fixed: GetThumbnail does not return thumbnails with some Panasonic RAW images
Changes to Classes
- Added: TImageEnMView.BiDiMode
- Added: now TImageEnView can save/load layers rotation info
- Added: TImageEnView.ClearAll
- Added: TIEImageEnGlobalSettings.ImageProcMaxThreads and ImageProcThreadsMinSize to control use of threads in some image processing operations
- Added: TIEBitmap.SaveState and TIEBitmap.RestoreState methods
- Added: TIEGestureOptions.PanWithSingleFingerHorizontally and PanWithSingleFingerVertically
Changes to Method Parameters
- Added: SelectMode to TImageEnMView.InsertImageEx
- Added: Smoothing to all Pan Zoom Transition methods
- Added: TIEDicomTags.SetTag* methods include ReplaceIfExist parameter
Compatibility Issues
- None
ImageEn 6.0.0 (11 Mar 2015)
New Features
- Added: Can now perform ChromaKey removal for green screen image applications
- Added: Now includes a Portable Devices (WPD) class for accessing content on connected devices
- Added: DCIM acquisition now uses Portable Devices API (WPD) so it can retrieve from all connected devices
- Added: Now Nikon D5200 maker note is supported
- Added: Included MICR support for IEVision
- Added: Better icon shown for missing files in TImageEnMView
- Added: Graphic is displayed for unknown file types in TImageEnMView if shell icons are disabled
- Added: TImageEnMView can now display Wang and ImageEn annotations
- Added: TImageEnFolderMView can navigate to drives and desktop
- Added: Now it is possible to specify a selection mask for TIEBitmap.BlackValue, TIEBitmap.WhiteValue, TIEBitmap.ChannelOffset, TIEBitmap.Contrast and layers blending operations
- Added: Now TImageEnProc.GetHistogram can calculate Hue histogram
- Added: Now THistogramBox can show Hue histogram
- Added: Now supports feathering of edges on the alpha channel
- Added: Can now select values and ranges in THistogramBox
- Added: reading EXIF from some RWL and RW2 camera raw formats
- Added: Consts for all embedded ImageEn cursors
- Added: DoPreviews dialogs inherit mouse wheel parameters from calling component
- Added: DICOM, now it is possible to remove tag descriptions in order to reduce executable size (300K)
- Added: DICOM, now "Softcopy VOI LUT Sequence" is supported for per-frame WindowWidth and WindowCenter tags
- Added: Now TImageEnView navigator can store different sized image
- Added: Proc Previews dialog now supports AutoImageEnhance1 and AutoImageEnhance3
- Added: Proc Previews dialog now supports cropping
- Added: New ImageEnView actions: TImageEnViewDoPreviews, TImageEnMViewDoPreviews, TImageEnViewDoEditPreviews
- Added: New ImageEnMView actions: TImageEnMViewStyleShowThumbs, TImageEnMViewStyleShowDetails, TImageEnMViewDoEditPreviews
- Added: New ImageEnMView sorting actions: TImageEnMViewSortByFilename, TImageEnMViewSortByFileType, TImageEnMViewSortByFileSize, TImageEnMViewSortByCreateDate, TImageEnMViewSortByEditDate, TImageEnMViewSortByImageSize, TImageEnMViewSortByOther, TImageEnMViewSortAscending, TImageEnMViewSortDescending
- Added: New shortcut methods for loading and saving to streams
- Added: Lower resource requirements for TImageEnMView
- Added: New thumbnail layout for TImageEnMView that displays text to the right of the thumbnail
- Added: Save Parameters dialog is now resizable and has improved layout
- Added: Paper size for PDF files can be set to Auto to output at image size
- Added: Progress shown during TImageEnMView.FillFromDirectory if not LoadOnDemand
- Added: Now using TIEBitmap.CreateROICanvas it is possible to do alpha compositing
Bug Fixes
- Fixed: Some conditional defines were not implemented fully
- Fixed: Multiple calls to ImageEnMView.SelectImage may add duplicates to MultiSelectedImagesList
- Fixed: Exception calling TImageEnVect.CopyObjectsToBack with missing TImageEnVect parent
- Fixed: error compiling projects with BCB 2007
- Fixed: Error setting EXIF date
- Fixed: JPEG XR (HDPhoto) compression is not working
- Fixed: Resampling\Resizing 1bpp image with display set as 16 bit color mode may generate corrupted images
- Fixed: TImageEnMView.MoveSelectedImagesTo corrupts I/O parameters
- Fixed: Question marks not shown for missing files
- Fixed: Some issues getting slipply maps
- Fixed: TImageEnMView, mixing LoadFromFile and LoadFromFileOnDemand may generate messy TIFF frames
- Fixed: TImageEnMView, reduced per frame memory occupation
- Fixed: Inconsistent error messages when ielib DLL cannot be found
- Fixed: memory leak accessing TImageEnMView.Proc inside TForm.FormCreate event
- Fixed: May continue auto-scrolling if dragging is aborted
- Fixed: Minor issue with EXIF data formatting
- Fixed: TIFF-CCITT decoder may run infinite loop reading corrupted files
- Fixed: Issue with size selection in print dialogs
- Fixed: TIFF-CCITT (1D) encoder may corrupt image when TIFF_FillOrder = 2
- Fixed: No longer use Application.ActiveFormHandle which may cause ImageEn controls to lose Window messages
- Fixed: PSD, writing black/white images may produce negative image or corrupted file
- Fixed: TImageEnMView may scroll when dragging even if move off control
- Fixed: Save dialog when attached to a TImageEnMIO offers non multi-frame formats
- Fixed: Filenames not displayed if fill TImageEnMView from folder with LoadOnDemand=False
- Fixed: TIFF loading fails if TIFF_GetTile is set for TIFF without tiles
- Fixed: Stretching of small images may not work with TImageEnMView
- Fixed: ielMoving may be called before layer is moved in TImageEnView
- Fixed: ielMoved may be called even if layer has not moved in TImageEnView
- Fixed: LayersCreateFromText may create layers of invalid size
- Fixed: When outputting antialiased text using TextOut may appear with jaggies
Changes to Classes
- Some properties of TIEDcimAcquire class have changed
- Changed: Replaced TImageEnFolderMView.OnFolderChange with OnFolderChanging and OnFolderChanged
- Added: TImageEnMView.AppendImage and InsertImage can now accept a filename with a frame index, e.g. MyVideo.AVI::50
- Added: TImageEnIO.OnAcquireBitmap, TImageEnMIO.OnAcquireBitmap added DpiX and DpiY parameters
- Added: TIEBitmap.LoadFromResource methods
- Added: TIEBitmap.AdjustmentsMask property
- Added: THistogramBox, added UpdateFromBitmap and UpdateFromHistogram methods
- Added: TIEBitmap.FeatherAlphaEdges
- Added: TImageEnProc.FeatherAlphaEdges
- Added: TIELayers.AlphaEdgeFeathering
- Added: THistogramBox.MouseInteract, MinSelected, MaxSelected and SelectionColor
- Added: TIEBitmap.AssignIEVisionImage method
- Added: TIENavigatorOptions, new options ienoDontAssignNavBitmap, ienoDontPaintSrcBitmap, ienoDontRefreshSrcIfNavNotFocused
- Added: iesoShowCenter to TImageEnView.SelectionOptions
- Added: TImageEnProc.RemoveChromaKey and TImageEnProc.GuessChromaKeyColor methods
- Removed: TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText.TruncSide
- Added: TImageEnMView.OnGetTextEx
- Removed: TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText.Font
- Removed: TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText.BackgroundStyle and Background
- Changed: TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText are no longer records just a widestring
- Removed: TIEMText
- Added: iemsFlatAndWide to TImageEnMView.Style
- Added: TImageEnMView.TextBlockWidth
- Removed: THistogramBox.HistogramXPos property
- Added: THistogramBox.HistogramAbsXPos property
Changes to Method Parameters
- Added: bUseDisplayOrder parameter to TImageEnMView.MoveSelectedImagesTo
Compatibility Issues
- Some properties of TIEDcimAcquire class have changed
- Replaced TImageEnFolderMView.OnFolderChange with OnFolderChanging and OnFolderChanged
- The parameters of TIEBitmap.Read have changed for the stream overload. Code as follows: MyBmp.Read(aStream, aIOParams); should change to MyBmp.Read(aStream, ioUnknown, aIOParams);
- ppeColorAdjust and ppeEffects are now deprecated, use ppeColorAdjustments, ppeEditingFunctions, ppeSpecialEffects instead
- Removed iexHelperFunctions.GetFileDetails, use IEGetFileDetails instead
- Instead of TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText.TruncSide, use TImageEnMView.TruncSide
- Instead of TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText.Font, use TImageEnMView.TopTextFont/TImageEnMView.InfoTextFont/TImageEnMView.BottomTextFont. If you need custom fonts for certain frames use TImageEnMView.OnGetTextEx
- Instead of TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText.BackgroundStyle and Background, use TImageEnMView.TextBackgroundStyle and TImageEnMView.TextBackgroundColor. If you need custom fonts for certain frames use TImageEnMView.OnGetTextEx
- TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText.Caption, just set TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText which is now a widestring
- AdjustRectToAspectRatio replaced by IEAdjustRectToAspectRatio, but note change of parameter order
- TIEBitmap.RenderToTIEBitmapEx now includes a bEnableAlpha parameter (set to True to preserve existing functionality)
- Instead of TImageEnMView.EnableResamplingOnMinor, use TImageEnMView.ThumbnailOptionsEx (ietxStretchSmallImages)
ImageEn 5.2.0 (22 Oct 2014)
New Features
- Media Foundation video capture: now can automatically rotate images
- Added: Experimental version of VCL Theme support
- Added: GetExifThumbnail property to TOpenImageEnImageDialog to disable thumbnail retrieval via EXIF
- Added: Now TImageEnProc.Random supports black/white images
- Added: OnAddImage event for TImageEnFolderMView so addition of certain files can be skipped
- Added: Glyphs in dialogs can be disabled using IEGlobalSettings().UseButtonGlyphsInDialogs
- Added: Icon caching in TImageEnMView for better performance
- Added: TImageEnFolderMView can now display content of multiple folders
- Added: AppendImage and InsertImage functions of TImageEnView support remote images (HTTP and FTP)
- Added: Checkboxes for thumbnails can now be displayed only when hovering over the mouse
- Added: now TIFF reader supports RGB48 tiled images
- Added: TIFF, now CMYK writing supports alpha channel
- Added: Auto calculates font size for ruler of TImageEnVect
- Added: TImageEnMView supports gestures
- Improved DICOM reading speed and memory requirements
- Added: now DICOM decoder can read multiple sequence items (subtags)
- Now Twain selection dialog is modal (cannot lose focus)
- Added: TImageEnProc.ConvertTo can reduce number of colors using Floyd-Steinberg dithering algorithm
- Added: now calling TImageEnIO.Acquire or TImageEnMIO.Acquire with ShowSettingsOnly = True, will return True if user presses Ok or Save
- Added: now LayersMerge and LayersMergeTo supports Cropping
- Added: now TIFF reader supports RGB color-mapped images with PlanarConfiguration = 2
- Added: Replaced EXIF helper unit, iexEXIFRoutines.pas and IPTC helper unit, iexIPTCRoutines.pas, with much improved iexMetaHelpers.pas
- Added: now TImageEnDBVect can save annotations inside TIFFs without stream headers (readable by other apps)
- Added: optimized CMYK to RGB conversion speed
- Added: Now supports the most recent official list of nearly 5,000 Dicom tags
- Added: now TIEDirectShow.Run() returns a result code (success, generic error, device busy)
- Added: Mouse wheel effect can now be controlled for TImageEnMView using MouseWheelParams property
- Added: TImageEnProc.ConvertTo overload with several dithering types and palette options
- Added: four resampling filters from Windows WIC, NearestNeighbor, Linear, Cubic and Fant
- Added: IO and MIO LoadFromFile methods now include parameter to support unknown formats
- Added: TImageEnMView provides better visual indication when disabled
- Added: Database components even in 64bit
- Added: XE7 Support
Bug Fixes
- Fixed: TImageEnVect, highlighted-box is not painted in CopyObjectsToBack
- Fixed: New objects in TImageEnVect may not be initialized with valid values
- Fixed: TImageEnMView.OnDestroyImage may not be called
- Fixed: memory leak in TImageEnMView loading not valid 256x256 icons
- Fixed: TImageEnVect.CopyObjectsToBack cuts rotated text
- Fixed: error loading some ZIP encoded TIFFs
- Fixed: Nested callback functions not working in 64bit
- Fixed: TImageEnVect, when ObjTextAutoSize = True, iekTEXT could not be displayed correctly
- Added: Some integers casts were not valid for 64bit
- Fixed: corruption of EXIF Maker Notes
- Fixed: DICOM reader can correctly detect root images
- Fixed: DICOM/JPEG2000 9..15 bit gray scale images were not read correctly
Changes to Classes
- Added: TIEMediaFoundationSourceReader.VideoProcessor property
- Added: TIEMediaFoundationVideoProcessor class
- Added: TIEMediaFoundationSourceReader.SamplesBufferSize property
- Fixed: Resampling using Maintain Aspect Ratio may create invalid sized image
- Added: TImageEnProc.SelCutToClip, CutAlpha parameter
- Added: New parameter for OnPlayFrame to allow skipping play of certain frames
- Added: TImageEnMView.OnImageEnGesture event
- Added: TImageEnMView.Gestures property
- Added: TIPDialogParams supports Horz and Vert flipping
- Added: TImageEnMView loading multi files on demand supports unknown extensions
- Added: TIOParamsVals.DICOM_RescaleIntercept property
- Added: TIOParamsVals.DICOM_RescaleSlope property
- Added: TIEImageEnGlobalSettings.ReleaseTwainResources property
- Added: TIEImageEnGlobalSettings.ModelessSelectTwainSource property
- Added: TIEImageEnGlobalSettings.IsInsideTwain property
- Added: TIEDitherMethod ieDithering value
- Added: IEExtToFileFormat now supports WMV and MPEG files
- Added: TImageEnView.LayersMerge overload (to merge a list of layers)
- Added: TIELayer.GetLayerMask method
- Added: TIELayer.GetIndex method
- Added: TImageEnMView.MultiSelectedImagesList property
- Added: TIEBitmap.DrawToCanvasWithAlpha method
- Changed: TImageEnView.Assign will copy all layers and vect objects
- Changed: TImageEnView.Assign also supports TIEBitmap as a source
- Added: TImageEnMView.SelectedFontColor
- Removed: TImageEnMView.HighlightColor
- Removed: TImageEnMView.HighlightTextColor
- Added: All TImageEnMIO.SaveTo* methods include OnlySelected parameter
- Added: Helper method, GetFileExtensionsOfType
- Added: ifTIFFwAnnot to TDataFieldImageFormat
- Added: now TImageEnView.Assign accepts TIEBitmap as parameter
- Added: TImageEnProc.CheckLegacyBitmap method
- Added: TResampleFilter, new resampling filters rfWICNearestNeighbor, rfWICLinear, rfWICCubic, rfWICFant
- Added: TImageEnView.VisibleBitmapRect to return the visible area of the image
- Added: TIEImageEnGestureEvent.Handled parameter
- Removed: TImageEnMView.SelectionStyle
Changes to Method Parameters
- TIEDICOMTags.AddTag and TIEDICOMTags.GetTagChilds
Compatibility Issues
- Checkbox properties of TImageEnMView have changed. See Checkboxes and CheckboxPos
- Parameters have changed for OnPlayFrame
- Now when calling TImageEnView.Assign and the source is a TImageEnView it will copy all layers. If it is a TImageEnVect it will also copy all objects
- TImageEnMView.HighlightColor has been removed, use TImageEnMView.ThumbnailsBackgroundSelected (Note: Default of HighlightColor was clHighlight, whereas ThumbnailsBackgroundSelected defaults to clBtnFace)
- TImageEnMView.HighlightTextColor has been removed, use TImageEnMView.SelectedFontColor (Note: Default of HighlightColor was clHighlightText, whereas ThumbnailsBackgroundSelected defaults to clNone)
- Applications calling TIEDICOMTags.AddTag and TIEDICOMTags.GetTagChilds must work with TObjectList as child object
- EXIF helper unit, iexEXIFRoutines.pas, and IPTC helper unit, iexIPTCRoutines.pas, are no longer included, by default. Either use the new iexMetaHelpers.pas or the access the old units in \Source\Legacy\
- Dicom helper unit, iexDicomRoutines is no longer included, by default. Either use the updated array and relevant functions in ieDicom or the access the old units in \Source\Legacy\
- The TImageEnMView.DisplayImageRect method has been removed, set the TImageEnView.VisibleBitmapRect property instead
- TImageEnMView.SelectionStyle has been removed. Use ThumbnailsBackgroundSelected instead
- No longer use integers to specify channels for TImageEnProc.ShiftChannel, use iecRed for 2, iecGreen for 1 and iecBlue for 0
ImageEn 5.1.1 (12 May 2014)
New Features
- Added: support for Delphi/C++Builder XE6
- Added: Can specify background color for irregular rotations in Proc.Previews dialog
- PSD/PSB: now OnProgress works more smoothly reading PSD/PSB
- Added: TImageEnProc.Previews now allows the addition of a soft shadow
Bug Fixes
- Fixed: infinite/long time loading reading TIFF with corrupted string tag size
- Fixed: bug writing uncompressed dicom images
- Fixed: memory leak and bug using TImageEnVect.ObjName property
- Fixed: AV loading parameters or counting TIFF frames when there is a ICC color profile embedded
- Fixed: memory leak loading some PSD/PSB and LegacyBitmap = true
- Fixed: cannot read some jpeg compressed DICOM images
Changes to Classes
- None
Changes to Method Parameters
- Added: TImageEnVect.AddNewObject allows resetting of properties
- Added: Progress is now updated during TImageEnProc.SkewDetectionFine
Compatibility Issues
- None
ImageEn 5.1.0 (10 Apr 2014)
New Features
- Now ImageEn can load base64 encoded files
- TIESlippyMap: now horizontal borders are filled with the actual map content
- TIESlippyMap: now Longitude and Latitude point positions are limited to -180..180 and -85..85 degrees
- TIESlippyMap: now it is possibile to fill upper and bottom borders with a color
- Font styling can now be specified for TIEAnimation
- TImageEnVect.OnBeforeDrawObject event added destCanvas parameter
- TImageEnVect.OnAfterDrawObject event added destCanvas parameter
- TImageEnMView.OnImageIDRequest event added Index parameter
- TImageEnMView.OnImageIDRequestEx event added Index parameter
- TImageEnView.RunTransition now allows specification of in-built pan-zoom effects
- TImageEnIO.CaptureFromScreen now supports iecsPrimary
- Added: support for Microsoft Media Foundation (webcam/file/URL capture only)
- Changed: "All Common Graphic Files" filter of TOpenImageEnDialog now shows all supported ImageEn formats
- Added: New helper for TIEAcquireParams to load/save all settings to registry or ini file
Bug Fixes
- Fixed: SaveToText with base64 doesn't write last bytes
- Fixed: loading EXIF incorrectly set also GPS fields
- Fixed: IO.Filename and FileType not filled if use ImageEnVect1.LoadFromFileAll or ImageEnVect1.LoadFromFileIEV
- Fixed: exception calling CopyObjectsToBack() with ObjSoftShadow enabled
- Fixed: bug in TImageEnVect drawing objects with shadow
- Fixed: bug reading EXIF tags
- Fixed: bug and memory leak reading/writing TIELayer.UserData
- Fixed: bug in TImageEnVect drawing objects with alpha channel
- Fixed: AV reading some (corrupted) PSD files
- Fixed: AV reading some CCITT encoded TIFFs
- Fixed: OnBeforeDrawObject/OnAfterDrawObject problem inside CopyObjectsToBack
- Fixed: TImageEnView.OnAcquireBitmap may not be called
- Fixed: Move cursor shows for objects in TImageEnVect even if they are not moveable
- Fixed: May get floating point error when accessing AcquireParams.AcquireFrame* properties
- Fixed: TImageEnView copes with animated GIF files without explicit delay intervals
Changes to Classes
- Added: TIEBitmap.IsAlpha property
- Added TImageEnIO.LoadFromText method
- Added: TIESlippyMap.MissingTileColor property
- Added: TIOParamsVals.PS_PaperSize and TIOParamsVals.PDF_PaperSize
- Added: New TImageEnIO helper functions: CreatePDFFromFileList and CreatePSFromFileList
- Added: Alt key now forces aspect ratio when inserting objects with TImageEnVect
- Added: MIO.Aborting can be set to discontinue loading of TImageEnMView.LoadFromFileOnDemand
- Changed: Default interval for animations that do not have an interval explicity specified is now 100ms, in line with most browsers
- Added: iemmf unit
- Added: TIEMediaFoundationSourceReader class
- Added: TImageEnView.OnMediaFoundationNotify event
- Added: TImageEnIO.MediaFoundationSourceReader property
- Added: TIEBitmap.DrawToTIEBitmap
- Added: OnAcquireBitmap event to TImageEnView and TImageEnMView
- Changed: PreviewSize is now a published property of TOpenImageEnDialog
- Changed: TOpenImageEnDialog.ShowAVI has been superceded by the published property, ShowFormats
- Added: New helper function, TImageEnIO.LoadFromFileAutoEx
Changes to Method Parameters
- Added TImageEnIO.SaveToText overload (save to stream)
Compatibility Issues
- Because TImageEnVect.OnBeforeDrawObject and TImageEnVect.OnAfterDrawObject have changed parameters, you should remove and reinsert the event handler
- Because TImageEnMView.OnImageIDRequest and TImageEnMView.OnImageIDRequestEx have changed parameters, you should remove and reinsert the event handler
- The file types that appear in the "Common" list of TOpenImageEnDialog file filter have changed
- TOpenImageEnDialog.ShowAVI has been superceded by the published property, ShowFormats
ImageEn 5.0.6 (14 Feb 2014)
New Features
- Now TImageEnProc.GetHistogram can get histogram of 8 and 16 bit gray scale images
- Added: read of 16 bit gray scale BMP as native format
- TIFF: added support for Deflate compressed images with predictor
- Added support for ImageMagick official library (precompiled libraries from http://www.imagemagick.org) and file formats
- Now XMP info are parsed into Dict dictionary
- Added: Equirectangular renderer (to view at 360 the Android-Google Photosphere images)
- Improved EXIF compatibility with Picasa
- Added: If GridWidth=0 with TImageEnMView then the mouse wheel can be used for horizontal scrolling
- Now TImageEnMView.InsertImage/AppendImage fills new images with black
- Added: Selection changes can now be blocked in TImageEnMView
- Added: "Fill Page" option to print images to full page size while cropping edges
- TImageEnVect: added Unicode support for iekTEXT objects (no RTL support, yet), for Unicode IDEs only
- TImageEnVect: added Unicode support for iekMEMO objects (no RTL support, yet), for Unicode IDEs only
- now ImageEn can save native vectorial objects into TIFFs (single-multi page, file or stream)
- now ImageEn can save native vectorial objects into JPEGs (file or stream)
- now ImageEn can render using a color profile (only for CMYK images)
- Added support for reading BigTIFF (>4GB TIFFs)
- Added support PSB format (large Photoshop PSD)
- TIEWia.TransferFormat is filled with the actual used format at the end of image transfert
- TIEWia.SaveTransferBufferAs: now the file may be changed to raw, bmp or jpeg according to the actual image type receved from the device.
Bug Fixes
- TImageEnMView.ImageAtPos supports animation views
- Fixed: infinite loop reading some 16 bit gray scale BMP images
- Fixed: CopyObjectTo causes memory corruption on copying bitmap objects
- Fixed: exception reading TIFF (jpeg-7 compression) and RGB color space
- Fixed: PopupSystemMenu gives A/V with 64bit apps when items clicked
- Fixed: ImageEnMView copes with image files that may not contain images, such as DICOM
- Fixed: cannot load Exif thumbnail
- Fixed: DICOM codec appends Spaces instead of Zeros in UI or OB tags
- Fixed: some Exif-GPS tags (out of Exif standard) cannot be read correctly
- Fixed: bug rotating with bilinear and bicubic filters
- Fixed: TImageEnMView may not print all pages
- Fixed: OnNewObject not called for TImageEnVect when pasting
- Fixed: Thumbnail may not display for TImageEnMView
Changes to Classes
- Added TImageEnProc.GetHistogram overload
- Added Maintain Aspect Ratio parameter to TImageEnVect.SetObjRect
- Added Maintain Aspect Ratio parameter to TImageEnVect.SetObjRect
- Added Dict property
- Added TIEMiscPluginsImageMagick class (ImageMagick wrapper)
- Added: TIEEquirectangularRenderer class
- Changed: Now the TImageEnMView multi-select properties, MultiSelectedImages and <MultiSelectedImagesCount, return valid results even if EnableMultiSelect is not enabled
- TImageEnVect.ObjText[]: changed from AnsiString to WideString
- TImageEnVect.ObjFontName[]: changed from AnsiString to string
- TImageEnVect.GetMemoFormattedString(): changed result from AnsiString to string
- Added TIEImageEnAnnot class
- Added TIOParamsVals.ImageEnAnnot property
- Added: TIEBitmap.ColorProfile property
- Added: TIEICC.InitTransform method
- Added: TIEICC.Transform method overload
- Added: TIEImageEnGlobalSettings.ApplyColorProfileOnRendering property
- Moved TIEColorSpace to hyiedefs unit
- Added TIEICC.CheckTransform overload
- Added TIEICC.Assign_CMYKProfile method
- Added TIELayer.Swap method
- Moved TIELayerMagnification into hyiedefs unit
- Moved TIEMagnifyStyle into hyiedefs unit
- Moved TIEMagnifySource into hyiedefs unit
- Added TIOParamsVals.PSD_LargeDocumentFormat property
- Added TIOParamsVals.PSD_SelectLayer property
- added TIOParamsVals.TIFF_BigTIFF property
- TIETransferFormat: added ietfRawBitmap value
Changes to Method Parameters
- None
Compatibility Issues
- TImageEnVect.SelObjects returns -1 if there are no selected objects
- TImageEnVect.GetObj now returns more specific exceptions
ImageEn 5.0.5 (19 Nov 2013)
New Features
- TImageEnMView now supports Checkboxes
- EXIF_GPSLatitude, EXIF_GPSLongitude, EXIF_GPSAltitude, EXIF_GPSSpeed, EXIF_GPSTrack, EXIF_GPSImgDirection, EXIF_GPSDestLatitude, EXIF_GPSDestLongitude, EXIF_GPSDestBearing and EXIF_GPSDestDistance aren't saved when "Ref" corresponding values are empty
- TImageEnProc.Flip: now UndoCaptions includes flip direction (H or V)
- Optimized TImageEnView.SetSelectedAreaAlpha method
- Added support for native Windows 7 and 8 gestures (pan, zoom, rotate and move) in TImageEnView
- TImageEnVect: now CopyObjectsToBack doesn't require destination bitmap to be TBitmap
- TIEBitmap: now TIEBitmap.Create(TIEBitmap, TRect) overload copies also alpha channel
- TIEBitmap: now CreateROICanvas supports alpha channel
- Support for IEVision bar code reader
- TImageEnFolderMView.LoadSnapshot/SaveSnapshot now support all folder properties
- Added 3D Book Flip and Cube Rotation transition effects
- Added five transition effects that can display text (e.g. a single character or cycle the letters of a word)
- Added six Pacman style transition effects
- Added five six other effects including jigsaw puzzle, random bars and rotational sweeps
- The style of sixty transition effects can now be further modified using IEGlobalSettings().TransitionsDrawAlternative
- Much optimization and improvement of transition code
Bug Fixes
- TImageEnMView: exception loading one frame GIFs
- TImageEnMView: May not get preview when using print preview
- TImageEnView: IsEmpty2 may return false if changed image directly via IEBitmap
- C++Builder: AV on startup C++ application with RunTime packages disabled
- MouseDown cursors, such as as the pan cursor may not appear
- TImageEnVect: AV loading bitmap objects on some circumstances
- No longer get annoying "Cannot Open Clipboard" warning in the debugger (TIEFolderMViewPasteFilesFromClipboard)
- TIEBitmap: bug in Create(TBitmap, TRect) constructor
- Fixed temperamental triangular wipe transition effect
Changes to Classes
- Added: Two new TImageEnMView Actions: TImageEnMViewPromptToRotate and TImageEnMViewPromptToResize
- Added: TImageEnView.Gestures property
- Added: TImageEnView.OnImageEnGesture event
- Added: TImageEnFolderMView.OnCustomSortCompare event to allow custom sorting (SortOrder = iesbCustom)
- Added: Three new IEVision OCR helper methods: IEVisionLanguageCodeToName, IEVisionLanguageNameToCode and IEVisionGetLanguagesInFolder
- Added: iesoDisableNewSelection to TImageEnView.SelectionOptions
Changes to Method Parameters
- removed MergeAlpha parameter from DrawObjectsToBack/CopyObjectToBack/DrawObjectToBack/DrawOneObejctToBack
- TIEDrawObjectEvent: changed type of destination parameter (from TBitmap to TIEBitmap)
Compatibility Issues
- TImageEnMViewDoEffectPreviews no longer offers peRotate and peResize
- removed MergeAlpha parameter from DrawObjectsToBack/CopyObjectToBack/DrawObjectToBack/DrawOneObejctToBack
- TIEDrawObjectEvent: changed type of destination parameter (from TBitmap to TIEBitmap)
- Renamed ieXtraTransitions.pas to iexTransitions.pas
- TIETransitionType and other transition code moved to iexTransitions.pas
ImageEn 5.0.0 (23 Sep 2013)
New Features
- Beta release of new component, TImageEnFolderMView
- DICOM: now ImageEn can save DICOM file format
- Added support for some OLYMPUS cameras maker note
- now TImageEnMIO.PrintImagesToFile calls OnProgress and OnFinishWork events and can be aborted
- now ImageEn can read XMP from RAW images (when embedded in the EXIF block, like DNG)
- Image processing preview: now retains the width and height of the dialog
- Added new encryption algorithm for Encrypt and Decrypt of TImageEnProc (does not show contours of encrypted images)
- jpeg2000: now can save native 8 bit and 16 bit gray scale images
- jpeg2000: now can load native 8 bit and 16 bit gray scale images
- Preview updating is now slightly delayed in Proc.DoPreviews for better performance
- Proc.DoPreviews now looks better when being used for a single purpose such as just rotation
- Can now resize images using Proc.DoPreviews([peResize])
- Can now use anti-alias in Proc.DoPreviews([peRotate]) by setting DefaultRotateAntiAlias
- Added three new TImageEnView Actions: TImageEnViewSetZoom, TImageEnViewPromptToRotate, TImageEnViewPromptToResize
- Added two new sorting methods for Sort: iesbFilenameWithoutPath, iesbFileExtension
- Improved documentation for TImageEnMView
- Added Reload as a helper function in iexHelperFunctions.pas
- Can now specify a different background color for selected frames in TImageEnMView using ThumbnailsBackgroundSelected
- Can now override the default background text style with DefaultTextBackgroundStyle
- Can add more space between text and borders in TImageEnMView using TextMargin
- TImageEnMView displays the system icon for files that are pending loading
- Call SetModernStyling to automatically set all styling properties of TImageEnMView to match the current Windows style
- When printing thumbnails in a TImageEnMView in ietThumb Store Mode it will retrieve the full resolution images if available
- Faster intial display when printing thumbnails
- Better handling for non-images in a TImageEnMView when printing
- Exif, TIFF: now ImageEn can read/write interoperability tags
- JPEG: now ImageEn assigns AdobeRGB1998 color profile when loading EXIF-interoperability tag is 'R03'
- Added: DICOM, now read undefined length subitems
- TImageEnMView can now be sorted by file size, create date, edit date and type
- Constants can now be specified for the <TIEMText.Caption> of frames in TImageEnMView to automatically output dimensions, size, date, etc.
- Thumbnails in TImageEnMView can be automatically clipped to their display area using ThumbnailClipping
- Added Windows File/Folder Management functions unit, iexWindowsFunctions.pas
- Now ImageEn can read/write Photoshop layers data (but still cannot use it)
- Undo/Redo functionality of TImageEnProc now supports TImageEnMView
- iexRegistryFunctions now supports saving to INI file
- optimized TImageEnProc.SelectColors for 24 bit RGB images
- Improved documentation for imageenio.pas unit
- All LoadFromFile/LoadFromStream methods offer a boolean result
- now layers rotation applies antialias filter on rotation preview
Bug Fixes
- Fixed: bug reading some images with ICC on 64 bit
- Fixed: bug reading TIFF CIELab images with ICC
- Fixed: unable to load some DICOM files
- Fixed: now TIEBitmap.Read returns right value (true = success)
- Fixed: thread safe problems using external dll to load jpeg (png, jpeg2000, etc...)
- Fixed: bug reading some jp2 images
- Fixed: some fixes for virtual bitmaps
- Fixed: TImageEnIO, saving PDF with AsyncMode = true produces invalid file
- Fixed: TImageEnIO, saving PS with AsyncMode = true produces invalid file
- Fixed: LayersCreateFromText does not support rotation and anti-aliasing
- Fixed: TImageEnViewCrop fails in some situations
- Fixed: TImageEnMView.OnAfterEvent, ieaeKeyUp doesn't occur on special keys (like arrows)
- Fixed: TIETagsHandler has problems reading little-endian makernote tags
- Fixed: copy/cut to clipboard copies also an empty alpha channel when no alpha channel exists
- Fixed: PNG, memory leak reading some corrupted PNG
- Fixed: LoadFromURL fails when Aborting = true (doesn't reset Aborting)
- Fixed: If SelectionWidth is 1 then thumbnails may appear outside selection box
- Fixed: Thumbnails in TImageEnMView may appear blurry if SoftShadow is used
- Fixed: some TIFF-jpeg images cannot be loaded
- Fixed: TIEBitmap.Create(image: TIEBitmap; Rect: TRect) constructor doesn't work
- Fixed: TImageEnVect.CopyObjectsToBack has some bugs
- Fixed: TIEBitmap.PixelFormat, setting to ie1g works bad with TIECanvas
- Fixed: math exception on saving some jpegs
- Fixed: some Dicom .dic files wrongly loaded as valid Dicom
- Fixed: DICOM, bug reading RLE compressed images
- Fixed: InjectJpegEXIF and InjectJpegEXIFStream doesn't remove EXIF when EXIF_HasEXIFData is False
- Fixed: ImageEn Actions may flash excessively
- Fixed: exception when setting TImageEnMView animation and clicking inside the component without images
- Fixed: added right 32/64 bit platform attributes for design time components
- Fixed: AV saving black/white tiff with alpha channel
- Fixed: TImageEnMView.InsertTransitionFramesEx can fail
- Fixed: Twain and TImageEnMView, sometime a black page is capture on device failure
- Fixed: rotating left aligned text by 180 degrees, bad alignment
- Fixed: background is not painted moving/rotating layer 0
Changes to Classes
- renamed TIEVirtualBitmapRenderer to TIEVirtualBitmapProvider
- now TImageEnVideoView and TImageEnVideoCap are deprecated
- No longer uses generic Exception type in all helper units
- Added: TIPDialogParams.DialogWidth and DialogHeight to store image processing dialog width and height
- Added: TIEAntialiasMode, ierNone value
- Added: TPreviewEffects, peResize value
- Added: DefaultRotateAntiAlias
- Added: OnGetText
- Added: SideGap
- Added: New helper function: IsKnownSaveFormat
- Added: TIEFileFormatInfo includes a SuitableExtension property
- Added: TIEDICOMTags.GetTagNumeric method
- Added: TIEDICOMTags.SetTagNumeric method
- Added: TIEDICOMTags.SetTagString method
- Added: TImageEnIO.SaveToStreamDICOM method
- Added: TImageEnIO.SaveToFileDICOM method
- TIEDICOMTags.DeleteTag: added DeleteAllInstances optional parameter
- Added: TIOParamsVals.DICOM_Compression property
- Added: now TImageEnIO.SaveToFile can save DICOM file format
- Added: now TImageEnIO.SaveToStream can save DICOM file format
- Added: now TImageEnMIO.SaveToFile can save DICOM file format
- Added: TImageEnMIO.SaveToFileDICOM method
- Added: TImageEnMIO.SaveToStreamDICOM method
- Added: TIEDICOMTags.SetTagByteBuffer method
- Added: TIEDICOMTags.DeleteGroup method
- Added: TIOParamsVals.DICOM_JPEGQuality property
- Added: TIOParamsVals.DICOM_J2000Rate property
- Added: ImageFileSize
- Added: ImageCreateDate
- Added: ImageEditDate
- Added: Many new parameters to TImageEnMView.FillFromDirectory
- Added: iemoSelectOnRightClick to TImageEnMView.MultiSelectionOptions
- Added: EXIFInteroperabilityIndexUsage property
- Added: TImageEnMView.IconSize
- Added: TIFF_PhotoshopImageResources property
- Added: TIFF_PhotoshopImageSourceData property
- Added: TImageEnMView.ThumbnailOptionsEx
- Added: TBitmapHelper.PrintImage and TIEBitmapHelper.PrintImage
- Added: TImageEnVect.LayersRemove now also deletes all objects of the layer
- Added: IEAutoLoadIOPlugins to automatically support any plug-in dlls in the application folder
- Added: TOpenImageEnDialog.AutoSetFilterFileType to limit support to a single format
- Added: Overloaded versions of TImageEnIO.ExecuteOpenDialog, TImageEnIO.ExecuteSaveDialog, TImageEnMIO.ExecuteOpenDialog and TImageEnMIO.ExecuteSaveDialog
- Added: DialogTitle, DefaultFilter, LimitToFileType parameters for all Prompt to Load/Save Actions
- TImageEnVect: added ObjTextMaintainAlignmentOnRotate property
- TImageEnView: added LayersRotationUseFilterOnPreview property
- TImageEnView: added LayersRotationDelayFilterOnPreview property
- Added: New define, IEINCLUDEDEPRECATEDMETHODS, to allow deprecated methods to be removed
- Added: TIEImageEnGlobalSettings.PrintDialogMargingsIncrement property
- Added: TIEImageEnGlobalSettings.PrintDialogMargingsMinValue property
Changes to Method Parameters
- Added: OnGetText
- Added: CreateROIBitmap method
- Added: CreateROICanvas method
- Added: EXIF_InteropIndex property
- Added: EXIF_InteropVersion property
- Added: Assign_AdobeRGB1998 method
- TIEVirtualBitmapProvider.Render: added DestWidth and DestHeight parameters
- TImageEnProc.Encrypt: added optional Algorithm parameter
- TImageEnProc.Decrypt: added optional Algorithm parameter
- <TImageEnMView.Sort>: Added optional CaseSensitive parameter
- Added: LimitToFileType and DefaultFilter to TImageEnIO.ExecuteOpenDialog, TImageEnIO.ExecuteSaveDialog, TImageEnMIO.ExecuteOpenDialog and TImageEnMIO.ExecuteSaveDialog
Compatibility Issues
- renamed TIEVirtualBitmapRenderer to TIEVirtualBitmapProvider
- TImageEnViewDoEffectPreviews no longer includes peRotate, peResize
- Removed TImageEnMView.LoadIconOnUnknownFormat property. Use ThumbnailOptionsEx instead
- ioDLLPLUGINS const replaced by ioRawDLLPlugIn and ioOtherDLLPlugIns
- Deprecated some Rotation methods in favour of overloaded versions that avoid the AntiAlias parameter. 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 behaviour, change your code to: ImageEnProc1.Rotate(45, ierNone)
ImageEn 4.3.1 (11 MAY 2013)
New Features
- Delphi XE4 compatibility
- TImageEnMView: now it is possible to select multiple regions pressing CTRL
- UpdateEXIFThumbnail: now it is possible to specify thumbnail size and resampling filter
- PSD: now opacity field corresponds to TIELayer.Opacity instead of TIELayer.Transparency
- better algorithm for handling overall image transparency (using TIELayer.Opacity instead of TIELayer.Transparency)
- now TImageEnMView select with SHIFT (iemoRegion) has the same behavior of Windows explorer
- Added: The selection grid color can now be specified with SelectionGridColor
- Added: Chinese Traditional (Big5 Encoding) and Norwegian translations
- Changed: Default encoding for SUBLANG_CHINESE_TRADITIONAL: is now msChineseTraditionalBig5
- Added: iexDicomRoutines helper unit for Dicom files
- Added: FillFromDirectory can now be cancelled by setting MIO.Aborting := True
- Added: Improved GetTagString to better support numeric values
- IEBitmap.Assign(TIEBitmap) now copies also Origin, BlackValue, WhiteValue, ChannelOffset and Contrast
- now it is possible to make permanent changes of TIEBitmap.Contrast and TIEBitmap.ChannelOffset
- ICC: now ICC profile is applied only when applicable
- Added: unit iesettings
- Added: IEGlobalSettings() global function
- Added: TIEImageEnGlobalSettings class
- now ImageEn global settings are centralized into TIEImageEnGlobalSettings (accessible via IEImageEnSettings() function)
- Added: TImageEnMView now support Explorer thumbnails when using AppendImage
- Added: All ImageEn actions can now be localized by setting MsgLanguage
- Added: iexExifRoutines and iexIPTCRoutines support TListView
- Added: Class helper for TIEBitmap added to iexHelperFunctions
- Added: DICOM decoder now can read nested tags
- Added: now BlackValue/WhiteValue of TIEBitmap works also for ie48RGB (non-alpha) images
- now ievision32.dll file name is also accepted on searching ievision library
Bug Fixes
- BugFix: TImageEnVect incorrectly renders objects when shadow is enabled
- Fixed: AV if DoPrintPreviewDialog in iedtMaxi layout is reduced to very small
- Fixed: Size combo not translated in Print Preview maxi dialog
- Fixed: loading of gray scale + alpha TIFF doesn't work
- Fixed: saving ICC profile into jpeg, using Unicode versions
- Fixed: cursors 1805 and 1806 missing transparency
- Fixed: BlackValue/WhiteValue resampling using filters on non-24 RGB pixel formats
- Fixed: some animatied GIF displayed incorrectly
- Fixed: CopyObjectsToBack doesn't work rendering image objects on black/white image
- Fixed: buffer overflow running at 64 bit loading some jpeg with ICC
Changes to Classes
- TIEAcquirePixelType: added ieap16BitGrayScale and ieapFullColor16 values
- TIELayer: added Opacity property
- TIEMultiSelectionOptions: added iemoRegionOnShift value
- Added PrintImagesToFile to allow outputting of the TImageEnMView to a set of files (thumbnail sheets)
- Added: Overloaded versions of DeleteTag, GetTag and GetTagString
- Added: ImageDelayTime to make it easier to animate frames, including DICOM
- Added: SetRectangle method
- Added: SetEllipse method
- Added: FixContrast method
- Added: FixChannelOffset method
- Added: InputColorSpace property
- Added: OutputColorSpace property
- Added: CheckTransform method
- removed MsgLanguage properties from all objects (except for TIEImageEnGlobalSettings)
- removed global fields: iegDefaultCoresCount, iegOpSys, iegUnicodeOS, iegDefaultPreviewsZoomFilter, IEDefDialogCenter,
iegDefaultDialogFont, IEDefMinFileSize, iegAutoLocateOnDisk, iegAutoFragmentBitmap, iegUseGDIPlus,
iegPreviewImageBackgroundStyle, iegPreviewImageBackgroundColor, iegPreviewAdditionalMultipageExts,
iegMemoShortCuts, ieMeasureUnits, gSystemColors, gIsRemoteSession, gSystemDPIX, gSystemDPIY,
gDefaultDPIX, gDefaultDPIY, gMMX, gEdgeX, gEdgeY, gBorderX, gBorderY, gVScrollWidth, gHScrollHeight,
iegMinZoomDisplayGrid, iegGridPen, iegSelectionGridColor, iegMViewExplorerThumbnailExts,
DefGIF_LZWDECOMPFUNC, DefGIF_LZWCOMPFUNC, DefTIFF_LZWDECOMPFUNC, DefTIFF_LZWCOMPFUNC,
iegFileFormats, iegUseCMYKProfile, iegUseDefaultFileExists, iegMaxImageEMFSize, iegEnableCMS,
iegColorReductionAlgorithm, iegColorReductionQuality, iegObjectsTIFFTag, iegUseRelativeStreams,
iegPanZoomQualityFilter, gRedToGrayCoef, gGreenToGrayCoef
- Added: TIOParamsVals.GIF_RAWLoad property
- Added: LoadThumbnailFromExplorer
- Added TIEBitmap.Create overload (copy from image rectangle)
- Added: GetTagChilds method
- Added: GetTagDescription method
- Added: FindNestedTag method
Changes to Method Parameters
- Added: in TIEDICOMTags.AddTag, Childs optional parameter
Compatibility Issues
- removed MsgLanguage properties from all objects (except for TIEImageEnGlobalSettings)
- removed several public fields (now embedded in TIEImageEnGlobalSettings)
ImageEn 4.3.0 (03 FEB 2013)
New Features
- Rapid UI creation with actions for TImageEnView, TImageEnMView and TImageEnVect
- ImageEnView can playback animated GIF and AVI files
- Improvements to OpenImageEnDialog, including better layout and larger preview options
- Thumbnails for video files can now be retrieved from Windows Explorer (using iegMViewExplorerThumbnailExts)
- New methods for reading and writing IPTC fields
- TIOParamsVals.EXIF_DateTime, TIOParamsVals.EXIF_DateTimeDigitized and TIOParamsVals.EXIF_DateTimeOriginal now all have TDateTime equivalents
- Added Arabic and Serbian translations
- Improved translation for Spanish, Portuguese, French, Russian and Swedish
- Added iexHelperFunctions to add methods to TImageEnIO, TBitmap as well as general image file functions
- Added: TImageEnIO.DoPrintPreviewDialog now remembers the user's prefered width and height
- ICC profile can be saved into jpeg (even if not loaded from another jpeg)
- Added: Escape key now also terminates the insertion of a polyline with TImageEnVect
- Added: TImageEnVect.PolylineClosingMode to make it easier to create polygons
- Improvements to the documentation (ongoing)
- TImageEnMView: FillFromDirectory added optional LoadOnDemand parameter, to load images immediately
- Added: TIESlippyMap class to perform basic geo-location (automatic display of a GPS-EXIF points in a map, using open maps). Look at other\GeoMaps demo.
- new TImageEnView method to perform smooth zoom
- new event to detect when TImageEnView smooth scroll or zoom ends
Bug Fixes
- Some items not localized in TImageEnMView.PrintPreview
- DPI not honored in TImageEnMView.PrintPreview
- Odd colors when creating transition bitmaps with the iettCubeRotate effects
- Improved error message when install files cannot be downloaded
- Some issues with layout of print dialogs especially when resizing
- iesoDisableOneClickDeselect does not work with miSelectCircle or miSelectPoly
- alpha channel doesn't work displaying CMYK images
- TIEBitmap.WhiteValue and BlackValue aren't used when ZoomFilter is not rfNone
- 64 bit: LoadFromFileURL doesn't work
- ObjTextAutoSize with ObjFontAngle <> 0 doesn't work
- TIEMediaReader doesn't work
- TIECanvas.RoundRect doesn't work well with specific parameters
- Selections on big images may not work
Changes to Classes
- TImageEnView: added TImageEnView.Playing property
- TImageEnView: added TImageEnView.PlayLoop property
- TOpenImageEnDialog: Added TOpenImageEnDialog.PreviewSize property
- ImageEnMView: added A iegMViewExplorerThumbnailExts
- TImageEnView: added TImageEnView.IsEmpty2 property
- TImageEnVect: TImageEnVect.ObjPasteFromClipboard now also pastes images on the clipboard as objects
- TIOParamsVals: TIOParamsVals.ReadIPTCField
- TIOParamsVals: TIOParamsVals.WriteIPTCField
- TIOParamsVals: TIOParamsVals.ClearIPTCField
- TIOParamsVals: TIOParamsVals.EXIF_DateTime2
- TIOParamsVals: TIOParamsVals.IPTC_Photoshop
- TIOParamsVals: TIOParamsVals.EXIF_DateTimeDigitized2
- TIOParamsVals: TIOParamsVals.EXIF_DateTimeOriginal2
- Helper function: IEFileIsOfFormat
- Helper function: IEFilenameInExtensions
- Helper function: IEFileExtInExtensions
- TIOParamsVals.EXIF_Orientation: Added consts
- TIEBitmap: TIEBitmap.Rotate, TIEBitmap.Flip and TIEBitmap.Resample
- TImageEnView: added TImageEnView.LayersCreateFromFile
- TImageEnView: added TImageEnView.LayersCreateFromText
- TImageEnVect.ObjBoxInnerSelectable now also affects iekEllipse and closed iekPolylines
- Added: TIEDirectShow.CaptureMode property
- Added: TIEBitmap.IECanvas property
- Added: TIOParamsVals.DICOM_Range property
- Added: TIOParamsVals.DICOM_WindowCenterOffset property
- Added: TImageEnView.SetZoomSmooth method
- Added: TImageEnView.SmoothZoomValue property
- Added: TImageEnView.OnFinishSmoothTask event
- Added: TImageEnProc.CalcStdDev method
- TIEBitmap: added TIEBitmap.Create overload (create from buffer)
- TIEBitmap: added TIEBItmap.Read overload (read from buffer)
- Added: TImageEnMView.OnAfterEvent event
Changes to Method Parameters
- IEV_ALL_SELECTED_OBJECTS can now be specified as parameter for TImageEnVect.RemoveObject, TImageEnVect.RotateObject, TImageEnVect.SetObjFrontOf, TImageEnVect.SetObjBackTo and TImageEnVect.CopyObjectToBack
- TImageEnVect.ObjIsClipboardAvailable now has bIncludeImages parameters
- IEM_SELECTED_IMAGES or IEM_ALL_IMAGES can now be specified as parameter for TImageEnMIO.PrintImage and TImageEnMIO.DoPreviews
- Consts can now be specified for TImageEnView.LayersMove to move the layer back/forward
Compatibility Issues
- Changed default preview background of Open/Save dialogs (iegPreviewImageBackgroundColor and iegPreviewImageBackgroundStyle)
- TImageEnMView.DeleteSelectedImages now even deletes the selected image if multiselect is disabled or in single view mode
- Renamed undocumented TImageEnProc.CutTransparentBorder to TImageEnProc.CropTransparentBorder
ImageEn 4.1.4 (20 OCT 2012)
- IEVisionLib now is a function instead of public variable
- now ievision.dll is loaded when actually requested
- 64 bit compatibility (beta stage)
- TImageEnView: optimized rendering of CMYK (native) images
- TImageEnView: now ZoomFilter works for all pixel formats
ImageEn 4.1.3 (28 SEP 2012)
- BUGFIX: TImageEnVect.SetObjFont: now works correctly with Delphi 2010 and up
- added Delphi/C++Builder XE3 compatibility
- now J2000_Rate default is 0.07
- BUGFIX: TIEICC.Transform changes input buffer when input format is iecmsBGR
ImageEn 4.1.2 (18 AUG 2012)
- BUGFIX: TImageEnProc.Opening, produces white border around black/white images
- TImageEnView: added TImageEnView.ImageHorizAlignment property
- TImageEnView: added TImageEnView.ImageVertAlignment property
- now it is possible to align the image at top-left, top-center, top-right, center-left, center-center, center-right, bottom-left, bottom-center and bottom-right
- TImageEnMView: added TImageEnMView.SetThumbnailSize method
- BUGFIX: fixed minor bugs
- TImageEnMView.LoadFromFileOnDemand: added optional parameter "Append"
- TIEAnimation: added BorderPen property
- TImageEnVect: added TImageEnVect.SetObjAnglePoints method
- TImageEnVect: added TImageEnVect.ObjAnglePoints property
- now it is possible to create and define an angle object in code
- BUGFIX: fixed bug that sometimes writes wrong pixels in the right-side of last line when compressing TIFF with ioTIFF_G3FAX1D
- BUGFIX: fixed bug that sometimes writes wrong pixels in the right-side of last line when compressing TIFF with ioTIFF_CCITT1D and TIFF_FillOrder=2
- BUGFIX: writing BMP when PixelFormat=ie8g and NativePixelFormat=true
- BUGFIX: reading gray scale, tiled, JPEG encoded TIFF when NativePixelFormat=true
- now selected layer box and grips are displayed over all layers
- now a box is displayed when rotating a layer
- BUGFIX: TIEDirectShow.EndOfStream now works (when parent of TIEDirectShow is TImageEnView.IO)
- TIOParamsVals: added EXIF_GPSLatitude property
- TIOParamsVals: added EXIF_GPSLongitude property
- BUGFIX: TImageEnIO.LoadFromStream doesn't set Aborting=true when file content type is not detected
- TIEBitmap: now it is possible to apply a zoom filter when PixelFormat=ieVirtual
- TIEPixelFormat: removed ieVirtual value (introduced with 4.1.0 version)
- TIEBitmap: added TIEBitmap.VirtualBitmapProvider property
- TIEBitmap: added TIEBitmap.IsVirtual property
- TIEBitmap: added TIEBitmap.GetSegment method
- TIOParamsVals: added TIOParamsVals.TIFF_StripCount property
- now it is possible to specify number of strips in a TIFF file
- DICOM: enhanced support for lossless-jpeg compression
- BUGFIX: incorrect matching of Twain devices name
- BUGFIX: wrong image display when Operation<>ielNormal on the first layer and Zoom > 100
- BUGFIX: TImageEnMIO print preview dialog, now centimeters label is displayed correctly
- BUGFIX: duplex in WIA doesn't work
- BUGFIX: now Opening/Closing/Maximum/Minimum for B/W images works correctly
- BUGFIX: fixed DICOM gray scal pixel ranging problem
- TImageEnView: added TImageEnView.DelLastSelPoint method
- Now it is possible to remove last inserted selection point (when MouseInteract = [miSelectPolygon])
- Added: Const array of languages available for IEVision OCR
- Added: SaveSelected parameter for TImageEnMView.SaveToFilePDF and TImageEnMView.SaveToStreamPDF
- Fixed: TIEAquireParams.SetSource may not work if Unicode string is passed as Location parameter
- BUGFIX: PSD, enhanced reliability on corrupted files
- now it is possible to rotate layer 0 using MouseInteract=[miRotateLayers]
- TImageEnMView: added TImageEnMView.OnAnimationText event
- TImageEnMView: now SaveSnapshot saves also ImageTag property
- TImageEnVect.CopyObjectToBack: added AdaptBitmapPixelFormat parameter
- TImageEnVect.DrawObjectsToBitmap: added AdaptBitmapPixelFormat parameter
- TImageEnVect.DrawOneObjectToBitmap: added AdaptBitmapPixelFormat parameter
- TImageEnVect.CopyObjectsToBack: added AdaptBitmapPixelFormat parameter
- now it is possible to draw vectorial objects over Black/white images (without RGB conversion). Experimental feature.
- TIEAcquireParams.FindSourceByName to locate devices using only their name
- TIEAcquireParams.SetSourceByStr now works even if a device name is passed
- IEVision Initialize overloaded method allows passing an alternative DLL path
- BugFix: May get A/V error when accessing AcquireParams properties if source has not been set
- BugFix: Transition may not occur in correct direction
- BUGFIX: reading G4FAX with PhotometricInterpretation=BLACKISZERO has inverted colors
- TImageEnProc.AdjustTint: added two overloads (to exclude color ranges from tint adjust)
- TIOParamsVals: added TIFF_NewSubfileType property
- TIFF: supported Deflate/ZIP with FillOrder=2 and with separated planes
- TImageEnIO.SaveToFile: now can save LYR and ALL file formats when TImageEnIO is attached to TImageEnView or TImageEnVect
- BUGFIX: fixed bug in Layer.Operation=ielLuminosity
- TImageEnMView: added TImageEnMView.Sort overload to simplify image sorting
- TIERenderOperation: added ielLuminosity2 value (uses YCbCr)
- TIERenderOperation: now ieLuminosity uses HSL instead of HSV
- Changed: StrToAcquireSource() raises error if invalid source string is passed
ImageEn 4.1.0 (22 FEB 2012)
- BUGFIX: May get Div by Zero error with TImageEnMView if GridWidth = -1 and the component is narrower than one thumbnail.
- TIETwainParams: added TIETwainParams.AcceptedImages property
- TIETwainParams: added TIETwainParams.AutoScan property
- Twain: now it is possible to limit number of acquired images or automatically acquired
- Dicom: supported YBR_FULL pixel format
- TImageEnIO.CreateAVIFile: now "rate" is double
- now it is possible to create AVI files with floating point rate values
- TIOParamsVals.AVI_FrameDelayTime: now is double
- TIOParamsVals.MEDIAFILE_FrameDelayTime: now is double
- TImageEnMView.ImageDelayTime: now is double
- TIETwainParams: added TIETwainParams.DeviceOnline property
- now TImageEnView and TImageEnMView exposes Touch property
- BUGFIX: in TImageEnProc.AddInnerShadow when OffsetX and OffsetY are != 0
- BUGFIX: reading mpeg on Vista
- BUGFIX: fixed TImageEnVect.CopyObjectToBack
- now TImageEnVect.CopyObjectToBack and CopyObjectsToBack support multiple layers
- added units: iexAcquire.pas, iexacquireform.pas, iexdcim.pas
- Added: New TIEAcquireClass which provides a generic interface to Twain, WIA and other acquisition methods
- Added: Acquisition from camera cards and cameras that appear as USB drives when connected
- Added: New selection option, iesoDisableOneClickDeselect, which prevents clearnign of the selection when clicking the TImageEnView
- Removed: TImageEnView.TransitionStartRect, TImageEnView.TransitionEndRect, TImageEnView.TransitionRectMaintainAspectRatio
- Added: TImageEnMView.SelectedImageAlwaysVisible to force the selected image to remain visible
- Added: TImageEnMView.FillFromDirectory can now include supported video formats
- Added: TImageEnMView.Seek method to quickly navigate loaded images
- Added: Replaced all magic numbers in ieTwain.pas with constants
- Changed parameters for TImageEnIO.Acquire, ImageEnMIO.Acquire
- Changed parameters for TImageEnIO.SelectAcquireSource and TImageEnMIO.SelectAcquireSource
- TImageEnProc.RadialStretch: now supports alpha channel
- TImageEnVect: added optional hobj parameter to SaveToFileIEV and SaveToStreamIEV (to save a single object only)
- TImageEnMView, TImageEnView: exposes OnResize event
- TIEBitmap: added TIEBitmap.GetIEVisionImage method
- PDF: now each PDF page is cached to disk instead of memory to allow bigger PDFs
- TImageEnVect: added AppendObjects optional parameter (avoids to remove existing objects) to LoadFromFileIEV and LoadFromStreamIEV
- TImageEnView: added TImageEnView.SelectionGridWidth property
- TImageEnView: added TImageEnView.SelectionGridHeight property
- TImageEnVect: TImageEnVect.StretchTextRect method
- TImageEnVect.TIEVStyle: added ievsHideGrips value
- now TImageEnVect.ObjTextAutoSize works also on displaying (only for iekTEXT objects) instead of only on editing
- TImageEnProc.SelPasteFromClip: added MaintainAspectRatio optional parameter
- BUGFIX: random exceptions on-exit after Twain usage
- TIEBitmap: added TIEBitmap.AlphaChannelOpt property
- BUGFIX: fixed minor bugs on TIFF saving (with empty UserComment tag)
- TIEBitmap.MergeWidthAlpha: added optional Resample parameter
- TImageEnVect.CopyObjectToBack, CopyObjectsToBack, DrawOneObjectToBitmap, DrawObjectsToBitmap: added optional MergeAlpha parameter
- now it is possible to merge objects (CopyObjectsToBack) over transparent images
- TImageEnVect: added TImageEnVect.OnTextEdit event
- TImageEnView: added TImageEnView.DisplayGridLyr property
- Changed: Acquire defaults to Twain
- Added: When setting a device directly using TwainParams or WIA params then it becomes the selected acquisition type for subsequent calls to Acquire
- Added: TImageEnMView automatically scrolls when dragging items within it
- Changed: TSaveImageEnDialog can now be used without attaching it to a
- TImageEnIO (though this is not recommended usage as it does not provide user access to parameters)
- BUGFIX: sometimes alpha channel is not processed correctly when Layers[].Rotate is 90, 180, etc..
- optimized loading of jpeg-CMYK, without ICC profile
- TIEPixelFormat: added ieVirtual value
- TIEBitmap: added TIEBitmap.OnRenderVirtualPixel event
- TImageEnView: now selection mask buffer is allocated only when actually necessary
- TImageEnView: now TImageEnView.SetInteractionHint is public
- PNG: now alpha channel is read also when NativePixelFormat is true with paletted images
- BUGFIX: now TImageEnProc.Crop and TImageEnView.LayersFixBorders work with ie8p pixel format
ImageEn 4.0.2 (31 OCT 2011)
- Delphi XE2 (32 bit) compatibility
- BUGFIX: now iegUseGDIPlus works again
- TImageEnIO: added TImageEnIO.OnAcquireClose event
- TImageEnMIO: added TImageEnMIO.OnAcquireClose event
- BUGFIX: reading mpeg with Windows 7 (and maybe other versions)
- TImageEnVect: added TImageEnVect.ObjLayer property
- TImageEnVect: added TImageEnVect.ObjAnchorToLayers property
- now vectorial objects are anchored to a specific layer
- TIFF: supported 12 bit gray scale, uncompressed
- TImageEnProc.UnsharpMask: changed radius parameter to double
- BUGFIX: writing EXIF-makernote of FUJIFILM cameras
- Added: Cube Rotate, Soft Wipe and Twist transitions
- Added: Enhanced book flip transition
- Added: "Maintain Aspect Ratio" parameter for TImageEnProc.Resample and ResampleTo
- Added: TImageEnView1.ZoomIn and ZoomOut methods
- Added: Some extra helper functions
- Added: Helper functions units for EXIF and IPTC handling, iexEXIFRoutines.pas and iexIPTCRoutines.pas, providing such functions as input/output of fields to string grids
- Added: Overloaded versions of TImageEnMView.InsertImage for quicker insertion of images by bitmap or path
- Added: TImageEnProc.CreateTransitionBitmap to return a set of transition frame images
- Added: TImageEnMView.InsertTransitionFrames to insert a set of transition frame images
- Default type in save dialogs is JPEG
- Save dialog defaults to file type of specified filename first
- Added: FilterDefault property for TOpenImageEnDialog and TSaveImageEnDialog
- Some additions to documentation
- Compatibility with IEVision 1.0
ImageEn 4.0.1 (29 AUG 2011)
- TImageEnView: added TImageEnView.OnDrawLayer event
- BUGFIX: TImageEnMView and GridWidth=0, selection doesn't work
- localization: moved english words into resourcestrings
- TImageEnView.LayersAdd: added PosX and PosY optional parameters
- BUGFIX: displaying memo objects and setting margins
- TImageEnView, TImageEnMView and TImageEnVect: Draws themed borders if THEMED_BORDERS is defined in ie.inc
- TImageEnProc, TImageEnIO and TImageEnMIO: Added ImageEnVersion property
- TImageEnView, TImageEnMView and TImageEnVect: Exposed OnContextPopup event
- BugFix: Some issues with Pan Zoom movement
- TImageEnIO, TImageEnMIO and TImageEnProc: Added PreviewFontEnabled property. When disabled (default) a Windows standard GUI font is used for preview dialogs
- BugFix: Dialogs may display oddly with use of some fonts
- Changed: Default Background style changed to iebsSolid
- Changed: Preview dialogs use iegPreviewImageBackgroundStyle and iegPreviewImageBackgroundColor for previews
- BugFix: Destination Preview in ImageEnProc.Preview dialog did not use iegDefaultPreviewsZoomFilter
- now 8 bit gray scale -> 24 bit RGB uses BlackValue and WhiteValue parameters
- TIEBitmap: added TIEBitmap.StretchValues method
- fixed bug inserting/deleting images in TImageEnMView when an animation is active
- TIEAnimation: added TIEAnimation.DeleteImage method
- TIEAnimation: added TIEAnimation.InsertImage method
- BUGFIX: RGB->CieLab conversion
- BUGFIX: DoPreviews of TImageEnProc, User Filter on Delphi 2007 doesn't work
- TImageEnMView: added SetImage overload
- TImageEnMView: added TImageEnMView.CalcGridHeight method
- TImageEnMView: now scrolls when selecting with mouse and TrackMouseSelection is True
- TImageEnMView: deprecated AppendImage2 (use an overload of AppendImage instead)
- TImageEnMView: added overload of AppendImage (replacing AppendImage2)
- BUGFIX: OnFinishWork not called in TImageEnMIO.LoadFromURL
- Enhanced support for reading of EXIF info from RAW camera formats
- TImageEnIO.SaveToFile: added optional parameter ImageFormat
- TImageEnIO.LoadFromFile: added optional parameter ImageFormat
- TImageEnDBView: added TImageEnDBView.UseMemoryStream property
- TImageEnDBView: added TImageEnDBView.OnBeforeLoadImage event
- BUGFIX: fixed memory leak drawing selection rectangle
- BUGFIX: TImageEnProc.CastAlpha raises exception with one pixel selections
- TImageEnIO: added TImageEnIO.Seek method
- DCX, ICO, CUR: now TIOParamsVals.ImageCount is valued
- now TImageEnIO.LoadFromFile can load frames from WMV and MPEG formats
- added TIECommonDialog.FileView property
- now it is possible to override the default file view for the open and save dialogs
- Open/Save dialogs: now preview button (or double click on image thumbnail) will show the full image
- WIA: fixed compatibility problems with some devices
- TRulerBox: added TRulerBox.OffsetX property
- TRulerBox: added TRulerBox.OffsetY property
- Other\RulerBox example: now it is possible to center the image
ImageEn 4.0.0 (13 JUL 2011)
- BUGFIX: fixed bug in TImageEnMIO.PrintImage
- BUGFIX: fixed bug in TImageEnMIO.PrintImagePos
- BUGFIX: fixed bug playing video (AV on closing application)
- TIOPNGFilter: added ioPNG_FILTER_UP value
- TIOPNGFilter: added ioPNG_FILTER_AVG value
- TIOPNGFilter: added ioPNG_FILTER_ALL value
- BUGFIX: fixed bug reading some corrupted TIFF-maker notes
- BUGFIX: fixed bug writing CCITT files (compatibility with some FAX devices)
- BUGFIX: fixed minor bugs
- TIEDirectShow: now it is possible to change camera input frame size in TIEDirectShow.Connect
- BUGFIX: fixed bug reading some jpegs
- TImageEnView: added TImageEnView.SelectedRect property
- BUGFIX: fixed bug in TImageEnIO.SaveToText method
- better alpha channel support in Bilinear filter
- TImageEnMView: added TImageEnMView.OnImageAtPos event
- TImageEnMView: added TImageEnMView.OnCreateImage event
- TImageEnMView: added TImageEnMView.OnDestroyImage event
- added example multipage\customthumbs2 which shows how add checkboxes to thumbnails
- Changed: Various improvements to layout of TImageEnProc Preview dialog
- Fixed: Tab order in TImageEnProc Preview dialog
- Changed: Various improvements to layout of TImageEnIO Preview dialog
- Added: All file sizes in TImageEnIO Preview dialog are regionally formatted and simplified where necessary
- Fixed: Tab order in TImageEnIO Preview dialog
- Fixed: Preview for TImageEnMIO may not show Lock Preview checkbox
- Added: Delayed enactment of preview in TImageEnIO while changing values
- Fixed: Print preview dialogs do now have a default caption
- Changed: Various improvements to layout of Print Preview dialogs
- Fixed: Tab orders in Print Preview dialogs
- added iegDefaultPreviewsZoomFilter global property
- jpeg loading: now jpeg header DPI info have priority over EXIF dpi
- added unit ieanimation
- added TIEAnimation class
- added TIEHorizontalFlow class
- added TIECircularFlow class
- added TIEImageList class
- TImageEnMView: added TImageEnMView.Animation property
- TImageEnMView.ReleaseBitmap: added parameter saveChanges
- now it is possible to present images in TImageEnMView using animations like coverflow
- TImageEnMView: added TImageEnMView.TrackMouseSelection property
- TImageEnMView: now it is possible to show mouse selection as semi-transparent rectangle
- Now shows preview of thumbnail printing in TImageEnMView.PrintPreview
- When displaying TImageEnMView.PrintPreview it defaults to the selection of the source
- Can specify the box color when printing thumbnails
- Delayed update of preview in TImageEnMView.PrintPreview
- TImageEnMView.PrintPreview now displays the number of pages to be printed
- Now TIEMText.TruncSide default is iemtsLeft
- TImageEnView: added TImageEnView.HighlightedPixelColor property
- TImageEnMView: added TImageEnMView.CalcGridWidth property
- TImageEnMView.ImageAtPos: added optional parameter checkBounds
- TImageEnMView: added TImageEnMView.CheckThumbBoundsOnSelect property
- TImageEnProc.ProjectDraw: added mergeAlpha parameter
- TImageEnProc.PerspectiveDraw: added mergeAlpha parameter
ImageEn 3.1.2 (10 SEP 2010)
- Dicom: supported new compression types
- TIFF: reading TIFF with bogus StripByteCount tag
- BUGFIX: bug creating a polyline with MouseInteract and after a previous SetObjPolylinePoints
- BUGFIX: fixed some Floating point exceptions using TImageEnVect
- BUGFIX: TImageEnMView.Proc doesn't work after Deselect calls
- TImageEnView: added OnSetCursor event
- TImageEnProc: now motion blur applies also to alpha channel, if present
- improved RGB to CIELab conversion
- added iegPanZoomQualityFilter public field
- added unit ieXCanvasUtils.pas
- added new 25 transitions
- BUGFIX: fixed bug mixing multiselections with keyboard and mouse
- DICOM: added ".v2" extension
- optimized layers rotation
- TIEBitmap: added TIEBitmap.CopyFromMemory method
- TIECanvas: added Rotate method
- TIECanvas: added Translate method
- TIECanvas: added ResetTransform method
- TIETIFFHandler: enhanced stability on corrupted tags
- optimized TImageEnView.LayersMerge and TImageEnView.LayersMergeTo methods
- added Delphi/C++Builder XE compatibility
ImageEn 3.1.1 (20 MAR 2010)
- TImageEnView: added TImageEnView.ResetState method
- BUGFIX: now TIEDirectShow.SetCurrentVideoFormat works (it is possible to change DirectShow video capture resolution in code)
- TImageEnVect: added TImageEnvect.MaxMovingDistance property
- TImageEnMView: added TImageEnMView.LockUpdateCount property
- TImageEnMView: added TImageEnMView.LockUpdate method
- TImageEnMView: added TImageEnMView.UnLockUpdate method
- BUGFIX: now asynchronous loading works (break in 3.1.0)
- TIEIPTCInfoList: added TIEIPTCInfoList.GetItemData method
- TIEIPTCInfoList: added TIEIPTCInfoList.GetItemLength method
- BUGFIX: fixed bug saving GIF (break in 3.1.0)
- BUGFIX: wrong TIOParamsVals.ImageCount for multipage TIFF with jpeg compression
- BUGFIX: fixed bug in TImageEnMView.LoadSnapshot and SaveSnapshot (break in 3.1.0)
- BUGFIX: fixed bug in GetPolylineArea
- now it is possible to abort dcraw loading (using future dcraw versions)
- TImageEnVect: added TImageEnVect.ObjBlendOperation property
- TImageEnIO: added TImageEnIO.LoadFromResource method
ImageEn 3.1.0 (21 FEB 2010)
- now it is possible to remove EXIF tags setting their defaults
- BUGFIX: now TImageEnMView.OnViewChange works when moving scrollbars
- TImageEnProc.Reflection: added "percentage" parameter
- optimized TImageEnProc.Reflection method
- TPRPreviewsParamsItems: added prppResetSelectedTab value
- Preview dialog: now "Reset" button can reset only visible tag (optional behavior)
- BUGFIX: in ExtractTIFFImageFile procedure
- added TIEHashStream class
- supported MD2, MD4, MD5 and SHA hashing algorithms (to create hash of a image file or of a bitmap)
- TIEBitmap: added TIEBitmap.GetHash method
- BUGFIX: fixed rounding math problem with ielScreen layer blend operation
- TIERenderOperation: added ielStereoEven and ielStereoOdd values
- EXIF Make note: supported FUJIFILM tags
- TImageEnMIO.SaveToStreamTIFF: added optional SaveSelected parameter
- TImageEnMIO.SaveToFileTIFF: added optional SaveSelected parameter
- TImageEnMView: now it is possible to save only selected images using SaveToStreamTIFF and SaveToFileTIFF methods
- TImageEnProc: added TImageEnProc.Convolve method
- added IEGetCoresCount public function
- added iegDefaultCoresCount public field
- TImageEnProc: added TImageEnProc.CalcAverageRGB method
- optimized rfTriangle, rfHermite, rfBell, rfBSpline, rfLanczos3, rfMitchell, rfNearest, rfLinear filters for multicore processing
- TImageEnVect: optimized polyline drawings
- BUGFIX: bug making undo of angle and polyline objects
- EMF/WMF: now metafiles are loadable from streams
- BUGFIX: fixed bug in TIEBitmap.LoadRAWFromBufferOrStream related to alpha channel
- BUGFIX: dialogs now are center on the same desktop of the parent window
- TIFF: optimized TIFF-CCITT G4 writing
- now TIEBitmap.BlackValue and WhiteValue are applicable also to ie24RGB pixel format
- TImageEnMView.FillFromDirectory: supported Unicode file names for non-Unicode Delphi versions
- ievect unit: added ieMeasureUnits public field
- now it is possible to change TImageEnVect measure unit strings
- TImageEnMView.FillFromDirectory: added FilterMask optional parameter
- BUGFIX: now TImageEnMIO.LoadFromFiles calls OnProgress events
- BUGFIX: image processing preview, FFT area is not restored correctly
- now TImageEnIO.CreateAVIFile, returns an error value
- BUGFIX: layers cannot be moved dragging the center
- TImageEnView: added TImageEnView.LayersResizeAspectRatio property
- supported Unicode characters on preview, opensave and printing dialogs, for Delphi 2009 and Delphi 2010
- TImageEnProc: added TImageEnProc.FTClearZone method
- TImageEnMIO: added TImageEnMIO.LoadFromBuffer method
- TIOParamsVals: added TIOParamsVals.IsResource property
- added TIEResourceExtractor class
- now it is possible to load images from resources in PE files (EXE, DLL, OCX, ICL, etc...)
- TImageEnIO: added TImageEnIO.ParamsFromBuffer method
- TImageEnView: added TImageEnView.OnVirtualKey event
- TImageEnProc: added TImageEnProc.MatchHSVRange method
- BUGFIX: fixed some minor bugs
- BUGFIX: fixed bug reading/processing jpeg tags with zero length
- BUGFIX: fixed bug reading planar-CMYK with predictor, ZIP compressed
- TImageEnView: added TImageEnView.SetLayersBoxStyle method
- TImageEnMView: added TImageEnMView.ImageUserPointer property
- TImageEnMView: added TImageEnMView.DefaultBottomTextFont property
- TImageEnMView: added TImageEnMView.DefaultTopTextFont property
- TImageEnMView: added TImageEnMView.DefaultInfoTextFont property
- added TIERFBClient class
- now it is possible to create a RFB (VNC) client using TIERFBClient objects
- BUGFIX: TImageEnVect, memo texts now are correctly displayed with vertical bounding box size is not enough
- TIEUnits: added ieuFEET, ieuYARDS, ieuMILES values
- TImageEnVect: added TImageEnVect.OnPresentMeasure event
- open/save dialog: support for non-Unicode OS (Win98/WinME)
- BUGFIX: better font size handling for Wang Imaging annotations
- TIEMultiSelectionOptions: added iemoLeaveOneSelected value (TImageEnMView.MultiSelectionOptions property)
- now TImageEnProc.Fill works with all pixel formats
- TIELayerEvent: added ielBeginResizing and ielBeginMoving values (and related events)
- TImageEnProc: added TImageEnProc.UnsharpMask method
- added Hungarian translation
ImageEn 3.0.5 (12 OCT 2009)
- TImageEnIO.ExecuteOpenDialog: added Filter optional parameter
- TImageEnIO.ExecuteSaveDialog: added Filter optional parameter
- TImageEnMIO.ExecuteOpenDialog: added Filter optional parameter
- TImageEnMIO.ExecuteSaveDialog: added Filter optional parameter
- TImageEnMView.FillFromDirectory: added DetectFileFormat optional parameter
- BUGFIX: fixed problem reading some unicode EXIF_UserComment tags
- BUGFIX: fixed problems reading RLE encoded images
- BUGFIX: fixed some minor bugs reading DICOM files
- TIERenderOperation: added ielStereoBW, ielStereoColor, ielStereoColorDubois values
- BUGFIX: TaskName parameter of printing preview dialogs now works
- EXIF: set several tags defaults to -1 instead of 0
- TIETIFTagsReader.GetRational: added defaultValue optional parameter
- TIETagsHandler.GetRational: added defaultValue optional parameter
- TImageEnMView: now SaveSnapshot saves also StoreType property
- TImageEnMView.SaveSnapshot: added optional parameter SaveParams, to save input/output parameters and tags
- TImageEnMView.SaveSnapshot: now can save input/output parameters and tags
- TIOParamsVals.SaveToStream/SaveToFile now saves EXIF tags
- TImageEnMView.SaveSnapshot: now can save EXIF tags
- fixed minor bugs
ImageEn 3.0.4 (26 SEP 2009)
- TIOParamsVals: added TIOParamsVals.BMPRAW_DataFormat property
- now SaveToFileBMPRAW/SaveToStreamBMPRAW/LoadFromFileBMPRAW/LoadFromStreamBMPRAW supports text data
- TImageEnProc: now TImageEnProc.DisposeChannels accepts "0" value
- now TImageEnProc.DisposeChannels works also with ie48RGB pixel format
- TImageEnView, LayersAdd: added two optional parameters, PosX and PosY
- FIXED BUG: THistogramBox cannot be placed on forms using Delphi 2009
- TImageEnView: added TImageEnView.OnTransitionPaint event
- FIXED BUG: reading big-endian 16 bit CMYK-TIFF
- FIXED BUG: wrong width/height reading some HDP
- TImageEnView: added TImageEnView.SetSelectionMarkOuterStyle method
- TIFF: added support for reading >2GB TIFF files (max 4GB)
- FIXED BUG: memory leak in TIEMediaReader
- FIXED BUG: ondisk cached images cannot exceed 2GB
- now object aspect ratio works on all grips
- TIPDialogParams: added EQUALIZATION_EqualizeButton field
- TImageEnProc: added TImageEnProc.MotionBlur method
- TImageEnProc: added TImageEnProc.Random method
- now supported reading of 16 bit gray scale PGM
- TImageEnProc: added TImageEnProc.MapGrayToColor method
- FIXED BUG: reading some TIFF files
- FIXED BUG: bad selection precision
- TIEDirectShow.GetSample: added "resample" parameter
- added 22 extra transitions
- TImageEnMView: added TImageEnMView.DisplayImageAt method
- TImageEnVect: added TImageEnVect.InsertingPen property
- TImageEnMView: now SetImageRect copies also transparency
- TImageEnMView: added TImageEnMView.AppendSplit method
- TImageEnProc: added TImageEnProc.CreateFromBitmap method
- TImageEnIO: added TImageEnIO.CreateFromBitmap method
- TIOParamsVals.EXIF_UserComment: changed type from AnsiString to WideString
- better Unicode support for EXIF user comment tag
- TImageEnProc.AdjustTemperature: now works on current selection
- enhanced support for EXIF_UserComment tag
- FIXED BUG: reading Unicode file names with ParamsFromFile
- open/save dialogs now support Unicode file names (for Delphi non Unicode versions)
- TOpenImageEnDialog: added TOpenImageEnDialog.FileNameW property
- TSaveImageEnDialog: added TOpenImageEnDialog.FileNameW property
- DICOM: now OnProgress works
- now ImageEn writes only changed or new EXIF tags
- now TImageEnMView supports native pixel formats
- ICO: enhanced compatibility
- TImageEnMView: better disk cache handling
- FIXED BUG: now Deinterlace, EdgeDetect_Sobel, ApplyFilter
- TImageEnView: added TImageEnView.SaveState method
- TImageEnview: added TImageEnView.LoadState method
- TIEBitmap: added TIEBitmap.UpdateFromTBitmap method
- FIXED BUG: TIEIPTCInfoList.InsertStringItem now works
- TIEBitmap: added TIEBitmap.Origin property (improved compatibility with OpenCV)
- TImageEnVect: added TImageEnVect.GetIndexFromObj method
- TIEBitmap.EncapsulateMemory: added Origin optional parameter
- added Delphi 2010 compatibility
- DICOM: added jpeg2000 (lossy) decompression
- TIETransitionType: added iettPageFlipEffect and iettPageFlipEffect2 effects
- Optimized MagicWand performance
- TImageEnProc: now ieuObjectsAndLayers applied to TImageEnView saves all layers to undo/redo stack
- TImageEnSaveDialog: when AttachedImageEnIO is empty now raises an exception instead of silently exit
- now TImageEnIO.ParamsFromFile and ParamsFromFileFormat read parameters from WMF/EMF
- now setting XMP_Info='' removes XMP info from jpegs
- TImageEnMView: added TImageEnMView.ImageTag property
- TImageEnVect: added TImageEnVect.ObjBitmapHandleTransparencyOnSel property
- TImageEnVect: now bitmaps transparent areas aren't selectable
ImageEn 3.0.3 (22 MAR 2009)
- TIEBitmap: added TIEBitmap.PPixels_ie32RGB property
- TIEBitmap: added TIEBitmap.Pixels_ie32RGB property
- TImageEnView: added TImageEnView.GetSelectionGripStyle method
- FIXED BUG: now selection grip shape can be iegsBox
- TImageEnProc.AutoCrop2: change type BorderRate to double
- FIXED BUG: fixed bug using LoadFromBuffer with ioBMPRAW format
- TImageEnMView: added TImageEnMView.ImageCacheUseDisk property
- FIXED BUG: TImageEnVect, memo with high font size is displayed incorrectly
- TImageEnView: added new overloads of LayersAdd method
- TImageEnView: added TImageEnView.LayersCopyToAlpha method
- TImageEnView: added TImageEnView.LayersCreateFromAlpha method
- now it is possible to create a layer from alpha channel
- now it is possible to copy a layer in image alpha channel
- imageenio: added iegUseDefaultFileExists public variable
- FIXED BUG: fixed memory leak saving ICO
- FIXED BUG: fixed bug in TImageEnMView.RemoveBlankPages
- now when TIFF_EnableAdjustOrientation/EnableAdjustOrientation is true, then EXIF orientation becomes 1
- hyieutils: added iegAutoLocateOnDisk public field
- TIETwainParams: added TIETwainParams.Language property
- TIETwainParams: added TIETwainParams.Country property
- Twain: now it is possible to set language and country of dialog (when available)
- hyieutils: added iegAutoFragmentBitmap public field
- TImageEnMView: now clicking on current visible image (when DisplayMode=grid) select it
- TImageEnView: added TImageEnView.SelectionGridSize property
- now it is possible to draw rectangular selection grid guides
- FIXED BUG: fixed minor bugs reading/writing XP Exif tags
- TIETIFFHandler: added TIETIFFHandler.MovePage method
- TIETIFFHandler: added TIETIFFHandler.ExchangePage method
- TImageEnProc: now TImageEnProc.Contrast accepts double values
- FIXED BUG: RotateAndCrop ignores "antialias" and "antialiasMode" parameters
- TImageEnView: added TImageEnView.OnViewChanging event
- TImageEnVIew: added TImageEnView.GetMaxViewXY method
- Twain properties: addded TIETwainParams.AutoDiscardBlankPages property
- FIXED BUG: wrong image reading color TIFF with inverted fill order
- TImageEnProc: added TImageEnProc.Reflection method
- added cover-flow style reflection effect
- TImageEnProc: added TImageEnProc.PerspectiveDraw method
- FIXED BUG: EXIF, ISO Speed Ratings is written when unset or written twice
- FIXED BUG: TImageEnProc.MakeTile doesn't save image in Undo stack
- TImageEnProc: added TImageEnProc.ProjectDraw method
- added bitmap projection and perspective drawing primitives
- optimized TIFF-LZW loading
- TImageEnProc: added TImageEnProc.AdjustTemperature method
- added adjust color temperature feature
- FIXED BUG: calling TImageEnView.LayersClear or TImageEnView.LayersMergeAll the background layer become unlocked
- TImageEnView: now it is possible to save layers with non-compressed native format (-2 option instead of -1)
- FIXED BUG: zooming with mouse wheel on negative placed screens produces wrong results
- TIESelectionOptions: added iesoRightButtonTerminatePolySelect value
- now it is possible to terminate a polyline selection using right mouse button (optional)
- TIETwainParams: added TIETwainParams.ShowSettingsOnly property
- TIETwainParams: added TIETwainParams.SourceSettings property
- Twain: now it is possible to open scanner dialog only to specify settings (without acquire images)
- Twain: now it is possible to save/load all (supported and unsupported) scanner settings to file or stream
- TIETIFFHandler: added TIETIFFHandler.LittleEndian property
- TIETIFFHandler: added TIETIFFHandler.Version property
- TIETIFFHandler: now is able to handle HDPhoto files
- now FindFileFormat/FindStreamFormat detects Microsoft HDPhoto image format
- TIETIFFHandler: now handles correctly EXIF and EXIF/GPS tags
- TImageEnProc: added TImageEnProc.IsClipboardAvailable method
- TImageEnView: SetNavigator, added "options" parameter
- now it is possible to zoom navigator rect using mouse wheel
- TImageEnVect: added TImageEnVect.ObjIsClipboardAvailable method
- TIETIFFHandler: added TIETIFFHandler.InsertPage method
- now it is possible to create TIFF from scratch using TIETIFFHandler
- now it is possible to copy pages among TIETIFFHandler objects
- TIETIFFHandler: added TIETIFFHandler.CopyTag method
- now it is possible to extract (or write) a single page from TIFF using TIETIFFHandler
- TImageEnView: added TImageEnView.IsNavigator property
- TIETIFFHandler, WriteFile: added "page" optional parameter
- TImageEnView: added TImageEnView.UpdateReason property
- improved TImageEnView navigator performance
- TImageEnIO: added TImageEnIO.InjectTIFFEXIF method
- now it is possible to inject EXIF in a TIFF file or stream
- FIXED BUG: TImageEnProc.RadialStretch, OnProgress percentage is wrong
- added iegWICAvailable public field
- TIOParamsVals: added TIOParamsVals.WMP_ImageQuality property
- TIOParamsVals: added TIOParamsVals.WMP_Lossless property
- TImageEnIO: added TImageEnIO.LoadFromFileWMP method
- TImageEnIO: added TImageEnIO.LoadFromStreamWMP method
- TImageEnIO: added TImageEnIO.SaveToFileWMP method
- TImageEnIO: added TImageEnIO.SaveToStreamWMP method
- supported loading/saving of Microsoft HD Photo (WMPhoto) file format (requires Windows XP (SP2) with .Net 3.0, Windows Vista)
- add new classes TIEWICReader and TIEWICWriter to support Microsoft Windows Imaging Component (requires Windows XP (SP2) with .Net 3.0, Windows Vista)
- TImageEnVect: now antialiasing is active also with softshadow
- TIEBitmap: added TIEBitmap.MergeWithAlpha method
- TIEBitmap: added TIEBitmap.Create overload
- added iewic unit
- FIXED BUG: memory leak in TImageEnProc.Wave when amplitude=0 and wavelength=0 (the default in image processing dialog)
- iegUseDefaultFileExists: now default is -false-, meaning ImageEn will use GetFileAttributes instead of FileExists
- TIEBitmap: added TIEBitmap.Write method
- TIEBitmap: added TIEBitmap.Read method
ImageEn 3.0.2 (23 OCT 2008)
- now TImageEnMView can load preview of IEV, ALL and LYR ImageEn formats
- TIESelectionOptions: added iesoRightButtonSelectLayers value
- now selection of objects with penWidth>1 works better
- BUG: fixed bug updating component inside OnCreate event
- BUG: fixed bug in MedianFilter
- optimized about 2x MedianFilter
- TImageEnMView.FillFromDirectory: added ExcludeExtensions parameter
- TIOParamsVals: added TIOParamsVals.OriginalWidth property
- TIOParamsVals: added TIOParamsVals.OriginalHeight property
- TImageEnMIO: added TImageEnMIO.SaveToFileICO method
- TImageEnMIO: added TImageEnMIO.SaveToStreamICO method
- now it is possible to save ICO using TImageEnMIO (or TImageEnMView.MIO)
- TImageEnView: added TImageEnView.LayersSelectConstrains property
- TImageEnView: added TImageEnView.BeginPostFrames method
- TImageEnView: added TImageEnView.EndPostFrames method
- now it is possible to send frames from a TImageEnView to another, with delay and a specific time intervals
- TIERulerBox: added TIERulerBox.Inverted property
- TIERulerBox: added TIERulerBox.ScrollRate property
- TIEUndoSource: added TIEUndoSource.ieuObjectsAndLayers value
- BUG: fixed bug loading DICOM, with lossless jpeg encoding
- BUG: fixed bug displaying layers box and grips
- BUG: fixed math rounding problems displaying multiple layers
- TIFF: added support for planar CMYK (8 bit)
- Delphi 2009 compatibility
- BUG: fixed bug with miScroll and multiple layers
- TImageEnView: added UnLockUpdateEx mehotd
- TImageEnMView: added two overloads to TImageEnMView.AppendImage method
- TImageEnMView: added TImageEnMView.RemoveBlankPages method
- BUG: fixed math rounding problems in Bicubic/Bilinear resampling methods
- TImageEnMView: TImageEnMView.SetImageFromFile added SourceImageIndex optional parameter
- TImageEnMView: TImageEnMView.SetImageFromStream added SourceImageIndex optional parameter
- TImageEnMIO: added TImageEnMIO.AllowMalformedPages property
* compatibility issues:
- TIEFileFormatInfo is a class instead of a record, so it must be created and sent to IEFileFormatADD
- several demos could raise warnings or not compile under Delphi 2009
ImageEn 3.0.1 (7 Aug 2008)
- BUG FIX: now preview dialog is correctly displayed under Vista
- BUG FIX: preview dialog is slow on resizing
- BUG FIX: AV when enough memory is available to allocate a large bitmap
- improved GIF loading speed
- supported filtered resampling for ie8g images
- TImageEnView: added TImageenView.LayersRotateStep property
- now pressing SHIFT rotating a layer, it is rotated in steps of LayersRotateStep values (default 45 degrees)
- BUG FIX: fixed memory leak loading some RAW formats
- added support for Turkish language
- BUG FIX: fixed memory leak in SeparateObjects and CreatePolygonsFromSelection
- TImageEnView: added TImageEnView.SetViewXYSmooth method
- TImageEnView: added TImageEnView.SmoothScrollValue property
- TIEMouseInteractItems: added TIEMouseInteractItems miMovingScroll value
- now it is possible to smooth scroll moving mouse (without click and drag)
- TImageEnView: added TImageEnView.SelectColors method
- BUG FIX: fixed bug on LayersMergeAll and LayersDrawTo with negative PosX and PosY and without Crop activated
- TImageEnProc: added TIEBitmap.CopyPaletteTo method
- enhanced quality of Rotate method (without antialias)
- TImageEnView: added LayersRotationAntialias property
- TImageEnView: fixed bug setting DisplayGrid=true
- TImageEnProc: added CompareHistogramWith method
- TIOParamsVals: added TIOParamsVals.EXIF_XPRating property
- TMsgLanguage: added msKorean value
- BUG: fixed memory leak saving PNG with text comments
- restored default JPEG_DCTMethod = ioJPEG_ISLOW
- BUG: sometime multilayer PSD cannot be handled correctly by Photoshop
- TImageEnVect: added TImageEnVect.ObjFontQuality property
- supported loading EXIF from Photoshop CS3
- TImageEnVect: added TImageEnVect.ObjEnableFastDrawing property
- added sample capture\captFromIPCamera to show how capture live frames from Gran IP Camera III
- TIOParamsVals: added TIOParamsVals.JPEG_CromaSubsampling property
- now it is possible to enhance jpeg quality with TIOParamsVals.JPEG_CromaSubsampling
- enhanced jpeg quality when TIOparamsVals.JPEG_Quality is 100
- improved speed of filtered resampling routines (like rfTriangle,etc..) and filtered display
- supports for ICC profiles reading PSD files
- TIOParamsVals: added TIOParamsVals.TIFF_GetTile property
- now it is possible to load a single tile from a tiled TIFF
- BUG: fail to read alpha channel from some PNG files
- BUG: fixed several bugs reading RAW formats
- added a strategy to allocate large images in fragmented blocks (to avoid out of memory on fragmented memory)
- BUG: now polyline lines are round joined
- BUG: saving GIF (with TImageEnIO) doesn't work with unicode file names
- TImageEnView: added FixRotationBorders property
- TIFF: now supported LZW compressed TIFF with inverted fill order
- TIFF: supported extra channels with premultipled and unassociated alpha channel
ImageEn 3.0.0 (23 Feb 2007)
- now it is possible to load IPTC from DNG (using external plugin)
- added layers mouse action hints
- now it is possible to encrypt/decrypt an image (limitations for lossy file formats)
- now it is possible to rotate layers with mouse
- TImageEnMView, TImageEnVect: now it is possible to set shadow intensity and color
- now selection grips can be circles (now the default) and boxes
- now image processing dialog has a "reset" button (allowing hard and soft reset)
- now image processing preview is correctly displayed at dpi different by 96
- now it is possibile to print multiple images per sheet
- now it is possible to log operation executed inside previews dialog
- TImageEnMIO.Params[].FileName: now is filled for all file formats
- added three binarize algorithms (mean, median and min/max mean)
- improved CMYK->RGB and RGB->CMYK conversion using an embedded profile
- improved DICOM compatibility
- improved scrolling speed of layers with mask
- now it is possible to load URL from secure http (https://...)
- now it is possible to load URL from FTP (ftp://...)
- now TImageEnView, TImageEnMView and inherited components has OnEnter and OnExit events
- improved IPTC compatibility
- TImageEnVect: now filled and closed polygons can be selectable also inside they area
- now TImageEnMView displays file icon instead of question mark for unknown files
- now border of iekLINELABEL objects are modificable
- now iekLINELABEL can be selected also clicking on text
- now iekLINELABEL ending position (text) can be changed without change the whole object position
- BUG FIX: fixed artifacs in BumpMapping method
- BUG FIX: fixed bug loading URL in TImageEnIO
- BUG FIX: fixed bug enabling multiselect and SetPresetThumbnailFrame
- BUG FIX: fixed memory leak loading DICOM
- BUG FIX: now WIA trasnfers with TImageEnMIO fire OnProgress events
- BUG FIX: fixed memory leak reading DICOM images (lossless jpeg encoded)
- BUG FIX: fixed bug saving PSD files (sometime PSD are unreadable by Photoshop)
- BUG FIX: fixed bug in TImageEnMView.LoadSnapshot and SaveSnapShot
- fixed several minor bugs
- TImageEnVect: added ObjIsVisible method
- added iegdiplus unit
- TImageEnView: added EnableInteractionHints property
- TImageEnProc: added Encrypt method
- TImageEnProc: added Decrypt method
- TIELayer: added Rotate property
- TIELayer: added RotateCenterX property
- TIELayer: added RotateCenterY property
- TImageEnView: added LayersFixRotations method
- TImageEnView: added LayersFixBorders method
- TIEVSoftShadow: added Intensity property
- TIEVSoftShadow: added ShadowColor property
- added iegUseGDIPlus public field
- TImageEnView: added SetLayersGripStyle method
- TImageEnVect: added ObjGripShape property
- TImageEnMIO: added PrintImages method
- TImageEnMView: added MoveSelectedImagesTo
- TImageEnProc: added PreviewsLog property
- TImageEnMView: added SelectionAntialiased property
- TImageEnView: added HighlightedPixel property
- TImageEnProc: added ConvertToBWLocalThreshold method
- imageenio unit: added iegUseCMYKProfile public field
- imageenio: added iegMaxImageEMFSize public field
- TImageEnMView: added OnPlayFrame event
- TIOParamsVals: added EnableAdjustOrientation property
- TImageEnView: added LayersRotationFilter property
- TImageEnMView: added LoadIconOnUnknownFormat property
- TImageEnView: added MoveContentTo method
- TImageEnVect: added ObjLabelBorder property
- changed MinFileSize and IEDefMinFileSize from integer to int64
- ImageResize: added optional parameter FillAlpha
- TIEMouseInteractItems: added miRotateLayers value
- TIELayerEvent: added ielRotating value
- TIELayerEvent: added ielRotated value
- now TImageEnVect.ObjAntialias is true for default
- disabled TImageEnVect.ObjGraphicRender modality when gdiplus is available
- SetSelectionGripStyle: added Shape parameter
- TImageEnVect: renamed GripPen, GripBrush, GripImage and GripSize to ObjGripPen, ObjGripImage, ObjGripBrush and ObjGripPen
- TImageEnVect: documented DrawOneObjectToBitmap method
- TPRPreviewsParamsItems (PreviewsParams property): added prppShowResetButton and prppHardReset values
- TImageEnView: now EnableAlphaChannel is true for default
- AutoCrop: returns the cropped rectangle
- AutoCrop: added DoCrop optional parameter
- ExecuteOpenDialog: added Title optional parameter
- ExecuteSaveDialog: added Title optional parameter
- ExecuteOpenDialog: added Title optional parameter
- ExecuteSaveDialog: added Title optional parameter
- now Sort accepts methods other than static functions
- FillFromDirectory: added AllowUnknowFormats parameter
ImageEn 2.3.2 (26 Sep 2007)
- TOpenImageEnDialog: added OnPreviewFile event
- TImageEnProc: added AutoImageEnhance3
- BUG: fixed bug in TImageEnMView.LoadSnapshot
- BUG: TImageEnIO.InjectJpegEXIF discards XMP tags
- BUG: TImageEnIO.InjectJpegIPTF discards XMP tags
- TImageEnIO: support for Unicode filenames
- TImageEnMView: support for Unicode filenames
- TImageEnView: added LayersCreateFromClipboard method
- TImageEnView: added SoftCrop property
- TImageEnView: added SoftCropValue property
- fixed several minor bugs
- added readonly baseline DICOM support
- added iedicom unit
- TIOFileType: added ioDICOM value
- TIOParamsVals: added DICOM_Tags property
- TIEDICOMTags
- TImageEnIO: added LoadFromFileDICOM method
- TImageEnIO: added LoadFromStreamDICOM method
- TImageEnMIO: added LoadFromFileDICOM method
- TImageEnMIO: added LoadFromStreamDICOM method
- now TImageEnProc.ShiftChannel supports ie48RGB pixel format
- TImageEnView: LayersFixSizes added -layer- parameter
- TImageEnProc: added CutTransparentBorder method
- TImageEnView.FindLayerAt: added SelectablesOnly optional parameter
ImageEn 2.3.1 (5 Aug 2007)
- now it is possible to save a snapshot (save images, caches, texts...) in a single file to instantly reload the component content
- now ImageEn can save DPI info inside jpeg saved with Photoshop and marked in APP13 tag
- now GammaCorrect applies also to 16 bit RGB images
- optimized memo objects display at high zoom rates
- Jpeg2000: now it is possible to save alpha channel. Warning: loading of alpha channel from jpeg2000 is still not possible
- now quote (iekRuler with quoting option) is more recise, also on zooming
- now angle objects points are editable
- TImageEnProc: added an overload of Crop method
- now ImageEn can undo/redo layers modifications made by user (resize, moving)
- enhanced Windows Vista compatibility
- TImageEnProc.Resample: now supports ie8g, ie16g, ie48RGB when filter is rfBicubic and rfBilinear
- added C++Builder 2007 compatibility
- BUG: fixed bug saving GIF loaded from another GIF in TImageEnMIO and with 1 bit color depth
- BUG: fixed bug with empty Bitmap vectorial objects and GraphicRender=true
- BUG: memo objects, now countours are more accurated
- BUG: open dialog, problems viewing vectorial objects and layers
- BUG: now ObjMemoCharsBrushStyle is correctly set when load imaging annotations
- BUG: fixed bug in CopySelectedObjectsTo, CopyObjectTo and CopyAllObjectsTo, copying bitmaps
- BUG: TImageEnMView.IsSelected doesn't return true when multiselecting is false
- BUG: fixed memory leaks in TImageEnVect
- BUG: fixed bug reading PSD thumbnail
- BUG: now OnZoomIn is fired when mouse interact contains miSelectZoom
- BUG: EXIF_GPSVersionID is saved with correctly data type
- BUG: fixed memory leak loading jpegs/tiff with gps info
- BUG: fixed memory leak reading CRW files
- BUG: now some icc embedded in jpeg are saved correctly
- BUG: fixed memory leak in TRulerBox
- TImageEnMView: added HighlightColor property
- TImageEnMView: added HighlightTextColor property
- TImageEnVect: added ObjRulerQuoteHorizon property
- TImageEnVect: added ObjAngleShowSmall property
- TImageEnMView: added SaveSnapshot method
- TImageEnMView: added LoadSnapshot method
- TIOParamsVals: added RAW_ExtraParams property
- TImageEnMView: added GetImageToFile method
- TImageenMView: added GetImageToStream method
- TIOParamsVals: added PSD_HasPremultipliedAlpha property
- TImageEnMIO: added PrintPreviewParams property
- TImageEnMIO: added LoadFromFiles method
- TIEPixelFormat: added ie32RGB
- TIEBitmap: added SynchronizeRGBA method
- imageenio unit: added iegColorReductionAlgorithm public field
- imageenio unit: added iegColorReductionQuality public field
- TImageEnVect: added SetObjBitmapFromStream
- TIEDirectShow: added DVDPlayAt method
- TIEDirectShow: added DVDGetProperty method
- TIEDirectShow: added DVDPlayAdvanced method
- TIEDirectShow: added DVDShowMenu method
- TIEUndoSource: added ieuLayer value
- TImageEnView: added LayersAutoUndo property
- TIEPolylineEndingMode: added ieemMouseUp value
- TIEWia: added ConnectedDeviceIndex property
- TImageEnMIO: added PrintImage method
- TImageEnMIO: added PrintImagePos method
- TImageEnMIO: added OnAfterAcquireBitmap method
- TOpenImageEnDialog, TOpenImageEnDialog: added OnCreateCustomControls event
- TOpenImageEnDialog, TOpenImageEnDialog: added OnDestroyCustomControls event
- TOpenImageEnDialog, TOpenImageEnDialog: added PicturePanel property
- TOpenImageEnDialog, TOpenImageEnDialog: added InfoPanel property
- added iegUseRelativeStreams gloabal variable
- TIEBitmap: added RenderToCanvasWithAlpha method
- added iedicom unit
- TImageEnProc.CropSel: added TransparencyOnly parameter
- TImageEnProc.AutoCrop2: now returns the area to crop or cropped. Also added a parameter to disabled cropping
- TImageEnProc.DoPreviews: added FormLeft and FormTop parameters
- TImageEnMIO.ExecuteOpenDialog: added MultiSelect parameter
- TImageEnProc.CopyToClipboard,SelCopyToClip,SelCutToClip: now returns a boolean value
- TImageEnProc.Undo: added AutoRedo parameter
- TImageEnProc.UndoAt: added AutoRedo parameter
ImageEn 2.3.0 (12 Apr 2007)
- BUG: now IPTC tags in some jpeg images are read correctly
- TImageEnMView: added OnImageDraw2 event
- BUG: now read/write of EXIF_GPSAltitudeRef tag is corrected
- BUG: opening existing IEV files
ImageEn 2.2.9 (2 Apr 2007)
- BUG: TImageEnVect, works badly when an upper layer is selected
- TIETwainProperties: added Highlight property
- TIETwainProperties: added Shadow property
- TImageEnProc.AddSoftShadow: added Intensity parameter
- TIOFileType: added ioIEV, ioLYR, ioALL file types
- now FindStreamFormat and FindFileFormat detects LYR (TImageEnView layers), IEV (TImageEnVect objects) and ALL (LYR+IEV) formats
- TImageEnIO: now LoadFromFileFormat can load ioALL, ioIEV and ioLYR formats (when attached or embedded in TImageEnVect or TImageEnView components)
- TImageEnIO: now LoadFromFile can load ioALL, ioIEV and ioLYR formats (when attached or embedded in TImageEnVect or TImageEnView components)
- TImageEnIO: now LoadFromFileAuto can load ioALL, ioIEV and ioLYR formats (when attached or embedded in TImageEnVect or TImageEnView components)
- TImageEnIO: now LoadFromStream can load ioALL, ioIEV and ioLYR formats (when attached or embedded in TImageEnVect or TImageEnView components)
- TImageEnIO: now LoadFromStreamFormat can load ioALL, ioIEV and ioLYR formats (when attached or embedded in TImageEnVect or TImageEnView components)
- now open dialog can read ALL, IEV and LYR formats
- TIEBackgroundStyle: added iebsPhotoLike value
- BUG: read of uncompressed black/white TIFF with FillOrder=2
- BUG: TImageEnMView, read thumbnails of WMF/EMF is very slow
- BUG: TImageEnMIO: fixed bug in LoadFromStreamFormat
- BUG: TImageEnVect: invisible objects now aren't selectable
- now AddSoftShadow handles correctly semi transparent images, antialiased images and images with holes
- BUG: AutoCrop2 not can handle large images
ImageEn 2.2.8 (15 Feb 2007)
- added IEAVIGetCodecs public function (imageenio unit)
- added IEAVIGetCodecsDescription public function (imageenio unit)
- new functions to read available AVI Codecs
- updated zlib to 1.2.3 version
- updated PNG lib to 1.2.14 version
- TIEDirectShow: added RenderVideo property
- TIEDirectShow: added SetVideoRenderRect method
- TIEDirectShow: added GetVideoRenderRect method
- TIEDirectShow: added GetVideoRenderNativeSize method
- TIEDirectShow: added DVDInputPath property
- TIEDirectShow: added DVDSelectAt method
- TIEDirectShow: added DVDActivateButton method
- now it is possible to play and grab frames in true real time a multimedia file, camera and DVD (DirectX 9 and WinXP required)
- now it is possible to render audio when grab frames (DirectX 9 and WinXP required)
- added new directshow examples: "VMR_video", "VMR_camera", "VMR_DVD", "VMR_capture"
- TImageEnProc: added Deinterlace method
- TImageEnView: added OffScreenPaint property
- now ImageEn is able to save back TIFF ICC profile, when not applied
- TImageEnView: added SaveSelectionToFile method
- TImageEnView: added LoadSelectionFromFile method
- TImageEnView: added MergeSelectionFromFile method
- BUG: ICO, fixed bug reading transparency of 32 bit icons
- TImageEnProc: added EdgeDetect_Sobel method
- TImageEnProc: added AutoCrop2 method
- TImageEnVect: now ObjUndoLimit can be 0
- TImageEnProc: now UndoLimit can be 0
- BUG: fixed bug in MoveImage when there is not selected image
- BUG: fixed bug reading jpeg in RGB color space and ICC profile
- now PasteFromClipboard can paste PNG format
- TImageEnIO: now Params.FileType is updated when SaveToFileXXX are called
- TIEDirectShow: added ReferenceClock property
- TIEDirectShow: added ClockErrorTolerance property
- TIETwainParams: added CapabilitiesValid property
ImageEn 2.2.7 (10 Dec 2006)
- unit hyiedefs: added iegDialogsBackground variable
- now background dialogs is selectable (solid, paper and metal Mac style)
- added overload of TImageEnProc.SeparateObjects
- TIFF: supported Abode-Style deflate compression (read only)
- TIOTIFFCompression, added ioTIFF_Deflate
- TIOParamsVals: added DefaultICCProfile property
- now it is possible to load an image specifing ICC profile (if not provided by the file)
- TImageEnProc: added OnSaveUndo event
- TImageEnView: added OnSaveUndo event
- TIEUndoSource: added ieuObject value
- TImageEnVect: added ObjUndoMode property
- now it is possible share undo/redo with TImageEnVect objects (look at ObjUndoMode)
- TImageEnMView: added ImageEnVersion property
- TIOParamsVals: added PSD_ReplaceLayers property
- TImageEnMIO: LoadFromStream method
- TImageEnMIO: LoadFromStreamFormat method
- TImageEnView: added LayersFixSizes method
- BUG: fixed "oleaut32" library not found
- TImageEnVect: added AllowOutOfBitmapPolylines property
- now polylines drawing out of bitmap is not allowed (unless AllowOutOfBitmapPolylines is true)
- read of XMP tags from TIFF saved using PhotoShop for Macintosh
- now temporary files are removed also when application crashes or is halted
- TIFF: supported loading of 2 and 7 bits per sample gray scale images
- BUG: bug when SelectionOptions contains iesoMarkOuter on upper layers
ImageEn 2.2.6 (8 Nov 2006)
- BUG: fixed bug in TImageEnVect.CreatePolygonsFromSelection method
- TImageEnProc: added SeparateObjects method
- added imageprocessing1\SeparateObjects example
- TIEDirectShow: added GetSupportedTVStandards method
- TIEDirectShow: added SetTVStandard method
- TIEDirectShow: added SetVCRHorizontalLocking method
- TImageEnProc: added RotateAndCrop method
- BUG: fixed bug in ParamsFromFile with external plugins (RA)
- BUG: fixed bug writing 4 bit ICO files
- now when an object is no resizeble, the grips aren't painted
- BUG: now objects aspect ratio works
- TIOParamVals: added TIFF_SubIndex property
- TIOParamsVals: added TIFF_ByteOrder value (readonly)
- TIFF: now it is possible to read images located in subifd
- BUG: fixed random bug on clipboard operations
- BUG: TImageEnMView, now supports all pixel formats
- TImageEnVect: now OnUserSelectObject is called after the object is selected
ImageEn 2.2.5 (7 October 2006)
- added multipage samples folder
- TImageEnMView: now MoveImage doesn't remove multiselection
- TIFF: added ZIP compression
- TIOTIFFCompression: added ioTIFF_ZIP value
- Params: added TIFF_ZIPCompression property
- BUG: now EXIF_XResolution and EXIF_YResolution contain non-truncated floating point values
- BUG: fixed bug using TIEBitmap.GetRow/FreeRow
- BUG: fixed bug in Rotation tab of image processing dialog
- BUG: fixed bug in TImageEnView.CenterImage method
- TImageEnIO: added ReplaceStreamTIFF method
- added Danish language
- imageenio.JpegLosslessTransform added UpdateExif parameter
- imageenio.JpegLosslessTransformStream added UpdateExif parameter
- imageenio unit: added JpegLosslessTransform overload
- BUG: TImageEnMView: fixed bug setting ScrollBars property at runtime
- TIFF: now offset values are word aligned as TIFF standard requires
- BUG: fixed bug reading alpha channel in GIF files
- PNG: now ImageEn can read correctly 16 bit gray scale
- TImageEnVect: added ObjAspectRatio property
- now it is possible to set aspect ratio for each object, individually
- now aspect ratio works on inserting bitmaps (when enabled)
- TImageEnProc.DoPreviews: added IsResizeable, FormWidth and FormHeight parameters
- now image processing dialog is resizeable
- BUG: TImageEnProc.ResampleTo calls SaveUndo
- TImageEnVect: added OnUserSelectObject event
- TImageEnVect: added OnUserDeselectObject event
- TImageEnVect: added GripImage property
- now it is possible to define a picture instead of standard objects grips
- now TImageEnIO.LoadFromFile sets Aborting=true and call OnFinishWork when the extension format is not recognized
- BUG: fixed bug in TIETIFFHandler, writing values on Motorola word format
- now when TImageEnMView.ThumbnailsBackgroundStyle is iebsCropShadow the actual background is read
- ieopensavedlg, TIEDBorderStyle: added iepsSoftShadow value
- imageenview, TIEBackgroundStyle: added iebsSoftShadow value
- BUG: now Params.GPS_VersionID contains right string value
- TImageEnVect: added new overload of AddNewObject method
- BUG: fixed bug in TImageEnMView.Sort
- TIEBitmap.RemoveAlphaChannel: added Merge and BackgroundColor parameters
- TIEBitmap: added CopyFromDIB method
- TIEBitmap: added CopyFromDIB method
- TIEBitmap: added CreateDIB method
- TIEBitmap: added CreateDIB method
- TImageEnVect: added ObjBoxInnerSelectable property
ImageEn 2.2.4 (13 Aug 2006)
- added ioPSD const in imageenio unit
- TImageEnIO: added LoadFromFilePSD method
- TImageEnIO: added LoadFromStreamPSD method
- now ImageEn supports read and write of Adobe Photoshop PSD images with single and multiple layers
- TImageEnIO.Params: added PSD_LoadLayers property
- TIOParamsVals: added EXIF_ExposureMode property
- TIOParamsVals: added EXIF_WhiteBalance property
- TIOParamsVals: added EXIF_DigitalZoomRatio property
- TIOParamsVals: added EXIF_FocalLengthIn35mmFilm property
- TIOParamsVals: added EXIF_SceneCaptureType property
- TIOParamsVals: added EXIF_GainControl property
- TIOParamsVals: added EXIF_Contrast property
- TIOParamsVals: added EXIF_Saturation property
- TIOParamsVals: added EXIF_Sharpness property
- TIOParamsVals: added EXIF_SubjectDistanceRange property
- TIOParamsVals: added EXIF_ImageUniqueID property
- BUG: fixed bug reading PNG with 1 bit depth and color map
- BUG: not animated gif are readable by Internet Explorer
- added unit iepsd
- TImageEnDBVect: added OnUnableToLoadImage event
- TImageEnDBView: added OnUnableToLoadImage event
- TImageEnView.LoadSelectionFromStream: added Options parameter
- TImageEnView.RestoreSelection: added Remove parameter
- TImageEnView.RestoreSelection: added Options parameter
- Now it is possible to share the same selection among layers
- Params: added BMP_HandleTransparency property
- TImageEnView: added LayersDrawTo method
- TImageEnView: added OnTransitionStep event
- Params.InputICCProfile: adde Copyrights and Description properties
- Params: added XMP_Info property
- now ImageEn is able to read and write XMP tags from Jpeg, TIFF and PSD file formats
- TImageEnIO: added SaveToStreamPSD method
- TImageEnIO: added SaveToFilePSD method
- TImageEnMView.FillFromDirectory: added Limit parameter
- imageenio unit: added IEFindNumberWithKnownFormat function
- TImageEnIO.Params: added following new properties:
EXIF_GPSVersionID
EXIF_GPSLatitudeRef
EXIF_GPSLatitudeDegrees
EXIF_GPSLatitudeMinutes
EXIF_GPSLatitudeSeconds
EXIF_GPSLongitudeRef
EXIF_GPSLongitudeDegrees
EXIF_GPSLongitudeMinutes
EXIF_GPSLongitudeSeconds
EXIF_GPSAltitudeRef
EXIF_GPSAltitude
EXIF_GPSTimeStampHour
EXIF_GPSTimeStampMinute
EXIF_GPSTimeStampSecond
EXIF_GPSSatellites
EXIF_GPSStatus
EXIF_GPSMeasureMode
EXIF_GPSDOP
EXIF_GPSSpeedRef
EXIF_GPSSpeed
EXIF_GPSTrackRef
EXIF_GPSTrack
EXIF_GPSImgDirectionRef
EXIF_GPSImgDirection
EXIF_GPSMapDatum
EXIF_GPSDestLatitudeRef
EXIF_GPSDestLatitudeDegrees
EXIF_GPSDestLatitudeMinutes
EXIF_GPSDestLatitudeSeconds
EXIF_GPSDestLongitudeRef
EXIF_GPSDestLongitudeDegrees
EXIF_GPSDestLongitudeMinutes
EXIF_GPSDestLongitudeSeconds
EXIF_GPSDestBearingRef
EXIF_GPSDestBearing
EXIF_GPSDestDistanceRef
EXIF_GPSDestDistance
EXIF_GPSDateStamp
- now ImageEn is able to read/write EXIF-GPS tags
- now Rotate supports all pixel formats (some without antialias)
- Params: added UpdateEXIFThumbnail method
- TImageEnMView: added OnFinishWork event
- BUG: TImageEnView.FindLayerAt: now doesn't return a layer that is not visible
- TImageEnVect: added PolylineEndingMode property
- no more support for Delphi3/Delphi4/C++Builder3/C++Builder4
- better support for TIFF (JPEG compressed) saved using Windows 2000/98 Imaging
- ievect unit: added iegMemoShortCuts public variable to specify memo text short cut keys
- now it is possible define custom short cut keys in Memo objects
- BUG: fixed bug writing long EXIF info
- TImageEnProc.IPDialogParams: added SetDefaultParams method
- TIFF: supported read of YCbCr (2:1) images
- BUG: fixed bug reading MEDIAFILE_FrameDelayTime property
- BUG: fixed memory fragmentation reading jpeg thumbnails (affected TImageEnMView)
- TIEBitmap.MemoryAllocator: added iemaAuto value (undocumented)
- BUG: fixed bug writing TIFF 8 bit paletted images
- TIEWia: added IsItemDeleted method
- TIEWia: added DeleteItem method
- now it is possible to delete WIA items (camera images)
- BUG: now Undo/Redo uses the right original layer
- BUG: fixed a memory leak using external plugins
- BUG: fixed bug writing PS (PostScript) files
- TImageEnView: added LayersMergeAll method
- TImageEnVect: added CreatePolygonsFromSelection method
- TIESpecialKeyEvent: added Shift parameter
- TImageEnIO: added overload of ImportMetaFile method
- now TImageEnProc.PasteFromClipboard can paste WMF/EMF metafile clipboard format
- TImageEnVect: added ObjMemoCharsBrushStyle property
- TIFF: support reading of ZIP (ZimpLevel) compressed images
ImageEn 2.2.3 (7 Mar 2006)
- now ImageEn is able to save back EXIF thumbnails (for jpegs)
- optimized PNG loading (memory optimization)
- TImageEnProc: added Intensity method
- TImageEnProc: added Contrast3 method
- BUG: fixed bug reading old IEV files
- TImageEnVect: added ObjTextEditable property
- TImageEnVect: performing miPutBox and pressing CTRL draws a square
- TIETwainParams: added Filter property (ICAP_FILTER capability)
- BUG: fixed minor bugs
- experimental: added Chinese (simplified and traditional) language only for dialogs
- TIELayer: added DrawOuter property
- BUG: fixed bug acquiring images using WIA under BDS 2006
- BUG: fixed bug selecting right/bottom sides with zoom>100
- TImageEnProc: added AutoConvertFormat property
- Image Processing: now ImageEn automatically converts PixelFormat when needed
- now it is possible to change font name and size of Angle objects
ImageEn 2.2.2 (19 Feb 2006)
- BUG: fixed bug writing jpegs in CMYK format with ICC profile
- TwainParams: added AutoDeskew property
- TwainParams: added AutoBorderDetection property
- TwainParams: added AutoBright property
- TwainParams: added AutoRotate property
- TIEBitmap: added CalcRAWSize method
- TIEBitmap: added SaveRAWToBufferOrStream method
- TIEBitmap: added LoadRAWFromBufferOrStream method
- TImageEnProc: copy/paste now can copy/paste using internal format (preserving pixel format and alpha channel)
- TImageEnProc.CopyToClipboard: added UseInternalFormat parameter
- TImageEnProc.SelCopyToClip: added UseInternalFormat parameter
- TImageEnProc.SelCutToClip: added UseInternalFormat parameter
- TImageEnProc.SelPasteFromClipStretch: added MergeAlpha parameter
- TImageEnProc.SelPasteFromClip: added MergeAlpha parameter
- TImageEnProc.PointPasteFromClip: added MergeAlpha parameter
- TIEBitmap: added CopyWithMask1 method
- TIEBitmap: added CopyWithMask2 method
- TIEBitmap: added AutoCalcBWValues method
- now ImageEn is able to copy/paste with alpha channel (using an internal format)
- TIELayer: added Selectable property
- now it is possible to make a layer un-selectable
- TwainParams: added UseMemoryHandle property to enhance twain compatibility
- Added Finnish language
- TIOPrintPreviewParams: added SaveToFile method
- TIOPrintPreviewParams: added LoadFromFile method
- TIOPrintPreviewParams: added SaveToStream method
- TIOPrintPreviewParams: added LoadFromStream method
- TImageEnProc: added Threshold2 method
- TImageEnProc: optimized Contrast method
- TImageEnProc: optimized IntensityRGBall method
- TImageEnProc: optimized WhiteBalance_GrayWorld method
- TImageEnProc: optimized WhiteBalance_coef method
- TImageEnProc: optimized WhiteBalance_WhiteAt method
- TImageEnProc: optimized WhiteBalance_AutoWhite method
- TImageEnIO: now save to file methods updated Params.FileName property
- Optimized layer masks
- TImageEnView: added OnDrawLayerBox event
- TImageEnView: added OnDrawLayerGrip event
- TImageEnView: now LayersSaveToXXX support compressed native (preserve pixelformat and alpha) image format (-1)
- added Farsi language (msFarsi)
- TImageEnVect: added ObjMemoHasBitmap property
- now iekMemo objects can have a background bitmap and margins
- fixed bug loading RAWs in Delphi 2005 and Delphi 2006
- TImageEnVect: added ObjMemoMarginLeft property
- TImageEnVect: added ObjMemoMarginTop property
- TImageEnVect: added ObjMemoMarginRight property
- TImageEnVect: added ObjMemoMarginBottom property
- TImageEnVect: added OnBeforeDrawObject event
- TImageEnVect: added OnAfterDrawObject event
- TImageEnVect: added ObjUserData property
- TImageEnVect: added ObjUserDataLength property
- TImageEnProc: added DisposeChannels method
- TImageEnView: now VisibleSelection property works
ImageEn 2.2.1 (8 Dec 2005)
- TImageEnProc: added IPDialogParams property
- TImageEnProc: now preview dialog saves all parameters
- TImageEnProc: now it is possible to get/set/load/save image processing dialog parameters
- TImageEnView: added TransitionRectMaintainAspectRatio property
- TImageEnView: added DisplayImageRect method
- TwainParams: now Rotation is TIEDoubleList instead of double
- TImageEnView: added OnTransitionStop event
- TImageEnView: added AbortTransition method
- TImageEnView: added TransitionTiming property
- now it is possible to set transition timing as linear, logarithmic and exponential
- TIEMText (TImageEnMView.TopText, BottomText, etc...): added BackgroundStyle property
- TImageEnMView: added ReloadImage method
- BUG: fixed a memory leak on TImageEnMView
- TImageEnView: added ZoomX property
- TImageEnView: added ZoomY property
- now it is possible to separate vertical zoom and horizontal zoom
- note: not fully supported by all vectorial objects
- now it is possible to stretch images (like TImage)
- note: not fully supported by all vectorial objects
- TImageEnProc: added AutoImageEnhance1 method
- TImageEnProc: added AutoImageEnhance2 method
- added new image enhancement algorithms
- TImageEnProc: added AutoSharp method
- TImageEnView: added Stretch method
- TImageEnMIO: added LoadFromFileFormat method
- TImageEnMIO: added LoadFromFileAuto method
- added CIELab pixel format (ieCIELab)
- imageenio unit: added IEOptimizeGIF procedure
- TImageEnProc: added ShiftChannel method
- TImageEnView: added LayersClear method
- TIELayer (TImageEnView.Layers[]): added Assign method
- TIELayer: added ConvXBmp2Scr method
- TIELayer: added ConvYBmp2Scr method
- TIELayer: added Name property
- TIELayer: added UserDataLen property
- TIELayer: added IsMask property
- now ImageEn supports layer masks (like Photoshop's layer masks)
- TImageEnView.LayersSync: now it is False for default
- TImageEnView: now pixelformat ie8g works also when LegacyBitmap=true
- IELayersMerge: added LayerMask parameter
- added Czech language
- TImageEnView.ZoomSelection: added AspectRatio parameter
- TImageEnView: added ZoomSelectionAspectRatio property
- TImageEnView: now OnLayerNotify occurs only on user (mouse) action
- TImageEnVect.RotateAllObjects: changed behavior. Now it must be executed before Proc.Rotate
- fixed bug in TImageEnVect.RotateAllObjects
- TImageEnProc: added AdjustBrightnessContrastSaturation method
- TImageEnProc: added Contrast2 method
- BUG: fixed bug reading and saving EXIF/TIFF mini strings
- BUG: ResetEXIF now removes EXIF tag from jpegs
- BUG: fixed two memory leaks
- now OnFinishWork/OnProgress is usable when AsyncMode=true
- TImageEnProc: added AdjustSaturation method
- TImageEnProc: added AdjustTint method
- TImageEnProc: added AdjustLumSatHistogram method
- TImageEnMView: added SelectionWidthNoFocus property
- TImageEnMView: added AppendImage2 method
- now selections supports multiple layers
- TImageEnView: added MouseScrollRate property
- TImageEnProc: added OnFinishWork event
- TImageEnView: added OnFinishWork event
- TImageEnMIO: added OnDoPreviews event
- TImageEnView: added LayersCreateFromSelection method
- imageenio unit: added JpegLosslessTransform2 function
- TImageEnVect: added SaveToFileAll method
- TImageEnVect: added SaveToStreamAll method
- TImageEnVect: added LoadFromFileAll method
- TImageEnVect: added LoadFromStreamAll method
- improved layers system
- BUG: fixed several memory leaks
ImageEn 2.2.0 (4 Sep 2005)
- TImageEnMIO.DoPrintPreview: added PrintAnnotations parameter
- TImageEnIO.DoPrintPreview: added PrintAnnotations parameter
- now print preview dialogs can print Wang Annotations
- BUG: fixed bug of AddSelPoint
- BUG: TImageEnMView, fixed bug selecting thumbnails
- TIEMText: added TruncSide property
- BUG: loading ICC from jpeg
- TImageEnMIO.DoPrintPreview: added Caption parameter
- TImageEnIO.DoPrintPreview: added Caption parameter
- BUG: jpeg, icc profile is not removed after it is applied
- Params: added EXIF_Artist property
- Params: added EXIF_XPTitle property
- Params: added EXIF_XPComment property
- Params: added EXIF_XPAuthor property
- Params: added EXIF_XPKeywords property
- Params: added EXIF_XPSubject property
- now ImageEn can read/write XP jpeg/tiff tags (title, comment, author, keywords and subject)
- BUG: now LayersSaveToFile/LayersSaveToStream restores previous current layer
- BUG: setting ImageEnMView.Height=0 causes exception
- TImageEnView: now Background color works also when BackgroundStyle is iebsCropShadow
- TImageEnMIO: added PrintingFilterOnSubsampling method
- TImageEnProc: added Colorize method
- BUG: fixed bug loading interlaced PNG
- removed RightBottomGap property
- now it is possible to set maximum CPU time for selections
- TImageEnView.DelayTimer: negative values specifiy CPU time for selections
- now when the component is not visible the selection doesn't allocate CPU time
- TImageEnProc: added UndoRect method
- imageenio: added IEAddExtIOPlugin function
- now ImageEn supports external (dll) plugins (experimental version)
- Params: added ImageIndex property
- Params: added ImageCount property
- Params: added GetThumbnail property
- optimized viewing when BackgroundStyle is chessboard
- TImageEnView.SelectionOptions (TIESelectionOptions): added iesoSelectTranspLayers value
- now aspect ratio works on all grips when resizing layers
- TImageEnVect: added ObjEditOnNewText property
- TIELayer.Magnify (TIELayerMagnification): added Source property
- TIELayer: added ResampleFilter property
- TIELayer: added UseResampleFilter property
- now magnify layer can get the source image directly from raw background image (layer 0) instead of component canvas
- now ImageEn recognizes (but don't load without a plugin) differences among TIFF and DNG
- BUG: tiff, cannot read palettes with values from 0 to 255
- TIOParamsVals: added ResetEXIF method
- Params (TIOParamsVals): added TIFF_FillOrder property
- now ImageEn can save TIFF with inverted fill order
- TIEWallPaperStyle has moved from iemview to imageenview unit
- TImageEnView: added WallPaper property
- TImageEnView: added WallPaperStyle property
- TImageEnView: now supports a wallpaper
- TIETIFFHandler: added SetValueRAW method
- TIETIFFHandler: added GetValueRAW method
- TImageEnVect: added SaveObjectsToTIFF method
- TImageEnVect: added LoadObjectsFromTIFF method
- TImageEnVect: now can read/write objects in TIFF
- BUG: fixed bug loading compressed TGA
- TImageEnVect: added CopyObjectToBack method
- TImageEnProc: added MakeTile method
- added Japanese language
- TImageEnMIO: added LoadFromURL method.
- TImageEnMIO: added ProxyAddress property
- TImageEnMIO: added ProxyUser property
- TImageEnMIO: added ProxyPassword property
- now TImageEnMIO can load multi-page files from URL
- TImageEnMIO: now LoadFromFile can load from url (http://...)
- now layers operations with transparency are supported also on merging
- TIFF: now alpha channel is saved also with LZW compression
ImageEn 2.1.9 (18 Jun 2005)
- TImageEnMView.BeginDrag: added Immediate and Threshold parameters
- now TImageEnProc.GetHistogram or THistogramBox gets the right histogram with non-rect selections
- TImageEnIO: added OpenMediaFile method
- TImageEnIO: added CloseMediaFile method
- TImageEnIO: added LoadFromMediaFile method
- TImageEnIO.Params: added MEDIAFILE_FrameCount property
- TImageEnIO.Params: added MEDIAFILE_FrameDelayTime property
- TImageEnIO: added IsOpenMediaFile method
- TImageEnIO: added IsOpenAVI method
- now FindFileFormat and FindStreamFormat can detect WMF and EMF file types
- TImageEnMView: now ImageFileName accepts the form: 'fullfilepath::imageindex' to load a multipage/video on-demand
- imageenio unit: added helper function IEGetFileFramesCount
- imageenio unit: added helper function IEExtToFileFormat
- TIEBitmap: added DrawToCanvas method
- TIEBitmap: added CopyAndConvertFormat method
- BUG: fixed problem with WIA transfers
- TImageEnIO.Params: added RAW_AutoAdjustColors property
- enhanced RAW quality
- now TImageEnVect.CopyObjectsToBack and DrawObjectsToBitmap works with all PixelFormats and Locations
- TImageEnMView: added MaintainInvisibleImages property
- TImageEnMView: added LookAhead property
- WIAParams: added TransferFormat property
- TImageEnMView: added OnAllDisplayed event
- TImageEnMView: added LoadFromFileOnDemand method
- BUG: fixed memory leak in TImageEnVect.RemoveAllObjects
- TImageEnMView: added OnImageDeselect property
- now ImageEn can read 48 bit CMYK (converting it to 24 bit CMYK)
- TIFF: now alpha channel is supported for writing (only uncompressed or PackBits compression)
- Twain: now read 48 bits RGB and 16 bit gray scale, also in native pixel format
- BUG: fixed bug reading black/white TGA
- BUG: fixed bug reading Olympus E1 RAWs
- BUG: TImageEnVect.Undo doesn't work
- TImageEnView: added SelectCustom method
- TImageEnProc: added AddInnerShadow method
- Add Inner Shadow effect
- added TIETIFFHandler class
- Added powerful class to handle TIFF files (add/edit/remove tags, add/delete pages, merge TIFFs, etc...)
- TImageEnVect: added AllowOutOfBitmapMoving property
- TImageEnVect: added EnableRangeObjectsSelection property
- JPEG: supported ICC reading
- TImageEnView.Layers[]: added ConvXScr2Bmp method
- TImageEnView.Layers[]: added ConvYScr2Bmp method
- supported RAW files (real RAW, not Camera RAW!)
- TImageEnIO, Params: added BMPRAW_ChannelOrder property
- TImageEnIO, Params: added BMPRAW_Planes property
- TImageEnIO, Params: added BMPRAW_RowAlign property
- TImageEnIO, Params: added BMPRAW_HeaderSize property
- TImageEnIO: added LoadFromFileBMPRAW method
- TImageEnIO: added LoadFromStreamBMPRAW method
- TImageEnIO: added SaveToFileBMPRAW method
- TImageEnIO: added SaveToStreamBMPRAW method
- TImageEnVect: added ObjArcStartingAngle property
- TImageEnVect: added ObjArcEndingAngle property
- TwainParams: added BitDepth property
- TImageEnMView: added EnableLoadEXIFThumbnails property
- Camera RAW: now ImageEn can load thumbnail from CR2 format
- TImageEnIO: added LoadJpegFromFileCRW method
- Supported Microsoft CMS (Color Management System), enable it writing iegEnableCMS:=true
- TImageEnView: added MergeSelectionFromStream method
- TImageEnMView: added CreateMorphingSequence method
- TImageEnProc: added WhiteBalance_coef method
- TImageEnProc: added WhiteBalance_GrayWorld method
- TImageEnProc: added WhiteBalance_WhiteAt method
- TImageEnProc: added WhiteBalance_AutoWhite method
- TImageEnProc: added AdjustGainOffset method
- PPM format: supported read/write 48 bit (RGB, 16 bit per channel)
- PDF: supported LZW compression
- Params.PDF_Compression: added ioPDF_LZW value
- Params: added PNG_TextKeys property
- Params: added PNG_TextValues property
- PNG: now ImageEn is able to read/write PNG text
- TImageEnView: added LayersSaveToStream method
- TImageEnView: added LayersSaveToFile method
- TImageEnView: added LayersLoadFromStream method
- TImageEnView: added LayersLoadFromFile method
- now ImageEn can read/write all layers and layers info on the same file
- imageenio unit: added IEAVISelectCodec function
- imageenview unit: added IELayersMerge procedure
- TImageEnProc: added CastColor method
- TImageEnProc: added CastAlpha method
- BUG: fixed bug reading compressed PCX files
- BUG: fixed bug writing PDF files (memory leak)
- BUG: fixed bug on layers
- TImageEnMIO: added NativePixelFormat property
- TIEWIA: added GetItemThumbnail method
- TIETransitionType added iettPanZoom value
- TImageEnView: added TransitionStartRect property
- TImageEnView: added TransitionEndRect property
- layers: now transparent regions are not selectable
ImageEn 2.1.8 (8 Mar 2005)
- added unit ieXtraTransitions
- added unit iepresetim
- added ieraw unit
- added 133 new values to TIETransitionType
- added new 133 extra transitions
- added TImageEnMView.SetPresetThumbnailFrame
- added TImageEnMView.ThumbnailFrame property
- added TImageEnMView.ThumbnailFrameSelected property
- added TImageEnMView.ThumbnailFrameRect property
- now TImageEnMView can show a background frame for each thumbnail
- BUG: TImageEnVect, fixed selection of lines with PenWidth>1
- TIEPixelFormat: added ie48RGB value
- supported RGB 48 bit (16 bit per channel) pixel format
- supported several RAW camera formats
- Params: added RAW_HalfSize property
- Params: added RAW_Gamma property
- Params: added RAW_Bright property
- Params: added RAW_RedScale property
- Params: added RAW_BlueScale property
- Params: added RAW_QuickInterpolate property
- Params: added RAW_UseAutoWB property
- Params: added RAW_UseCameraWB property
- Params: added RAW_FourColorRGB property
- Params: added RAW_Camera property
- TIOFileType: added ioRAW value
- TImageEnIO: added LoadFromStreamRAW method
- TImageEnIO: added LoadFromFileRAW method
- TImageEnIO: now LoadFromFile can load RAW camera formats
- TImageEnIO: now LoadFromFileFormat can load RAW camera formats
- TImageEnIO: now ParamsFromFile can read RAW camera formats
- TImageENIO: now ParamsFromStream can read RAW camera formats
- TImageEnIO: now ParamsFromFileFormat can read RAW camera formats
- TImageEnIO: now ParamsFromStreamFormat can read RAW camera formats
- TImageEnIO: now LoadFromStream can load RAW camera formats
- TImageEnIO: now LoadFromStreamFormat can load RAW camera formats
- TImageEnIO: now FindStreamFormat can read RAW camera formats
- TImageEnIO: now FindFileFormat can read RAW camera formats
- now it is possible to load RAW as native 48 bits per pixel (16 bits per channel)
- BUG: fixed bug using SetExternalBitmap and SetNavigator
- BUG: fixed color bug running transitions
- now it is possible to save TIFF (not jpeg compressed) with 48bit native format (ie48RGB)
- TIFF: now it is possible load images with SamplesPerPixel=2 and with LZW compression
- TImageEnView.ZoomAt: added Center parameter
- TImageEnVect: added OnActivateTextEdit event
- TImageEnVect: added OnDeactivateTextEdit event
- TImageEnVect: now ObjTextEditMode is a property instead of a method. This allows to know which object is in edit mode.
- TImageEnVect: added MemoEditingGetCharInfo method
- TImageEnVect: added MemoEditingSetCharInfo method
- TImageEnVect: added OnTextEditCursorMoved method
- DShowParams.ShowPropertyPages: now returns True or False
- DShowParams.ShowPropertyPages: now accept checkOnly parameter to see if the page is available
- IO.WIAParams: added FillTreeView method
- now ImageEn can get EXIF info from WIA (if camera store images as Jpeg)
- IO.WIAParams: added SaveTransferBufferAs property
- TImageEnProc: added Crop method
- TImageEnProc: added AutoCrop method
- TImageEnVect: added ObjBitmapBorder property
- BMP: now supports 32 bit with alpha channel (read/write)
- TImageEnView.LayersMerge: added RemoveUpperLayer parameter
- TImageEnView: added ImageEnVersion published property
- TGA: now ImageEn can read images with 256 colors palette + alpha channel
- TwainParams.Threshold: now is TIEDoubleList instead of integer
- TImageEnIO: added InsertToStreamTIFF method
- TIEBitmap: added IsEmpty method
- TIEBitmap: added RenderToTIEBitmapEx method
- now printing supports all pixel formats
- TImageEnView: added LayersMergeTo method
- TImageEnView: added DiscardSavedSelection method
- TImageEnMView: added MultiSelectSortList method
- hyieutils unit: added IEAdjustEXIFOrientation procedure
- now EXIF thumbnails are oriented
- TImageEnMView: added IEBeginDrag method
- TImageEnMView: added IEEndDrag method
- TImageEnView: added AutoCursors property
- Params/IOParams: added EXIF_MakerNote property
- now it is possible to read/write (but not change) EXIF maker note
- TIFF: supported load of 48 bit in Native Pixel Format (ie48RGB)
- TImageEnMView: added JobsRunning property
- TImageEnMView: added JobsWaiting property
- Optimized TImageEnMView
- Print preview (TImageEnIO): now it maintains previous parameters
- Print preview (TImageEnIO): now it is possible write/read parameters
- TImageEnIO: added PrintPreviewParams property
- resample filters (TResampleFilter): added rfProjectBW and rfProjectWB to view/print projects
- TImageEnIO.PrintingFilterOnSubsampling: now it is TResampleFilter instead of boolean
- TImageEnIO.Params: added JPEG_EnableAdjustOrientation property
- TImageEnMView: added EnableAdjustOrientation property
- TImageEnMView: added ThumbnailsInternalBorder property
- TImageEnMVIew: added ThumbnailsInternalBorderColor property
- TImageEnIO: added Params.RAW_GetExifThumbnail property
- TImageEnIO: added Params.JPEG_GetExifThumbnail property
- TImageEnIO: added LoadFromFileAuto method
- now Aborting and Progress work when loading from URL
- TImageEnMView.MoveImage: now updates TImageEnMIO params
- TImageEnMView.Sort: now updates TImageEnMIO params
- TImageEnMIO: added LoadFromMediaFile method
- TImageEnView: added ChangeResolution method
ImageEn 2.1.7 (9 Nov 2004)
- BUG: fixed memory leak on TImageEnProc.SelPasteFromClipStretch
- BUG: fixed bug copying black/white rectangles
- BUG: fixed bug with MouseInteract=miZoom and ZoomFilter<>rfNone
- BUG: fixed bug using ReadHiddenText where isn't hidden text
- TImageEnProc: added ClearHiddenText method
- BUG: fixed bug assigning TImageEnIO.NativePixelFormat
- TImageEnProc: added CanRedo property
- BUG: fixed bug editing polyline points if the object has been translated
- now TImageEnIO.CaptureFromScreen gets DPI info from the screen
- now Maximum (dilation), Minimum (erosion), Opening and Closing filters works also with black/white images
- BUG: memory leak on Sharpen routine
- TImageEnView: added OnSpecialKey event
- BUG: IPTC which comes from TIFF is not saved to a jpeg
- BUG: fixed bug zooming with mouse wheel
- removed all methods and properties of TImageEn. Now TImageEn=TImageEnView.
* now you have convert your code which uses old methods of TImageEn with TImageEnView.Proc and TImageEnView.IO. Example:
ImageEn.Negative now is ImageEn.Proc.Negative
ImageEn.LoadFromFile(...) now is ImageEn.IO.LoadFromFile
- TImageEnProc.GetHistogram: now parameter is "pointer" instead of THistogram
- TImageEnProc.GetDominantColor: now returns double instead of integer
- TIEBitmap: added MergeAlphaRectTo method
- TImageEnView: added GetRenderRectangles method
- BUG: fixed some bug related to layers resizing and moving
- TImageEnIO.DShowParams: added RenderAudio property
- now TIEFilterPresets is an integer
- added IEAddNewFilter public function
- now it is possible to add new filters
- TImageEnProc: added SelPasteFromClip method
- fixed several minor bugs
- imageenio unit: added iegEnableCMS public variable
- TImageEnIO.Params: added InputICCProfile property
- TImageEnIO.Params: added OutputICCProfile property
- now ImageEn has a CMS (Color Management System) and can read ICC profiles (only for TIFF)
* to enable it (source code owners):
1) in ie.inc enable IEINCLUDECMS
2) set iegEnableCMS:=True
- TImageEnView: added SelectRoundRect method
- TImageEnProc: added RoundImage method
- TImageEnMView: added ThumbsRounded property
- TImageEnProc: added BeginImageAnalysis method
- TImageEnProc: added EndImageAnalysis method
- now TImageEnProc.SkewDetectionFine works on selections
- now RemoveAllObjects call SaveUndo
- now TImageEnVect.CopyObjectTo returns the handle of the created object
- TImageEnView: added SavedSelectionsCount property
- TIELayer: added UserData field
- TImageEnView: added CurrentLayer property
- TImageEnVect: added RotateAllObjects method
- TImageEnVect: added RotateObject method
- TImageEnVect.MouseInteractVt: added miUnStampMode value
- TImageEnProc: added ConvertToBW_FloydSteinberg method
- now TImageEnProc.SkewDetection works on selected area (if exists)
- now CMYK is supported as native format
- TIEPixelFormat: added ieCMYK value
- TOpenImageEnDialog: added SelectedFrame property
- TIEGraphicBase: added ResampleFilter property
- TImageEnMView: added OnBeforeImageDrawEx event
- TIEBitmap: added RenderToTBitmapEx method
- TImageEnVect: added CenterNewObjects property
- TImageEnVect: added ObjTextEditMode method
- now ImageEn supports DCX (multipage PXC) file format
- TImageEnIO.Params: added DCX_ImageIndex property
- TImageEnIO: added LoadFromFileDCX method
- TImageEnIO: added LoadFromStreamDCX method
- TIOFileType: added ioDCX value
- TImageEnIO: now LoadFromFile supports DCX format
- TImageEnIO: now LoadFromFileFormat supports DCX format
- TImageEnIO: now LoadFromStreamFormat supports DCX format
- TImageEnIO: now LoadFromStream supports DCX format
- TImageEnIO: now ParamsFromFileFormat supports DCX format
- TImageEnIO: now ParamsFromStreamFormat supports DCX format
- TImageEnIO: added SaveToStreamDCX method
- TImageEnIO: added SaveToFileDCX method
- TImageEnIO: added InsertToFileDCX method
- TImageEnIO: now SaveToFile supports DCX format
- TImageEnIO: now SaveToStream supports DCX format
- TImageEnMIO: added LoadFromFileDCX method
- TImageEnMIO: added LoadFromStreamDCX method
- TImageEnMIO: added SaveToFileDCX method
- TImageEnMIO: added SaveToStreamDCX method
- TImageEnMIO: now LoadFromFile supports DCX format
- TImageEnMIO: now SaveToFile supports DCX format
- imageenio: added EnumDCXIm function
- imageenio: added DeleteDCXIm procedure
- TImageEnIO: added LoadFromBuffer method
- TImageEnIO: added SaveToText method
- TImageEnView: added FlatScrollBars property
- TImageEnMView: added FlatScrollBars property
- now TImageEnView and TImageEnMView supports flat scrollbars
- TImageEnView: added SetExternalBitmap method
- TImageEnView: added SetNavigator method
- TImageEnVect: added OnTextKeyDown event
- TImageEnProc: added RadialStretch method
- manual correction of Barrel Distortion and Pincushion distortion (lens distortion, underwater distortion)
- added new unit named iezlib
- added ielcms unit
ImageEn 2.1.6 (8 Aug 2004)
- TImageEnIO: added ReplaceFileGIF method
- BUG: displaying 1x? or ?x1 images
- BUG: loading imaging annotations
- now merged (optimized) GIF can be transparent
ImageEn 2.1.5 (28 Jul 2004)
- BUG: fixed bug when a layer is larger than background image and it is cropped
- TImageEnIO: added NativePixelFormat property
- TIEBitmap: added PaletteUsed property
- now it is possible to load/save native paletted formats (BMP,GIF,PNG,TIFF)
- now it is possible to load/save native 8/16 bits gray scale (BMP,GIF,PNG,TIFF)
- now ImageEn can write native 4,8 bits BMP (pixelformat=ie8p)
- now ImageEn can read native 4,8 bits BMP (pixelformat=ie8p) if TImageEnIO.NativePixelFormat=true
- now ImageEn can write native 2-8 bits GIF (pixelformat=ie8p)
- now ImageEn can read native 2-8 bits GIF (pixelformat=ie8p) if TImageEnIO.NativePixelFormat=true
- now ImageEn can write native 8/8g/16g bits PNG (pixelformat=ie8p/ie8g/ie16g)
- now ImageEn can read native 8 bits PNG (pixelformat=ie8p) if TImageEnIO.NativePixelFormat=true
- now ImageEn can write native 8/8g/16g bits TIFF (pixelformat=ie8p/ie8g/ie16g)
- now ImageEn can read native 8/8g/16g bits TIFF (pixelformat=ie8p/ie8g/ie16g) if TImageEnIO.NativePixelFormat=true
- TIEBitmap: added BitAlignment property (works only for ieMemory locations)
- now it is possible to change bit alignment of a memory bitmap (when LegacyBitmap=false)
- TImageEnView: added Layers[].Operation property (allows to select among 37 layers operations)
- now it is possible to select 37 layer operations (blend modes)
- BUG: TwainParams.SetDefaultParams doesn't work well
- BUG: now ObjGraphicRender works on Win98
- now FindStreamFormat and FindFileFormat recognizes AVI format
- IO.Params: added PDF_Title property
- IO.Params: added PDF_Author property
- IO.Params: added PDF_Subject property
- IO.Params: added PDF_Keywords property
- IO.Params: added PDF_Creator property
- IO.Params: added PDF_Producer property
- PDF: now saves creation date
- GIF: now TImageEnIO can load "merged" (or sometimes named "optimized") GIFs
- TImageEnMView.MultiSelectionOptions: added iemoSelectOnMouseUp value
- TImageEnMView: now can select on mouse down
- TImageEnIO: added DShowParams property
- TImageEnView: added OnDShowNewFrame event
- TImageEnView: added OnDShowEvent event
- Video capture: now ImageEn can capture using DirectShow (WDM) capture drivers. This
allows to select by code video input, tuner, etc
- added unit "ieds"
- basic support for DirectShow read/write of Windows media files (AVI, MPEG, WMF, etc..)
- TImageEnMView: now ImageBottomText[].Caption, ImageTopText[].Caption, ImageInfoText[].Caption supports WideString
- TImageEnView.OnMouseInResizingGrip: the parameter "grip" now is of type TIEGrip instead of integer
- TImageEnView: added GetGripAt method
- TImageEnMIO: added DoPrintPreviewDialog method
- TImageEnMIO: added ResetPrinter property
- TImageEnIO: added DialogsMeasureUnit property
- added unit ieprnform3
- TImageEnMIO: added LoadFromFileICO method
- TImageEnMIO: added LoadFromStreamICO method
- TImageEnMIO: now LoadFromFile can read ICO files
- now LZW (for GIF and TIFF) is enabled for default (you can still disable it)
- TImageEnVect: added SelectOnMouseDown property
- TImageEnVect: now UseCentralGrip is false for default
- TImageEnVect note: to have the same behavior of old versions you have to set:
UseCentralGrip:=true
SelectOnMouseDown:=false
- BUG: fixed bug saving PDF with TImageEnMIO
- TImageEnVect: removed SetGripStyle method (replaced by GripSize, GripPen and GripBrush properties)
- TImageEnVect: added GripSize property
- TImageEnVect: added GripPen property
- TImageEnVect: added GripBrush property
- TImageEnVect: now mouse changes over grips
- TImageEnVect: added "side" grips
- BUG: TImageEnMVIew: OnImageDraw returns a wrong value
- TImageEnView: added SelectionAspectRatio property
- TImageEnView: added SelectionAbsWidth property
- TImageEnView: added SelectionAbsHeight property
- TwainParams: added Rotation property
- IO.Params: added TIFF_JPEGColorSpace property
- TImageEnView: setting MouseWheelParams.Action:=iemwVScroll and pressing CTRL now scroll horizontally
- now ImageEn sets a default of 300 dpi instead of 1 or monitor dpi when a file doesn't contain this info
- BUG: fixed bug reading PNG files
- BUG: fixed bug merging black/white layers
- TImageEnProc: added CompareWith method
- BUG: fixed bug merging layers with negative offsets
- imageenio unit: added IECalcJpegFileQuality function
- imageenio unit: added IECalcJpegStreamQuality function
- now it is possible to get approximate saved quality of a jpeg
- TImageEnIO: added ReplaceFileTIFF method
- TImageEnProc: added RemoveRedEye method
- added simple algorithm to help to remove red eyes
ImageEn 2.1.4 (8 Maj 2004)
- CalcDensityHistogram: now gets "pointer" instead of "pintegerarray" to make it compatible with C++Builder
- TImageEnView: added SelectionMaskDepth property
- TImageEnView: added SelectionIntensity property
- TImageEnView: added MakeSelectionFeather method (to make feathering selection)
- feathering selections
- now it is possible to make "soft-selections", i.e. specify how much apply an image processing effect (see SelectionMaskDepth and SelectionIntensity)
- TImageEnMView: enhanced multipage TIFF loading
- TImageEnIO: added InjectJpegEXIF method
- TImageEnIO: added InjectJpegEXIFStream method
- now it is possible to inject EXIF info inside a Jpeg without loss image quality
- TImageEnVect: now iekRULER uses ObjFont property
- Optimized TImageEnIO.InjectJpegIPTC
- TImageEnMView: added FillFromDirectory method
- TIFF: now writes NewSubfileType tag
- TImageEnMIO (or TImageEnMView.MIO): now "load" methods supports alpha channel
- BUG: wrong value reading Params.GIF_Action property
- GIF (TImageEnMView): supported "merged" GIFs
- TImageEnProc: added BeginImageProcessing method
- TImageEnProc: added EndImageProcessing method
- BUG: fixed memory leak on load images
- TImageEnView: added BackBuffer property
- TImageEnView: added OnDrawBackBuffer event
- Optimized TImageEnVect.CopyObjectsToBack with antialias=true
- TImageEnVect: added ObjAntialias property
- layers: now it is possible to have layers with different size and position
- TImageEnView.Layers[]: added PosX and PosY properties
- TImageEnView.Layers[]: added ClientAreaBox property
- TImageEnView.Layers[]: added Width,Height properties
- TImageEnView.Layers[]: added Cropped property
- TImageEnView.Layers[]: added Locked property
- TImageEnView.Layers[]: added Magnify property
- TImageEnView: added LayersSync property
- TImageEnView: added LayersDrawBox property
- TImageEnView: added FindLayerAt method
- TImageEnView.MouseInteract: added miMoveLayers value
- TImageEnView.MouseInteract: added miResizeLayers
- TImageEnView: now it is possible to move and resize layers
- TImageEnView: added OnLayerNotify
- built in magnifier layer
- enhanced ICO transparency compatibility on saving
- TImageEnProc: added ResampleTo method
- now TImageEnIO.DoPreviews preselect the current file format which is stored in the Params object
- now TImageEnIO.DoPreviews changes also Params.FileType
- TImageEnVect: now it is possible to edit/add/delete points of a polygon with mouse
- TImageEnVect.MouseInteractVt: added miEditPolyLine
- BUG: AssignSelTo, CopySelectionToBitmap doesn't work with LegacyBitmap=false
- TImageEnIO: added CreatePSFile method
- TImageEnIO: added SaveToPS method
- TImageEnIO: added ClosePSFile method
- unit imageenio added ioPS constant
- TImageEnIO: added SaveToStreamPS method
- TImageEnIO: added SaveToFilePS method
- TImageEnIO: now SaveToFile can save PostScript files (PS)
- TImageEnIO: now SaveToStream can save PostScript files (PS)
- TImageEnMIO: added SaveToFilePS method
- TImageEnMIO: added SaveToStreamPS method
- TImageEnMIO: now SaveToFile can save PostScript (PS) files
- IO.Params: added PS_PaperWidth property
- IO.Params: added PS_PaperHeight property
- IO.Params: added PS_Compression property
- IO.Params: added PS_Title property
- TImageEnIO: added CreatePDFFile method
- TImageEnIO: added SaveToPDF method
- TImageEnIO: added ClosePDFFile method
- TImageEnIO: added SaveToStreamPDF method
- TImageEnIO: added SaveToFilePDF method
- IO.Params: added PDF_PaperWidth property
- IO.Params: added PDF_PaperHeight property
- IO.Params: added PDF_Compression property
- unit imageenio added ioPDF constant
- TImageEnIO: now SaveToFile can save Adobe PDF files
- TImageEnIO: now SaveToStream can save Adobe PDF files
- TImageEnMIO: added SaveToFilePDF method
- TImageEnMIO: added SaveToStreamPDF method
- TImageEnMIO: now SaveToFile can save Adobe PDF files
- now it is possible to save images using PostScript format (PS) - single and multipage (RLE, G3Fax, G4Fax, Jpeg compressions)
- now it is possible to save images using Adobe PDF format - single and multipage (G3Fax, G4Fax, Jpeg compressions)
- TImageEnMView: added Sort method
ImageEn 2.1.3 (14 Mar 2004)
- BUG: fixed some problems on printing
- BUG: fixed bug with MEMO and ObjAutoUndo=True
- BUG: fixed bug with BackgroundStyle=iebsCropShadow and DisplayGrip=True
- BUG: fixed bug on TImageEnVect, writing a text object and exiting from the application
- BUG: fixed bug writing TIFF with CCITT compression
ImageEn 2.1.2 (26 Feb 2004)
- BUG: fixed AV on reading thumbnails
- BUG: fixed problem saving EXIF info
- BUG: Wallis filter draws a frame
- Supported WIA also with C++Builder
- TImageEnView: added DrawVersion published property
ImageEn 2.1.1 (20 Feb 2004)
- imageenio unit: added ioAVI constant
- BUG: TImageEnView, when MouseInteract=[miScroll] the cursor is not restored
- Supported saving of EXIF in Jpeg and TIFF (Exif_Bitmap still not supported)
- BUG: now TImageEnView.GradientEndColor works
- BUG: TImageEnMView, scrollbars do not have right theme
- BUG: TImageEnMView, ImageOriginalWidth and Height hasn't right values for first image
- BUG: wrong DPI when reading TIFF with Jpeg compression
- THSVBox: added GetColorAt method
- TImageEnProc.DoPreviews: added peGamma value for the new gamma correction preview
- TOpenImageEnDialog: added ShowAllFrames property
- BUG: now EXIF_Bitmap works
- support for registering of ImageEn formats in TPicture (TImage and VCL open/save dialogs)
- added following classes TIETiffImage, TIEGifImage, TIEJpegImage, TIEPCXImage, TIEBMPImage, TIEICOImage, TIEPNGImage, TIETGAImage, TIEPXMImage, TIEJP2Image, TIEJ2KImage
to support registering in TPicture (TImage and VCL open/save dialogs)
- hyieutils unit: added IERegisterFormats and IEUnregiserFormats functions
- ie.inc: added IEREGISTERTPICTUREFORMATS define, to enable file formats registering at design time (only source code owners)
- TImageEnVect: supported multi-line (memo) objects
- TImageEnVect.ObjKind[]: added iekMEMO value
- TImageEnVect.MouseInteractVt: added miPutMemo value
- THistogramBox: added GrayColor property
- TImageEnProc: added MedianFilter method
- TImageEnProc: added WallisFilter method
- TImageEnView.GetIdealZoom: now returns double instead of integer
- TImageEnIO.Params: added GIF_Action property
- TImageEnVect: ObjFontLocked property
- TImageEnVect: added ObjMemoLineSpace[] property
- TImageEnVect: added ObjMemoBorderColor[] property
- TImageEnVect: added ObjMemoBorderStyle[] property
- TImageEnProc: added CalcOrientation method
- TImageEnProc: added SkewDetectionFine method
- TImageEnMView: added GetTIEBitmap method (release is still done by ReleaseBitmap)
- TImageEnMView: added SoftShadow property
- TImageEnVect: changed type of ObjTextAlign from TAlignment to TIEAlignment
- TImageEnVect: added IsEditMode method
- TImageEnIO: added CreateAVIFile method
- TImageEnIO: added SaveToAVI method
- TImageEnMView: added EnableAlphaChannel property
- TImageEnMView: added BackgroundStyle property
- TImageEnMView: added SetChessboardStyle method
- TImageEnMView: added GradientEndColor property
- BUG, IPTC: fixed bug writing IPTC in a jpeg saved by PhotoShop 7
- TImageEnMView: added ThumbnailsBackgroundStyle property
- TImageEnMView: added FillThumbnail property
- TImageEnVect: supported curved text
- TImageEnVect: added SetObjTextCurve method
- TImageEnVect: added SetObjTextCurveShape method
- TImageEnVect: added SetObjTextCurveFromPolyline
- GIF: now ImageEn can write alpha channel automatically
- TImageEnVect: added ObjTextCurveCharRot property
- TImageEnVect: added DrawObjectsToBitmap method
- BUG: fixed bug on writing hidden text
- TImageEnView: now OnSelectionChange occurs also when user removes the selection (single click)
- TImageEnMView: added OnImageIDRequestEx event
- now magic wand also works with black/white images
- support for read/write of WBMP (Wireless Bitmap) file format
- imageenio: added ioWBMP value
- TImageEnIO: added LoadFromFileWBMP method
- TImageEnIO: added LoadFromStreamWBMP method
- TImageEnIO: added SaveToFileWBMP method
- TImageEnIO: added SaveToStreamWBMP method
- TImageEnIO.LoadFromFile,LoadFromFileFormat,LoadFromStreamFormat,ParamsFromFileFormat,ParamsFromStreamFormat: now can load WBMP files
- TImageEnIO.SaveToFile,SaveToStream: now can save WBMP files
- TIEBitmap: added WhiteValue and BlackValue properties
- TIEBitmap, TIEPixelFormat: added ie32f format (32 bit - Single in Pascal)
- TIEBitmap: added Pixels_ie32f[] property
- TIEBitmap.Fill: changed Value parameter from integer to double
- TIEBitmap.FillRect: changed Value parameter from integer to double
- Support for Wang Imaging annotations (load/edit/save)
- TImageEnMIO.SaveToFileAVI: now accept codec as parameter
- TImageEnIO.Params: added ImagingAnnot property (class TIEImagingAnnot)
- TImageEnVect: added ObjMemoFixedHeight[] property
- TImageEnVect: added GetMemoFormattedString method
- TImageEnVect: added ObjBoxHightlight[] property
- TImageEnVect: now it is possible to create an highlight box object
- TImageEnView: added LockUpdate procedure
- TImageEnView: added UnLockUpdate procedure
- TImageEnVect: added UseCentralGrip property
- TImageEnVect: now it is possible to move an object without using the central grip
- TIEBitmap: added ChannelOffset[] property (allows to set display luminosity without change the image)
- TIEBitmap: added Contrast property (allows to set display contrast without change the image)
- TImageEnDBView, TImageEnDBVect: added support for ICO, JP2, J2K and WBMP file formats
- TDataFieldImageFormat: added ifICO,ifJP2,ifJ2K,ifWBMP values
- TImageEnProc: added Sharpen method
- TPreviewEffects: added peSharpen value
- added sharpen effect
- TImageEnMView: added ThumbnailDisplayFilter property
- TImageEnVect: added OnBeforeVectorialChanged event
- TImageEnVEct: added ObjAutoUndo property
- TImageEnIO,TImageEn: ImportMetaFile now accept WithAlpha parameter
- WMF/EMF: supported alpha channel
- Supported WIA devices (scanner and camera) - not for C++Builder
- TImageEnIO.Acquire: added "api" parameter
- TImageEnIO.SelectAcquireSource: added "api" parameter
- TImageEnMIO.Acquire: added "api" parameter
- TImageEnMIO.SelectAcquireSource: added "api" parameter
- TImageEnIO: added WIAParams property
- TImageEnMIO: added WIAParams property
- TIEBitmap: added Access property
- TIFF: now can subdivide the image in strips when it is too large
ImageEn 2.1.0 (24 Oct 2003)
New features:
- TImageEnVect: now can specify the transparency for each vectorial object
- TImageEnVect: now can specify a soft shadow for each vectorial object
- optimized DeleteTiffIm (speed up of about 25 times)
- TImageEnVect: added a "line with label" object
- TImageEnProc.ImageResize: now doesn't loss the alpha channel
- now TImageEnView.CopySelectionToBitmap works inside OnSelectionChanging event
- TImageEnVect: now supports Undo feature (AutoUndo not still supported)
- jpeg2000: little performance improvement on loading
- Twain: now supports "file transfer" (other than buffered and native)
- TImageEnProc.CropSel: now handles alpha channel
- TImageEnView.CopySelectionToIEBitmap: now handles alpha channel
- enhanced quality of ordered dithering
- supported save of ICO file format
- now SaveToFile can save ICO format
- now SaveToStream can save ICO format
- TIFF: supported 16 bit (grayscale) writing
- TIFF: supported 16 bit (grayscale) compressed reading
- PNG: supported 16 bit (grayscale) writing
- BUG: OnZoomIn, OnZoomOut doesn't work when you use the Mouse Scroll button
- BUG: TImageEnView, now KeyInteract works
- BUG: HistAutoEqualize problem with images with less than 256 pixels
- BUG: CalcDensityHistogram problem with images with one color
- BUG: problems on printing
- BUG: in "advanced" dialog, cut the bottom dialog when "large fonts" are selected
- BUG: Removed scrolling flickering with document images, when Zoom>100
- twain: fixed some bugs
- BUG: fixed bug on reading TIFF, 16bit gray scale, coming from non Intel systems
- BUG: jpeg saving. Incorrect colors if setting colorspace<>YCbCr and APP14 is present
- TImageEnVect: now ruler and angle objects have correct sizes on Zoom<>100
- TImageEnVect: added ObjLabelBrushColor[] property
- TImageEnVect: added ObjLabelBrushStyle[] property
- TImageEnVect: added ObjLabelPosition[] property
- TImageEnView: added CopySelectionToIEBitmap method
- unit imageenio: added DeleteTIFFImGroup function
- TImageEnMIO: added OnFinishWork event
- TImageEnVect: added ObjTransparency property
- TImageEnVect: added ObjSoftShadow[] property
- TImageEnVect: added ObjGraphicRender property (default false), that enables enhanced objects processing (shadow,transparency,etc)
- hyieutils: added IEDefDialogCenter public field
- TImageEnProc: added GetDominantColor method
- TImageEnVect: added ObjSaveUndo method
- TImageEnVect: added ObjClearUndo method
- TImageEnVect: added ObjClearAllUndo method
- TImageEnVect: added ObjCanUndo property
- TImageEnVect: added ObjUndoCount property
- TImageEnVect: added ObjUndoLimit property
- TImageEnVect: added ObjUndoAt method
- TImageEnVect: added ObjUndo method
- TImageEnMIO: added ExecuteOpenDialog method
- TImageENMIO: added ExecuteSaveDialog method
- TwainParams: added FileTransfer property
- TImageEnView: added EnableShiftKey property
- TImageEnView: added DelayZoomTime property
- TImageEnView: added DelayTimer property
- TImageEnIO.TwainParams: added LogFile property
- TImageEnView: added GetIdealZoom method
- TImageEnVect: added MeasureCoefX property
- TImageEnVect: added MeasureCoefY property
- TImageEnVect: added GetObjDiagLen method
- TImageEnIO.TwainParams: added LastError property
- TImageEnIO.TwainParams: added LastErrorStr property
- TImageEnIO: added EnumICOIm function
- TImageEnVect: added ObjSetTBitmap method
- TImageEnIO: added SaveToStreamICO method
- TImageEnIO: added SaveToFileICO method
- TImageEnIO.Params: added ICO_Sizes field
- TImageEnIO.Params: added ICO_BitCount field
- TImageEnView: added GradientEndColor property
- TImageEnIO.TwainParams: added CompatibilityMode property
- imageenio unit: added IEWriteICOImages function
- TImageEnView: added CenterImage method
- TImageEnVect.ObjKind[]: added iekLINELABEL value
- TImageEnVect.MouseInteractVt: added miPutLineLabel value
- TImageEnVect.ObjBitmapAlpha[]: now return TIEBitmap instead of TIEMask
- TImageEnVect.ObjBitmap[]: now is a TIEBitmap instead of TBitmap
- TImageEnProc.AddSoftShadow: added AdaptSize parameter
- TImageEnProc.AddSoftShadow: added shadowColor parameter
- TImageEnVect.CopyObjectsToBack: added Antialias paramter
- TImageEnView.BackgroundStyle: added iebsGradient value
ImageEn 2.0.9 (31 Jul 2003)
- TImageEnProc: added SetTransparentColors method
- TImageEnProc.AddSoftShadow: now works also with black/white images
- TSaveImageEnDialog: now gets MsgLanguage value from TImageEnIO
- BUG: TImageEnIO.ExecuteOpenDialog, now set correct language
- TImageEnDBView, TImageEnDbVect: added IsInsideDbCtrl property
- BUG: Twain, fixed memory leak bug on BufferedTransfer=False
- BUG: advanced dialog, now transparent and background color selection for gifs works also when preview is off
- BUG: fixed memory load on load images with alpha channel
- BUG: now THistogramBox works
- BUG: now histogram of preview dialog works
ImageEn 2.0.8 (11 Jul 2003)
- kylix: now get DPI values from scanner
- kylix: now OnProgress works also on scanner acquisition
- TImageEnIO.Params (TIOParamsVals): added Dpi property (includes both DpiX and DpiY)
- use of zlib library version 1.1.4
- use of PNG library version 1.2.5
- kylix: added PNG support
- TIEBitmap: added GetRow and FreeRow methods
- TIEBitmap: added FillRect method
- TIEBitmap: added Resize method
- TImageEnProc: added AttachedIEBitmap property
- TImageEnProc: added MergeIEBitmap method
- BUG: fixed bug on loading corrupted TIFF
- TImageEn,TImageEnProc.GetHSVChannel: now return TIEBitmap instead of TBitmap
- TImageEn,TImageEnProc.GetRGBChannel: now return TIEBitmap instead of TBitmap
- TImageEn,TImageEnProc.GetHSVChannelAll: now uses TIEBitmap instead of TBitmap
- TImageEn,TImageEnProc.GetRGBChannelAll: now uses TIEBitmap instead of TBitmap
- TImageEnProc.ComputeImageEquality: now uses TIEBitmap instead of TBitmap
- TImageEnProc: now supports TIEBitmap object
- TIFF: now can read IPTC info from TIFF files
- TIFF: now can write IPTC info to TIFF files
- TImageEnView.SelectionOptions: added iesoMarkOuter value, to mark the area of out the selection
- Kylix: now AsyncMode works
- BUG: now TaskName parameter of DoPrintPreviewDialog works
- BUG: Resample can raise float point exception
- TImageEnIO: added ThreadsCount property
- TImageEnMView: added OnWrongImage event
- Optimized rectangle selection moving
- TImageEnView: added SelectEllipse method
- TImageEnView: added MoveSelection method
- TImageEnView.SelectionOptions: added iesoCanScroll value
- TImageEnIO: now OnProgress return 100% when load finish
- TImageEnVect: added ObjPolylineClosed property (to allow filled polygons)
- TImageEnVect: now supports filled and closed polygons
- TImageEnProc: added PaintPenMarker method
- TImageEnView: now supports multiple layers
- TImageEnView: added LayersCount property
- TImageEnView: added LayersCurrent property
- TImageEnView: added LayersAdd method
- TImageEnView: added LayersInsert method
- TImageEnView: added Layers property
- TImageEnView: added LayersRemove method
- TImageEnView: added LayersMove method
- TImageEnView: added LayersMerge method
- BUG: TImageEnMView, return incorrect value for ImageOriginalWidth[] and ImageOriginalHeight on large jpegs
- TImageEnIO: added WaitThreads method
- TImageEnIO: added LoadFromURL method
- TImageEnIo: added ProxyAddress,ProxyUser,ProxyPassword properties
- TImageEnView: added IEBitmap property
- TImageEnView: now AlphaChannel is a TIEBitmap object instead of TIEMask
- TImageEnIO: removed AlphaChannel property
- TImageEnProc: removed AlphaChannel property
- TImageEnView: added LegacyBitmap property
- saving color image as black/white: now the default convertion algorithm is "Threshold" (change it using DefaultDitherMethod)
- TImageEnProc.ConvertToPalette: added DitherMethod parameter
- TImageEnProc.ConvertTo: added DitherMethod parameter
- TImageEnIO: added DefaultDitherMethod property
- TImageEnMIO: added DefaultDitherMethod property
- TImageEnMView: added SetIEBitmap method
- TImageEnView.Center: now is True for default
- TImageEnView.ScrollBars: now is ssBoth for default
- BUG: fixed bug on i/o (Advanced button) preview in Jpeg2000
- new example named layers
- TImageEnView: added MaxLayerWidth property
- TImageEnView: added MaxLayerHeight property
- TImageEnView.DelayZoomFilter: now is False for default
- TImageEnMIO: added SimplifiedParamsDialogs property (default true)
- TImageEnMIO.DoPreviews: now accept -1: it uses some compression parameters for all images
- TSaveImageEnDialog.AttachedImageEnIO: now can connect also to TImageEnView (and inherited controls)
- TSaveImageEnDialog.AttachedImageEnIO: now can connect also to TImageEnMView
- when display input/ouput parameters (or Advanced buton in save dialog) for multi page control TImageEnMView
the specified compression is copied for all pages
- TImageEnMIO: added DuplicateCompressionInfo method
- TImageEnView: removed PaintTo method
- TImageEnView: now layers and alpha channel works also with ZoomFilter<>rfNone
- TImageEnView: now transitions supports ZoomFilter<>rfNone
- ConvertToBWThreshold: now accept -2 for Threshold parameter (maximum entropy algorithm)
- TImageEnProc: added Blur method
- added softshadow effect
- TImageEnProc: added AddSoftShadow method
- TImageEnVect.CreateImageFromSelectedArea: added feather and smooth parameters
- saving paletted images: added a new quantizer that doesn't change colors (only for images with <=256 colors)
- TImageEnView: added SaveSelectionToStream method
- TImageEnView: added LoadSelectionFromStream method
- TImageEnProc: now selections can be saved using SaveUndo and SaveRedo
- TImageEnProc.SaveUndo: added Source parameter
- TImageEnProc.SaveRedo: added Source parameter
- TImageEnProc.SaveRedoCaptioned: added Source parameter
- TImageEnProc.SaveUndoCaptioned: added Source parameter
- TImageEnView: added SaveSelection method
- TImageEnView: added RestoreSelection method
- TImageEnView: now SelectZoom doesn't loss current selection
- TImageEnView: added OnBeforeSelectionChange event
- TImageEnMView: ScrollBars property is True per default
- TImageEnView.RemoveAlphaChannel: added Merge parameter (to merge alpha channel before remove it)
- TImageEnProc: added UndoPeekAt method
- TImageEnProc: added RedoPeekAt method
- BUG: TImageEnView: when in zooming and there is a selection active and the mouse is over the selection the cursor changes
- BUG: TImageEnView: when in selection mode and hold down the shift key and pressing the mousebutton over a selection the selection is moved
- added softshadow example
- TImageEnView, TImageEnProc: fixed minor bugs
- TImageEnProc.ImageResize: added HorizAlign and VertAlign parameters
- TIFF: supported load and save of TIFF-JPEG format (new format, baseline of DRAFT TIFF Technical Note #2)
- TImageEnIO.Params: added TIFF_JPEGQuality property
- BUG: TImageEnVect: fixed alignment problems among bitmap and vectorial objects
- TImageEnProc: enhanced rotate quality
- TImageEnProc.Rotate: added AntialiasMode parameter
- TImageEnIO.Params.TIFF_EnableAdjustOrientation: now is False for default
- TImageEnProc.Rotate: now works also with the alpha channel
- TImageEnProc.Rotate: added BackgroundColor parameter
- added Bilinear and Bicubic resample algorithms
- TImageEnProc.Resample: added rfBilinear and rfBicubic values for Filter parameter
- TImageEnView.ZoomFilter: added rfBilinear and rfBicubic values
- TResampleFilter: added rfBilinear and rfBicubic values
- TImageEnMView.ThumbnailResampleFilter: added rfBilinear and rfBicubic values
- TOpenImageEnDialog.ZoomFilter: added rfBilinear and rfBicubic values
- TImageEnVect.BitmapResampleFilter: added rfBilinear and rfBicubic values
- TIETwainParams.GetFromScanner: now return false if fails
- BUG: fixed bug on printing
- renamed PrintingFilterOnSubsampling1Bit to PrintingFilterOnSubsampling (now it is active for both color and black/white images)
- kylix: now TImageEnView works in invisible mode
- kylix: now TImageEnIO can print
ImageEn 2.0.7 (29 Mar 2003)
- TImageEnView: added UpdateNoPaint method
- TImageEnView: added AutoStretch property
- TImageEnView: added AutoShrink property
- TImageEnMIO: added AutoAdjustDPI property
- TImageEnMIO: added FilteredAdjustDPI property
- Open dialog: now AutoAdjustDPI is active also for multi page files
- TImageEnIO: added FilteredAdjustDPI property
- TOpenImageEnDialog: added FilteredAdjustDPI property
- added j2c extension for Jpeg2000 (the some of j2k)
- ImageEnIO unit: added ExtractTIFFImageFile procedure
- ImageEnIO unit: added ExtractTIFFImageStream procedure
- ImageEnIO unit: added InsertTIFFImageFile procedure
- ImageEnIO unit: added InsertTIFFImageStream procedure
- BUG: reading tiled TIFF
- BUG: Params.LoadFromStream and Params.SaveToStream makes an exception
- ImageEnIO.CaptureFromScreen: added MouseCursor property
- TImageEnIO.CaptureFromScreen: now can draw the mouse cursor
- BUG: fixed a bug in jpeg IPTC injection
- BUG: fixed a memory leak in Noise removal algorithm
- TImageEnProc.SkewDetection: added EdgeDetect parameter
- TOpenImageEnDialog, TSaveImageEnDialog: added ExtendedFilters property
- TImageEnIO.ExecuteOpenDialog: added ExtendedFilters property
- TImageEnIO.ExecuteSaveDialog: added ExtendedFilters property
- BUG: fixed a bug in skew detection algorithm
- Open dialog: now Zoom does not change when selecting another image
- TOpenImageEnDialog: added ZoomFilter property
- TImageEnMView: fixed bug loading thumbnails with ThreadPoolSize>0
- TImageEnMView: added BeginSelectImages method
- TImageEnMView: added EndSelectImages method
- TImageEnView: added IsEmpty property
- ImageEnIO unit: added EnumTIFFStream function
- TImageEnIO: supported Twain modeless acquisition.
- TImageEnIO: added AcquireOpen method
- TImageEnIO: added AcquireClose method
- TImageEnIO: added OnAcquireBitmap method (nell'help specificare che lavora solo con AcquireOpen/Close)
- TImageEnMIO: supported Twain modeless acquisition
- TImageEnMIO: added AcquireOpen method
- TImageEnMIO: added AcquireClose method
- TImageEnProc: added GammaCorrect method
- Added Polish language
- TMsgLanguage: added msPolish
- BUG: reading CCITT 1D
- TImageEnMView: added a cache for images (to speed-up thumbnails display)
- TImageEnMView: added EnableImageCaching property
- TImageEnMView: added ClearImageCache method
- ie.inc: added conditional compile tag IEINCLUDEJPEG2000 to exclude jpeg2000 support (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDEPNG to exclude PNG support (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDEVIDEOCAPTURE to exclude VFW video capture support (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDEMULTIVIEW to exclude multi page (thumbnails) support (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDETWAIN to exclude multi page (thumbnails) support (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDEDB to exclude database components (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDETIMAGEEN to exclude TImageEn component (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDEDIALOGIP to exclude image processing dialog (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDEDIALOGIO to exclude input/output dialogs (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDEOPENSAVEDIALOGS to exclude open/save dialogs (only for source code owners)
- ie.inc: added conditional compile tag IEINCLUDEPRINTDIALOGS to exclude print dialogs (only for source code owners)
- TImageEnIO: added SimplifiedParamsDialogs property (Warning: the default is True, to allow old style "advanced" dialogs set it to False)
- TImageEnIO: added OnDoPreviews event
- TImageEnVect: CreateImageFromSelectedArea method (see copysel example)
- BUG: TImageEnProc.Undo when UndoLocation is ieTBitmap raise an exception
- TImageEnVect: added an angle measurement object
- TIEVObjectKind: added iekANGLE
- TIEMouseInteractVt: added miPutAngle
- TImageEnIO.DoPrintPreviewDialog: added TaskName parameter
- TImageEnMView: added IsSelected method
- TImageEnIO: added ChangeBackground property
- TImageEnView.MouseWheelParams: added ZoomPosition property
- TImageEnVect: added GetAngleValue method
- First minimal Kylix support
- added magnify example
- added copysel example
ImageEn 2.0.6 (19 Jan 2003)
- TImageEnMIO: added OnAcquireBitmap event (now attaching an TImageEnMView is optional)
- Support for JPEG2000: JP2, J2K and JPC code stream formats (JPEG-2000 Part-1 standard, ISO/IEC 15444-1)
- ImageEnIO: added ioJP2 and ioJ2K values
- TImageEnIO: added LoadFromFileJP2
- TImageEnIO: added LoadFromFileJ2K
- TImageEnIO: added LoadFromStreamJP2
- TImageEnIO: added LoadFromStreamJ2K
- TImageEnIO: LoadFromFile, LoadFromStream, LoadFromStreamFormat, LoadFromFileFormat can read jp2,j2k,jpc formats
- TImageEnIO.Params: added J2000_ColorSpace property
- TImageEnIO.Params: added J2000_Rate property
- TImageEnIO.Params: added J2000_ScalableBy property
- TImageEnIO: added SaveToFileJP2
- TImageEnIO: added SaveToFileJ2K
- TImageEnIO: added SaveToStreamJP2
- TImageEnIO: added SaveToStreamJ2K
- TImageEnIO: SaveToFile, SaveToStream can save jp2,j2k,jpc formats
- TImageEnIO.DoPreviews: added ppJ2000 value
- added iej2000 unit
- BUG: writing Gray scale TIFF with LZW doesn't work
- TImageEnView: added FitToWidth method
- TImageEnView: added FitToHeight method
- TImageEnMView: added MIO property (encapsulated TImageEnMIO component)
- TImageEnMView: added Proc property (encapsulated TImageEnProc component)
- TImageEnMview: added OnProgress event
- TImageEnMView: loading images using ImageFileName now updates file format parameters of MIO (TImageEnMIO) property
- TImageEnMView: loading single image using SetImageFromFile or SetImageFromStream now updates file format parameters of MIO property
- TImageEnIO: support for "multithreading" and "big images" features (only TImageEnIO connected to TIEBitmap)
- TImageEnIO: added IEBitmap property
- TImageEnIO: added AttachedIEBitmap property
- TImageEnIO: Params.EXIF_Bitmap now is TIEBitmap instead of TBitmap.
- TImageEnIO: changed definition of TIEReadImageStream and TIEWriteImageStream (accept TIEBitmap instead of TBitmap)
- TImageEnIO: support for asynchronous load/save operations
- TImageEnIO: added AsyncRunning and AsyncMode properties
- TImageEnIO: added OnFinishWork event
- TImageEnIO.Params: added EXIF_HasEXIFData property
- Open dialog: now ZoomCombo is disabled when preview is not checked
- TwainParams: added AutoFeed property
- TOpenImageEnDialog: added AutoAdjustDPI property
- TImageEnVideoCap, TImageEnVIdeoView: OnVideoFrame now returns TIEDibBitmap instead of TBitmap
- TImageEnMView: added CopyToIEBitmap method
- TImageEnMView: supported multithreading
- TImageEnMView: added ThreadPoolSize property
- TImageEnMView: added IsVisible method
- TImageEnMView: added OnBeforeImageDraw event
- TImageEnMView: added ImageBitCount property
- TImageEnProc: added FiltersInitialDir property
- BUG: TImageEnIO, memory leak on assigning IOParams property
- added G3F and G3N (Zetafax format) file extensions
- TImageEnIO.Params: added EXIF_UserComment and EXIF_UserCommentCode properties (EXIF field $9286)
- BUG: TImageEnVect, fixed bug in SetObjBitmapFromFile when load images without alpha channel
- GIF: support for GIF comments
- TImageEnIO.Params: added GIF_Comments[] property
- TGA: now supports Alpha channel read/write (from 24bit images)
- TImageEnView: added SetSelectedPixelsColor method
- TImageEnView: added SetAlphaRangePixelsColor method
- BUG: flip on black/white images
- optimized 90, 180, 270 black/white images rotation
- optimized black/white images rotation
- TImageEnProc: added RemoveIsolatedPixels method
- added noise removal (for black/white images)
- TImageEnProc: added RemoveNoise method
- on Delphi 7: in theme-enabled applications now ImageEn shows the new border
- TImageEnMView: added MaximumViewX and MaximumViewY properties
- Enhanced quality on zoom<100 (with filtered zoom) for black/white images
- Enhanced quality on sub-sampling (filtered) for black/white images
- TImageEnProc: added PaintMark method
- read of single TIFF tags
- unit hyieutils: added TIETifTagsReader class
- TImageEnProc: added ComputeImageEquality method
- new example "compare"
- TImageEnIO: added PrintingFilterOnSubsampling1Bit property
- TImageEnProc: optimized "contrast"
- TImageEnMView: added ImageOriginalWidth[] property
- TImageEnMView: added ImageOriginalHeight[] property
ImageEn 2.0.5 (23 Oct 2002)
- TImageEnView: renamed SetGripStyle to SetSelectionGripStyle
- TImageEnProc: added RedoAt method
- Released source code of Preview.pas and IOPreviews.pas units for "compiled only" users
- TImageEnVideoCap: now recording works
- BUG: fixed bug on writing TGA
- BUG: fixed bug on reading some TIFF with alpha channel
- TImageEnIO: now AutoAdjustDPI is False for default
- TImageEnIO, Twain: now CAP_CAPTION is copied to Params.FileName (or Params[].FileName for TImageEnMIO)
- BUG: Jpeg lossless transform: some image sizes can make wrong results
ImageEn 2.0.4 (6 Oct 2002)
- optimized TImageEnView.UpdateRect
- BUG: fixed bug on moving selection using iesoCutBorders
- TImageEnView: added RightBottomGap property (default 0.5)
- BUG: fixed some selection bugs
- BUG: TImageEn closes IDE environment
- BUG: fixed TImageEnMView memory/resource leaks
- BUG: fixed Image processing previews memory leaks
- BUG: fixed TRulerBox memory leaks
- BUG: resampling makes some artifacts
- now TIFF can save gray scale images (using PhotometInterpretation=ioTIFF_WHITEISZERO or ioTIFF_BLACKISZERO, BitsPerSample=8, SamplesPerPixel=1 )
- now open dialog loads Jpegs more fast (at reduced resolution)
- TImageEnIO.Params: added JPEG_OriginalWidth, JPEG_OriginalHeight properties
- TSaveImageEnDialog: now hides ICO, CUR, WMF, EMF, that ImageEn cannot save
- TOpenImageEnDialog/TSaveImageEnDialog: added ShowAVI property
- BUG: on selectlasso mouse doesn't change when is inside the selection
- TImageEnView: added HasAlphaChannel property (to use instead of AlphaChannel.IsEmpty or AlphaChannel.Full)
- TImageEnView: added RemoveAlphaChannel method
- TImageEnView: now ImageEn creates Alpha Channel only when loaded or requested
- Added Redo feature
- TImageEnProc: added Redo method
- TImageEnProc: added RedoCaptions property
- TImageEnProc: added RedoCount property
- TImageEnProc: added ClearAllRedo method
- TImageEnProc: added ClearRedo method
- TImageEnProc: added SaveRedo method
- TImageEnProc: added SaveRedoCaptioned method
- TImageEnIO: added MergeMetaFile method
- now Undo/Redo also saves alpha channel
- TImageEnMView: added SetImageFromStream method
- TImageEnMView: added EnableResamplingOnMinor property
- BUG: TImageEnVideoView, TImageEnVideoCap: fixed a bug on setting audio properties
- Print preview dialog (iedtDialog) now allows users to select measure unit
- TImageEnIO.DialogsMeasureUnits: added ieduSelectableDefInches, ieduSelectableDefCm values
- Added "iptc" sample
- Added "UndoRedo" example
ImageEn 2.0.3 (9 Sep 2002)
- BUG: fixed bug on resample method
- TImageEn,TImageEnIO: ExecuteOpenDialog/ExecuteSaveDialog added FilterIndex parameter
- TImageEnProc: added CalcDensityHistogram method
- new example DensityAnalysis
- BUG: TImageEnVect: division by zero exception on horizontal or vertical polylines
- BUG: move selections raise access violation
- BUG: doesn't refresh image when the component is out of desktop
- BUG: TImageEnIO.InjectJpegIPTC method doesn't work with some Jpegs
- Input/output params (TImageEnIO.Params): added TIFF_Orientation property
- TImageEnView: added OnProgress event (for input/output and image processing tasks, using .io and .proc)
- TImageEn: renamed ImageEnProc property to Proc
- TImageEn: renamed ImageEnIO property to IO
- TImageEnIO: now TImageEnIO can read single AVI frames
- TImageEnIO: added OpenAVIFile method
- TImageEnIO: added CloseAVIFile method
- TImageEnIO: added LoadFromAVI method
- TImageEnIO.Params: added AVI_FrameCount
- TImageEnIO.Params: added AVI_FrameDelayTime
- TIFF: supported saving of paletted images with 4,8,16,32,64,128 and 256 colors
- recompiled Jpeg library
- TImageEnIO.TwainParams: added StandardSize property (ICAP_SUPPORTEDSIZES of Twain spec.)
- JPEG: supported lossless cut (cut out part of the image)
- JpegLosslessTransform: added CutRect parameter and jtCut value in Transform
- JpegLosslessTransformStream: added CutRect parameter and jtCut value in Transform
- TImageEnView: added CopyToBitmapWithAlpha method
- I/O preview (file format parameters dialog): added optional "Apply" button
- TImageEnIO: added ioppApplyButton to PreviewParams property
- Delphi 7 compatibility
- BUG: TImageEnMView, refresh problems
- ImageEnIO unit: added public function IsKnownFormat
- now Thumbnails example uses IsKnownFormat instead of ParamsFromFile to optimize performance
- EXIF: now ImageEn resets EXIF information before load a new image
ImageEn 2.0.2 (21 Aug 2002)
- BUG: TIFF: fixed bug on read some CCITT-1D images
- BUG: Printing preview window doesn't work with TImage objects
- BUG: TImageEnVect: when Style doesn't contain ievsSelectable the grips all still visible
- TImageEnProc.Preview now peBumpMap, peLens, peWave, peRotate and peFFT disable zoom on preview
- added "FAX" (CCITT3) extension
- TImageEnVect: added GetObjFromIndex method (allows to iterate objects)
- TImageEnVect: enabled ALT key to maintain aspect ratio when resizing
- TImageEnVect: now ForceALTKey works also for vectorial objects (on resizing)
- Open/Save dialogs: now open/save dialog file formats list depends from WriteFunction/ReadFunction values
- TImageEnMView: added InsertingPoint method
- new example FileList_TImageEnMView, drag&drop demo
- new example TImageEnMView_FileList, drag&drop demo
- new example TImageEnMView_dragdrop, drag&drop demo
- BUG: fixed a memory leak
- supported LossLess transformations
- recompiled jpeg library
- TImageEnIO: added JpegLosslessTransform function
- TImageEnIO: added JpegLosslessTransformStream function
- TResampleFilter: added rfFastLinear filter
- TImageEnVect: added RemovePolygonJaggedEdges method
- TImageEnVect: added SimplifyPolygon method
- TImageEnVect: added ObjTextAutoSize[] property
ImageEn 2.0.1 (15 Jul 2002)
- TResampleFilter: added rfNearest,rfLinear values
- TIOTIFFCompression: added ioTIFF_UNKNOWN
- BUG: fixed some Twain bugs
- TwainParams: added UndefinedImageSize property
- BUG: SelX1,SelY1,SelX2,SelY2 are not updated with OnSelectionChanging event
- TImageEnProc: Resample now applies a filter to b/w images also if FilterType<>rfNone
- Added Swedish language (msSwedish)
- TImageEnProc.SkewDetection: added AngleRange and Precision parameters
- TImageEnVect: added SetGripStyle method
- TImageEnView: added EndSelect method
- TImageEnView: now AddSelPoint and AddSelBreak requires EndSelect to work
- BUG: fixed some general bugs
ImageEn 2.0.0 (26 Jun 2002)
- BUG: Print previews: printer setup dialog doesn't refresh the preview
- BUG: Open/Save dialogs: fixed minor bugs
- TImageEnProc: added ClearAllUndo method
- TImageEnProc: added ClearUndoAt method
- TImageEnDBView, TImageEnDBVect: BUG: fixed some minor bugs
ImageEn 1.9.9 (16 Jun 2002)
- BUG: TImageEnView: sometime ImageEn doesn't refresh client area
- Documented TImageEnView.SelectionMask
- BUG: TImageEnVect: fixed bug on loading old IEV format
- BUG: fixed some minor bugs
- improved performance (100-150%) for read TIFF-CCITT images
- TImageEnMView: added multiselection support
- TImageEnMView: added MultiSelecting property
- TImageEnMView: added EnableMultiSelect property
- TImageEnMView: added MultiSelectionOptions property
- TImageEnMView: added MultiSelectedImages property
- TImageEnMView: added MultiSelectedImagesCount property
- TImageEnMView: added UnSelectImage method
- TImageEnMView: added DeleteSelectedImages method
- TImageEnMView: added ImageAtGridPos method
- TImageEnMView: added ThumbnailsBorderWidth property
- TImageEnMView: added ThumbnailsBorderColor property
- TImageEnMView: added wallpaper background
- TImageEnMView: added WallPaper property
- TImageEnMView: added WallPaperStyle property
- TImageEnProc, TImageEn: added multiple undo
- TImageEnProc, TImageEn: added UndoLocation property
- TImageEnProc, TImageEn: added UndoLimit property
- TImageEnProc, TImageEn: added UndoAt method
- TImageEnProc, TImageEn: added UndoCount property
- TImageEnProc, TImageEn: added UndoCaptions property
- TImageEnProc, TImageEn: added SaveUndoCaptioned method
- TImageEnVect: implemented clipboard copy/cut/paste for vectorial objects
- TImageEnVect: added ObjCopyToClipboard method
- TImageEnVect: added ObjCutToClipboard method
- TImageEnVect: added ObjPasteFromClipboard method
- TImageEnVect: supported polyline (open polygons)
- TImageEnVect: added iekPOLYLINE vectorial object (in TIEVObjectKind type)
- TImageEnVect.MouseInteractVt: added miPutPolyLine to put Polyline using mouse
- TImageEnVect: added ObjPolylinePoints[] property (readonly)
- TImageEnVect: added ObjPolylinePointsCount property (readonly)
- TImageEnVect: added SetObjPolylinePoints method
- TImageEnMView: BUG: memory leak on ReleaseBitmap method (occurs when save AVI,TIFF and GIF)
- TImageEnVect: added CreatePolygonFromEdge method
- TImageEnVect: added GetPolylineLen method
- TImageEnVect: added GetPolylineArea method
- TImageEnVect: added GetPolylineCentroid method
- BUG: Win98 and BCB6: open/save dialogs doesn't work
- TwainParams: added Contrast property
- TwainParams: added Brightness property
- TwainParams: added Threshold property
- Now adjust width and height when DpiX<>DpiY
- TImageEnIO: added AutoAdjustDPI property (default True)
- TImageEnVect: customizable measure hint
- TImageEnVect: added MeasureHintFont property
- TImageEnVect: added MeasureHintBrush property
- TImageEnVect: added MeasureHintBorder1 property
- TImageEnVect: added MeasureHintBorder2 property
- TImageEnView: added CopySelectionToBitmap method
ImageEn 1.9.8 (1 Apr 2002)
- removed TImageEnProc: SelX1,SelY1,SelX2,SelY2 properties
- removed TImageEnProc: Select, SelectAll properties
- changed selection system, now uses bitmap mask instead of polygons
- TImageEnView: added MagicWandMode property
- added dutch language (added msDutch in TMsgLanguage)
- BUG: now [iesoMoveable] of TImageEnView.SelectionOptions works
- TImageEnMIO/TImageEnIO.TwainParams: added PaperDetectable property
- TImageEnView: added OnPaint event
- BUG: TImageEnView: fixed some bugs
- TImageEn, TImageEnIO: added ExecuteOpenDialog
- TImageEN, TImageEnIO: added ExecuteSaveDialog
- added ieview.pas unit
- TImageEnView: added IO property (encapsulates TImageEnIO object)
- TImageEnView: added Proc property (encapsulates TImageEnProc object)
- Bug: TImageEnVect: editing keys in Delphi5/6 are disabled
- Bug: sometimes ImageEn saves wrong TIFF
- Bug: TImageEnVect: sometime moving or resizing objects doesn't follow the mouse movement
- TImageEnView: now on select or resizing regions pressing ALT the selection maintains aspect ratio
- TImageEnView: replaced CTRL with ALT to make circular selections
- TImageEnView: replaced CTRL with ALT in polygonal selections to make regular regions
- TIFF: now CIELAB is supported for saving
- TImageEnMView: added ImageCacheSize property
- BUG: PCX: save wrong 256 colors images
- BUG: TIEGRadientBar: some combinations of BeginColor and EndColor doesn't work
- Jpeg: added EXIF support (load only)
- ImageEnIO (TIOParamsVals): added EXIF_Bitmap property
(contains thumbnails - not all formats are supported)
- ImageEnIO (TIOParamsVals): added EXIF_ImageDescription property
(Describes image)
- ImageEnIO (TIOParamsVals): added EXIF_Model property
(Shows model number of digicam)
- ImageEnIO (TIOParamsVals): added EXIF_Orientation property
(The orientation of the camera relative to the scene, when the image was captured)
1 top left side
2 top right side
3 bottom right side
4 bottom left side
5 left side top
6 right side top
7 right side bottom
8 left side bottom
- ImageEnIO (TIOParamsVals): added EXIF_XResolution, EXIF_YResolution properties
(Display/Print resolution of image. Default value is 1/72inch, but it has no mean because personal computer doesn't use this value to display/print out.)
- ImageEnIO (TIOParamsVals): added EXIF_ResolutionUnit property
(Unit of XResolution/YResolution. '1' means no-unit, '2' means inch, '3' means centimeter. Default value is '2'(inch))
- ImageEnIO (TIOParamsVals): added EXIF_Software property
(Shows firmware(internal software of digicam) version number)
- ImageEnIO (TIOParamsVals): added EXIF_DateTime property
(Date/Time of image was last modified. Data format is "YYYY:MM:DD HH:MM:SS"+0x00, total 20bytes. If clock has not set or digicam doesn't have clock, the field may be filled with spaces. In usual, it has the same value of DateTimeOriginal)
- ImageEnIO (TIOParamsVals): added EXIF_WhitePoint[] property
(Defines chromaticity of white point of the image. If the image uses CIE Standard Illumination D65(known as international standard of 'daylight'), the values are '3127/10000,3290/10000'.)
- ImageEnIO (TIOParamsVals): added EXIF_PrimaryChromaticities property
(Defines chromaticity of the primaries of the image. If the image uses CCIR Recommendation 709 primaries, values are '640/1000,330/1000,300/1000,600/1000,150/1000,0/1000'.)
- ImageEnIO (TIOParamsVals): added EXIF_YCbCrCoefficients property
(When image format is YCbCr, this value shows a constant to translate it to RGB format. In usual, values are '0.299/0.587/0.114'.)
- ImageEnIO (TIOParamsVals): added EXIF_YCbCrPositioning property
(When image format is YCbCr and uses 'Subsampling'(cropping of chroma data, all the digicam do that), defines the chroma sample point of subsampling pixel array. '1' means the center of pixel array, '2' means the datum point.)
- ImageEnIO (TIOParamsVals): added EXIF_ReferenceBlackWhite property
(Shows reference value of black point/white point. In case of YCbCr format, first 2 show black/white of Y, next 2 are Cb, last 2 are Cr. In case of RGB format, first 2 show black/white of R, next 2 are G, last 2 are B.)
- ImageEnIO (TIOParamsVals): added EXIF_Copyright property
(Shows copyright information)
- ImageEnIO (TIOParamsVals): added EXIF_ExposureTime property
(Exposure time (reciprocal of shutter speed). Unit is second.)
- ImageEnIO (TIOParamsVals): added EXIF_FNumber property
(The actual F-number(F-stop) of lens when the image was taken.)
- ImageEnIO (TIOParamsVals): added EXIF_ExposureProgram property
(Exposure program that the camera used when image was taken. '1' means manual control, '2' program normal, '3' aperture priority, '4' shutter priority, '5' program creative (slow program), '6' program action(high-speed program), '7' portrait mode, '8' landscape mode.)
- ImageEnIO (TIOParamsVals): added EXIF_ISOSpeedRatings property
(CCD sensitivity equivalent to Ag-Hr film speedrate.)
- ImageEnIO (TIOParamsVals): added EXIF_ExifVersion property
(Exif version number. Stored as 4bytes of ASCII character. If the picture is based on Exif V2.1, value is "0210". Since the type is 'undefined', there is no NULL(0x00) for termination.)
- ImageEnIO (TIOParamsVals): added EXIF_DateTimeOriginal property
(Date/Time of original image taken. This value should not be modified by user program. Data format is "YYYY:MM:DD HH:MM:SS"+0x00, total 20bytes. If clock has not set or digicam doesn't have clock, the field may be filled with spaces. In the Exif standard, this tag is optional, but it is mandatory for DCF.)
- ImageEnIO (TIOParamsVals): added EXIF_DateTimeDigitized property
(Date/Time of image digitized. Usually, it contains the same value of DateTimeOriginal(0x9003). Data format is "YYYY:MM:DD HH:MM:SS"+0x00, total 20bytes. If clock has not set or digicam doesn't have clock, the field may be filled with spaces. In the Exif standard, this tag is optional, but it is mandatory for DCF.)
- ImageEnIO (TIOParamsVals): added EXIF_CompressedBitsPerPixel property
(The average compression ratio of JPEG (rough estimate))
- ImageEnIO (TIOParamsVals): added EXIF_ShutterSpeedValue property
(Shutter speed by APEX value. To convert this value to ordinary 'Shutter Speed'; calculate this value's power of 2, then reciprocal. For example, if the ShutterSpeedValue is '4', shutter speed is 1/(24)=1/16 second.)
- ImageEnIO (TIOParamsVals): added EXIF_ApertureValue property
(The actual aperture value of lens when the image was taken. Unit is APEX. To convert this value to ordinary F-number(F-stop), calculate this value's power of root 2 (=1.4142). For example, if the ApertureValue is '5', F-number is 1.41425 = F5.6.)
- ImageEnIO (TIOParamsVals): added EXIF_BrightnessValue property
(Brightness of taken subject, unit is APEX. To calculate Exposure(Ev) from BrigtnessValue(Bv), you must add SensitivityValue(Sv).
Ev=Bv+Sv Sv=log2(ISOSpeedRating/3.125)
ISO100:Sv=5, ISO200:Sv=6, ISO400:Sv=7, ISO125:Sv=5.32. )
- ImageEnIO (TIOParamsVals): added EXIF_ExposureBiasValue property
(Exposure bias(compensation) value of taking picture. Unit is APEX(EV).)
- ImageEnIO (TIOParamsVals): added EXIF_MaxApertureValue property
(Maximum aperture value of lens. You can convert to F-number by calculating power of root 2 (same process of ApertureValue).)
- ImageEnIO (TIOParamsVals): added EXIF_SubjectDistance property
(Distance to focus point, unit is meter.)
- ImageEnIO (TIOParamsVals): added EXIF_MeteringMode property
(Exposure metering method. '0' means unknown, '1' average, '2' center weighted average, '3' spot, '4' multi-spot, '5' multi-segment, '6' partial, '255' other.)
- ImageEnIO (TIOParamsVals): added EXIF_LightSource property
(Light source, actually this means white balance setting. '0' means unknown, '1' daylight, '2' fluorescent, '3' tungsten, '10' flash, '17' standard light A, '18' standard light B, '19' standard light C, '20' D55, '21' D65, '22' D75, '255' other.)
- ImageEnIO (TIOParamsVals): added EXIF_Flash property
('0' means flash did not fire, '1' flash fired, '5' flash fired but strobe return light not detected, '7' flash fired and strobe return light detected.)
- ImageEnIO (TIOParamsVals): added EXIF_FocalLength property
(Focal length of lens used to take image. Unit is millimeter.)
- ImageEnIO (TIOParamsVals): added EXIF_SubsecTime, EXIF_SubsecTimeOriginal, EXIF_SubsecTimeDigitized properties
(Some of digicam can take 2~30 pictures per second, but DateTime/DateTimeOriginal/DateTimeDigitized tag can't record the sub-second time. SubsecTime tag is used to record it.
For example, DateTimeOriginal = "1996:09:01 09:15:30", SubSecTimeOriginal = "130", Combined original time is "1996:09:01 09:15:30.130")
- ImageEnIO (TIOParamsVals): added EXIF_FlashPixVersion property
(Stores FlashPix version. If the image data is based on FlashPix formar Ver.1.0, value is "0100". )
- ImageEnIO (TIOParamsVals): added EXIF_ColorSpace property
(Defines Color Space. DCF image must use sRGB color space so value is always '1'. If the picture uses the other color space, value is '65535':Uncalibrated.)
- ImageEnIO (TIOParamsVals): added EXIF_ExifImageWidth, EXIF_ExifImageHeight properties
(Size of main image.)
- ImageEnIO (TIOParamsVals): added EXIF_RelatedSoundFile property
(If this digicam can record audio data with image, shows name of audio data.)
- ImageEnIO (TIOParamsVals): added EXIF_FocalPlaneXResolution, EXIF_FocalPlaneYResolution properties
(Pixel density at CCD's position. If you have MegaPixel digicam and take a picture by lower resolution(e.g.VGA mode), this value is re-sampled by picture resolution. In such case, FocalPlaneResolution is not same as CCD's actual resolution.)
- ImageEnIO (TIOParamsVals): added EXIF_FocalPlaneResolutionUnit property
(Unit of FocalPlaneXResoluton/FocalPlaneYResolution. '1' means no-unit, '2' inch, '3' centimeter.
Note:Some of Fujifilm's digicam(e.g.FX2700,FX2900,Finepix4700Z/40i etc) uses value '3' so it must be 'centimeter', but it seems that they use a '8.3mm?'(1/3in.?) to their ResolutionUnit. Fuji's BUG? Finepix4900Z has been changed to use value '2' but it doesn't match to actual value also.)
- ImageEnIO (TIOParamsVals): added EXIF_ExposureIndex property
(Same as ISOSpeedRatings(0x8827) but data type is unsigned rational. Only Kodak's digicam uses this tag instead of ISOSpeedRating.)
- ImageEnIO (TIOParamsVals): added EXIF_SensingMethod property
(Shows type of image sensor unit. '2' means 1 chip color area sensor, most of all digicam use this type.)
- ImageEnIO (TIOParamsVals): added EXIF_FileSource property
(Indicates the image source. Value '0x03' means the image source is digital still camera.)
- ImageEnIO (TIOParamsVals): added EXIF_SceneType property
(Indicates the type of scene. Value '0x01' means that the image was directly photographed.)
- Jpeg: now load DPI values from Exif fields
- Open/Save dialogs: doesn't display GIF extension if DefGIF_LZWDECOMPFUNC=nil and/or DefGIF_LZWCOMPFUNC=nil
- TIFF: load of some simple Jpeg subformat
- TImageEnView, TImageEnMView: added 30 transition effects
- TImageEnMView: added TransitionEffect, TransitionDuration and TransitionRunning properties
- TImageEnView: added TransitionRunning property
- TImageEnView: added PrepareTransition and RunTransition methods
- TImageEnView: added support for alpha channel
- TImageEnView: added EnableAlphaChannel property (False for default)
- TImageEnView: added AlphaChannel property
- GIF,TIFF,PNG,ICO,CUR: now load alpha channel
- BMP,JPEG,PCX,WMF,EMF,TGA,PXM: now reset alpha channel
- Open/save dialogs: now shows places bar on Win2000/Xp/Me
- TOpenImageEnDialog, TSaveImageEnDialog: added ShowPlacesBar published property
- TImageEnProc, TImageEnIO: added AlphaChannel property
- TImageEnVect: now images support alpha channel (transparent feature)
- TImageEnVect: new IEV subformat version (ver 7)
- TImageEnVect: added ObjBitmapAlpha[] property
- TImageEnVect: added SetObjBitmapFromFile method
- ImageEnIO (TIOParamsVals): added JPEG_Scale_Used property
- BUG: TIFF: fixed bug on read some CCITT images
- TIFF: now adjust orientation
- ImageEnIO (TIOParamsVals): added TIFF_EnableAdjustOrientation property
- TImageEnView: now MouseInteract can contains both miSelectCircle and miZoom
- TImageEnView: added miSelectLasso option to MouseInteract property
- TImageEnView: added iesoCutBorders to SelectionOptions
- BUG: some TIFFs are unreadable
- JPEG: now read jpeg with an unknown initial header
- TImageEnView: added InvertSelection method
- TImageEnView: disabled DoubleBuffer property. Now is always True
- TImageEnView: now null selections are removed
- ICO,CUR: fixed some bugs on reading
- BUG: bug on read 16 bit bmp
- TImageEnView: added UpdateRect method
- PNG: now saves alpha channel
- Jpeg: more stable on corrupted files
- open/save dialogs: added ExtendedDialog property
- TImageEnVect: added OnObjectMoveResize event
- BUG: injecting IPTC info fails with jpeg without APP0 marker
- TImageEnVect: added OnObjectClick event
- TImageEnVect: added OnObjectDblClick event
- TImageEnVect: added OnObjectOver event
- TImageEnVect: added FindObjectAt method
- BUG: Printing/preview: some images are incorrectly printed
- BUG: TImageEnView OnKeyUp doesn't work with special keys
- TImageEnProc, TImageEn: now Rotate accept double value for angle
- Preview: now Rotate preview accept float point values
- THSVBox: added HueBarWidth property
- THSVBox: added BarsDistance property
- BUG: bug on Resample to 2x2 size
- TImageEnView: AssignSelTo now supports TImage
- TImageEnView: added SetSelectedAreaAlpha method
- TImageEnIO, TImageEn: added CaptureFromScreen method
- TImageEnIO.TwainParams: added FreeResources method
- added unit ieprnform1.pas (ieprnform1.dfm)
- added unit ieprnform2.pas (ieprnform2.dfm)
- TImageEnIO, TImageEn: added DoPrintPreviewDialog method
- TImageEnIO, TImageEn: added DialogsMeasureUnit property
- TImageEnView: added SetGripStyle method
- TImageEnView: added SetChessboardStyle method
- TImageEnMView: Added ImageTopText[], ImageBottomText[] and ImageInfoText[] properties
- TImageEnMView: new 3d style
- TImageEnMView: added Style property (default iemsACD)
- TImageEnMView: added SelectionStyle property (default iessACD)
- added support for C++Builder 6
- TImageEnVideoCap: added UseWindowsCodec property
- TImageEnProc, TImageEn: added EdgeDetect_ShenCastan method
- Preview dialogs: on XP the tabs now are on top
- TImageEnView: added ForceALTkey property
- TImageEnIO.Params (TIOParamsVals): added JPEG_WarningTot and JPEG_WarningCode properties
- TImageEnView: added PaintRect method
- TImageEnView: added OnMouseInResizingGrip
- TImageEnView: now a single click (out of selection) remove current selection
- TImageEnView: added OnZoomIn and OnZoomOut events
- TImageEnProc: added SkewDetection method
- TImageEnMView: added ThumbnailsBackground property
- TImageEnIO.TwainParam: added GetFromScanner method
- BUG: TImageEnProc: bug on HistEqualize method using separated color channels
- TImageEnView, TImageEnMView: added OnMouseEnter and OnMouseLeave events
- TImageEnView: added DelayDisplaySelection property
- TImageEnProc: TImageEnProc: added Fill method
ImageEn 1.9.7b (25 Aug 2001)
- TImageEnIO: added InjectJpegIPTC method
- TImageEnIO: added InjectJpegIPTCStream method
- Twain: fixed some minor bugs
- TOpenImageEnDialog: added PreviewBorderStyle published property
- TImageEnView.BackgroundStyle: added iebsCropped and iebsCropShadow styles
- TIEWainParams: added DuplexSupported property
- TImageEnIO, TImageEn: added PreviewPrintImage method
- PhotoEn example: added printing and printing preview features
ImageEn 1.9.7a (18 Aug 2001)
- BUG: resample black/white images problem
- BUG: preview dialog crash
- TImageEnIO (TImageEn): added PrintImagePos method
- TImageEnIO (TImageEn): added PrintImage method
- BUG: open/save dialog doesn't open with Delphi6+win98se
- BUG: memory leak on FFT functions
ImageEn 1.9.7 (7 Aug 2001)
- BUG: TImageEnView: moving selection out of image raise an exception
- BUG: saving GIF with less than 100 pixels raises exception
- BUG: crash saving BMP with RLE compression
- BUG: some copy to clipboard problems
- bug: TImageEnVect: rotating lines/rulers of 180 degrees, they become unselectable
- bug: TImageEnView: making a multiselection and moving it the selectio become corrupted
- BUG: TIFF doesn't read non-intel 16bit images
- BUG: sometime copying irregular selection of black/white images doesn't work
- BUG: TImageEnMView: double click call OnImageSelect twice
- file read: now the open mode is (fmOpenRead or fmShareDenyWrite)
- file write: Aborting property become True on write error (disk full,write-protect,etc...)
- Open/Save dialog: now Animate and Preview buttons has the hints
- TImageEnVect: now changes to text object properties is shown also on text editing
- TImageEnView: now OnKeyDown/up accepts arrows key
- TImageEnMView: now stores images in a memory mapped file. This allows to handle large sequences
and improve general performance
- TImageEnMView: removed undocumented GetBitmapInfo method
- DEF_TEMPPATH global variable (unit ImageEnIO)
- TImageEnMView: added PrepareSpaceFor method
- TImageEnMView: added InsertImageEx method
- TImageEnMView: added SetImageEx method
- TDBImageEnView,TDBImageEnVect: now Field accept string field, that can contains file path instead of entire image
- TDBImageEnView, TDBImageEnVect: added AbsolutePath property
- TDBImageEnView, TDBImageEnVect: now DataFieldImageFormat is not more updated by the field content
- TImageEnProc: now ConvertToPalette is visible in C++Builder
- TwainParams.FeederLoaded property
ImageEn 1.9.6 (3 Jul 2001)
- TImageEnView: now DoubleBuffer is True for default
- TImageEnView.SelectionOptions:TIESelectionOptions, added iesoFilled option
- BUG: TImageEnView: fixed minor bugs
- Delphi 6 compatibility
ImageEn 1.9.5 (22 Jun 2001)
- TImageEnView: DelayZoomFilter is True for default
- TImageEnView: B/W subsample filtering is active only when ZoomFilter<>rfNone
- BUG: sometime Photoshop cannot read ImageEn saved jpeg with added IPTC fields
- Twain: improved stablity for Twain critical tasks (acquiring big images, unsupported by TBitmap)
- TImageEnIO, TImageEn: added ParamsFromFileFormat and ParamsFromStreamFormat methods
- Twain: to speed-up continous twain tasks, now some parts (source manager) remain opened
- TSaveImageEnDialog: removed "All Graphics" option from file formats list
- BUG: TSaveImageEnDialog: leaving file-extension out, Save dialog doesn't say the file already exists
- TImageEnVect: added 'microns' and 'NANOMETERS' measure units (ieuMICRONS, ieuNANOMETERS)
- TImageEnVect: added left space at the measure hint
- TImageEnVect: now ruler object uses ObjPenWidth[] property
- HELP: Removed PreviewRate from TImageEnVideoCap component
- HELP: CenterFrame now is documented
- BUG: TImageEnView: now XScr2Bmp and YScr2Bmp return right value on big zoom
- BUG: selections now are more precise on big zoom
- BUG: TImageEnView: on MouseInteract=miZoom, right mouse doesn't work
- TIFF: now supported tiled tiff
- BUG: reading IPTC string items some bytes are appended to the true value and length is increased
- BUG: TImageEnVideoCap sometimes fails driver connecting
- TImageEnMView, TImageEnMIO: now calling Deselect before Acquire, the acquired image will be append to the end of list
- TImageEnVect: added MaxSelectionDistance property
- TImageEnView: now Zoom property accept float point values
- TImageEnView: now ZoomAt property accept float point values for zoom
- BUG: Open/Save dialog on Win95/98/Me systems sometime crash
- BUG: multi TImageEnView and TImageEnMView on the form on 256 color system doesn't work
- TImageEnView: now OnMouseInSel works with all selection types
- TImageEnView: added IsPointInsideSelection method
- Added PBM, PGM and PPM file format support
- TImageEn, TImageEnIO: added LoadFromFilePXM, LoadFromStreamPXM, SaveToFilePXM, SaveToStreamPXM methods
- TDataFieldImageFormat: added ifPXM item
- TImageEnIO unit: added ioPXM constant
- TIOParamsVals (Params property of TImageEnIO): added PXM_Comments[] property
- Now it is possibile move circular, polygonal and magic-wand selections
ImageEn 1.9.4 (21 Maj 2001)
- BUG: Vertical flip on 1bpp images crashes
- BUG: TImageEnView and TImageEnVect: mouse event responds only to right mouse event (except for zoom-out)
- Jpeg: ParamsFromFile and ParamsFromStream now loads IPTC info (it is possible load IPTC info
without load the image)
- TImageEnMView: added ThumbnailResampleFilter property
- BUG: fixed a bug in magic wand selection
- BUG: fixed Twain problems with some scanners
- TImageEnMView: b/w image now are filtered (large b/w was not visible)
- BUG: when user double click to finish a polygonal selection, OnSelectionChange isn't called
- BUG: open/save dialogs: pressing "Advanced" with tga files doesn't display paramters
- Dataware components: now reads paradox graphic blobs
- TImageEnMView: added MoveImage method
- TImageEnVideoView, TImageEnVideoCap: added AudioFormat, AudioChannels, AudioSamplesPerSec, AudioBitsPerSample properties
- TwainParams: added GetDefaultSource function (to get default Twain scanner)
- TImageEnMIO: for Twain, now Duplex and Multifeeder are true for default
- TImageEnVect: now it is possible to define background style and border for text objects
- BUG: ImageEnView line scrolling with zoom < 100 doesn't work
- TImageEnView: now supports mouse wheel for scroll and zoom (default)
- TImageEnView: added MouseWheelParams property
- TImageEnMView: now supports mouse wheel (only vertical scroll)
ImageEn 1.9.3 (21 Apr 2001)
- BUG: TImageEnMView, OnKeyDown doesn't work
- BUG: TImageEnVect, last DeleteObject call deletes two objects
- Twain scanners, improved stability and performance
- Twain scanners, added TwainParams.DuplexEnabled property
- Twain scanners, added TwainParams.AcquireFrameEnabled
- BUG: some french translation errors
ImageEn 1.9.2 (11 Mar 2001)
- renamed TProgressEvent to TIEProgressEvent
- BUG Fix: now read well 4 bit BMP with odd width
- TImageEnVideoView now inherited from TImageEnVect (instead of TImageEnView)
- TImageEnVect: removed unused methodsCopyToClipboard, PasteFromClipboard,InsertFromClipboard,CutToClipboard
- Image Processing Previews: changed rotate behavior
- BUG: TImageEnXX now Ctl3D works well
- TImageEnMView: added SetImageFromFile method
- TImageEnVideoView: added SaveFrame method
- TImageEnIO,TImageEn: now ParamsFromFile and ParamsFromStream set Aborting to correct value
- TImageEnVideoView: now StartRecord returns True or False instead of raise exception
- TImageEnVect: antialias of text display (if the font supports it)
- zoom-out with true color images now is filtered (if ZoomFilter<>rfNone)
- TImageEnVect: added event OnNewObject
- TImageEnVect: added BitmapResampleFilter published property
- new component: TImageEnDBVect (as TImageEnDBView but inherited from TImageEnVect and saves vectorial objects also)
- LoadFromFileIEV now return False (instead raise exception) on error
- LoadFromStreamIEV now return False (instead raise exception) on error
- ImportDXF now return False (instead raise exception) on error
- TImageEnVect: now 'IEV1' and 'IEV2' of .iev format are unsupported
- removed iekFRAME from TIEVObjectKind
- added iekNONE from TIEVObjectKind
- TImageEnVect: added CopyAllObjectsTo method
- TImageEnVect: added CopyObjectTo method
- TImageEnVect: added CopySelectedObjectsTo method
- TQRDBImageEn: now print vectorial objects
- TQRDBImageEn: added PrintObjects published property
- BUG: TImageEnView raise "Division by zero" when click pagedown/up and zoom < 100
- now read TIFF-CCITT files saved by ACDSee 3.1
- TImageEnVect: now "Assign" method copy objects and background image
ImageEn 1.9.1 (5 Mar 2001)
- BUG: non-standard IPTC JPeg raises exceptions
- BUG: Open/Save dialogs raises exceptions on preview
- BUG: Open/Save dialogs doesn't shows when Options.ofEnableSizing=True
- BUG: db examples set always Jpeg format when click on Append button
- TImageEnIO, TImageEn: now clear IPTC info before load all file formats
ImageEn 1.9 (26 Feb 2001)
New features:
- new component TImageEnVideoCap for video capturing without view input
- Zoom out of B/W images now is filtered
- JPEG now uses the jpeg library version 6b
- TImageEn, TImageEnView, TImageEnVect, TImageEnVideoView: now when zoom in/out the position
stays about the same.
- TImageEnView, TImageEn, TImageEnVect, TImageEnVideoView: now scroll bars works
with very large in-zoom
- JPEG: IOParams added JPEG_MarkerList property (TIEMarkerList object)
- JPEG: now load and save markers and text comments
- enhanced selection precision (with big zoom). Now selections are quantized to the pixel dimension
- TImageEn, TImageEnView, TImageEnVect: added DisplayGrid run-time property
- JPEG: read/write IPTC (IIMV4) informations (read/write PhotoShop file info)
- TImageEnIO (TImageEn): Added (IOParams) Params.IPTC_Info:TIEIPTCInfoList property
- Previews: added russian language (msRussian to TMsgLanguage)
- TImageEnMView: added VScrollBarParams and HScrollBarParams run-time properties
- TImageEnView (TImageEn,TImageEnVect,etc): added HScrollBarParams and VScrollBarParams run-time properties
Fixed bugs:
- BUG: TImageEnMView: crash if OnImageSelect event uses selected image
- BUG: fixed TIFF write incompatibilty
- BUG: TImageEnMView: solved variuos minor bugs
- BUG: fixed CropSel bug with black/white images
- TImageEn, TImageEnView, TImageEnVect, TImageEnVideoView: now OnMouseDown/Up/Move works
- TImageEnMView: now scroll bars works when a lot of thumbnails are loaded
- BUG: TImageEnVect: fixed exception in code on text insert
Minor enhancements:
- TImageEnIO.Params (TIOParamsVals): added GIF_ImageCount property (readonly)
- TImageEn.IOParams (TIOParamsVals): added GIF_ImageCount property (readonly)
- TImageEnIO.Params (TIOParamsVals): added TIFF_ImageCount property (readonly)
- TImageEn.IOParams (TIOParamsVals): added TIFF_ImageCount property (readonly)
- TImageEnIO, TImageEn: added LoadFromFileFormat method
- TImageEnIO, TImageEn: added LoadFromStreamFormat method
- TImageEnMView: now scroll-bar line down/up/left/right scroll per thumbnail instead of per pixel
- TImageEnMView: added run-time property ScrollBarsAlwaysVisible
- TImageEn, TImageEnView, TImageEnVect, TImageEnVideoView: added run-time property ScrollBarsAlwaysVisible
Other:
- TImageEnView: DelayZoomFilter now is published property
- ieutils unit name changed to hyieutils
- iedefs unit name changed to hyiedefs
ImageEn 1.8 (13 Jul 2000)
- added MagicWand feature
- TIEMouseInteractItems added miSelectMagicWand
- TImageEnView, TImageEn: added miSelectMagicWand value in MouseInteract property
- TImageEnView, TImageEn: added SelectMagicWand method
- TImageEnView, TImageEn: added MagicWandMaxFilter property
- TImageEnView, TImageEn: added MagicWandTolerance property
- BUG: TImageEnView, fixed some selection bugs
- BUG: TImageEnView, fixed area and perimeter measurements
- TImageEnView: added "multi-selection" feature (SHIFT key allows to select multi regions)
- TImageEnView: added AddSelBreak method
- TImageEnView,TImageEnProc: changed Select method definition (added a parameter)
- BUG: TImageEnMView: B/W images are all white or all black
- TImageEnVect: "ruler" vectorial object
- TImageEnVect:MouseInteractVt added miPutRuler
- TImageEnVect:TIEVObjectKind added iekRULER
- TImageEnVect:IEV format updated
- TImageEnVect:added ObjRulerUnit property
- TImageEnVect: added ObjRulerType property
- TImageEnMView: added RemoveCorrupted published property
- ICO: now reads True color ICOs
- supports for DIB files
- supports for RLE files
- load/save Truevision Targa files (new format, compressed) (tga,targa,vda,icb,vst,pix)
- new unit ietgafil.pas
- added ioTGA to TIOFileType type
- TImageEnIO: added LoadFromFileTGA, LoadFromStreamTGA, SaveToFileTGA,SaveToStreamTGA methods
- TImageEn:added LoadFromFileTGA, LoadFromStreamTGA, SaveToFileTGA,SaveToStreamTGA methods
- TImageEnIO.Params added properties: TGA_XPos,TGA_YPos,TGA_Compressed,TGA_Descriptor,
TGA_Author,TGA_Date,TGA_ImageName,TGA_Background,TGA_AspectRatio,TGA_Gamma,TGA_GrayLevel
- I/O Preview: added TGA file format
- TPreviewParams: added ppTGA
- TImageEnDBView now can load/save TGA blob files
- TImageEnDBView:TDataFieldImageFormat added ifTGA value
- TImageEnView: added OnMouseInSel event
- twain: auto recognize when buffer transfer is supported
- Twain parameters (TImageEnIO.TWParams:TIETwainParams): added AppVersionInfo, AppManufacturer,
AppProductFamily and AppProductName properties
- TImageEnVect: added OnDragLenEnd event
- TImageEnVect: GetSelectionCentroid method
- BUG: TImageEnView: PolySel[] property now gets right values (zoom indipendent)
- TImageEnMView: added DrawImageBackground published property
- BUG: ICO, CUR, now background color is processed
- TImageEnIO.Params added ICO_Background and CUR_Background properties
- TImageEnProc: added IECopyBitmap public function
- TImageEnProc: added IECloneBitmap public function
- BUG: Tiff saves B/W inverted images
ImageEn 1.7 (15 Apr 2000)
- BUG: GIF reader doesn't read 1 bit images
- BUG: TIFF reader doesn't read 1 bit images
- BUG: TIFF reader doesn't read some LZW compressed images
- BUG: GIF more stablity
- Changed GifLZW.pas
- Changed GIFFilter.pas
- BUG: TIFF reader doesn't read CMYK images compressed with LZW
- TImageEnProc, TImageEn: added Maximum method (maximum/dilation filter)
- TImageEnProc, TImageEn: added Minimum method (minimum/erosion filter)
- TImageEnProc, TImageEn: added Opening method (open filter)
- TImageEnProc, TImageEn: added Closing method (close filter)
- added peMorph to TPreviewEffects type (added morph filters preview)
- ppeEffects constant set now contains peMorph
- BUG: ParamsFromFile and ParamsFromStream now recognize user file formats
- BUG: Open/save dialogs now display user file formats informations also when Preview=off
- added 'jpe' extension to jpeg format
- BUG: ioJPEG_AUTOCALC in Params.TIOJPEGScale doesn't calc image scale correctly
- TImageEnVect: added miDragLen in TIEMouseInteractVt type (MouseInteractVt property) to
dynamically measure distance without selection
- TImageEnVect: Added property AllObjectsHiddenthat shows/hides all vectorial objects at once
- TImageEnView, TImageEn: renamed OnSelectionChange to "OnSelectionChanging" and added
new event OnSelectionChange that gets fired on MouseUp
- Greek language: added msGreek in MsgLanguage properties
- TImageEnProc: added peMorph and peRotate to ppeEffects constant set
- TImageEnIO: now images produced by photoshop 3 doesn't set Aborting to True
- added peRotate to TPreviewEffects type (added rotate/flip preview)
- TImageEnView: removed AnimatedSel published property (replaced by SelectionOptions)
- TImageEnView.AnimPolygonNew function added VSizeable parameter
- TImageEnView: added SelectionOptions published property
- TImageEnView, TImageEn, TImageEnVect: added resizeable selection (iesoSizeable in SelectionOptions)
- TImageEnView, TImageEn, TImageEnVect: added moveable selection (iesoMoevable in SelectionOptions)
- BUG: now LoadFromFile and SaveToFile set Aborting with unrecognized file format extension
- TIEFileFormatInfo: removed Extension and Extension2
- TIEFileFormatInfo: added Extensions field (you can add multiple extension specifing 'jpg;jpe;jpeg')
- TImageEnIO, TImageEn: added LoadFromStream method
- TImageEnIO, TImageEn: added SaveToStream method
- TImageEnVect: now "Enter" key save and close the edit box
- TImageEnVect: now "Esc" key abort and close the edit box
- TImageEnVect: now "F2" key switch to edit mode the edit box
- TImageEnVect: now zoom works well with vectorial objects
- TImageEnVect: added property ZoomObjectsWidth
- TImageEnProc, TImageEn: added OnPreview event
- TImageEnIO, TImageEn: added OnIOPreview event
- TImageEnVect: added ObjectsCount:integer property
- TImageEnVect: added ObjectsExtents:TRect property
- TImageEnVect: added SelAllObjects method
- TImageEnVect: added OnVectorialChanged event
- TIFF: read of CIELab subformat
- BUG: BMP file format, inverting some 1 bit images
- BUG: TImageEnView: page-up/down in scroll bars
- new words translation system
- unit IEUTils: added IESetTranslationWord procedure
- added unit iewords.pas
- TImageEnProc, TImageEn: added GetRGBChannel method
- TImageEnProc, TImageEn: added GetRGBChannelAll method
- new class TIEFtImage (undocumented for now) for Fourier transformations
- added unit iefft.dcu
- TImageEnProc, TImageEn: added FTCreateImage method
- TImageEnProc, TImageEn: added FTConvertFrom method
- TImageEnProc, TImageEn: added FTDisplayFrom method
- Previews: added Fast Fourier Transformation (frequency domain) processing
- added peFFT to TPreviewEffects
- added peFFT to ppeColorAdjust
- Open/save dialogs: added AlwaysAnimate published property to auto-animate GIF and AVI
- BUG: TImageEnIO.ParamsFromFile crash recognizing Jpeg files
- C++Builder 5 compatibility
ImageEn 1.6 (5 Feb 2000)
- BUG: Improved general input/output stability
- FindFileFormat function: now verifies file extension also (changed declaration)
- TImageEnIO.ParamsFromFile: now verifies file extension also
- updated TIFLZW.PAS and GIFLZW.PAS files
- TImageEnIO: Now corrupted files doesn't generate exceptions but set Aborting property to True
- PCX: reading of 4 planes images
- TImageEnProc.LoadFilterFromFile doesn't generate exceptions
- TImageEnMIO: added Aborting property
- TImageEnMIO: Now corrupted files doesn't generate exceptions but set Aborting property to True
- BUG: Open/Save dialog now has 3D border also in single images
- BUG: Acquire return always False
- ICO: now load ICO (renamed BMP) with 256 colors
- removed time expired in trial versions
- TImageEnIO, TImageEn, TImageEnDBView: now StreamHeaders is false by default
- BUG: TImageEnDBView crashes if no dataset is connected to its datasource
- BUG: AVI open, TImageEnMIO crashes when AVI decompressor not found
- TIFF: now loads 2,3,5,6,7 bits colormapped images
- TIFF: now loads 16,32 RGB images
- TImageEnIO: fParams variable now is Protected
- TImageEnIO, TImageEnMIO: fAborting variable now is Protected
- TImageEnIO, TImageEnMIO, TImageEnProc: fOnProgress variable now is Protected
- TImageEnIO, TImageEn: LoadFromFile, SaveToFile methods now are dynamic
- TImageEnIO, TImageEn: ParamsFromStream, ParamsFromFile methods now are dynamic
- TImageEn: removed NColors property
- TImageEnVideoView: removed global variables (now multicapture should be handled)
- TImageEnVideoView: supported ALL installed Codec for video capture
- TImageEnVideoView: autorecognized video format for video capture
- TImageEnVideoView: removed VideoFormat property
- TImageEnVideoView: removed VideoFormatList property
- TImageEnVideoView: removed iejVIDEOCAP_TRYVIDEOFORMATS from TIEJob
- TImageEnVideoView: removed iejVIDEOCAP_NEGOTIATINGVIDEOFORMAT from TIEJob
- TImageEnIO: added support for user file formats plug-ins
- TImageEnIO: TIOFileType now is an integer value
- TImageEnIO: added ioUSER constant
- TImageEnIO: added public function IEFileFormatGetInfo
- TImageEnIO: added public function IEFileFormatGetInfo2
- TImageEnIO: added public procedure IEFileFormatAdd
- TImageEnIO: added public procedure IEFileFormatRemove
- TOpenImageEnDialog, TSaveImageEnDialog: added AutoSetFilter property
- Delphi example of user registered file format
- Twain: now ImageEn requires black/white capability
- Source code of TQRImageEn and TQRDBImageEn enclosed (in compiled only version also)
ImageEn 1.5 (14 Nov 1999)
- TImageEnVideoView: support capture card with IYU1, IYU2, UYVY, UYNV, cyuv, YUY2
YUNV, YVYU, Y41P, Y211, CLJR, YVU9, YV12, I420, IYUV input formats
- TImageEnVideoView: added VideoFormatList and VideoFormat properties
- TImageEnVideoView: added OnJob event
- TImageEnView: added CopyFromPolygon method
- TImageEnView: added CopyToPolygon method
- TImageEnView: added PolySelPoints property
- TImageEnView: added OnSelectionChange event
- Previews: Added portuguese language (added msPortuguese in TMsgLanguage)
- International messages: added msSystem (default) to TMsgLanguage (autodetect language)
- now FindFileFormat and FindStreamFormat return a TIOFileType value
- TImageEnIO: Removed ICO_WIDTH, ICO_HEIGHT, CUR_WIDTH and CUR_HEIGHT properties from Params (TIOParamsVals)
- TImageEnIO: added ICO_ImageIndex property in Params (TIOParamsVals)
- TImageEnIO: added CUR_ImageIndex, CUR_XHotSpot, CUR_YHotSpot properties in Params (TIOParamsVals)
- TImageEnIO, TImageEn: added LoadFromStreamICO method
- TImageEnIO, TImageEn: added LoadFromStreamCUR method
- FindFileFormat, FindStreamFormat: now detect ICO and CUR file formats
- TImageEnIO, TImageEn: added ImportMetafile method
- TImageEnIO: added ParamsFromFile,ParamsFromStream methods (Get image properties without load it)
- OpenSave dialog: display image informations when Preview checkbox is unchecked
- IOPreview: removed "copy result to source" button
- BUG: Image processing Preview - crash on "blanked" images
- TImageEnIO: Params.Width and Params.Height are read/write
- TImageEnIO.params added JPEGScale property
- TImageEnMView optimized Jpeg thumbnail load
- TImageEnMView: added ImageAtPos method
- Twain: now source dialog is a modal dialog
- TImageEnIO, TImageEnMIO, TImageEn: added TwainParams property to full scanner control
without standard user interface dialog. TwainParams property contains the sub-proprerties:
- TwainParams.VisibleDialog (show/hide default twain acquire dialog)
- TwainParams.SourceCount and TwainParams.SourceName (to replace SelectAcquireSource)
- TwainParams.SelectSourceByName
- TwainParams.SelectedSource
- TwainParams.XResolution
- TwainParams.YResolution
- TwainParams.XScaling
- TwainParams.YScaling
- TwainParams.PixelType
- TwainParams.Gamma
- TwainParams.PhysicalHeight
- TwainParams.PhysicalWidth
- TwainParams.FeederEnabled
- TwainParams.Orientation
- TwainParams.ProgressIndicators
- TwainParams.AcquireFrameLeft
- TwainParams.AcquireFrameTop
- TwainParams.AcquireFrameRight
- TwainParams.AcquireFrameBottom
- TwainParams.BufferedTransfer
- TwainParams.Update
- Twain: buffered image transfer supported (for big images)
- Twain: acquiring makes OnProgress event
- TImageEnView: now AnimPolygonAddPt accepts bitmap coordinates only
- BUG: Crash when remove a TImageEnIO (or TImageEnMIO) connected by TSaveImageEnDialog
- BUG: crash loading BMP with 16 colours and odd width
- BUG: TImageEnVect: doesn't save TextAlign property
- TImageEnVect: added SetObjFrontOf and SetObjBackTo methods
ImageEn 1.4 (29 Sep 1999)
- bug: memory leak on TImageEnMView for ietThumb in StoreType
- bug: Gif crash when save small images
- new color quantizer median-cut (for <=256 fast-quality colors reduction)
- TImageEnProc, TImageEn: added WriteHiddenText, ReadHiddenText methods
- TImageEnProc, TImageEn: added WriteHiddenData, ReadHiddenData, GetHiddenDataSpace methods
- TImageEnProc: added ConvertToPalette
- TIOParamsVals: added SaveToFile, SaveToStream, LoadFromFile, LoadFromStream methods
- DefGIF_LZWDECOMPFUNC, DefGIF_LZWCOMPFUNC, DefTIFF_LZWDECOMPFUNC: it dosen't need
assign these variables in "initialization" section or in Project source
- TImageEnView: added methods XBmp2Scr and YBmp2Scr
- TImageEnVect: added ObjID and ObjName properties
- TImageEnVect: Added GetObjFromName and GetObjFromID methods
- TImageEnVect: new ObjStyle[] property
- TImageEnVect: new IEV format (deflate - variation of LZ77 - compression for vectorial
objects and images
- ConvertTo: if color number is less of 3 call ConvertToBWOrdered
- IOPreview: super-optimized inptu/output preview
- OpenSave dialogs: checkbox to disable image preview
- TImageEnVideoView: removed MDirectX unit and DirectXVersion property
- JPEG: now read/write subformats RGB, GRAYSCALE, YCbCr, CMYK and YCbCrK
- TIOJPEGColorspace extended with ioJPEG_YCbCr, ioJPEG_CMYK, ioJPEG_YCbCrK
- TIFF: now read/write CMYK subformat
- TImageEnView: added SelectionBase (iesbClientArea, isbBitmap) property
- TImageEnProc: now Select receive always bitmap coordinates
- TImageEnView: Zoom variations doesn't cancel current selection
- TImageEnView: added BackgroundStyle property (to add a background pattern)
- TImageEnMView: added AppendImage method
- BUG: TImageEnView: miSelectZoom now centers selection when zoom
- TImageEnVideoView: new WndCaptureHandle property
- TImageEnVect: now AddNewObject returns the object handle
- TIFF: LZW compression (free plug-in TIFLZW)
- added Params.TIFF_LZWCompFunc property
- added global variable DefTIFF_LZWCOMPFUNC
- added TIFLZWCompress function in TIFLZW
- TImageEnProc, TImageEn: added CanUndo property
- TImageEnIO, TImageEn: added Aborting property
- new users registration method
ImageEn 1.32 (11 Aug 1999)
- BUG: memory leak in IEMView
- BUG: memory leak in Open-Save dialog
ImageEn 1.31 (3 Aug 1999)
- BUG: fix read b/w (1 bit) PNG
- BUG: TImageEnDBView now works
- TImageEnVect: added OnMeasureHint event
- renamed twain.dcu to ietwain.dcu
- bug: fix crash when selectin is out of image bounds
- TImageEnView: added VisibleSelection property
ImageEn 1.3 (24 Jul 1999)
- TImageEnProc: Lens, BumpMapping: now can apply effects to a rectangular region also.
- BUG: fixed bug in TImageEnMView, when DisplayMode=mdSingle
- BUG: fixed bug in TImageEn and TImageEnView: when Assign() receive a TBitmap object
- TImageEnProc, TImageEn: added Wave method (Wave effect)
- Image processing dialog previews: added Wave effect (peWave)
- TImageEnMView: added OnDrawProgress event
- GifLZW.pas now supports standard LZW compression
- Open & SaveDialog: changed file descriptions (remove and insert the component on the form)
- SaveDialog: now adds extension to the file name when user changes file type combobox
- TImageEnView, TImageEn: added Blank method
- TImageEnDBView: now is compatible with TDbCtrlGrid
- new example to use ImageEn in a TDbCtrlGrid component
ImageEn 1.2 (2 Jun 1999)
- BUG: TImageEnVect: caricamento file IEV
- Lettura scrittura file PNG
- TImageEnIO, TImageEn: nuovi method: LoadFromFilePNG, LoadFromStreamPNG,
SaveToFilePNG, SaveToStreamPNG
- TIOParamsVals: added PNG_Interlaced, PNG_Background, PNG_Filter, PNG_Compression properties
- FindFileFormat and FindStreamFormat riconoscono anche il format PNG
- TImageEnDBView: lettura/scrittura PNG
- previews msFrench
- BUG: lettura particolari PCX
- TImageEnMView: Now GridWidth:=-1 lets the component adjust GridWith on Width
- TImageEnMView: SelectionColor and SelectionWidth are published
- TImageEnMView: scroll bars page_dwn and page_up setted to ThumbHeight and ThumbWidth
- TImageEnMView: added LockPaint, UnLockPaint methods
- TImageEnMVIew: added LockPaintCount property
- TImageEnMView: added GetImageVisibility method
- TImageEnMView: added ImageCol,ImageRow properties
- TImageEnMView: added UpdateImage method
- TImageEnMView,TImageEnView: added TabOrder, TabStop properties
- TImageEnMView,TImageEnView: ScrollBars property now is TScrollStype
- TImageEnMView,TImageEnView: added OnKeyDown, OnKeyPress,OnKeyUp events
- TImageEnMView: added OnIOProgress event
- TImageEnView: added Clear method
- TImageEnView: added AutoFit property
- TImageEnMView riceve il focus
- TImageEn, TImageEnMView, TImageEnView: possono ricevere altri componenti
- TImageEnMVIew: Nuovo method SelectSeek
- TImageEnMView: nuova property KeyInteract
- TIOParamsVals: nuove property FileTypeStr and FileType
- TImageEnMView: OnImageSelect viene chiamata anche of SelectedImage and SelectSeek
- method TImageEnIO:DoPreview, TImageEn:DoIOPreview, TImageEnMIO:DoPreview:
added opzione ppAuto
- TImageEnMIO: added property ParamsCount
- BUG: GIFLZW.PAS ora salvare anche immagini interlacciate
- nuovi componenti TOpenImageEnDialog(17010) and TSaveImageEnDialog(17100)
- BUG: TImageEnMView: VisibleFrame ora funziona
- BUG: TImageEnVideoView ora compila anche in B++Builder 3
- TImageEn, TImageEnProc: rinominato method Resize a ImageResize
ImageEn 1.11 (15 Apr 1999)
- La compression LZW non supportata: al suo posto stata implementata per default
la compression NON-LZW (RLE like). Non esistono i plug-in, ma vengono distribuiti
i sorgenti delle unit GifLZW (che include la vecchia GifLZW and GIFNONLZW) and TifLZW.
- corretto bug scrittura NON-LZW-GIF
ImageEn 1.1 (26 Mar 1999)
- TImageEnProc: added method BumpMapping
- Previews: added sheet Bump mapping (peBumpMap)
- TImageEnIO, TImageEn: rinominata InsertToGif in InsertToFileGif
- Previews: added lingua spagnola (msSpanish in MsgLanguage)
- fixed alcuni bug in lettura files
- TImageEnIO: added method InsertToFileTIFF
- TIFF: added function pubblica DeleteTIFFIm
- TImageEnView: scorrimento view durante la selezione se si va fuori
dall'area visibile
- TImageEnVect: scorrimento view durante l'inserimento/selezione/changed of oggetti
se si va fuori dall'area visibile
- TImageEnProc: ora Resample applica filtri anche a sub-sampling
- GIF BUG: corretto error lettura search.gif (avvisare utente)
- TIFF BUG: non legge il file 1.09.27 (avvisare utente)
- TImageEnProc: added method Lens
- Preview: added effetto Lens (peLens)
- Aggiunti method of TImageEnProc and TImageEnIO a TImageEn
- TIFF: salvataggio subformati G3FAX1D, G3FAX2D and G4FAX
- Resample: ora funziona anche con immagini pf1bit
- TImageEnIO: added variabili globali DefGIF_LZWDECOMPFUNC, DefGIF_LZWCOMPFUNC,
DefTIFF_LZWDECOMPFUNC (assegnarle in Initilization)
- TImageEnView eredita of TIEView
- TImageEnIO: changed AttachedImageEn of TImageEnView a TIEView
- TImageEnProc: changed AttachedImageEn of TImageEnView a TIEView
- Nuovo component TImageEnMView
- Corretto bug in TIOParamsVals.Assign
- Corretto bug paste of immagini con palette
- BMP: Corretto bug scrittura BMP con palette
- Rotate funziona anche con pf1bit
- TImageEnIO, TImageEnMIO: SelectAcquireSource una function che rest. true se stato
premuto Select, altrimenti False (Cancel)
- corretto bug in Preview input/output
- nuovo component TImageEnMIO
- TImageEnVect: added property ObjLeft, ObjTop, ObjWidth, ObjHeight
- TImageEnVect: added method GetObjRect
- TImageEnVect: added method SetObjRect
- BUG: progress salvataggio/caricamento BMP
- TImageEnProc: nuovo method ApplyFilterPreset
- TImageEnVect: nuovo method CopyObjectsToBack
- TImageEnVect: nuovo method SetScaleFromPixels
- TImageEnVect: nuovo method SetScaleFromSelectionLen
ImageEn 1.0 (24 Jan 1999)
- TImageEnView, TImageEn: le dimensioni della bitmap iniziali sono state adattate
alla dimensione del component.
- TImageEnView: added method AddSelPoint
- TImageEnView: added property PolySel and PolySelCount
- MouseInteract: added property miSelectPolygon and miSelectCircle
- TImageEnProc: GetReSel aggiunti parameter
- added unit "iedefs"
- TImageEnView: added property LockPaintCount
- TImageEnView: aggiunti method AnimPolygonNew(10437),AnimPolygonDel(10467),
AnimPolygonAddPt(10497) and AnimPolygonClear(10527) per gestione poligoni animati.
- TImageEn,TImageEnDBView,TImageEnView: added property SelColor1(10557)
and SelColor2(10587)
- TImageEn,TImageEnDBView, TImageEnView: added property DoubleBuffer
- added component TIEGradientBar
- TIFF: salvataggio compression PACKBITS (IOTIFF_PACKBITS)
- TImageEnProc: added method ClearSel
- TImageEnProc: added method CropSel
- fixed various bug
- TImageEnDBView: implementation complete of AutoDisplay
- TImageEnDBView: a design time visualizza il tipo of file nel campo
- TImageEnView, TImageEnDBView, TImageEn: added property Ctrl3D and BorderStyle
- TImageEnDBVIew: added format ifUnknown per formati sconosciuti
- TImageEnProc: added method ConvertToBWOrdered
- TImageEnProc: added method ConvertTOBWThreshold
- TResampleFilter spostato of TImageEnProc a iedefs
- Zoom of quality (6 filters)
- TImageEnView: property ZoomFilter
- TImageEnView: property DelayZoomFilter
- added funzioni public FindFileFormat and FindStreamFormat
- TImageEnDBView: added format TIFF
- TImageEnDBVIew: added ifTIFF per format TIFF
- TImageEnDbView: added StreamHeaders
- aggiungere all'help CheckAniGif, DeleteGifIm, EnumGifIm (non sono funzioni class)
- added function EnumTIFFIm
- added component VCL per gestione oggetti vettoriali TImageEnVect
- TIFF: salvataggio compression CCITT 1D (IOTIFF_CCITT1D)
- TImageEnProc: added method ConvertTo24Bit
- traduzione previews in tedesco (opzione msGerman)
- TImageEnView: AssignSelTo
- added component TImageEnVideoView per acquisizione immagini of videocamera