(* ImageEn Build 7.0.0.06.2637 @ 7-4-17 14:58:42.679 *) (* File version 1043 Doc revision 1004 *) // This unit contains only documentation that is not part of class, methods or properties. // It is not linked or included in packages. unit iedocum; interface implementation //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! INDEX ImageEn is an extensive component suite for image editing, display and analysis written in pure VCL code for Delphi and C++ Builder, and is also available for .NET. Thousands of software developers use ImageEn to add powerful multimedia functionality to their applications. ImageEn 7.0.0 Copyright (c) 1998-2017 by Carlotta Calandra. All rights reserved. Copyright (c) 2011-2017 by Xequte Software. www.imageen.com This software comes without express or implied warranty. In no case shall the author be liable for any damage or unwanted behavior of any computer hardware and/or software. Author grants you the right to include the compiled component in your application, whether COMMERCIAL, SHAREWARE or FREEWARE. ImageEn may not be included in any commercial, shareware or freeware "libraries" or "components". THE SOFTWARE IS NOT INTENDED FOR USE IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION, COMMUNICATIONS SYSTEMS, OR AIR TRAFFIC CONTROL OR SIMILAR ACTIVITIES IN WHICH CASE THE FAILURE OF THE SOFTWARE COULD LEAD TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE. No Rental. Customer may not rent or lease the SOFTWARE to someone else. The SOFTWARE is protected by copyright laws and international treaty provisions. Accordingly, Customer is required to treat the SOFTWARE like any other copyrighted material, except as otherwise allowed pursuant to this LICENSE and that it may make one copy of the SOFTWARE solely for backup or archive purposes. ImageEn is not certified as a commercial medical device (FDA or CE-1) for primary diagnostic imaging. C R E D I T S Bill Miller for for demos, suggestions and bug fixes Nitin Chandra nitinchandra@airtelbroadband.in nitinchandra@yahoo.com Sebastian Zierer mail@zierer.info www.songbeamer.com Redeye Removal Algorithm "Redeye removal" algorithm developed by Valentim Batista timsara@softhome.net Extra Transitions Based on "TCustomPicShow" by Kambiz R. Khojasteh kambiz@delphiarea.com Folder Monitoring Based on “Directory Watch” by Iztok Kacin. www.cromis.net Little cms Copyright (C) 1998-2004 Marti Maria JPEG This software is based in part on the work of the Independent JPEG Group PNG PNG Development Group Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. Copyright (c) 1996, 1997 Andreas Dilger Copyright (c) 1998, 1999 Glenn Randers-Pehrson JPEG2000 This software is based in part on JasPer library Copyright (c) 1999-2000, Image Power, Inc. and the University of British Columbia, Canada. Copyright (c) 2001-2002 Michael David Adams. IEVision is based on OpenCV (Open Source Computer Vision, opencv.willowgarage.com) Lapack (Linear Algebra Package, www.netlib.org/lapack) Boost C++ libraries (www.boost.org) Tesseract (github.com/tesseract-ocr) ZBar Copyright 2007-2009 (c) Jeff Brown - spadix@users.sourceforge.net Some improvements in _CopyDIB2BitmapEx and _IEGetHistogram Michal Smiechowski, DSA Polska Sp. z o.o. !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! What's New VERSION 7.0.0 New Features - Added: CropTool can be locked to specific sizes - Added: Symmetric Nearest 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 Also See - Complete History - !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Updating and Compatibility Downloading Updates During your registration period you will receive all new release for free. You can obtain the update at: www.imageen.com/update/ Once your registration ends, you will need to purchase an extension to continue receiving updates and support: www.imageen.com/extend/ Implementing Updates In general, the process of upgrading from any earlier version of ImageEn to the latest is painless. We work hard to ensure that our improvements do not affect your existing functionality, or require recoding. Generally this is done by defaulting to old methods, or marking an existing method as "Deprecated" while adding a newer one. The following list includes all compatibility issues over its lifetime. If upgrading from a recent version of ImageEn, it is easier to review the "Compatibility Issues" section of the version history. TImageEnView Item Version Change Type Notes LayersSync 7.0.0 Removed This property is no longer available. If you made use of this functionality (forcing all layers to have the same dimensions), email us for a workaround LayersAdd/LayersInsert 7.0.0 Changed Functionality Layers are no longer created at position (0,0), they are given a default position which increments with each new layer TIELayer 6.3.3 Moved unit The TIELayer class has been moved to the iexLayers unit so you may need to add it to your uses clause LayersRepositionAll 6.3.1 Changed Functionality Due to error, LayersRepositionAll would move layer in opposite direction to documentation. Corrected in 6.3.1 DoubleBuffer 6.3.0 Removed No change in functionality DisplayGridKind 6.2.2 Removed Rather than TImageEnView.DisplayGrid use DPIX/DPIY 6.2.2 Changed Functionality These properties now just reference TImageEnView.IO.Params.DPI LayersAutoUndo 6.2.1 Removed TImageEnView.LayersAutoUndo is now an option of . Also it is enabled by default if TImageEnView.Proc.AutoUndo is true DisplayImageRect 5.2.0 Removed Set instead Assign 5.2.0 Changed Functionality 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
TImageEnVect Item Version Change Type Notes TIEShape 7.0.0 Renamed The class of ObjBeginShape and ObjEndShape has been renamed TIEVArrowShape iekTEXT 6.2.2 Changed Functionality Text labels are vertically centered if using rounded labels OnBeforeDrawObject/OnAfterDrawObject 5.1.0 Changed Parameters Remove existing event and add event handler again GetObj 5.0.6 Changed Functionality Now returns more specific exceptions SelObjects 5.0.6 Changed Functionality Now returns -1 if there are no selected objects DrawObjectsToBack/CopyObjectToBack/DrawObjectToBack/DrawOneObjectToBack 5.0.5 Changed Parameters Removed MergeAlpha parameter TIEDrawObjectEvent 5.0.5 Changed Parameters Changed type of destination parameter (from TBitmap to TIEBitmap). Remove existing event and add event handler again
TImageEnMView Item Version Change Type Notes CropToolInteraction.Mode 6.3.1 Renamed TIECropToolInteraction.BitmapRectangle renamed to TIECropToolInteraction.RotatedRectangle renamed to TIECropToolInteraction.SetBitmapRectangle renamed to TIECropToolInteraction.ScreenRectangle renamed to RemoveCorrupted 6.2.2 Removed Rather than ImageEnMView1.RemoveCorrupted := True; Use ImageEnMView1.IOOptionsEx := ImageEnMView1.IOOptionsEx + [ ieixRemoveCorrupted ]; ThumbWidth/ThumbHeight 6.2.2 Changed Functionality No longer take zoom into account when read. See instead UpperGap/BottomGap 6.2.2 Changed Functionality No longer include space for text (which is handled internally) so layout may change TIEMText 6.0.0 Removed See compatibility notes for ImageTopText/ImageInfoText/ImageBottomText EnableResamplingOnMinor 6.0.0 Removed Add ietxStretchSmallImages to TImageEnMView.ThumbnailOptionsEx ImageTopText/ImageInfoText/ImageBottomText 6.0.0 Changed Functionality No longer records just a widestring (see details below) ImageTopText/ImageInfoText/ImageBottomText.BackgroundStyle and Background 6.0.0 Removed Use and . If you need custom styles for certain frames use ImageTopText/ImageInfoText/ImageBottomText.Caption 6.0.0 Removed Just set TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText which is now a widestring, e.g. IEMView1.ImageInfoText[idx].Caption := sFilename; Will become: IEMView1.ImageInfoText[idx] := sFilename; ImageTopText/ImageInfoText/ImageBottomText.TruncSide 6.0.0 Removed Use TImageEnMView.TruncSide TImageEnMView.ImageTopText/ImageInfoText/ImageBottomText.Font 6.0.0 Removed Use TImageEnMView.TopTextFont/TImageEnMView.InfoTextFont/TImageEnMView.BottomTextFont. If you need custom fonts for certain frames use Checkboxes 5.2.0 Changed Functionality Checkbox properties of have changed. See and OnPlayFrame 5.2.0 Changed Parameters Remove existing event and add event handler again HighlightTextColor 5.2.0 Removed Use (Note: Default of HighlightColor was clHighlightText, whereas ThumbnailsBackgroundSelected defaults to clNone) SelectionStyle 5.2.0 Removed Use instead HighlightColor 5.2.0 Removed Use (Note: Default of HighlightColor was clHighlight, whereas ThumbnailsBackgroundSelected defaults to clBtnFace) OnImageIDRequest/OnImageIDRequestEx 5.1.0 Changed Parameters Remove existing event and add event handler again LoadIconOnUnknownFormat 5.0.0 Removed Add ietxShowIconForUnknownFormat to instead DeleteSelectedImages 4.3.0 Changed Functionality Now even deletes the selected image if multiselect is disabled or in single view mode
TImageEnFolderMView Item Version Change Type Notes DetectFileFormat 6.2.2 Removed Instead use TImageEnView.IOOptionsEx := ImageEnMView1.IOOptionsEx + [ ieixLoadOnlyByFileExt ]; ResetAllTextToDefault 6.2.0 Removed No longer needed when setting Default*Text. Otherwise use With IEMView do SetAllText( DefaultTopText, DefaultInfoText, DefaultBottomText ); OnFolderChange 6.0.0 Removed Use and instead
TImageEnProc Item Version Change Type Notes Math and color methods 7.0.0 Moved unit Many math and color helper methods that were located in the imageenproc unit have now been moved to the hyieutils unit Redo/RedoAt 6.3.0 Changed Parameters 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 RedoPeekAt 6.3.0 Removed Code such as ImageEnView1.Proc.RedoPeekAt( idx ) should be replaced with ImageEnView1.Proc.GetRedoInfo( ImageEnView1.Proc.RedoCount - 1 - idx, Src, iOp ); Undo 6.3.0 Changed Undo captions are now read from iewords and not hard coded. To use the older undo captions enable the IEUseLegacyUndoCaptions define in ie.inc Undo/UndoAt 6.3.0 Changed Parameters 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 UndoPeekAt 6.3.0 Removed Code such as ImageEnView1.Proc.UndoPeekAt( idx ) should be replaced with ImageEnView1.Proc.GetUndoInfo( ImageEnView1.Proc.UndoCount - 1 - idx, Src, iOp ); ShiftChannel 5.2.0 Changed Parameters No longer use integers to specify channels. Use iecRed for 2, iecGreen for 1 and iecBlue for 0 Rotate 5.0.0 Changed Functionality 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) CutTransparentBorder 4.3.0 Renamed Renamed to CropTransparentBorder
TImageEnIO Item Version Change Type Notes TIEDictionary 6.3.1 Change in functionality TImageEnView.IO.Params.Dict is now case insensitive ProxyAddress/ProxyPassword/ProxyUser 6.2.0 Removed Now properties of IEGlobalSettings() so they apply to TIEBitmap and TIEMultiBitmap too
TImageEnMIO Item Version Change Type Notes ProxyAddress/ProxyPassword/ProxyUser 6.2.0 Removed Now properties of IEGlobalSettings() so they apply to TIEBitmap and TIEMultiBitmap too
TIEBitmap Item Version Change Type Notes RenderToTIEBitmap/RenderToTBitmap 6.3.0 Changed Parameters Removed ABitmapScanline parameter Read (Stream overload) 6.0.0 Changed Parameters Code such as MyBmp.Read(aStream, aIOParams); should change to MyBmp.Read(aStream, ioUnknown, aIOParams); RenderToTIEBitmapEx 6.0.0 Changed Functionality Now includes a bEnableAlpha parameter (set to True to preserve existing functionality)
IEVision Item Version Change Type Notes IEVC_* Consts 6.2.0 Removed Removed some 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
Other Item Version Change Type Notes TRulerBox.OnRulerPosChange/OnRulerGripClick/OnRulerGripDblClick/OnRulerClick 6.3.1 Changed Parameters Parameters have changed for TRulerBox events. Remove old event handler and recreate. TIOParams.LoadFromFile/LoadFromStream/SaveToFile/SaveToStream 6.3.1 Changed Functionality By default, TIOParams.LoadFromFile/LoadFromStream is incompatible with files created using TIOParams.SaveToFile/SaveToStream in pre-6.3.1 versions of ImageEn. To maintain compatiblity you must set the CheckMagicString parameter to false TIEVirtualBitmapProvider.Render 6.3.0 Changed Parameters Check documentation IEAddExtIOPlugin 6.2.2 Changed Functionality Now raises exception if try to load DCRAW (i.e. call ieaddextioplugin('dcrawlib.dll'). Instead of DCRAW add IELib/IELib64.DLL to your EXE folder (it loads automatically) DCRAW.DLL and Raw Files 6.2.0 Changed Functionality 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) iegDialogsBackground 6.2.0 Removed Now IEGlobalSettings().DialogBackgroundStyle ioRawDLLPlugIn 6.2.0 Removed Use ioRaw instead TOpenImageEnDialog 6.2.0 Changed Functionality No longer defaults to filter of filename, unless is set AdjustRectToAspectRatio 6.0.0 Changed Parameters Replaced by , but note change of parameter order iexHelperFunctions.GetFileDetails 6.0.0 Removed Use instead iexDicomRoutines 5.2.0 Removed 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\ iexEXIFRoutines.pas/iexIPTCRoutines.pas 5.2.0 Removed 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\ TIEDICOMTags.AddTag/TIEDICOMTags.GetTagChilds 5.2.0 Changed Functionality Applications calling TIEDICOMTags.AddTag and TIEDICOMTags.GetTagChilds must work with TObjectList as child object TOpenImageEnDialog 5.1.0 Changed Functionality The file types that appear in the "Common" list of TOpenImageEnDialog file filter have changed TOpenImageEnDialog.ShowAVI 5.1.0 Removed Use the published property, , instead ieXtraTransitions.pas 5.0.5 Renamed Renamed to iexTransitions.pas TIETransitionType 5.0.5 Moved TIETransitionType and other transition code moved to iexTransitions.pas TImageEnMViewDoEffectPreviews 5.0.5 Changed Functionality No longer offers peRotate and peResize TIEVirtualBitmapRenderer 5.0.0 Renamed Renamed to TIEVirtualBitmapProvider ioDLLPLUGINS 5.0.0 Removed Replaced by ioOtherDLLPlugIns DefGIF_LZWDECOMPFUNC, DefGIF_LZWCOMPFUNC, DefTIFF_LZWDECOMPFUNC, DefTIFF_LZWCOMPFUNC 4.3.1 Changed Functionality These are now set automatically by ImageEn. They are now available under 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, iegFileFormats, iegUseCMYKProfile, iegUseDefaultFileExists, iegMaxImageEMFSize, iegEnableCMS, iegColorReductionAlgorithm, iegColorReductionQuality, iegObjectsTIFFTag, iegUseRelativeStreams, iegPanZoomQualityFilter, gRedToGrayCoef, gGreenToGrayCoef 4.3.1 Removed Now available under TIEImageEnGlobalSettings MsgLanguage 4.3.1 Removed Now removed from individual objects. Instead use TOpenImageEnDialog/TSaveImageEnDialog 4.3.0 Changed Functionality Changed default preview background (iegPreviewImageBackgroundColor and iegPreviewImageBackgroundStyle)
Deprecated Classes and Methods Superceded methods in ImageEn are marked deprecated, though warnings are not displayed unless you enable the IEWarningForDeprecated define in ie.inc. Although deprecated methods will continue to work thoughout the lifetime of ImageEn, you can disable theur inclusion by undefining IEIncludeDeprecatedInV* in ie.inc. Item Version Change Type Notes TImageEnView.LayersLoadFromFile/LayersLoadFromStream/LayersSaveToFile/LayersSaveToStream 7.0.0 Deprecated Instead use TImageEnIO.LoadFromFileIEN/LoadFromStreamIEN/SaveToFileIEN/SaveToStreamIEN TImageEnView.LayersCreateFromText 7.0.0 Deprecated Instead use TImageEnView.LayersAdd text overload TImageEnView.LayersRotationDelayFilterOnPreview 7.0.0 Deprecated Instead use TImageEnView.LayersFastDrawing = iefDelayed; TImageEnView.AutoFixRotationBorders 7.0.0 Deprecated Instead use loAutoFixBorders of TImageEnView.LayerOptions TImageEnView.CopySelectionToIEBitmap 6.2.0 Deprecated Use instead TImageEnMView.SelectionAntialiased 7.0.0 Deprecated Replaced by TImageEnMView.SetIEBitmap 6.2.0 Deprecated Use instead TImageEnProc.CopyToClipboard 7.0.0 Deprecated See new overload of TImageEnProc.CopyToClipboard TImageEnProc.SelCopyToClip 7.0.0 Deprecated Instead use TImageEnProc.CopyToClipboard(iecpSelection) TImageEnProc.SelCutToClip 7.0.0 Deprecated Instead use TImageEnProc.CutToClipboard(iecpSelection) TImageEnProc.IsClipboardAvailable 7.0.0 Deprecated Instead use TImageEnProc.CanPasteFromClipboard(iecAuto) TImageEnProc.SelPasteFromClip 7.0.0 Deprecated Instead use TImageEnProc.PasteFromClipboard(iecpSelection) TImageEnProc.SaveUndoCaptioned/SaveRedoCaptioned 6.2.2 Deprecated Use overloaded / instead TImageEnProc.MergeIEBitmap 6.2.0 Deprecated Use instead TImageEnProc.SelPasteFromClipStretch 6.2.0 Deprecated Use instead TImageEnProc.ppeColorAdjust/ppeEffects 6.0.0 Deprecated Use , , instead TImageEnIO.LoadFromFileFormat/LoadFromStreamFormat 6.2.0 Deprecated Use / instead TImageEnIO.TIOParamsVals 6.2.0 Deprecated Renamed TIOParamsVals class to TImageEnMIO.LoadFromFileFormat/LoadFromStreamFormat 6.2.0 Deprecated Use / instead TImageEnViewSelCutToClip 7.0.0 Deprecated Use TImageEnViewCutToClipboard instead. Set CutSource to iecpSelection TImageEnViewSelCopyToClip 7.0.0 Deprecated Use TImageEnViewCopyToClipboard instead. Set CopySource to iecpSelection TImageEnViewLayersCreateFromClipboard< 7.0.0 Deprecated Use TImageEnViewPasteFromClipboard instead. Set PasteDest to iecpLayer DrawCustomShape/CreateCustomShapeRegion/TXCustomShape 7.0.0 Deprecated Use new // instead TImageEnVideoView/TImageEnVideoCap 5.0.0 Deprecated Use DirectShow instead. See demos for more info
!!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! License Agreement All users of the ImageEn/IEvolution/ImageEn ActiveX/IEVision components should agree with the following Licence agreement statements: 1. LEGAL NOTICE This License Agreement constitutes a valid and binding agreement between you and author for the use of the software named ImageEn/IEvolution/ImageEn ActiveX/IEVision. You are required to read this Agreement and agree to all of its terms and conditions in order to download and use the software. 2. LICENSE AND USAGE You are granted a License to use this Software product without royalties. Modify, Translate or Create derivative components/libraries from the Software are prohibited! Author grants you the right to include the compiled component in your application, whether COMMERCIAL, SHAREWARE or FREEWARE. The Software may not be included in any commercial, shareware or freeware "libraries" or "components". THE SOFTWARE IS NOT INTENDED FOR USE IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION, COMMUNICATIONS SYSTEMS, OR AIR TRAFFIC CONTROL OR SIMILAR ACTIVITIES IN WHICH CASE THE FAILURE OF THE SOFTWARE COULD LEAD TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE. 3. DISCLAIMER OF WARRANTY This software is provided "as is" without express or implied warranties, including warranties of merchantability and fitness for a particular purpose or non infringement. Author shall not be liable under any theory or any damages suffered by you or any user of the software. In no event will the author be liable for any loss of information, damage to computer or monitor, any incidental, special, indirect or similar damages, or consequential damages (including damages for loss of business profits, business interruption, loss of business information and the like) arising out of the use of or inability to use the software or its documentation even if the author has been advised and warned of the possibility of such damages. In no event does Author warrant that the Software is error free or that Customer will be able to operate the Software without problems or interruptions. This warranty does not apply if the sofware has been altered, except by Author, has not been installed, operated, repaired, or maintained in accordance with instructions supplied by Author, has been subjected to abnormal physical or electrical stress, misuse, negligence, or accident, or is used in ultra-hazardous activities. 4. COPYRIGHT ImageEn/IEvolution/ImageEn ActiveX/IEVision is protected by copyright laws and international treaty provisions. You acknowledge that no title to the intellectual property of ImageEn/IEvolution/ImageEn ActiveX/IEVision is transferred to you. You further acknowledge that title and full ownership rights to ImageEn/IEvolution/ImageEn ActiveX/IEVision will remain the exclusive property of Author and you will not acquire any rights to ImageEn/IEvolution/ImageEn ActiveX/IEVision except as expressly set forth in this license. No Rental. Customer may not rent or lease the SOFTWARE to someone else. All title and copyrights in and to the SOFTWARE (including but not limited to all images, photographs, animations, video, audio, music, text, and other information incorporated into the SOFTWARE), the accompanying printed materials, and any copies of the SOFTWARE, are owned by Author. !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! CONTENTS Introduction ImageEn=MAININDEX Index=Keywords Features=ImageEn Features Common Usage Scenarios=Common Usage Scenarios ImageEn Hierarchy=ImageEn Hierarchy What's New=What's New Updating and Compatibility=Updating and Compatibility Manual Installation=Installation DLLs and 64bit Support=ImageEn DLLs and 64bit Support Language Support=Language support Color Management System=Color Management System Demos=Demos FAQ=FAQ License Agreement=License agreement Global Settings and Methods Global Settings=TIEImageEnGlobalSettings File Format Functions=File Format Functions Other Helper Functions=General Helper Functions Advanced Helper Functions=iexHelperFunctions Registry Functions=iexRegistryFunctions Windows Functions=iexWindowsFunctions Display TImageEnView Component=TImageEnView TImageEnView Layers=TIELayer TImageEnVect Component=TImageEnVect TImageEnMView Component=TImageEnMView TImageEnFolderMView Component=TImageEnFolderMView Image Modification TImageEnProc Component=TImageEnProc TIEICC Class=TIEICC Lossless Jpeg Transformations=Lossless Jpeg Transformations Input/Output TImageEnIO Component=TImageEnIO TImageEnMIO Component=TImageEnMIO TIOParams Class=TIOParams TIOMultiParams Class=TIOMultiParams TOpenImageEnDialog Component=TOpenImageEnDialog TSaveImageEnDialog Component=TSaveImageEnDialog TIEHashStream Class=TIEHashStream TIEResourceExtractor Class=TIEResourceExtractor TIETIFFHandler Class=TIETIFFHandler TIETagsHandler Class=TIETagsHandler TIEWICReader Class=TIEWICReader TIEWICWriter Class=TIEWICWriter TIERFBClient Class=TIERFBClient Tiff/Gif and Other Multipage Functions=Multipage Image functions Advanced Meta Helpers (EXIF, IPTC, etc)=iexMetaHelpers Capture TIEAcquireParams Class=TIEAcquireParams TIETwainParams Class=TIETwainParams TIEWia Class=TIEWia TIEPortableDevices Class=TIEPortableDevices TIEMediaFoundationSourceReader Class=TIEMediaFoundationSourceReader TIEDirectShow Class=TIEDirectShow TIEMediaReader Class=TIEMediaReader Database TIEDBBitmap Class=TIEDBBitmap TIEDBMultiBitmap Class=TIEDBMultiBitmap TImageEnDBView Component=TImageEnDBView TImageEnDBVect Component=TImageEnDBVect Actions TImageEnView Actions=TImageEnView Actions TImageEnVect Actions=TImageEnVect Actions TImageEnMView Actions=TImageEnMView Actions TImageEnFolderMView Actions=TImageEnFolderMView Actions Other Components THistogramBox Component=THistogramBox TIEColorPalette Component=TIEColorPalette TIEGradientBar Component=TIEGradientBar THSVBox Component=THSVBox TRulerBox Component=TRulerBox Other Classes TIEBitmap Class=TIEBitmap TIEMultiBitmap Class=TIEMultiBitmap TIEMask Class=TIEMask TIEAnimation Class=TIEAnimation TIEHorizontalFlow Class=TIEHorizontalFlow TIECircularFlow Class=TIECircularFlow TIEImageList Class=TIEImageList TIESlippyMap Class=TIESlippyMap Vision Classes Introduction=IEVision What's New=IEVision What's New Distribution=Distributing IEVision Helper Functions=IEVision Helper Functions TIEVisionLibrary class reference=TIEVisionLibrary TIEVisionImage class reference=TIEVisionImage TIEVisionMath class reference=TIEVisionMath TIEVisionOCR class reference=TIEVisionOCR TIEVisionObjectsFinder class reference=TIEVisionObjectsFinder TIEVisionObjectTracker class reference=TIEVisionObjectTracker TIEVisionDrawing class reference=TIEVisionDrawing TIEVisionBarCodeScanner Class=TIEVisionBarCodeScanner TIEVisionPeopleDetector Class=TIEVisionPeopleDetector TIEVisionStitcher Class=TIEVisionStitcher TIEVisionBackgroundSubtractor Class=TIEVisionBackgroundSubtractor TIEVisionFaceRecognizer Class=TIEVisionFaceRecognizer !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! ImageEn Features File Operations • Support for all common image formats • Lossless JPEG rotation and cropping • Loading and saving of digital camera (EXIF) fields in JPEG, TIFF, RAW and HD Photo files (without modifying the original image) • Loading and saving of EXIF GPS fields • Loading and saving of Adobe XMP fields from JPEG, TIFF, HD Photo and PSD/PSB files • Raw camera support including access to internal thumbnails and other data fields • Loading and saving of IPTC data (most commonly used by Photoshop) from JPEG and TIFF files (without modifying the original image) • Quick reading of image properties (dimensions, color depth, etc) without loading image • Image load and save dialogs which include a preview and relevant save settings • Support for alpha channel in GIF, TIFF, PNG, ICO, CUR, TGA, PSD/PSB files • Asynchronous loading and saving • Support for Color Management Systems to process ICC profiles • Load images directly from the internet (using http/ftp protocol) • Encryption and decryption using a 128 bit key • Support for other formats such as PDF, PS, JBIG, etc, via plug-ins Image Display • Images can be automatically displayed "To-Fit" or with real time zoom. Sixteen quality settings are available to enhance its display (from fastest to best quality) • Images from digital cameras can be automatically displayed with the correct orientation • 180 stunning image transition and Pan-Zoom effects • Image, text, shape and poly-line layer editing (with loading and saving to PSD and exporting to SVG). All layers can be moved, resized, rotated and grouped (programmatically or by the user) • Support for alpha channel (transparency) • Display and navigate images using Coverflow-style animation Image Editing and Processing • Many selection types: rectangle, ellipse, polygon and "magic wand" (to instantly select a colored area) and other options (including selection intensity and feathering) • Other mouse interaction options include cropping, mouse wheel support and click-dragging to navigate and zoom the image • Interactive adjustment of perspective distortion • Multilevel undo and redo • Easily manipulate and edit single and multi-page images in code using TIEBitmap and TIEMultiBitmap classes • Image resizing with sixteen quality filters including Triangle, Hermite, Bell, BSpline, Lanczos3, Mitchell, FastLinear, Bilinear and Bicubic • Many color adjustment facilities including contrast, HSL, HSV channel separation, RGB, histogram equalization, Fast Fourier Transformation (FFT), gamma correction, temperature and noise removal (using code or the built-in dialog) • Image effects including custom filters, bump map, lens, wave, morphing, Gaussian and motion blurring and sharpening (using code or the built-in dialog) • Image cropping, auto-cropping, flipping, rotation and resizing (using code or the built-in dialog) • ChromaKey background removal • Edge and skew detection • Red-eye removal • Soft shadow and inner shadow effects • Conversion of color ranges, gray scale and negative • Supports a wide range of native pixel formats: 1 bit, 8 bit paletted, 8 bit grayscale, 16 bit grayscale, 24 bit RGB, 32 bit floating point, 24 bit CMYK, 48 bit RGB, CIELab Image and Video Acquisition • Acquire images from Twain and WIA compatible scanners and cameras, and connected portable devices • Video capture and saving of multimedia using DirectShow and Microsoft Media Foundation. Supports all installed codecs and video capture cards • Capture from screen Thumbnails Powerful thumbnail components that displays a grid of images (e.g. read from a folder or database table): • Many style and other customizations, including wallpaper • Supports multiple selection • Display all frames/pages of: AVI, GIF, TIFF or video files (using Directshow) • Very memory efficient and fast with multi-threading background image loading, caching and optional use of embedded thumbnails Vectorial Object Component Vectorial Editing component that allows you to add and manipulate objects on a background image: • Width object support: lines, boxes, circles, ellipses, bitmaps, text (including curved, multi-line and formatted), rulers, polylines, polygons, angles and arrows • Many object options including transparency, soft-shadow and anti-alias • Measurement of lines, perimeters, areas and angles • Save/Load to compressed IEV format and import from AutoCAD DXF files IEVision Advanced Features Plug-In IEVision is an optional plugin for ImageEn which adds advanced features: • OCR (Optical character recognition supporting more than 100 languages) • Facial recognition: Searching for specific faces • Face detection: Finding faces and other parts of the body, eyes, glasses, smile, body (full/upper/lower), cat faces and Russian number plates • Face and objects tracking • Barcode reading (EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code) • Photo Stitching • Inpainting/Image patching (to hide blemishes and copy content) • Other advanced image processing algorithms (Non-local Means Denoising, Hough transformations, edge detection, image erosion and dilation, etc) Other Features • Over 170 actions for all common ImageEn functions, allowing you to build applications with minimal code • Printing of single images and sheets of multiple images, including print preview support • Data-aware versions of image and thumbnail components to automatically display files stored as blob or path references in a database table • One-click selection of languages for all dialogs with support for: English, Italian, German, Spanish, French, Portuguese, Greek, Russian, Dutch, Swedish, Polish, Japanese, Czech, Finnish, Farsi, Chinese, Danish, Turkish and Hungarian • Also works with the standard TImage component and TPicture class • Supports VCL Themes Supported Formats Format Notes Load Save JPEG Supports 1/2, 1/4 and 1/8 sub-sizes for fast preview Yes Yes JPEG2000 Yes Yes GIF Including editing and display of animated GIFs Yes Yes PNG Yes Yes BMP Compressed and uncompressed Yes Yes TIFF Editing and display of single and multipage TIFF. Also supports FAX, G3F and G3N sub-formats Yes Yes BigTIFF Single and multipage BigTIFF. Also supports FAX, G3F and G3N sub-formats Yes No PCX Including DCX (Multipage PCX) format Yes Yes Raw Camera Formats Including Digital Negative Format (*.dng), Canon (*.cr2, *.crw), Kodak (*.dcr), Minolta (*.mrw), Nikon (*.nef), Olympus (*.orf), Pentax (*.pef), Fuji (*.raf), Leica (*.raw), Sony (*.srf) and Sigma (*.x3f) Yes - Icons (ICO) With multiple resolution and color depth support Yes Yes DICOM (Medical Imaging) Single and multipage. Can compress with RLE, jpeg2000 and lossy-jpeg Yes Yes Adobe Photoshop (PSD/PSB) With multiple layer and large document support Yes Yes SVG (Scalable Vector Graphics) Vector format supported by web browser - Yes WMP Also known as Microsoft HD Photo Yes Yes PostScript (PS and EPS) Single and multipage - Yes Adobe PDF Single and multipage images - Yes Metafiles (WMF and EMF) Yes - Cursors (CUR) Yes - AVI Including retrieval and modification of frames Yes Yes Media formats (MPEG, WMV, etc) Via the Directshow or MMF API Yes Yes And more via plug-in Adobe PDF (*.pdf), PostScript (*.PS, *.EPS), Scalable Vector Graphics (*.svg), Kodak Photo-CD (*.pcd, *.pcds), Word Perfect Graphics (*.wpg), MacPaint (*.art), Apple Pict (*.pict), Alias Wavefront (*.rla), Alias Wavefront RLE (*.pix), AVS X (*.avs), CALS (*.cals), DJVU (*.djvu), Dr Halo (*.cut), Dune (*.aai), Encapsulated Portable Document (*.epdf), FlashPix (*.fpx), Flexible Image Transport System (*.fits), GIMP (*.xcf), Graph Visualization (*.dot), HP PCL Printer Image (*.pcl), Irix RGB (*.sgi), JBIG (*.jbig, *.jbg, *.bie), Khoros Visualization (*.viff), Kodak Cineon (*.cin), LEGO Mindstorms Graphic (*.rfg), Magick (*.miff, *.mvg), Matlab (*.mat), MTV Raytracing (*.mtv), Multiple-image Network Graphics (*.jng), On-the-air Bitmap (*.otb), Palm Database ImageViewer (*.pdb), Palm Pixmap (*.palm), Portable Bitmap (*.pbm, *.pgm, *.pnm, *.ppm, *.pxm), PSX TIM (*.tim), Pyramid encoded TIFF (*.ptif), Radiance RGBE (*.hdr), Scitex (*.sct), Seattle File Works (*.sfw), Seattle Works Multi-Image (*.pwp), Slow Scane Television (*.hrz), SMPTE (*.dpx), Sun Rasterfile (*.sun), TrueType Font (*.ttf), Vicar Rasterfile (*.vicar), XWindows Bitmap (*.xbm, *.xpm) Yes Yes
!!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Installation Generally you should use the ImageEn installer to handle the compilation and installation of the ImageEn packages. However you can also do it manually. Note: Before compiling ImageEn, remove any old versions: 1. In Delphi, select Tools > Options, "Library" tab 2. Go through the list of Library paths and check for any that contain ImageEn packages (PKIE*.BPL and PKIE*.BPL files) 3. Delete any ImageEn packages that you find COMPILING THE IMAGEEN PACKAGES: 1. Select Tools > Options, Library and ensure the ImageEn source files folder is listed in your "Library path". The source files will be located under the folder that you installed ImageEn, e.g. C:\Program Files (x86)\ImageEn\Source\ 2. Open and compile PKIECTRL*.DPK, PKIEDB*.DPK, DPKIECTRL*.DPK and DPKIEDB*.DPK (where * is the version number for your Delphi/C++ builder product, e.g. DPKIECTRL16.BPL for Delphi XE2). The DPK files will be in a folder under the \Source\ with the name of the Delphi version Note: If your source files are located under C:\Program Files (x86)\, then you may need to change the folder permissions to allow write access 3. For both DPKIECTRL*.DPK and DPKIEDB*.DPK, right-click the package and click "Install" !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Language support To use Resourcestrings English must be enabled using "$DEFINE IESUPPORTENGLISH" or "$DEFINE IEUSESTRINGRESOURCEONLY" in "ie.inc" and recompile your packages. All other languages can be be disabled in "ie.inc" so the language array is a little bit smaller. You can specify the language of ImageEn's dialogs and components using IEGlobalSettings().
. Email support@xequte.com to add or improve translation for your language. !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Demos Annotation Demos Add Markers \Demo\Annotations\Marker\ Add information markers to an image Add Spots \Demo\Annotations\Spots\ Add and edit circular objects on an image Curved Text \Demo\Annotations\CurvedText\ Draw text that is curved, rotated or with shadow effects Image Annotations \Demo\Annotations\Annotations\ Add text, highlighting and other objects to an image Magic Selection to Polygon \Demo\Annotations\MagicToPolygon\ Convert an irregular selection to a polygon Formatted Text Annotations \Demo\Annotations\AdvancedText\ Burn formatted text into an image Text Arrows \Demo\Annotations\TextArrow\ Add arrows with text to an image Vectorial Editor \Demo\Annotations\Vectorial\ A full demo of capabilities for creating and editing vector based images Vectorial with User Data \Demo\Annotations\UserDataVect\ Store user data with objects in a
Database Demos Database Demo \Demo\Database\DBDemo\ Display of an image stored within a database blob field of the active record using Database Path Demo \Demo\Database\DBPath\ Display of an image referenced by path within a database field of the active record using Database Thumbnail Viewer \Demo\Database\DBMultiBitmap\ Use of to make a data-aware that displays thumbnails of images in a database table Database Thumbnail Viewer 2 \Demo\Database\DBMView\ Displaying thumbnails of all images stored within the blob field of a table using Database Vectorial Demo \Demo\Database\DBDemoVect\ Display of vector files stored within a database blob field using Database Vectorial Stream \Demo\Database\ManualVect\ Streamed display of vector files stored within a database blob field using DBCtrlGrid Demo \Demo\Database\DBCtrl\ Display of multiple images stored within a database blob field using and TDBCtrlGrid DBCtrlGrid Path Demo \Demo\Database\DBCtrlPath\ Display of multiple images referenced by path within a database field using and TDBCtrlGrid
Display Demos "Coverflow" Effect \Demo\Display\MviewFlow\ Demo of "Coverflow" style effect using a "Coverflow" Effect (Manual) \Demo\Display\ManualFlow\ Demo of "Coverflow" style effect (output to an ) DirectShow Video Player \Demo\Display\VideoPlayer\ Video player using DirectShow Display Adjustment \Demo\Display\DisplayAdjust\ Adjust contrast, color and brightness of the displayed image External Bitmap \Demo\Display\ExternalBitmap\ Using an external bitmap as the source display for Touch Screen Gestures \Demo\Display\Gestures\ Using gestures on a touch screen to pan, zoom and manipulate images Image Comparison \Demo\Display\ImageComp\ Compare the content of two images side-by-side Magnifier 1 \Demo\Display\Magnify\ Magnify a portion of an image using a second Magnifier 2 \Demo\Display\Magnify2\ Magnify a portion of an image using a layer Navigator 1 \Demo\Display\Navigator\ Use of to show the currently viewable portion of the image Navigator 2 \Demo\Display\Navigator2\ Use of to show the currently viewable portion of the image Pan Zoom Effects \Demo\Display\PanZoomEffects\ Adding interest to static image with Pan-Zoom ("Ken Burns") effects Project Draw Effect \Demo\Display\ProjectDraw\ Use of for advanced image display effects Soft-Pan Navigation \Demo\Display\SoftPan\ Navigate an image with the cursor (using = miMovingScroll) Transition Effects \Demo\Display\Transitions\ Use of transition effects to smooth the changing of images during a slideshow VMR DVD Player \Demo\Display\VMR_DVD\ Playback of DVD using DirectShow VMR VMR Video Player \Demo\Display\VMR_Video\ Playback of multimedia using DirectShow VMR Zoom Filter Comparison \Demo\Display\ZoomFilter\ Display of all the available ZoomFilter effects for image smoothing
Drag and Drop Demos Dragging from TImageEnMView \Demo\DragDrop\TImageEnMView_FileList_2\ Extracting images from multiple-image files (such as TIFF, GIF, etc.) using drag and drop Dragging to Create Layers \Demo\DragDrop\Layers_DragDrop\ Dragging text, images and shapes onto a to create layers Dragging to TImageEnMView \Demo\DragDrop\TImageEnMView_FileList_1\ Adding images to a using drag and drop Dragging to TImageEnVect \Demo\DragDrop\ImageEnVect_DragDrop\ Dragging text from a listbox to a TImageEnMView Drag-Drop \Demo\DragDrop\MultiView2\ Dragging of images within a TImageEnMView Drag-Drop 2 \Demo\DragDrop\TImageEnMView_DragDrop\ Dragging of images between multiple
Full Applications Batch Converter \Demo\FullApps\ResizeConvert\ Batch editing and conversion application Icon Editor \Demo\FullApps\PlainIconEditor\ Icon editing application Painting Application \Demo\FullApps\ImageEnPainter\ Paint style editing application Photo Editor \Demo\FullApps\ConvertTo\ MDI image editing application PhotoEn \Demo\FullApps\PhotoEn3\ MDI image editing application with support for transparency (Alpha channel) Resource Editor \Demo\FullApps\ResourceExtractor\ Application for accessing and editing resources
IEVision Note: Demos require the IEVision.dll Plug-in. A trial version is available on the Registered Users' download page. Barcode Reading \Demo\IEVision\Barcode\ Reading of all common barcode types, including QR code Detect Barcodes in a Video \Demo\IEVision\BarcodeCam\ Automatically detect barcodes in a live video stream Denoising Color Photos \Demo\IEVision\Denoising\ Use of Non-local Means Denoising to reduce the noise in color images Face Detection \Demo\IEVision\FaceDetection\ Detect and track faces, eyes, mouths, etc., in a video stream Face Detection (Low Level) \Demo\IEVision\FaceDetection_LowLevel\ Detect and track faces, eyes, mouths, etc., in a video stream (low level method) Find Faces in Photo \Demo\IEVision\GetFaces\ Detect faces in an image Find People in Photo \Demo\IEVision\GetPeople\ Detect people in an image Face Recognizer \Demo\IEVision\FaceRecognizer\ Locate known faces in images using an image database Inpaint Brush \Demo\IEVision\Inpaint_Brush\ Demo of IEVision's inpainting method to patch area of an image Inpaint Selection \Demo\IEVision\Inpaint_Selection\ Demo of IEVision's inpainting method to patch a selected area of an image Line Detection \Demo\IEVision\LinesDetect\ Lines within an image are detected and assigned as TImageEnVect objects OCR \Demo\IEVision\OCR\ Recognize text in an image OCR with Layout \Demo\IEVision\OCRWithLayout\ Recognize text and layout in an image Photo Stitching \Demo\IEVision\Stitcher\ Stitching of multiple photos of a scene into a single panoramic image Track Objects \Demo\IEVision\TrackObjects\ Click to track an object in a video stream Track Objects (Low Level) \Demo\IEVision\TrackObjects_LowLevel\ Click to track an object in a video stream (low level method) Video Background Removal \Demo\IEVision\BackgroundSubtract\ Use of IEVision to automatically subtract/replace the background of a video stream
Image Acquisition Demos Acquire from Any Source \Demo\ImageAcquisition\AllAcquire\ Acquisition from any source: Twain, WIA and connected cameras and cards Portable Devices Demo \Demo\ImageAcquisition\PortableDevices\ Use of the WPD API to access content on connected devices Take Photo with WIA \Demo\ImageAcquisition\TakePhoto\ Take a snapshot from a WIA device Twain Scanner \Demo\ImageAcquisition\Twain\ Acquisition and configuration of a Twain scanner Twain Settings Storage \Demo\ImageAcquisition\TwainStore\ Loading and saving of setting from a Twain device WIA Acquisition \Demo\ImageAcquisition\CameraGetImages\ Retrieval of images from a camera using WIA WIA Scanner \Demo\ImageAcquisition\WIAScanner\ Acquisition of images from cameras and scanners using WIA
Image Analysis Demos Automatic orientation \Demo\ImageAnalysis\Orientator\ Using to automatically rotate poorly scanned images Color Density Analysis \Demo\ImageAnalysis\DensityAnalysis\ Calculate the pixel density within an image () Color Histogram \Demo\ImageAnalysis\Histogram\ Display histograms of the color density within an image Fourier Transformation \Demo\ImageAnalysis\FFT\ Create a Fourier Transformation for an image () Get Palette \Demo\ImageAnalysis\Palette\ Display the color palette of an image Image Similarity \Demo\ImageAnalysis\Compare\ Use an algorithm to determine the similarity of two images Measurement \Demo\ImageAnalysis\MeasureIt\ Accurate measurement within images () Separate Objects \Demo\ImageAnalysis\SeparateObjects\ Detect and separate all objects in an image () Show Image Differences \Demo\ImageAnalysis\ImagesDiff\ Calculate and display the differences between two images ()
Image Editing Demos Add Border \Demo\ImageEditing\AddBorder\ Add a border to an image Add Picture Frame \Demo\ImageEditing\PictureFrames\ Using masks to add border effects to images Animated GIF Creator \Demo\ImageEditing\AnimatedGIF\ Using ImageEn to create and animate multiple frame GIF files Automatic Enhancement \Demo\ImageEditing\AutoEnhance\ Various algorithms to automatically adjust the color of an image Brush Effects \Demo\ImageEditing\Brush\ Using brush and paint effects on an image Chroma Key Removal \Demo\ImageEditing\ChromaKey\ Remove the Chroma Key background from an image (e.g. a subject in front of a "Green-Screen") Copy Transparent Selection \Demo\ImageEditing\CopySel\ Copying and pasting transparent selections Cropping Tool \Demo\ImageEditing\CropTool\ Using the in-built Crop-Tool to rotate and crop images Dithering \Demo\ImageEditing\Dithering\ Reduction of colors in an image and dithering methods Image Resizing \Demo\ImageEditing\Resize\ Resizing an image to keep only a portion of it (Note: does not demonstrate stretching/scaling) Layer Editing (Image Layers) \Demo\ImageEditing\Layers\ Usage of image layers Layer Editing (All Layer Types) \Demo\ImageEditing\Layers_AllTypes\ Usage of image, shape, text and line layers Layer Rotation \Demo\ImageEditing\RotateLayers\ Free rotation and resizing of layers of a Layers and Text \Demo\ImageEditing\TextOut\ Working with text and image layers and transparency Lens Effect \Demo\ImageEditing\Lens\ Demo of the lens effect () Lossless JPEG Cropping \Demo\ImageEditing\LosslessCrop\ Perform a lossless crop of a JPEG (i.e. no quality loss due to re-saving) Radial Effect \Demo\ImageEditing\Radial\ Using to correct barrel or pincushion distortion Remove Red Eyes \Demo\ImageEditing\RedEye\ Removing the "Red Eye" effect from flash photos Replace Parts \Demo\ImageEditing\ReplaceParts\ Working with selections in Rotate and Crop \Demo\ImageEditing\RotateAndCrop\ Automatic cropping of borders using Select and Crop \Demo\ImageEditing\SelectAndCrop\ How to select and crop an image regardless of zoom level Set Transparency \Demo\ImageEditing\MakeTransparent\ Set the alpha/transparency in an image by color Soft Selections \Demo\ImageEditing\SoftSelections\ Demo of feathering a selection (to give it a soft edge) Soft Shadow \Demo\ImageEditing\SoftShadow\ Adding a soft shadow to an image Threaded Processing \Demo\ImageEditing\ThreadedProcessing\ Applying image effects in a background thread Undo/Redo \Demo\ImageEditing\UndoRedo\ Using Undo and Redo to step back though image changes
Loading/Saving Demos Camera Raw Files \Demo\InputOutput\CameraRaw\ Loading digital camera raw files using the ielib.dll plug-in Custom File Format \Demo\InputOutput\FileFormatPlugins\ Creating and supporting your own image format Dicom Viewer \Demo\InputOutput\Dicom\ Read and animated images within a Dicom file EXIF Editor \Demo\InputOutput\EXIF\ View and edit EXIF fields from a digital camera file ImageMagick Plug-In \Demo\InputOutput\ImageMagick\ If ImageMagick is installed then ImageEn will automatically support all its formats (including PDF via GhostScript) IPTC Editor \Demo\InputOutput\IPTC\ View and edit IPTC fields from a JPEG or TIFF image PDF Builder \Demo\InputOutput\PDFBuilder\ Create PDF and PS files from a selection of images Preload Images \Demo\InputOutput\Preload\ Loading images in the background and displaying as required Print Selection \Demo\InputOutput\PrintSelected\ Print only the selected area of an image Printing Demo \Demo\InputOutput\PrintProjects\ Printing and print preview demo Resource Loader \Demo\InputOutput\ResourceLoader\ Load images from resources TIFF Editor \Demo\InputOutput\TiffHandler\ Edit pages and tags of TIFF files True Raw Format \Demo\InputOutput\RealRAW\ Loading and saving images in a true "Raw" format (Note: this is not the same as digital camera raw format) Video Frame Viewer \Demo\InputOutput\LargeVideos\ Load frames from a video or multipage file into a XMP Meta Data \Demo\XMP\XMP\ Display common XMP fields from JPEG, TIFF and PSD files
Multiple Image Demos Create Transition Frames \Demo\Multi\CreateTransitionFrames\ Inserting transition frames into a or saving them to file Custom Thumbnail Background \Demo\Multi\CustomThumbs\ Show thumbnails for images in a folder with custom drawn background Draw Control on Thumbnail \Demo\Multi\CustomThumbs2\ Custom drawing of checkboxes onto thumbnails IEMultiBitmap Demo \Demo\Multi\MultiBitmap\ Use of a to edit multi-page TIFF files in memory ImageEnFolderMView Demo \Demo\Multi\FolderMView\ Using to display file folders ImageEnMView Styles \Demo\Multi\MViewStyles\ Changing styles and display modes of a Print Multiview Frame \Demo\Multi\Multiview_PrintFrame\ Print the selected frame of a multiple-image file such as AVI, TIFF and GIF Thumbnail Viewer \Demo\Multi\Thumbnails\ Using to show thumbnails for images in a folder Thumbnails with Checkboxes \Demo\Multi\Checkboxes\ Using checkboxes to select thumbnails Thumbnails with Style \Demo\Multi\Thumbnails2\ Show thumbnails with preset styles View All Frames \Demo\Multi\Multiview\ Use to view frames and animate multiple-image files such as AVI, TIFF and GIF View Meta-data Annotations \Demo\Multi\Multiview2\ Display in and of Wang annotations and ImageEn layers from the meta-data of images
Video Capture Demos Delayed DirectShow Capture \Demo\VideoCapture\DirectShow5\ Delayed display of captured video using DirectShow DirectShow Capture to AVI \Demo\VideoCapture\DirectShow4\ Capture of video to AVI file using DirectShow DirectShow Frame Capture \Demo\VideoCapture\DirectShow3\ Capture of frames (to ) using DirectShow DirectShow to JPEG Stream \Demo\VideoCapture\DirectShow6\ Capture of video to JPEG stream using DirectShow DirectShow Video Capture 1 \Demo\VideoCapture\DirectShow1\ Video capture using DirectShow DirectShow Video Capture 2 \Demo\VideoCapture\DirectShow2\ Video capture using DirectShow IP Camera Capture \Demo\VideoCapture\CaptFromIPCamera\ Capturing from an IP camera (which send a stream of JPEG images) MMF Camera Grabbing \Demo\VideoCapture\MediaFoundationCam\ Grabbing video from a camera using Microsoft Media Foundation MMF File Grabbing \Demo\VideoCapture\MediaFoundationFile\ Grabbing video from a file using Microsoft Media Foundation MMF Web Grabbing \Demo\VideoCapture\MediaFoundationURL\ Grabbing video from the web using Microsoft Media Foundation Motion Detector \Demo\VideoCapture\MotionDetector\ Motion detection using DirectShow Multiple Videos \Demo\VideoCapture\MView_VideoCapture\ Using a to display multiple video feeds Record Desktop to AVI \Demo\VideoCapture\DesktopToAvi\ Record desktop activity to an AVI file VFW Video Capture 1 (Deprecated) \Demo\VideoCapture\VideoCapture1\ Video capture (using older "Video for Windows" interface) VFW Video Capture 2 (Deprecated) \Demo\VideoCapture\VideoCapture2\ Video capture (using older "Video for Windows" interface) VFW Video Capture 3 (Deprecated) \Demo\VideoCapture\VideoCapture3\ Video capture (using older "Video for Windows" interface) Video Effects \Demo\VideoCapture\VideoEffects\ Adding effects to captured video with DirectShow VMR to AVI \Demo\VideoCapture\VMR_Capture\ Capture of video to AVI file using DirectShow VMR VMR Video Capture \Demo\VideoCapture\VMR_Camera\ Video capture using Directshow VMR VNC Viewer 1 (RFB) \Demo\VideoCapture\RFB_VNCViewer1\ VNC Viewer (using RFB protocol) VNC Viewer 2 (RFB) \Demo\VideoCapture\RFB_VNCViewer2\ VNC Viewer (using RFB protocol) supporting multiple sources
Other Demos ImageEnView Actions \Demo\Other\Actions\ Image application built using only ImageEnView actions ImageEn Layer Actions \Demo\Other\Actions_Layers\ Image Layering application built using only ImageEnView actions ImageEn Theming \Demo\Other\ImageEn_Theming\ Use of VCL Theming (in XE2 and newer) to style ImageEn controls ImageEnMFolderView Actions \Demo\Other\Actions_Folder\ Folder thumbnail application built using only TImageEnFolderMView actions ImageEnMView Actions \Demo\Other\Actions_MView\ Multiple Image and thumbnail application built using only ImageEnMView actions ImageEnVect Actions \Demo\Other\Actions_Vect\ Vector image application built using only ImageEnVect actions ImageEnView Rulers \Demo\Other\ImageEnViewRulers\ Display of rulers within a TImageEnView Burn Copyright \Demo\Other\Copyright\ Adding text and borders to an image Color Palette \Demo\Other\ColorPalette\ Display and selection of colors of a palette Geo Maps \Demo\Other\GeoMaps\ Use the GPS data in photos to show their location on a map Image Encryption \Demo\Other\Encrypt\ Encryption and decryption of images using 128bit TEA algorithm Mouse Wheel Params \Demo\Other\MouseWheel\ The effect of the TImageEnView and TImageEnMView MouseWheelParams properties Photo Morphing \Demo\Other\Morphing\ Morphing of two images Photosphere Viewer \Demo\Other\Photosphere\ Interactive display of "Equirectangular" images (Google Android PhotoSphere 360° panoramic images) Pixel Viewer \Demo\Other\PixelView\ Display the color of the current pixel under the cursor Ruler \Demo\Other\RulerBox\ Use of to show current cursor position Select Image Cells \Demo\Other\CellsAndGrid\ Divide an image into a grid and allow selection of individual cells
!!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! IPTC items compatible with Adobe PhotoShop Field Record Number DataSet Max Length (Chars) Notes Object name PhotoShop_IPTC_Records (2) IPTC_PS_Title (5) 64 Edit status PhotoShop_IPTC_Records (2) IPTC_PS_Edit_Status (7) 7 Urgency PhotoShop_IPTC_Records (2) IPTC_PS_Urgency (10) 1 1 numeric character Category PhotoShop_IPTC_Records (2) IPTC_PS_Category (15) 3 Supplemental Category PhotoShop_IPTC_Records (2) IPTC_PS_Category_2 (20) 32 Fixture Identifier PhotoShop_IPTC_Records (2) IPTC_PS_Fixture_Identifier (22) 32 Keywords PhotoShop_IPTC_Records (2) IPTC_PS_Keywords (25) 64 per instance Multiple instances of field Release Date PhotoShop_IPTC_Records (2) IPTC_PS_Release_Date (30) CCYYMMDD date format Release Time PhotoShop_IPTC_Records (2) IPTC_PS_Release_Time (35) HHMMSS±HHMM time format Special Instructions PhotoShop_IPTC_Records (2) IPTC_PS_Instructions (40) 256 Reference Service PhotoShop_IPTC_Records (2) IPTC_PS_Reference_Service (45) 10 Reference Date PhotoShop_IPTC_Records (2) IPTC_PS_Reference_Date (47) CCYYMMDD date format Reference Number PhotoShop_IPTC_Records (2) IPTC_PS_Reference_Number (50) 8 Date Created PhotoShop_IPTC_Records (2) IPTC_PS_Date_Created (55) CCYYMMDD date format Time Created PhotoShop_IPTC_Records (2) IPTC_PS_Time_Created (60) HHMMSS±HHMM time format Originating Program PhotoShop_IPTC_Records (2) IPTC_PS_Originating_Program (65) 32 Program Version PhotoShop_IPTC_Records (2) IPTC_PS_Program_Version (70) 10 Object Cycle PhotoShop_IPTC_Records (2) IPTC_PS_Object_Cycle (75) 1 1 character: 'a' is morning, 'b' is evening and 'c' is both By-line PhotoShop_IPTC_Records (2) IPTC_PS_Byline_1 (80) 32 By-line Title PhotoShop_IPTC_Records (2) IPTC_PS_Byline_2 (85) 32 City PhotoShop_IPTC_Records (2) IPTC_PS_City (90) 32 Province/State PhotoShop_IPTC_Records (2) IPTC_PS_State_Province (95) 32 Country/Primary Location Code PhotoShop_IPTC_Records (2) IPTC_PS_Country_Code (100) 3 3 characters, see ISO 3166 Country/Primary Location Name PhotoShop_IPTC_Records (2) IPTC_PS_Country (101) 64 Original Transmission Reference PhotoShop_IPTC_Records (2) IPTC_PS_Transmission_Reference (103) 32 Credit PhotoShop_IPTC_Records (2) IPTC_PS_Credit (110) 32 Source PhotoShop_IPTC_Records (2) IPTC_PS_Source (115) 32 Copyright Notice PhotoShop_IPTC_Records (2) IPTC_PS_Copyright_Notice (116) 128 Caption/Abstract PhotoShop_IPTC_Records (2) IPTC_PS_Caption (120) 2000 max 2000 characters, carriage-returns, linefeeds and spaces are permitted Writer/Editor PhotoShop_IPTC_Records (2) IPTC_PS_Writer (122) 32 Image Type PhotoShop_IPTC_Records (2) IPTC_PS_Image_Type (130) 2 2 characters, see IIMV4 specifications
For a list of all IPTC items, see the IPTC - NAA Information Interchange Model Version 4 (October 1997). Download the pdf manual from www.iptc.org !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! File Format Functions File Formats
External Formats (Plug-Ins) Register ImageEn Formats in VCL Custom File Format Support To add your own custom file format to ImageEn you need only use by allocating and filling a structure. Demo Demos\InputOutput\FileFormatPlugins\Fplug.dpr !!} {!! General Helper Functions Layers JPEG AVI Color Methods Palette Methods Math Methods File Methods Other Utilities See Also - : Lossless JPEG Rotation and Flip - : Tiff/Gif and Other Multipage Functions - : TImageEnIO, TIEBitmap, TBitmap and File Functions - : EXIF, IPTC and Dicom functions - : File and Folder Management Functions - : Saving/Loading settings from the registry !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Lossless Jpeg Transformations Rotate, flip or crop a JPEG image without recompression so that its quality is maintained. Note: Defined in iexBitmaps unit !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Action Classes A set of actions is available for rapid UI development ImageEnView Actions ImageEnMView Actions ImageEnFolderMView Actions ImageEnVect Actions !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Multipage Image functions Global methods for managing multi-frame image types without use of visual components such as . You can also manipulate multi-page images in memory using the class. Note: Defined in iexBitmaps unit GIF TIFF Icons (ICO) Multipage PCX (DCX) !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Color Management System ImageEn includes a Color Management System (CMS) which enables the rendering of an image with its original colors. To enable the CMS use: IEGlobalSettings().EnableCMS := True; public setting is defined in the unit iesettings. If you want to use LCMS instead of Windows CMS you need to recompile ImageEn (with source code). Make sure that following line inside ie.inc is enabled: (*$define IEINCLUDECMS*) When the CMS is enabled loading of images with a color profile will be slower. If you don't define IEINCLUDECMS in ie.inc then only the Windows CMS will be used. Note that Windows CMS is quicker than LCMS. See also: ImageEn includes parts of Little cms by Marti Maria COPYRIGHT NOTICE OF LCMS: Little cms Copyright (C) 1998-2004 Marti Maria Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! ImageEn DLLs and 64bit Support IMAGEEN DLLS These are the standard DLL's of ImageEn: DLL Description ielib32.dll Adds support for digital camera raw formats (32bit applications) and optional code library for faster performance ielib64.dll Required ImageEn library (64bit applications) IEVision.dll Advanced functions add-on for ImageEn (32bit Applications) IEVision64.dll Advanced functions add-on for ImageEn (64bit Applications)
Note: You need only distribute one of these DLL's with your application, because: - IEVision.dll (32bit) includes all code of ielib32.dll - IEVision64.dll (64bit) includes all code of ielib64.dll - ielib32.dll (32bit) includes all code of legacy dcraw.dll - ielib64.dll (64bit) includes all code of legacy dcraw.dll Note: Versions prior to v6.1.0 used dcraw.dll for digital camera raw image support. From v6.1.0 use ielib*.dll or ievision*.dll instead. 64BIT APPLICATIONS: IELIB64.DLL ImageEn can be used to create 64bit applications with Delphi/C++ Builder XE2 and newer. It requires the use of a library, ielib64.dll, which you will need to ship with your application. Ideally ielib64.dll should be placed in the same folder as your EXE, but it can also be located on the system path. 32BIT APPLICATIONS: IELIB32.DLL ielib32.dll is an OPTIONAL library for ImageEn applications. 32 bit applications do NOT require a DLL, however if ielib32.dll is not included then digital camera raw formats are not supported (ioRAW image type). ielib32.dll also includes optimized loading code for JPEG, PNG and JPEG2000, which is approximately 30% faster than ImageEn's native Delphi code. To use for these formats ielib32.dll you will need to edit ie.inc and enable the following defines: IEUSEDLLJPEGLIB IEUSEDLLPNGLIB IEUSEDLLJPEG2000LIB You then need to recompile your packages. Ideally ielib32.dll should be placed in the same folder as your EXE, but it can also be located on the system path. Note: You can check the availability of requisite DLL's by calling
See Also - !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! WIA device properties Device Information Property Constants WIA_DIP_BAUDRATE The baud rate of serial devices. WIA_DIP_DEV_DESC A description of the device. WIA_DIP_DEV_ID A device ID that is unique per physical device. This ID is composed of the Still Image class name followed by the device index. This ID is generated by the operating system. WIA_DIP_DEV_NAME A user-readable device name. WIA_DIP_DEV_TYPE An STI device type constant. Use the GET_STI_DEVICE_TYPE macro to get the device type. Currently, device types are defined as follows. Type Definition stiDeviceTypeDefault When enumerating devices, any device that matches stiDeviceTypeScanner Device that is represented as a scanner (see the WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES to determine if the scanner is flatbed or sheet-fed) stiDeviceTypeDigitalCamera Device that is represented as a camera stiDeviceTypeStreamingVideo Device that is represented as streaming video
WIA_DIP_DRIVER_VERSION The DLL version number of the driver's USD file. WIA_DIP_HW_CONFIG The "hardwareConfig" entry in the driver's INF file. WIA_DIP_PORT_NAME Name of the port through which the device is connected. WIA_DIP_REMOTE_DEV_ID The ID of the remote device. WIA_DIP_SERVER_NAME The name of the server where the WIA server for this device is running. WIA_DIP_STI_GEN_CAPABILITIES The driver's "STI_USD_CAPS.dwGenericCaps" value. This value contains the driver's "DeviceType" and "DeviceSubType" values. WIA_DIP_UI_CLSID The class ID of the UI component. WIA_DIP_VEND_DESC The device manufactures name. WIA_DIP_WIA_VERSION The version of WIA. Common Device Property Constants WIA_DPA_CONNECT_STATUS Device connect status. This is intended for serial devices or other non-Plug and Play devices where the operating system cannot determine if the device is connected. There are only two defined values for this property, as follows. Connect Status Definition WIA_DEVICE_NOT_CONNECTED Device is not connected WIA_DEVICE_CONNECTED Device is connected and operational
WIA_DPA_FIRMWARE_VERSION Firmware version number. The value for the firmware version number is up to the device. For example, "4.2.3". Scanner Device Property Constants WIA_DPS_DITHER_PATTERN_DATA Reserved for future use. WIA_DPS_DITHER_SELECT Reserved for future use. WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES This property reports the document handling capabilities of a scanner. This property is mandatory for sheet-fed, scroll-fed, and hand-held scanners, and for scanners that have an automatic document feeder. If this property is not present, the application can assume that the scanner does not have an automatic document feeder. The document handling capability flags include the following: WIA_FEED The scanner has an automatic document handler installed. WIA_FLAT The scanner has a flatbed platen. WIA_DETECT_FLAT The scanner can detect a document on the flatbed platen. WIA_DETECT_SCAN The scanner can detect a document in the feeder only by scanning. WIA_DETECT_FEED The scanner can detect a document in the feeder. WIA_DETECT_DUP The scanner can detect a duplex scan request from the user. WIA_DETECT_FEED_AVAIL The scanner can tell when the automatic document feeder is installed. WIA_DETECT_DUP_AVAIL The scanner can tell when the duplexer is installed. WIA_DUP The scanner has a duplexer. WIA_DPS_DOCUMENT_HANDLING_CAPACITY This property reports the maximum number of pages that the document handler input tray can accept. Do not use this property. Use the WIA_DPS_PAGES property instead. WIA_DPS_DOCUMENT_HANDLING_SELECT On scanners with an automatic document feeder, this property selects the document-handling mode. This property is mandatory for scanners with an automatic document feeder. The mode flags include the following: WIA_FEEDER Scan from the document feeder. WIA_FLATBED Scan from flatbed platen. WIA_DUPLEX Place feeder in duplex mode. WIA_AUTO_ADVANCE Enables automatic feeding of the next document after a scan. WIA_FRONT_FIRST Scan the front (top) of a document first when doing duplex scanning. WIA_BACK_FIRST Scan the back (bottom) of a document first when doing duplex scanning. WIA_FRONT_ONLY Scan only the front (top) of a document. WIA_BACK_ONLY Scan only the back (bottom) of a document. WIA_NEXT_PAGE Scan the next page of the document. WIA_PREFEED Enable pre-feed mode. Pre-position next document while scanning. Because this property is read/write, the driver implements two values for this property: a valid value and a current value. The bits in the valid value indicate values the driver and device support. For example, if the scanner supports allowing the application to select feeder mode, the FEEDER bit in the valid value for this property is set. The application selects feeder mode by setting the FEEDER bit in the current value. Scanners have a device item associated with each scan head in the scanner. These items, together with the "Document Handling Select" property, completely specify the source of a scan. The following examples are provided to clarify the use of the "Document Handling Select" property on different scanner hardware configurations: - For a flatbed or hand held scanner with no automatic document handling, this property would not be implemented. - If a duplex scanner does not support programmable (front/back) page order, either FRONT_FIRST or BACK_FIRST must still be available as a flag so that applications can detect the page order. An error should be generated if an application tries to change the order. - A non-duplex scanner with automatic document handling must support either the FRONT_ONLY or BACK_ONLY flag so that applications can detect the page orientation. An error should be generated if an application tries to change the page orientation. WIA_DPS_DOCUMENT_HANDLING_STATUS This property reports the real-time document handling status of a scanner. This property is mandatory for sheet-fed, scroll-fed, and hand-held scanners, and for scanners that have an automatic document feeder. The status flags include the following: WIA_FEED_READY The document handler has a page ready to feed. WIA_FLAT_READY The scanner has a document on the flatbed platen. WIA_DUP_READY The scanner has detected a duplex request from the user. WIA_FLAT_COVER_UP The flat bed cover is up. WIA_PATH_COVER_UP The paper path cover is up. WIA_PAPER_JAM There is a document jam in the paper path. WIA_DPS_ENDORSER_CHARACTERS Returns a string that contains all of the valid characters that are printed by the endorser. This property is optional. WIA_DPS_ENDORSER_STRING Specifies a string that is printed onto the document when it is scanned. The endorser string supports using tokens that are replaced with values by the system. This property is optional. The following tokens are supported: $DATE$ The date in the form YYYY/MM/DD. $DAY$ The day in the form DD. $MONTH$ The month of the year in the form MM. $PAGE_COUNT$ The number of pages transferred. $TIME$ The time of day in the form HH:MM:SS. $YEAR$ The year in the form YYYY. WIA_DPS_FILTER_SELECT Reserved for future use. WIA_DPS_HORIZONTAL_BED_REGISTRATION Indicates how the sheet is positioned horizontally on the platen of a flatbed scanner. It is used to predict where a document is placed across the platen. It takes one of the following constants: WIA_LEFT_JUSTIFIED The sheet is positioned to the left with respect to the platen. WIA_CENTERED The sheet is centered on the platen. WIA_RIGHT_JUSTIFIED The sheet is positioned to the right with respect to the platen. On scanners that support more than one scan head, this property is relative to the top scan head. This property is mandatory for scanners that have a platen. WIA_DPS_HORIZONTAL_BED_SIZE Specifies the maximum width, in thousandths of an inch, that is scanned in the horizontal (X) axis from the platen of a flatbed scanner at the current resolution. This property also applies to automatic document feeders that move sheets to the platen of a flatbed scanner for scanning. This property is mandatory for scanners that have a platen.. Other scanner types will instead implement the WIA_DPS_HORIZONTAL_SHEET_FEED_SIZE property. WIA_DPS_HORIZONTAL_SHEET_FEED_SIZE Specifies the maximum width, in thousandths of an inch, that is scanned in the horizontal (X) axis from a handheld or sheet feed scanner at the current resolution. This property also applies to automatic document feeders that scan without moving sheets to the platen of a flatbed scanner. This property is mandatory for sheet-fed, scroll-fed, and hand-held scanners. WIA_DPS_MAX_SCAN_TIME This property reports the maximum time, in milliseconds, to scan a page with the current property settings. Applications use this value for detecting hung device error conditions. This property is required for all scanners. WIA_DPS_MIN_HORIZONTAL_SHEET_FEED_SIZE Specifies the minimum width, in thousandths of an inch, that is scanned in the horizontal (X) axis from a handheld or sheet feed scanner at the current resolution. This property also applies to automatic document feeders that scan without moving sheets to the platen of a flatbed scanner. This property is mandatory for sheet-fed, scroll-fed, and hand-held scanners. WIA_DPS_MIN_VERTICAL_SHEET_FEED_SIZE Specifies the maximum width, in thousandths of an inch, that is scanned in the vertical (Y) axis from a handheld or sheet feed scanner at the current resolution. This property also applies to automatic document feeders that scan without moving sheets to the platen of a flatbed scanner. This property is mandatory for sheet-fed, scroll-fed, and hand-held scanners. WIA_DPS_OPTICAL_XRES Horizontal Optical Resolution. Highest supported horizontal optical resolution in DPI. This property is a single value. This is not a list of all resolutions that can be generated by the device. Rather, this is the resolution of the device's optics. This property is required for all scanners. WIA_DPS_OPTICAL_YRES Vertical Optical Resolution. Highest supported vertical optical resolution in DPI. This property is a single value. This is not a list of all resolutions that are generated by the device. Rather, this is the resolution of the device's optics. This property is required for all scanners. WIA_DPS_PAGE_HEIGHT Indicates the maximum height, in thousandths of an inch, of the page to be scanned This property is optional. WIA_DPS_PAGE_WIDTH Indicates the maximum width, in thousandths of an inch, of the page to be scanned. This property is optional. WIA_DPS_PAGES Specifies the number of pages to scan. The valid values for this property are represented as a range of values. For scanners with an automatic document feeder, the maximum value of the range represents the document feeder's capacity. If WIA_DPS_DOCUMENT_HANDLING_CAPACITY is used, the maximum value in this range must be the same as the value of WIA_DPS_DOCUMENT_HANDLING_CAPACITY. This property is mandatory for all scanners with an automatic document feeder, and for all sheet-fed, scroll-fed, and hand-held scanners. WIA_DPS_PREVIEW This property indicates whether or not the device supports preview scans. For example, sheet-fed and hand-held scanners cannot preview. The application should set this property when it does a preview scan so that the device can be optimized for previewing. This property is optional for all scanners.. WIA_DPS_SCAN_AHEAD_PAGES Specifies the number of pages that are scanned ahead to local scanner or driver memory on scanners that support scan ahead. A value of zero disables scan ahead. The following negative value constant is supported: WIA_SCAN_AHEAD_ALL Scan ahead as far as possible. Doing normal data transfers on the buffered scan head item retrieves the buffered pages. Device and item properties may not be changed during a scan-ahead operation. Scanners that support only WIA_SCAN_AHEAD_ALL would report only this value as min, max, and nominal in the valid values for one property. This property is optional. WIA_DPS_SHEET_FEEDER_REGISTRATION Indicates how the sheet is positioned horizontally on the scanning head of a hand-held or sheet-fed scanner. It is used to predict where a document is placed across the scan head. It takes one of the following constants: WIA_LEFT_JUSTIFIED The sheet is positioned to the left with respect to the scanning head. WIA_CENTERED The sheet is centered on the scanning head. WIA_RIGHT_JUSTIFIED The sheet is positioned to the right with respect to the scanning head. On scanners that support more than one scan head, this property is relative to the top scan head. This property is mandatory for sheet-fed, scroll-fed, and hand-held scanners. WIA_DPS_SHOW_PREVIEW_CONTROL Indicates whether the user interface displays a preview control for the scanner. This property has one of the following constant values: WIA_SHOW_PREVIEW_CONTROL The scanner supports displaying a preview control. WIA_DONT_SHOW_PREVIEW_CONTROL The scanner does not support displaying a preview control. WIA_DPS_TRANSPARENCY Indicates the capabilities and status of an alternate light source/path (transparency adapter) in the scanner for scanning transparencies or slides. This property is mandatory for scanners that have a transparency attachment. The following flags are defined: WIA_LIGHT_SOURCE_PRESENT_DETECT The scanner detects when the transparency adapter is present. WIA_LIGHT_SOURCE_PRESENT A transparency adapter is present. WIA_LIGHT_SOURCE_DETECT_READY The scanner detects when media is placed on the transparency scanning bed. WIA_LIGHT_SOURCE_READY The user selected the transparency adapter at the scanner. WIA_DPS_TRANSPARENCY_SELECT Used by the application to select the alternate light source/path or transparency adapter. This property is mandatory for scanners that have a transparency attachment. The following flags are defined: WIA_LIGHT_SOURCE_SELECT Turns on the transparency adapter. WIA_DPS_VERTICAL_BED_REGISTRATION Indicates how the sheet is positioned vertically on the platen of a flatbed scanner. It is used to predict where a document is placed on the platen. It takes one of the following constants: WIA_TOP_JUSTIFIED The sheet is positioned to the top with respect to the platen. WIA_CENTERED The sheet is centered on the platen. WIA_BOTTOM_JUSTIFIED The sheet is positioned to the bottom with respect to the platen. On scanners that support more than one scan head, this property is relative to the top scan head. This property is mandatory for scanners that have a platen. WIA_DPS_VERTICAL_BED_SIZE Specifies the maximum height, in thousandths of an inch, that is scanned in the vertical (Y) axis from the platen of a flatbed scanner at the current resolution. This property also applies to automatic document feeders, that move sheets to the platen of a flatbed scanner for scanning. This property is mandatory for scanners that have a platen. Other scanner types will instead implement the WIA_DPS_VERTICAL_SHEET_FEED_SIZE property. WIA_DPS_VERTICAL_SHEET_FEED_SIZE Specifies the maximum height, in thousandths of an inch, that is scanned in the vertical (Y) axis from a handheld or sheet feed scanner at the current resolution. This property also applies to automatic document feeders that scan without moving sheets to the platen of a flatbed scanner. This property is mandatory for sheet-fed scanners. Scroll-fed and hand-held scanners should not implement this property. WIA_DPS_WARM_UP_TIME Indicates to the application how long, in milliseconds, it takes the scanner and/or lamp to warm up before scanning commences. The application can display a progress indicator to the user based on this value. If the device requires no warm-up, the value should be zero. This property is required for all scanners. Camera Device Property Constants WIA_DPC_ARTIST The name of the photographer. WIA_DPC_BATTERY_STATUS Camera battery life remaining, represented as a value from 100 (full charge) to 0. WIA_DPC_BURST_INTERVAL The time, in milliseconds, between image captures during a burst operation. WIA_DPC_BURST_NUMBER The number of images the device attempts to capture during a burst operation. WIA_DPC_CAPTURE_DELAY The time, in milliseconds, between the firing of the capture trigger and the actual initiation of the data capture. For no pre-capture delay, set this property to zero. This property is not intended to be used to describe the time between frames for single-initiation multiple captures such as burst or time-lapse. WIA_DPC_CAPTURE_MODE Sets the image-capturing mode: WIA_CAPTUREMODE_NORMAL Normal mode for the camera. WIA_CAPTUREMODE_BURST Capture more than one image in quick succession as defined by the values of WIA_DPC_BURST_NUMBER and WIA_DPC_BURST_INTERVAL. WIA_CAPTURMODE_TIMELAPSE Capture more than one image in succession as defined by WIA_DPC_TIMELAPSE_NUMBER and WIA_DPC_TIMELAPSE_INTERVAL. WIA_DPC_COMPRESSION_SETTING A numeric value that specifies relative image quality. This property is device-specific. WIA_DPC_CONTRAST The perceived contrast of captured images. This property can use either an enumeration or a range. WIA_DPC_COPYRIGHT_INFO Copyright information for the image. WIA_DPC_DIGITAL_ZOOM The effective zoom ratio of the digital camera's acquired image scaled by a factor of 10. No digital zoom (1X) corresponds to a value of 10, which is the standard scene size captured by the camera. A value of 20 corresponds to a 2X zoom where 1/4 of the standard scene size is captured by the camera. WIA_DPC_DIMENSION Reserved, do not use. WIA_DPC_EFFECT_MODE Specifies the special image acquisition mode of the camera. Effect Modes: WIA_EFFECTMODE_STANDARD The standard mode for the camera. WIA_EFECTMODE_BW Capture a grayscale image. WIA_EFFECTMODE_SEPIA Capture a sepia image. WIA_DPC_EXPOSURE_COMP Exposure compensation when using automatic exposure mode. Valid values are from -200 to 200 in increments of 50. These values represent the range -2.0 to +2.0. WIA_DPC_EXPOSURE_INDEX Specifies the film speed for digital cameras that can emulate ISO (ASA/DIN) speed settings. Typically, a device supports discrete enumerated values, but continuous control over a range is possible. A value of 0xFFFF corresponds to Automatic ISO setting. WIA_DPC_EXPOSURE_METERING_MODE Specifies the mode the camera uses to automatically adjust the exposure setting. Exposure Metering Modes: WIA_EXPOSUREMETERING_AVERAGE Set the exposure based on an average of the entire scene. WIA_EXPOSUREMETERING_CENTERWEIGHT Set the exposure based on a center-weighted average. WIA_EXPOSUREMETERING_MULTISPOT Set the exposure based on a multi-spot pattern. WIA_EXPOSUREMETERING_CENTERSPOT Set the exposure based on a center spot. WIA_DPC_EXPOSURE_MODE Specifies the camera exposure mode: WIA_EXPOSURE_MODE_MANUAL The shutter speed and aperture are set by the user. WIA_EXPOSUREMODE_AUTO The shutter speed and aperture are automatically set by the camera. WIA_EXPOSUREMODE_APERTURE_PRIORITY The aperture is set by the user, and the camera automatically sets the shutter speed. WIA_EXPOSUREMODE_SHUTTER_PRIORITY The shutter speed is set by the user, and the camera automatically sets the aperture. WIA_EXPOSUREMODE_PROGRAM_CREATIVE The shutter speed and aperture are automatically set by the camera, optimized for still subject matter. WIA_EXPOSUREMODE_PROGRAM_ACTION The shutter speed and aperture are automatically set by the camera, optimized for scenes containing fast motion. WIA_EXPOSUREMODE_PORTRAIT The shutter speed and aperture are automatically set by the camera, optimized for portrait photography. WIA_DPC_EXPOSURE_TIME Manual exposure time. Units are milliseconds. The camera may represent the range of manual exposure settings it supports through the property attributes. Manual exposure time is only used when the camera is in manual exposure mode. WIA_DPC_FLASH_MODE Camera flash mode. Flash modes include the following: WIA_FLASH_MODE_AUTO Camera determines whether to flash. WIA_FLASH_MODE_FILL Camera flashes, regardless of light conditions. WIA_FLASH_MODE_OFF Camera will not flash. WIA_FLASH_MODE_REDEYE_AUTO Camera determines whether to flash, using red eye reduction. WIA_FLASH_MODE_REDEYE_FILL Camera flashes, regardless of light conditions, using red eye reduction. WIA_FLASH_MODE_EXTERNALSYNC Camera syncs external flash units. WIA_DPC_FNUMBER Manual F-number setting for use when the camera is in F-number exposure mode. Exposure mode is represented as camera F-number x 100. For example, Number 5.0 = 500. WIA_DPC_FOCAL_LENGTH The 35mm equivalent focal length, in 100ths of a millimeter. WIA_DPC_FOCUS_DISTANCE The distance, in millimeters, between the image-capturing plane of the digital camera and the point of focus. A value of $FFFF corresponds to a setting greater than 655 meters. WIA_DPC_FOCUS_MANUAL_DIST Reserved, do not use. WIA_DPC_FOCUS_METERING Reserved, do not use. WIA_DPC_FOCUS_METERING_MODE Specifies the mode the camera uses to automatically adjust the focus. Focus Metering Modes: WIA_FOCUSMETERING_CENTERSPOT Adjust the focus based on a center spot. WIA_FOCUSMETERING_MULTISPOT Adjust the focus based on a multi-spot pattern. WIA_DPC_FOCUS_MODE Specifies the focus mode of the digital camera: WIA_FOCUSMODE_MANUAL The focus is set by the user. WIA_FOCUSMODE_AUTO The focus is automatically set by the camera. WIA_FOCUSMODE_MACROAUTO The focus is automatically set by the camera to a macro (short-range) setting. WIA_DPC_PAN_POSITION Specifies the pan position for aiming the camera. WIA_DPC_PICT_HEIGHT The height to use for newly captured images. The list of valid values for this property has a one-to-one correspondence to the list of valid values for the WIA_DPC_PICT_WIDTH property. WIA_DPC_PICT_WIDTH The width to use for newly captured images. The list of valid values for this property has a one-to-one correspondence to the list of valid values for the WIA_DPC_PICT_HEIGHT property. WIA_DPC_PICTURES_REMAINING Number of pictures the device may still capture based on the current device capture settings. WIA_DPC_PICTURES_TAKEN Number of pictures taken. This property is mandatory for all cameras. WIA_DPC_POWER_MODE This property is used to determine whether the device is operating on battery or line power. Power Modes: WIA_POWERMODE_LINE AC or other power adapter. WIA_POWERMODE_BATTERY Running off batteries. WIA_DPC_RGB_GAIN A null-terminated Unicode string that represents the red, green, and blue gain applied to image data, respectively. For example, "4:25:50" (null-terminated) represents a red gain of 4, a green gain of 25, and a blue gain of 50. WIA_DPC_SHARPNESS The perceived sharpness of captured images. This property can use either an enumeration or a range. WIA_DPC_THUMB_HEIGHT The height, in pixels, of thumbnails created for captured images. The list of valid values for this property have a one-to-one correspondence to the list of valid values for the WIA_DPC_THUMB_WIDTH property. WIA_DPC_THUMB_WIDTH The width, in pixels, of thumbnails created for captured images. The list of valid values for this property have a one-to-one correspondence to the list of valid values for the WIA_DPC_THUMB_HEIGHT property. WIA_DPC_TILT_POSITION Specifies the tilt position for aiming the camera. WIA_DPC_TIMELAPSE_INTERVAL The time, in milliseconds, between image captures in a time-lapse capture operation. WIA_DPC_TIMELAPSE_NUMBER The number of images the device attempts to capture during a time-lapse capture. WIA_DPC_TIMER_MODE Automatic picture timer mode. WIA_DPC_TIMER_VALUE Automatic picture timer time setting in milliseconds. This value is only used when taking a picture through computer control and when the timer mode is on. WIA_DPC_UPLOAD_URL A URL to which to upload images from a digital camera. WIA_DPC_WHITE_BALANCE Specifies how the digital camera weights color channels. White Balance values: WIA_WHITEBALANCE_MANUAL White balance is set directly with the WIA_DPC_RGBGAIN property. WIA_WHITEBALANCE_AUTO The camera uses an automatic mechanism to set the white balance. WIA_WHITEBALANCE_ONEPUSH_AUTO The camera determines the white balance setting when a user presses the capture button while pointing the camera at a white surface. WIA_WHITEBALANCE_DAYLIGHT The camera sets the white balance to a value appropriate for use in daylight conditions. WIA_WHITEBALANCE_FLORESCENT The camera sets the white balance to a value appropriate for use with a fluorescent light source. WIA_WHITEBALANCE_TUNGSTEN The camera sets the white balance to a value appropriate for use with a tungsten light source. WIA_WHITEBALANCE_FLASH The camera sets the white balance to a value appropriate for use with an electronic flash. WIA_DPC_ZOOM_POSITION Reserved, do not use !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! WIA item properties Common WIA Item Property Constants WIA_IPA_ACCESS_RIGHTS This flag controls access to the item as well as whether the item is deleted. This property is read only for scanners and read/write for cameras, depending on whether the camera supports changing the access rights Access Right values: WIA_ITEM_READ Item has read-only access. WIA_ITEM_WRITE Item has write-only access. WIA_ITEM_CAN_BE_DELETED Item has delete-only access. WIA_ITEM_RD Item has read and delete access. WIA_ITEM_RWD Item has read, write, and delete access. WIA_IPA_APP_COLOR_MAPPING By default, it is the responsibility of the driver to map images from the user-selected profile to SRGB. If an application uses the ICM system to handle color profiles, it sets this property to instruct the driver to stop mapping automatically. The image is then in the color space specified by the WIA_IPA_COLOR_PROFILE property. WIA_IPA_BITS_PER_CHANNEL Bits per color channel. 1 for 1 bit per pixel black and white; 8 for 8-bit-per-pixel RGB. This property is read/write for scanners that support different bits-per-pixel settings. Otherwise it is read only. WIA_IPA_BYTES_PER_LINE Bytes per line of scan data. Some scanners may pad scan lines with extra bytes to make the scan line a fixed number of DWORDS. This is a read-only property and is set by the device, based on the scan settings. WIA_IPA_CHANNELS_PER_PIXEL Number of color channels per pixel. Typical values are 1 for black and white data; 3 for RGB. WIA_IPA_COLOR_PROFILE This property specifies the International Color Consortium (ICC) color profile for the images produced by the item. When the WIA_IPA_APP_COLOR_MAPPING property is set, the current value of this property indicates the color profile for images produced by the WIA item. If the color mapping property is not set, the driver will map images from the current value of this property to sRGB. This property should not be set by the application or driver. It is managed by WIA based on user input. The valid values setting lists the profiles the user has associated with the device. WIA_IPA_COMPRESSION Specifies the compression within the given data format. Useful for data formats like TIFF and DIB that have optional compressed modes. This property is read/write for devices that support more than one compression type. For all other devices, it is read only. Compression Types: WIA_COMPRESSION_NONE No compression. WIA_COMPRESSION_BI_RLE4 DIB 4 bit run length encoding. WIA_COMPRESSION_BI_RLE8 DIB 8 bit run length encoding. WIA_COMPRESSION_G3 TIFF CCITT G3 WIA_COMPRESSION_G4 TIFF CCITT G4 WIA_COMPRESSION_JPEG JPEG encoding. WIA_IPA_DATATYPE This property indicates the image type of the item. This property is read-only for cameras and read/write for scanners. Data Types: WIA_DATA_THRESHOLD One bit-per-pixel black-and-white threshold. Data over the current value of WIA_IPS_THRESHOLD is converted to white; data under this value is converted to black. WIA_DATA_DITHER Scan data is dithered using the currently selected dither pattern. WIA_DATA_GRAYSCALE Scan data represents intensity. The palette is a fixed, equally-spaced gray scale with a depth specified by WIA_IPA_DEPTH property. WIA_DATA_COLOR Scan data is red, green, blue (RGB) color. The full color format is described using the following WIA properties: WIA_IPA_CHANNELS_PER_PIXEL WIA_IPA_BITS_PER_CHANNEL WIA_IPA_PLANAR WIA_IPA_PIXELS_PER_LINE WIA_IPA_BYTES_PER_LINE WIA_IPA_NUMBER_OF_LINES WIA_DATA_COLOR_THRESHOLD Same as WIA_DATA_COLOR except that the threshold value is used when scanning the data. Color values over the WIA_IPS_THRESHOLD value are converted to full brightness; colors under this value are converted to black. WIA_DATA_COLOR_DITHER Same as WIA_DATA_COLOR except that the data is dithered using the currently selected dither pattern. WIA_IPA_DEPTH Requested number of bits per pixel. On devices that allow for multiple color-space resolutions per data type, this property is a list of values (a WIA_PROP_LIST) specifying the color-space resolutions. On devices that allow only a single color-space resolution per data type, this is a read-only property that tracks the WIA_IPA_DATATYPE set above, otherwise it is read/write. This property is always read-only for cameras. WIA_IPA_FILENAME_EXTENSION This property specifies the preferred filename extension for a particular file format. The driver updates this property to reflect the current value of the WIA_IPA_FORMAT property. This property is recommended for drivers that support standard formats. However, it is required for drivers that implement custom-defined formats. It is needed to allow the application to know the correct filename extension to use during file transfer of private formats. For example, if WIA_IPA_FORMAT is WiaImgFmt_JPEG, then WIA_IPA_FILENAME_EXTENSION should be "jpg", or if WIA_IPA_FORMAT is WiaImgFmt_BMP, then WIA_IPA_FILENAME_EXTENSION should be "bmp". Notice that the file name extension does not include the ".". WIA_IPA_FORMAT This property controls the data format returned to the application. This property is read/write for devices that support more than one format. Otherwise, it is read only. Format Types: WiaImgFmt_MEMORYBMP Windows bitmap without a BITMAPFILEHEADER header. WiaImgFmt_BMP Windows bitmap with a BITMAPFILEHEADER header. WiaImgFmt_EMF Extended Windows metafile. WiaImgFmt_WMF Windows metafile. WiaImgFmt_JPEG JPEG compressed format. WiaImgFmt_PNG W3C PNG format. WiaImgFmt_GIF GIF image format. WiaImgFmt_TIFF Tag Image File Format. WiaImgFmt_EXIF Exchangeable File Format. WiaImgFmt_PHOTOCD Eastman Kodak file format. WiaImgFmt_FLASHPIX FlashPix format. WiaImgFmt_ICO Microsoft icon file format. WiaImgFmt_CIFF Camera Image File format. WiaImgFmt_PICT Apple file format. WiaImgFmt_JPEG2K JPEG 2000 compressed format. WiaImgFmt_JPEG2KX JPEG 2000 compressed format. WiaImgFmt_RTF Rich Text File format. WiaImgFmt_XML XML file. WiaImgFmt_TXT Text file. WiaImgFmt_MPG MPG video format. WiaImgFmt_AVI AVI video format. WiaImgFmt_ASF ASF video format. WiaImgFmt_SCRIPT Script file. WiaImgFmt_EXEC Executable file. WiaImgFmt_UNICODE16 UNICODE 16-bit encoding. WiaImgFmt_DPOF DPOF printing format. WiaAudFmt_WAV WAV audio format. WiaAudFmt_MP3 MP3 audio format. WiaAudFmt_AIFF AIFF audio format. WiaAudFmt_WMA WMA audio format. WiaImgFmt_HTML HTML format. WiaImgFmt_RAWRGB Raw RGB format. The valid values for this property match the values returned by drvGetWiaFormatInfo based on the setting of WIA_IPA_TYMED. When WIA_IPA_TYMED is set to TYMED_CALLBACK, the valid values for this property include at least IMGFMT_MEMORYBMP. When WIA_IPA_TYMED is set to TYMED_FILE, the valid values for this property include at least IMGFMT_BMP. When an application uses WiaImgFmt_RAWRGB, the accuracy of the image transfer depends on the following properties: - WIA_IPA_DATATYPE - WIA_IPA_CHANNELS_PER_PIXEL - WIA_IPA_BITS_PER_CHANNEL - WIA_IPA_DEPTH - WIA_IPA_PIXELS_PER_LINE - WIA_IPA_NUMBER_OF_LINES - WIA_IPS_XRES - WIA_IPS_YRES For WiaImgFmt_RAWRGB valid values for these properties are the following: WIA_IPA_DATATYPE - set to WIA_DATA_COLOR WIA_IPA_DEPTH - set to 24 or higher. The data transferred for RAWRGB should be uncompressed, in RGB byte order, DWORD aligned, and transferred with no image header. Supporting the WiaImgFmt_RAWRGB format GUID allows TWAIN applications to transfer images higher than 32 bit using the memory transfer method. WIA_IPA_FULL_ITEM_NAME Complete item name, that includes hierarchy. This property is supplied by WIA. The full hierarchy includes the Plug and Play device index followed by the root item name, ROOT, followed by the item name. For example, a picture at the highest level in a camera could be named: 0001\Root\Image0001 WIA_IPA_GAMMA_CURVES Gamma Correction curves for each color channel. Format is TBD. This property is optional. WIA_IPA_ICM_PROFILE_NAME The name of the color management device profile for the scanner. WIA_IPA_ITEM_FLAGS Flags that specify the item type and accessibility. This property is supplied by WIA. For information about these flags WIA_IPA_ITEM_NAME Name of the item object, for example, "\Image0001". This property is supplied by WIA. WIA_IPA_ITEM_SIZE Total data transfer size including data and data-specific header information, if the size is known. If the size is not known, this property must be set to zero. WIA_IPA_MIN_BUFFER_SIZE This property is used to specify the minimum buffer size used in data transfers. If the data transfer is done via callback, it may be as small as 64K, but if the transfer is to file, then it is the number of bytes needed to transfer a page of data at a time. WIA_IPA_NUMBER_OF_LINES Number of lines in the final image. This is a read-only property and is set by the device, based on the scan settings. WIA_IPA_PIXELS_PER_LINE Number of pixels per line in the current image. This is a read-only property and is set by the device based on the scan settings. WIA_IPA_PLANAR Describes whether the data is returned in a planar or packed-pixel format. WIA_IPA_PREFERRED_FORMAT The preferred data format the driver or device supplies to the application. Format Types: WiaImgFmt_MEMORYBMP Windows bitmap without a header file. WiaImgFmt_BMP Windows bitmap with header file. WiaImgFmt_EMF Extended Windows metafile. WiaImgFmt_WMF Windows metafile. WiaImgFmt_JPEG JPEG compressed format. WiaImgFmt_PNG W3C PNG format. WiaImgFmt_GIF GIF image format. WiaImgFmt_TIFF Tag Image File Format. WiaImgFmt_EXIF Exchangeable File Format. WiaImgFmt_PHOTOCD Eastman Kodak file format. WiaImgFmt_FLASHPIX FlashPix format. WiaImgFmt_ICO Microsoft icon file format. WIA_IPA_PROP_STREAM_COMPAT_ID This property specifies a CLSID that represents a set of device property values. If a device driver implements this feature, applications use this property to determine if the device supports a set of values. This property is optional. WIA_IPA_REGION_TYPE This property is used to specify the type of region the image analysis has created. This property is optional. The following region types are supported: Region Types: WIA_TEXT_ITEM Region contains text. WIA_PHOTO_ITEM Region contains a photo. WIA_DRAWING_ITEM Region contains a line drawing. WIA_LOGO_ITEM Region contains a logo. WIA_HANDWRITING_ITEM Region contains handwriting. WIA_CHART_ITEM Region contains a chart or graph. WIA_TABLE_ITEM Region contains tabular data. WIA_IPA_SUPPRESS_PROPERTY_PAGE Specifies whether to suppress the property pages for items on this device. This property takes one of the following constant values: WIA_PROPPAGE_CAMERA_ITEM_GENERAL Suppress the general item property page for a camera. WIA_PROPPAGE_SCANNER_ITEM_GENERAL Suppress the general item property page for a scanner. WIA_IPA_TYMED Specifies data transfer type: WIA_TYMED_CALLBACK Use callback based data transfer. WIA_TYMED_MULTIPAGE_CALLBACK Use callback based data transfer for multi-page or finished file scans. WIA_TYMED_FILE Use file based data transfer. WIA_TYMED_MULTIPAGE_FILE Use file based data transfer for multi-page or finished file scans. Scanner WIA Item Property Constants WIA_IPS_BRIGHTNESS The image brightness values available within the scanner. It is up to the scanner driver to supply a range of valid values for this property. Applications query the device for the valid values. Smaller values make the image darker. Larger values make the image brighter. This property is mandatory for all scanners. WIA_IPS_CONTRAST The image contrast values available within the scanner. It is up to the scanner driver to supply a range of valid values for this property. Applications query the device for the valid values. Smaller values make the image darker. Larger values make the image brighter. This property is mandatory for all scanners. WIA_IPS_CUR_INTENT Allows a driver to preset item properties based on the intended use of the image of an application. To provide an intent, use an intended image type flag and an intended size/quality flag OR'd together. Note that an image cannot be both grayscale and color. This property is mandatory for all scanners. Intended image type flags: WIA_INTENT_NONE Default value. Do not preset any properties. WIA_INTENT_IMAGE_TYPE_COLOR Preset properties for color content. WIA_INTENT_IMAGE_TYPE_GRAYSCALE Preset properties for grayscale content. WIA_INTENT_IMAGE_TYPE_TEXT Preset properties for text content. WIA_INTENT_IMAGE_TYPE_MASK Mask for all of the image type flags. Intended image size/quality flags: WIA_INTENT_MINIMIZE_SIZE Preset properties to minimize image size. WIA_INTENT_MAXIMIZE_QUALITY Preset properties to maximize image quality. WIA_INTENT_SIZE_MASK Mask for all of the size/quality flags. WIA_IPS_INVERT Specifies a photo-negative scan. This property is optional. WIA_IPS_MIRROR If a scanner supports the detection of document mirroring, this property is implemented with read-only access. If a scanner supports mirroring during scanning, this property is implemented with read/write access. The mirroring flags include the following: WIA_MIRRORED The image data is in mirrored orientation, or requests the device to mirror-invert the image. WIA_IPS_ORIENTATION If a scanner can support the detection of document orientation, this property is implemented. The orientation flags include the following: WIA_PORTRAIT The image data is in portrait orientation(0 degrees rotation). WIA_LANDSCAPE The image data is in landscape orientation (the page is rotated 90 degrees counter-clockwise). WIA_ROT180 The image data is in an upside-down orientation (180 degrees rotation). WIA_ROT270 The image data is in an upside-down landscape orientation (the page is rotated 270 degrees counter-clockwise). WIA_IPS_PHOTOMETRIC_INTERP Photometric interpretation. The default color interpretation of image data. WIA_PHOTO_WHITE_1 : white is 1, black is 0. WIA_PHOTO_WHITE_0 : white is 0, black is 1. For devices or drivers that support selectable photometric interpretation, the access for this property is read/write. For all others, it is read only. This property is mandatory for all scanners. WIA_IPS_ROTATION If a scanner supports internal rotation during scanning, this property is implemented. The rotation flags include the following: WIA_PORTRAIT The driver or device will not rotate the image (0 degrees counter-clockwise). WIA_LANDSCAPE The driver or device rotates the image 90 degrees counter-clockwise. WIA_ROT180 The driver or device rotates the image 180 degrees counter-clockwise. WIA_ROT270 The driver or device rotates the image 270 degrees counter-clockwise. WIA_IPS_THRESHOLD Specifies the dividing line between black and white. This is the value the scanner uses to threshold, when the WIA_IPA_DATATYPE property is set to WIA_DATA_THRESHOLD. Higher positive values represent lighter pixel values. The device driver specifies a range of valid values for this property. Applications query the device for the range of valid values. This property is optional. WIA_IPS_WARM_UP_TIME Indicates to the application how long, in milliseconds, it takes the scanner and/or lamp to warm up before scanning commences. The application displays a progress indicator to the user based on this value. If the device requires no warm-up, the value should be zero. This property is optional. WIA_IPS_XEXTENT - Horizontal Extent The width of the scan in pixels. This property is mandatory for all scanners. WIA_IPS_XPOS - Horizontal Start Position The horizontal start position in pixels of the image to be scanned. This property is mandatory for all scanners. WIA_IPS_XRES - Horizontal Resolution Specifies the current horizontal (X) axis resolution, in dots per inch (DPI).For scanners that do not support the independent setting of horizontal and vertical resolutions, the vertical resolution tracks the Horizontal Resolution property. To find out if the scanner supports independent resolutions, query the Vertical Resolution property. The following properties are dependent on the Horizontal Resolution property for the independent resolution case: - Horizontal Start Position - Horizontal Extent - Pixels per Line - Bytes Per Line - File Size In addition, the following properties are also reliant in the dependent resolution case: - Vertical Start Position - Vertical Extent - Number of Lines This property is either a range or a list. This property is mandatory for all scanners. WIA_IPS_YEXTENT - Vertical Extent The height of the scan in lines. This property is mandatory for all scanners. WIA_IPS_YPOS - Vertical Start Position The vertical start position in pixels of the image to be scanned. This property is mandatory for all scanners. WIA_IPS_YRES - Vertical Resolution For scanners that support the independent setting of horizontal and vertical resolution, this property specifies the current vertical (Y) axis resolution, in DPI. It is implemented as read/write. For scanners that do not support independent setting of horizontal and vertical resolutions, this property is implemented as read-only and tracks the WIA_IPS_XRES property. This property is mandatory for all scanners. The following properties are dependent on the Vertical Resolution property: - Vertical Start Position - Vertical Extent - Number of Lines - File Size Camera WIA Item Property Constants WIA_IPC_AUDIO_AVAILABLE The camera item has audio data available. WIA_IPC_AUDIO_DATA Camera Audio data. WIA_IPC_AUDIO_DATA_FORMAT Audio formats for WIA are TBD. WIA_IPC_NUM_PICT_PER_ROW The number of pictures in a horizontal row for this camera. WIA_IPC_SEQUENCE Indicates the relative temporal position of this image in a multi-image time sequence. The numbers are not required to be sequential or start at any particular value. The values increase with time. WIA_IPC_THUMB_HEIGHT Specifies the height of the thumbnail in pixels. WIA_IPC_THUMB_WIDTH Specifies the width of the thumbnail in pixels. WIA_IPC_THUMBNAIL The thumbnail data. This is a fixed format consisting of raw, 24 bit, DWORD aligned, Blue-Green-Red color order, DIB bits with no DIB header. WIA_IPC_TIMEDELAY Indicates the amount of time, in milliseconds, that transpired between the capture of the current image and the previous image. !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! TIEICC Supported Color Formats TYPE_GRAY_8 TYPE_GRAY_8_REV TYPE_GRAY_16 TYPE_GRAY_16_REV TYPE_GRAY_16_SE TYPE_GRAYA_8 TYPE_GRAYA_16 TYPE_GRAYA_16_SE TYPE_GRAYA_8_PLANAR TYPE_GRAYA_16_PLANAR TYPE_RGB_8 TYPE_RGB_8_PLANAR TYPE_BGR_8 TYPE_BGR_8_PLANAR TYPE_RGB_16 TYPE_RGB_16_PLANAR TYPE_RGB_16_SE TYPE_BGR_16 TYPE_BGR_16_PLANAR TYPE_BGR_16_SE TYPE_RGBA_8 TYPE_RGBA_8_PLANAR TYPE_RGBA_16 TYPE_RGBA_16_PLANAR TYPE_RGBA_16_SE TYPE_ARGB_8 TYPE_ARGB_16 TYPE_ABGR_8 TYPE_ABGR_16 TYPE_ABGR_16_PLANAR TYPE_ABGR_16_SE TYPE_BGRA_8 TYPE_BGRA_16 TYPE_BGRA_16_SE TYPE_CMY_8 TYPE_CMY_8_PLANAR TYPE_CMY_16 TYPE_CMY_16_PLANAR TYPE_CMY_16_SE TYPE_CMYK_8 TYPE_CMYK_8_REV TYPE_YUVK_8 TYPE_CMYK_8_PLANAR TYPE_CMYK_16 TYPE_CMYK_16_REV TYPE_YUVK_16 TYPE_CMYK_16_PLANAR TYPE_CMYK_16_SE TYPE_KYMC_8 TYPE_KYMC_16 TYPE_KYMC_16_SE TYPE_KCMY_8 TYPE_KCMY_8_REV TYPE_KCMY_16 TYPE_KCMY_16_REV TYPE_KCMY_16_SE TYPE_CMYK5_8 TYPE_CMYK5_16 TYPE_CMYK5_16_SE TYPE_KYMC5_8 TYPE_KYMC5_16 TYPE_KYMC5_16_SE TYPE_CMYKcm_8 TYPE_CMYKcm_8_PLANAR TYPE_CMYKcm_16 TYPE_CMYKcm_16_PLANAR TYPE_CMYKcm_16_SE TYPE_CMYK7_8 TYPE_CMYK7_16 TYPE_CMYK7_16_SE TYPE_KYMC7_8 TYPE_KYMC7_16 TYPE_KYMC7_16_SE TYPE_CMYK8_8 TYPE_CMYK8_16 TYPE_CMYK8_16_SE TYPE_KYMC8_8 TYPE_KYMC8_16 TYPE_KYMC8_16_SE TYPE_CMYK9_8 TYPE_CMYK9_16 TYPE_CMYK9_16_SE TYPE_KYMC9_8 TYPE_KYMC9_16 TYPE_KYMC9_16_SE TYPE_CMYK10_8 TYPE_CMYK10_16 TYPE_CMYK10_16_SE TYPE_KYMC10_8 TYPE_KYMC10_16 TYPE_KYMC10_16_SE TYPE_CMYK11_8 TYPE_CMYK11_16 TYPE_CMYK11_16_SE TYPE_KYMC11_8 TYPE_KYMC11_16 TYPE_KYMC11_16_SE TYPE_CMYK12_8 TYPE_CMYK12_16 TYPE_CMYK12_16_SE TYPE_KYMC12_8 TYPE_KYMC12_16 TYPE_KYMC12_16_SE TYPE_XYZ_16 TYPE_Lab_8 TYPE_ALab_8 TYPE_Lab_16 TYPE_Yxy_16 TYPE_YCbCr_8 TYPE_YCbCr_8_PLANAR TYPE_YCbCr_16 TYPE_YCbCr_16_PLANAR TYPE_YCbCr_16_SE TYPE_YUV_8 TYPE_YUV_8_PLANAR TYPE_YUV_16 TYPE_YUV_16_PLANAR TYPE_YUV_16_SE TYPE_HLS_8 TYPE_HLS_8_PLANAR TYPE_HLS_16 TYPE_HLS_16_PLANAR TYPE_HLS_16_SE TYPE_HSV_8 TYPE_HSV_8_PLANAR TYPE_HSV_16 TYPE_HSV_16_PLANAR TYPE_HSV_16_SE TYPE_XYZ_DBL TYPE_Lab_DBL TYPE_GRAY_DBL TYPE_RGB_DBL TYPE_CMYK_DBL !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! FAQ • After updating ImageEn I get the following error on start-up: "The procedure entry point ... could not be located in the dynamic link library PKIECtrl15.bpl" • How can I prevent the scrollwheel from causing the image to zoom? I want it to remain the orginal size at all times? • I was wondering if it was possible to convert, say, a GIF image to a TIFF image without a visual component. In other words, how could I convert among image formats in a console application? • Can I modify brightness? • Can I modify scanner resolution? • Is there any way to save a CMYK TIFF using ImageEn? • Is it possible to de/activate duplex on a scanner? • Can your component take a series of single page TIFF files and create a Multi-Page file from them? • How do I change the current page of a TIFF image in ImageEn? • Is it possible to convert a multipage-image to a different encoding? G3 and G4 specifically? • I would like users to be able to resize and move vectorial objects when they are displayed on the screen. How can I do that? • Using TImageEnMView, how do I load images as they are displayed? • Is it possible to save the objects (Lines, Ellipses, etc) added in TImageEnVect with the image? I.e. burn them into the JPEG file? • How do i load or modify the IPTC info without loading the actual image? • How I do save a JPEG without EXIF and other metadata? • How can I check if the TImageEnView is empty (i.e. no bitmap is loaded)? • When a user selects a page of a multipage tiff image displayed in a TImageEnMView, I want the image to be displayed in a TImageEnView. • How do I assign the image in one ImageEnView to another ImageEnView? • What is the correct way to load a Resource Image at runtime into an TImageEnView component in C++? • How do I read custom TIFF tags? • Why are my JPEGs so big? • In ImageEnVect, how do I save an image with many objects? And how can I load the objects if I've saved them? • How do I store/retrieve pages of a multiple image file in a blob field with TImageEnDBView? • How to load the embedded jpeg from camera RAW images? • How do I terminate a polyline without double-clicking? • Why am I unable to read Camera RAW formats? • Measuring line length using miLineLen (or miArea) does not work. The mouse pointer always shows 0.00 pixels. Why is that? • Why do I get "Floating point overflow" when printing? • Why do I see horizontal/vertical bands when loading images using TImageEnMView? <# 1>After updating ImageEn I get the following error on start-up: "The procedure entry point ... could not be located in the dynamic link library PKIECtrl15.bpl" This means that a package - either one of ImageEn's or one of your own - is trying to access PKIECtrl15.bpl, but is failing because PKIECtrl15.bpl has been recompiled more recently. The error may be followed by another one that advised you which package is giving you the error: "Xyz package could not be loaded. Would you like to load it next time you run Delphi...". If you know which package has caused the problem, open it DPK file and recompile it. Otherwise, search your system for any PKIE*.* and DPKIE*.* files and remove them (it might help to review the library paths under Tools > Options, Library). Then reinstall ImageEn. If you still get the error, then you might have a package that links to ImageEn. Go through each of your packages and recompile any that use ImageEn. <# 2>How can I prevent the scrollwheel from causing the image to zoom? I want it to remain the original size at all times? Just write: ImageEnView1.MouseWheelParams.Action := iemwNone; other values are iemwVScroll and iemwZoom (default). <# 3>I was wondering if it was possible to convert, say, a GIF image to a TIFF image without a visual component. In other words, how could I convert among image formats in a console application? There are several ways. The simplest is: var bmp: TIEBitmap; Begin bmp := TIEBitmap.Create; bmp.Read('in.gif'); bmp.Write('out.tiff'); bmp.free; End; <# 5>Can I modify brightness? You can change brightness (luminosity) using several methods. Using IntensityRGBall method: ImageEnView1.Proc.IntensityRGBall(20, 20, 20); // increment luminosity of 20 (the fastest) Using HSLvar method: ImageEnView1.Proc.HSLvar(0, 0, 20); // increment luminosity of 20 (slow but more accurate) Using HSVvar method: ImageEnView1.Proc.HSVvar(0, 0, 20); // increment luminosity of 20 (slow but more accurate) <# 6>Can I modify scanner resolution? To change scan resolution to 300 on your scanner use: ImageEnView1.IO.TwainParams.XResolution.CurrentValue := 300; ImageEnView1.IO.TwainParams.YResolution.CurrentValue := 300; ImageEnView1.IO.Acquire; <# 7>Is there any way to save a CMYK TIFF using ImageEn? To save TIFF with CMYK write: ImageEnView1.IO.Params.TIFF_PhotometInterpret := ioTIFF_CMYK; ImageEnView1.IO.SaveToFile('xxx.tif'); <# 9>Is it possible to de/activate duplex on a scanner? Write ImageEnView1.IO.TwainParams.DuplexEnabled := True (or False to disable). <# 11>Can your component take a series of single page TIFF files and create a Multi-Page file from them? Yes, load each page using: ImageEnView1.IO.LoadFromFile('page1.tif'); Then save the page with: ImageEnView1.IO.Params.TIFF_ImageIndex := 0; // increment this value for each page ImageEnView1.IO.InsertToFileTIFF('multipage.tif'); Otherwise you can use TImageEnMView and TImageEnMIO component. See the "multi" demo for more detail. <# 12>How do I change the current page of a TIFF image in ImageEn? There are two ways to load several pages from a TIFF: 1) Load a page at the time, using TImageEnView, for example: ImageEnView1.IO.Params.TIFF_ImageIndex := page_number; // where page_number is the page to load and starts from 0 (first page) ImageEnView1.IO.LoadFromFile('mytiff.tiff'); To know how many pages there are use: page_count := EnumTIFFIm('mytiff.tiff'); 2) load all pages using a TImageEnMView: ImageEnMView1.MIO.LoadFromFile('mytiff.tiff'); <# 14>Is it possible to convert a multipage-image to a different encoding? G3 and G4 specifically? Using TImageEnMView you must change the compression property for all pages: ImageEnMView1.MIO.LoadFromFile('original.tif'); // change compression for the first page ImageEnMView1.MIO.Params[0].TIFF_Compression := ioTIFF_G4FAX; // change compression for the other pages ImageEnMView1.MIO.DuplicateCompressionInfo; // now save ImageEnMView1.Mio.SaveToFile('output.tif'); <# 16>I would like users to be able to resize and move vectorial objects when they are displayed on the screen. How can I do that? To enable users to modify (move, resize) objects just set: ImageEnVect1.MouseInteractVt := [miObjectSelect]; The users can then click objects to select them and resize or move them. <# 17>Using TImageEnMView, how do I load images as they are displayed? There are several ways to display images "on demand": 1) If you have a directory where are all files just write: ImageEnMView1.FillFromDirectory('c:\myimages'); 2) When you add a new image just set its ImageFileName[] index, and ImageEn will automatically load the specified file when needed. For example: idx := ImageEnMView1.AppendImage; ImageEnMView1.ImageFileName[idx] := 'first.jpg'; 3) When you add a new image just set the ImageID[] property. You must create an array of filenames where images are to be loaded. For example: var files: array [0..1] of string; begin files[0] := 'first.jpg'; files[1] := 'second.jpg'; ImageEnMView1.ImageID[ ImageEnMView1.AppendImage ] := 0; ImageEnMView1.ImageID[ ImageEnMView1.AppendImage ] := 1; end; You must also implement the OnImageIDRequest event, e.g.: procedure TForm1.OnImageIDRequest(Sender: TObject; ID: integer; var Bitmap: TBitmap); var io: TImageEnIO; begin io := TImageEnIO.Create(self); io.AttachedBitmap := bmp; // bmp is a TBitmap object, defined at class level (must exists after the OnImageIDRequest exits) io.LoadFromFile( files[ID] ); io.free; Bitmap := bmp; end; 4) If the images are frames of a media file (like AVI, MPEG, etc..) you can write: ImageEnMView1.LoadFromFileOnDemand('film.mpeg'); <# 19>Is it possible to save the objects (Lines, Ellipses, etc) added in TImageEnVect with the image? I.e. burn them into the JPEG file? Lines, ellipses and other objects added in a TImageEnVect can be merged to the background using the
the method, then save the background image (IO.SaveToFile). <# 20>How do i load or modify the IPTC info without loading the actual image? The IPTC info is automatically loaded when you load the JPEG image using the LoadFromFile method. After this you have in ImageEnView.IO.Params.IPTC_Info object all IPTC informations loaded. To read the caption you can write: ImageEnView.IO.LoadFromFile('image.jpg'); Idx := ImageEnView.IO. Params.IPTC_Info.IndexOf(2, 120); Caption := ImageEnView.IO.Params.IPTC_Info.StringItem[idx]; To modify the caption: ImageEnView.IO.Params.IPTC_Info.StringItem[idx] := 'new caption'; ImageEnView.IO.SaveToFile('image2.jpg'); To modify IPTC info without loading the image use ParamsFromFile and InjectJpegIPTC methods, as follows: ImageEnView.IO.ParamsFromFile('one.jpg'); ...After modifying the IPTC info save it ImageEnView.IO.InjectJpegIPTC('two.jpg'); <# 22>How I do save a JPEG without EXIF and other metadata? Call Params.ResetInfo. For example: ImageEnView.IO.LoadFromFile('input.jpg'); ImageEnView.IO.Params.ResetInfo; ImageEnView.IO.SaveToFile('output.jpg'); <# 23>How can I check if the TImageEnView is empty (i.e. no bitmap is loaded)? To empty the component use the "Blank" method. To check if it is empty use IsEmpty or IsEmpty2: If ImageEnView1.IsEmpty then ... <# 24>When a user selects a page of a multipage tiff image displayed in a TImageEnMView, I want the image to be displayed in a TImageEnView. To handle image selection use the OnImageSelect event. To transfer the currently selected image use the Assign method: procedure TForm1.ImageEnMView1ImageSelect(Sender: TObject; idx: Integer); begin ImageEnView1.Assign( ImageEnMView1.Bitmap ); end; <# 25>How do I assign the image in one ImageEnView to another ImageEnView? Just use Assign method: ImageEnView1.Assign( ImageEnView2 ); or ImageEnView1.Assign( ImageEnView1.Bitmap ); // this doesn't copy DPI or other metadata, just the image <# 26>What is the correct way to load a Resource Image at runtime into an TImageEnView component in C++? Here is a sample code: TResourceStream *ResourceImage; // Load from resource the About image ( a JPEG file). ResourceImage = new TResourceStream((int)HInstance, "ABOUTBITMAP", RT_RCDATA); MainForm->ImageAbout->IO->LoadFromStreamJpeg(ResourceImage); delete ResourceImage; Here is a single line text file named "resource.rc" with the sentence: ABOUTBITMAP RCDATA "about.jpg" Just add the Resource file to the project and compile. <# 27>How do I read custom TIFF tags? This example shows how to read EXIF tags saved by Canon cameras: var ms: TMemoryStream; tagReader1, tagReader2, tagReader3: TIETifTagsReader; i: integer; // some Canon tags m_nMacroMode, m_nLenghtTimer, m_Quality: integer; m_ImageType: string; begin with imageenvect1 do begin IO.LoadFromFile('Capture_00006.JPG'); with IO.Params.JPEG_MarkerList do begin i := IndexOf( JPEG_APP1 ); if i>=0 then begin // there are EXIF info ms := TMemoryStream.Create; ms.Write( MarkerData[i][6], MarkerLength[i] ); // bypass first 4 bytes (must contain 'Exif') ms.Position := 0; tagReader1 := TIETifTagsReader.CreateFromStream( ms, 0 ); // read TIFF's IFD tagReader2 := TIETifTagsReader.CreateFromIFD( tagReader1, 34665 ); // read IFD in tag 34665 (SubEXIF) tagReader3 := TIETifTagsReader.CreateFromIFD( tagReader2, $927c ); // read IFD in tag $927C (MarkerData - Canon IFD data) // read Canon EXIF tags m_nMacroMode := tagReader3.GetIntegerIndexed(1, 1); m_nLenghtTimer := tagReader3.GetIntegerIndexed(1, 2); m_Quality := tagReader3.GetIntegerIndexed(1, 3); m_ImageType := tagReader3.GetString(6); tagReader3.Free; tagReader2.Free; tagReader1.Free; ms.Free; end; end; end; end; <# 28>Why are my JPEGs so big? Jpeg is a file format with variable compression rate. The property that regulates the compression (and the quality) is JPEG_Quality. So you should set this property before saving. For example: ImageEnView.IO.LoadFromFile('input.jpg'); ImageEnView.IO.Params.JPEG_Quality := 70; ImageEnView.IO.SaveToFile('output.jpg'); The default is 80, while other software uses 70. To estimate the value used to create your file, use: Quality := IECalcJpegFileQuality('input.jpg'); So you could write: ImageEnView.IO.LoadFromFile('input.jpg'); ImageEnView.IO.Params.JPEG_Quality := IECalcJpegFileQuality('input.jpg'); ImageEnView.IO.SaveToFile('output.jpg'); If the file is still too large it may contain metatags (text info). To remove them call: ImageEnView.IO.Params.ResetInfo; ..before saving. <# 29>In ImageEnVect, how do I save an image with many objects? And how can I load the objects if I've saved them? Your options are as follows: 1) To save only objects: ImageEnVect1.SaveToFileIEV('file.iev'); To load: ImageEnVect1.LoadfromFileIEV('file.iev'); 2) To save the image with the objects objects: ImageEnVect1.SaveToFileAll('file.all'); To load: ImageEnVect1.LoadFromFileAll('file.all'); 3) To save the image and objects as a standard tiff using Imaging Annotations (readable by Windows Preview): ImageEnVect1.IO.SaveToFile('file.tif'); ImageEnVect1.SaveObjectsToTIFF('file.tif'); To load: ImageEnVect1.IO.LoadFromFile('file.tif'); ImageEnVect1.LoadObjectsFromTIFF('file.tif'); 4) To save the image and objects as a jpeg or other format which does not support Imaing Annotations (i.e. burn the objects into the image): ImageEnVect1.CopyObjectsToBack; ImageEnVect1.IO.SaveToFile('file.jpg'); <# 30>How do I store/retrieve pages of a multiple image file in a blob field with TImageEnDBView? cannot store/retrieve multiple pages in a blob. The best solution is to put a TImageEnMView component on the form and use it to load/save multiple pages as TIFFs in blobs using streams. To store the content of TImageEnMView inside a blob write: var tempStream : TMemoryStream; tempStream := TMemoryStream.Create; ImageEnMView1.MIO.SaveToStreamTIFF( tempStream ); BlobField.LoadFromStream( tempStream ); tempStream.free; To retrieve from a blob: tempStream := TMemoryStream.Create; BlobField.SaveToStream( tempStream ); tempStream.Position := 0; ImageEnMView1.MIO.LoadFromStreamTIFF( tempStream ); tempStream.free; If you use a TDataSet inherited data set you can create a blob stream without using an intermediate TMemoryStream. This will speed up the operation: BlobStream := myDataSet.CreateBlobStream(field, bmWrite); ImageEnMView1.MIO.SaveToStreamTIFF( BlobStream ); BlobStream.Free; And... BlobStream := myDataSet.CreateBlobStream(field, bmRead); ImageEnMView1.MiO.LoadFromStreamTIFF( BlobStream ); BlobStream.Free; Finally, when saving you can set compression info. For example, for black/white images you could write: ImageEnMView1.MIO.Params[0].TIFF_Compression := ioTIFF_G4FAX; ImageEnMView1.MIO.DuplicateCompressionInfo; And then save. <# 32>How to load the embedded jpeg from camera RAW images? Unfortunately Camera RAW formats aren't documented, so support for all formats is not possible. However you can load the embedded jpegs from NEF, CR2 and DNG raw formats: DNG: ImageEnView1.IO.Params.TIFF_SubIndex := 1; ImageEnView1.IO.LoadFromFileTIFF('input.dng'); CR2: ImageEnView1.IO.Params.ImageIndex := 0; ImageEnView1.IO.LoadFromFileTIFF('input.cr2'); NEF: ImageEnView1.IO.Params.ImageIndex := 1; ImageEnView1.IO.LoadFromFileTIFF('input.nef'); CRW: ImageEnView1.IO.LoadJpegFromFileCRW('input.crw'); <# 33>How do I terminate a polyline without double-clicking? Just set: ImageEnVect.PolylineEndingMode := ieemMouseUp; <# 34>Why am I unable to read Camera RAW formats? To read Camera RAW files you must add ielib.dll to your EXE folder. <# 35>Measuring line length using miLineLen (or miArea) does not work. The mouse pointer always shows 0.00 pixels. Why is that? miLineLen measures the perimeter of current selection. So a selection must be present. The same is for miArea which measures the area of current selection. To measure the length of a line write instead: ImageEnVect.MouseInteractVt := [miDragLen]; <# 36>Why do I get "Floating point overflow" when printing? This can happen on shared printers due to a bug in the VCL or printer drivers. Try disabling FPU exceptions by executing this before your printing code: Set8087CW($133F); <# 37>Why do I see horizontal/vertical borders when loading images using TImageEnMView? By default, TImageEnMView loads thumbnails from the EXIF data when available to speed up display. Sometime these thumbnails contain black bands (horizontal or vertical bands). To disable EXIF thumbnail loading set: TImageEnMView.EnableLoadEXIFThumbnails := false; !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Common Usage Scenarios See also: , and See also: , and See also: , and See also: , and See also: , and See also: , and See also: , and See also: , and !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! ImageEn Hierarchy TObject • • • • • • • • • • • • • • • • • • • • • • • • • • TComponent • • (encapsulates , , ) • • • • • TCustomControl • • (encapsulates , ) • (encapsulates , ) • • • • alias of • • • • • • TForm • !!} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {!! Twain language constants TWLG_DAN = 0; // Danish TWLG_DUT = 1; // Dutch TWLG_ENG = 2; // International English TWLG_FCF = 3; // French Canadian TWLG_FIN = 4; // Finnish TWLG_FRN = 5; // French TWLG_GER = 6; // German TWLG_ICE = 7; // Icelandic TWLG_ITN = 8; // Italian TWLG_NOR = 9; // Norwegian TWLG_POR = 10; // Portuguese TWLG_SPA = 11; // Spanish TWLG_SWE = 12; // Swedish TWLG_USA = 13; // U.S. English TWLG_USERLOCALE = $FFFF; TWLG_AFRIKAANS = 14; TWLG_ALBANIA = 15; TWLG_ARABIC = 16; TWLG_ARABIC_ALGERIA = 17; TWLG_ARABIC_BAHRAIN = 18; TWLG_ARABIC_EGYPT = 19; TWLG_ARABIC_IRAQ = 20; TWLG_ARABIC_JORDAN = 21; TWLG_ARABIC_KUWAIT = 22; TWLG_ARABIC_LEBANON = 23; TWLG_ARABIC_LIBYA = 24; TWLG_ARABIC_MOROCCO = 25; TWLG_ARABIC_OMAN = 26; TWLG_ARABIC_QATAR = 27; TWLG_ARABIC_SAUDIARABIA = 28; TWLG_ARABIC_SYRIA = 29; TWLG_ARABIC_TUNISIA = 30; TWLG_ARABIC_UAE = 31; // United Arabic Emirates TWLG_ARABIC_YEMEN = 32; TWLG_BASQUE = 33; TWLG_BYELORUSSIAN = 34; TWLG_BULGARIAN = 35; TWLG_CATALAN = 36; TWLG_CHINESE = 37; TWLG_CHINESE_HONGKONG = 38; TWLG_CHINESE_PRC = 39; // People's Republic of China TWLG_CHINESE_SINGAPORE = 40; TWLG_CHINESE_SIMPLIFIED = 41; TWLG_CHINESE_TAIWAN = 42; TWLG_CHINESE_TRADITIONAL= 43; TWLG_CROATIA = 44; TWLG_CZECH = 45; TWLG_DANISH = TWLG_DAN; TWLG_DUTCH = TWLG_DUT; TWLG_DUTCH_BELGIAN = 46; TWLG_ENGLISH = TWLG_ENG; TWLG_ENGLISH_AUSTRALIAN = 47; TWLG_ENGLISH_CANADIAN = 48; TWLG_ENGLISH_IRELAND = 49; TWLG_ENGLISH_NEWZEALAND = 50; TWLG_ENGLISH_SOUTHAFRICA= 51; TWLG_ENGLISH_UK = 52; TWLG_ENGLISH_USA = TWLG_USA; TWLG_ESTONIAN = 53; TWLG_FAEROESE = 54; TWLG_FARSI = 55; TWLG_FINNISH = TWLG_FIN; TWLG_FRENCH = TWLG_FRN; TWLG_FRENCH_BELGIAN = 56; TWLG_FRENCH_CANADIAN = TWLG_FCF; TWLG_FRENCH_LUXEMBOURG = 57; TWLG_FRENCH_SWISS = 58; TWLG_GERMAN = TWLG_GER; TWLG_GERMAN_AUSTRIAN = 59; TWLG_GERMAN_LUXEMBOURG = 60; TWLG_GERMAN_LIECHTENSTEIN = 61; TWLG_GERMAN_SWISS = 62; TWLG_GREEK = 63; TWLG_HEBREW = 64; TWLG_HUNGARIAN = 65; TWLG_ICELANDIC = TWLG_ICE; TWLG_INDONESIAN = 66; TWLG_ITALIAN = TWLG_ITN; TWLG_ITALIAN_SWISS = 67; TWLG_JAPANESE = 68; TWLG_KOREAN = 69; TWLG_KOREAN_JOHAB = 70; TWLG_LATVIAN = 71; TWLG_LITHUANIAN = 72; TWLG_NORWEGIAN = TWLG_NOR; TWLG_NORWEGIAN_BOKMAL = 73; TWLG_NORWEGIAN_NYNORSK = 74; TWLG_POLISH = 75; TWLG_PORTUGUESE = TWLG_POR; TWLG_PORTUGUESE_BRAZIL = 76; TWLG_ROMANIAN = 77; TWLG_RUSSIAN = 78; TWLG_SERBIAN_LATIN = 79; TWLG_SLOVAK = 80; TWLG_SLOVENIAN = 81; TWLG_SPANISH = TWLG_SPA; TWLG_SPANISH_MEXICAN = 82; TWLG_SPANISH_MODERN = 83; TWLG_SWEDISH = TWLG_SWE; TWLG_THAI = 84; TWLG_TURKISH = 85; TWLG_UKRANIAN = 86; TWLG_ASSAMESE = 87; TWLG_BENGALI = 88; TWLG_BIHARI = 89; TWLG_BODO = 90; TWLG_DOGRI = 91; TWLG_GUJARATI = 92; TWLG_HARYANVI = 93; TWLG_HINDI = 94; TWLG_KANNADA = 95; TWLG_KASHMIRI = 96; TWLG_MALAYALAM = 97; TWLG_MARATHI = 98; TWLG_MARWARI = 99; TWLG_MEGHALAYAN = 100; TWLG_MIZO = 101; TWLG_NAGA = 102; TWLG_ORISSI = 103; TWLG_PUNJABI = 104; TWLG_PUSHTU = 105; TWLG_SERBIAN_CYRILLIC = 106; TWLG_SIKKIMI = 107; TWLG_SWEDISH_FINLAND = 108; TWLG_TAMIL = 109; TWLG_TELUGU = 110; TWLG_TRIPURI = 111; TWLG_URDU = 112; TWLG_VIETNAMESE = 113; !!} {!! Twain country constants TWCY_AFGHANISTAN = 1001; TWCY_ALGERIA = 213; TWCY_AMERICANSAMOA = 684; TWCY_ANDORRA = 033; TWCY_ANGOLA = 1002; TWCY_ANGUILLA = 8090; TWCY_ANTIGUA = 8091; TWCY_ARGENTINA = 54; TWCY_ARUBA = 297; TWCY_ASCENSIONI = 247; TWCY_AUSTRALIA = 61; TWCY_AUSTRIA = 43; TWCY_BAHAMAS = 8092; TWCY_BAHRAIN = 973; TWCY_BANGLADESH = 880; TWCY_BARBADOS = 8093; TWCY_BELGIUM = 32; TWCY_BELIZE = 501; TWCY_BENIN = 229; TWCY_BERMUDA = 8094; TWCY_BHUTAN = 1003; TWCY_BOLIVIA = 591; TWCY_BOTSWANA = 267; TWCY_BRITAIN = 6; TWCY_BRITVIRGINIS = 8095; TWCY_BRAZIL = 55; TWCY_BRUNEI = 673; TWCY_BULGARIA = 359; TWCY_BURKINAFASO = 1004; TWCY_BURMA = 1005; TWCY_BURUNDI = 1006; TWCY_CAMAROON = 237; TWCY_CANADA = 2; TWCY_CAPEVERDEIS = 238; TWCY_CAYMANIS = 8096; TWCY_CENTRALAFREP = 1007; TWCY_CHAD = 1008; TWCY_CHILE = 56; TWCY_CHINA = 86; TWCY_CHRISTMASIS = 1009; TWCY_COCOSIS = 1009; TWCY_COLOMBIA = 57; TWCY_COMOROS = 1010; TWCY_CONGO = 1011; TWCY_COOKIS = 1012; TWCY_COSTARICA = 506 ; TWCY_CUBA = 005; TWCY_CYPRUS = 357; TWCY_CZECHOSLOVAKIA = 42; TWCY_DENMARK = 45; TWCY_DJIBOUTI = 1013; TWCY_DOMINICA = 8097; TWCY_DOMINCANREP = 8098; TWCY_EASTERIS = 1014; TWCY_ECUADOR = 593; TWCY_EGYPT = 20; TWCY_ELSALVADOR = 503; TWCY_EQGUINEA = 1015; TWCY_ETHIOPIA = 251; TWCY_FALKLANDIS = 1016; TWCY_FAEROEIS = 298; TWCY_FIJIISLANDS = 679; TWCY_FINLAND = 358; TWCY_FRANCE = 33; TWCY_FRANTILLES = 596; TWCY_FRGUIANA = 594; TWCY_FRPOLYNEISA = 689; TWCY_FUTANAIS = 1043; TWCY_GABON = 241; TWCY_GAMBIA = 220; TWCY_GERMANY = 49; TWCY_GHANA = 233; TWCY_GIBRALTER = 350; TWCY_GREECE = 30; TWCY_GREENLAND = 299; TWCY_GRENADA = 8099; TWCY_GRENEDINES = 8015; TWCY_GUADELOUPE = 590; TWCY_GUAM = 671; TWCY_GUANTANAMOBAY = 5399; TWCY_GUATEMALA = 502; TWCY_GUINEA = 224; TWCY_GUINEABISSAU = 1017; TWCY_GUYANA = 592; TWCY_HAITI = 509; TWCY_HONDURAS = 504; TWCY_HONGKONG = 852 ; TWCY_HUNGARY = 36; TWCY_ICELAND = 354; TWCY_INDIA = 91; TWCY_INDONESIA = 62; TWCY_IRAN = 98; TWCY_IRAQ = 964; TWCY_IRELAND = 353; TWCY_ISRAEL = 972; TWCY_ITALY = 39; TWCY_IVORYCOAST = 225 ; TWCY_JAMAICA = 8010; TWCY_JAPAN = 81; TWCY_JORDAN = 962; TWCY_KENYA = 254; TWCY_KIRIBATI = 1018; TWCY_KOREA = 82; TWCY_KUWAIT = 965; TWCY_LAOS = 1019; TWCY_LEBANON = 1020; TWCY_LIBERIA = 231; TWCY_LIBYA = 218; TWCY_LIECHTENSTEIN = 41; TWCY_LUXENBOURG = 352; TWCY_MACAO = 853; TWCY_MADAGASCAR = 1021; TWCY_MALAWI = 265; TWCY_MALAYSIA = 60; TWCY_MALDIVES = 960; TWCY_MALI = 1022; TWCY_MALTA = 356; TWCY_MARSHALLIS = 692; TWCY_MAURITANIA = 1023; TWCY_MAURITIUS = 230; TWCY_MEXICO = 3; TWCY_MICRONESIA = 691; TWCY_MIQUELON = 508; TWCY_MONACO = 33; TWCY_MONGOLIA = 1024; TWCY_MONTSERRAT = 8011; TWCY_MOROCCO = 212; TWCY_MOZAMBIQUE = 1025; TWCY_NAMIBIA = 264; TWCY_NAURU = 1026; TWCY_NEPAL = 977; TWCY_NETHERLANDS = 31; TWCY_NETHANTILLES = 599; TWCY_NEVIS = 8012; TWCY_NEWCALEDONIA = 687; TWCY_NEWZEALAND = 64; TWCY_NICARAGUA = 505; TWCY_NIGER = 227; TWCY_NIGERIA = 234; TWCY_NIUE = 1027; TWCY_NORFOLKI = 1028; TWCY_NORWAY = 47; TWCY_OMAN = 968; TWCY_PAKISTAN = 92; TWCY_PALAU = 1029; TWCY_PANAMA = 507; TWCY_PARAGUAY = 595; TWCY_PERU = 51; TWCY_PHILLIPPINES = 63; TWCY_PITCAIRNIS = 1030; TWCY_PNEWGUINEA = 675; TWCY_POLAND = 48; TWCY_PORTUGAL = 351; TWCY_QATAR = 974; TWCY_REUNIONI = 1031; TWCY_ROMANIA = 40; TWCY_RWANDA = 250; TWCY_SAIPAN = 670; TWCY_SANMARINO = 39; TWCY_SAOTOME = 1033; TWCY_SAUDIARABIA = 966; TWCY_SENEGAL = 221; TWCY_SEYCHELLESIS = 1034; TWCY_SIERRALEONE = 1035; TWCY_SINGAPORE = 65; TWCY_SOLOMONIS = 1036; TWCY_SOMALI = 1037; TWCY_SOUTHAFRICA = 27 ; TWCY_SPAIN = 34; TWCY_SRILANKA = 94; TWCY_STHELENA = 1032; TWCY_STKITTS = 8013; TWCY_STLUCIA = 8014; TWCY_STPIERRE = 508; TWCY_STVINCENT = 8015; TWCY_SUDAN = 1038; TWCY_SURINAME = 597; TWCY_SWAZILAND = 268; TWCY_SWEDEN = 46; TWCY_SWITZERLAND = 41; TWCY_SYRIA = 1039; TWCY_TAIWAN = 886; TWCY_TANZANIA = 255; TWCY_THAILAND = 66; TWCY_TOBAGO = 8016; TWCY_TOGO = 228; TWCY_TONGAIS = 676; TWCY_TRINIDAD = 8016; TWCY_TUNISIA = 216; TWCY_TURKEY = 90; TWCY_TURKSCAICOS = 8017; TWCY_TUVALU = 1040; TWCY_UGANDA = 256; TWCY_USSR = 7; TWCY_UAEMIRATES = 971; TWCY_UNITEDKINGDOM = 44; TWCY_USA = 1; TWCY_URUGUAY = 598; TWCY_VANUATU = 1041; TWCY_VATICANCITY = 39; TWCY_VENEZUELA = 58; TWCY_WAKE = 1042; TWCY_WALLISIS = 1043; TWCY_WESTERNSAHARA = 1044; TWCY_WESTERNSAMOA = 1045; TWCY_YEMEN = 1046; TWCY_YUGOSLAVIA = 38; TWCY_ZAIRE = 243; TWCY_ZAMBIA = 260; TWCY_ZIMBABWE = 263; TWCY_ALBANIA = 355; TWCY_ARMENIA = 374; TWCY_AZERBAIJAN = 994; TWCY_BELARUS = 375; TWCY_BOSNIAHERZGO = 387; TWCY_CAMBODIA = 855; TWCY_CROATIA = 385; TWCY_CZECHREPUBLIC = 420; TWCY_DIEGOGARCIA = 246; TWCY_ERITREA = 291; TWCY_ESTONIA = 372; TWCY_GEORGIA = 995; TWCY_LATVIA = 371; TWCY_LESOTHO = 266; TWCY_LITHUANIA = 370; TWCY_MACEDONIA = 389; TWCY_MAYOTTEIS = 269; TWCY_MOLDOVA = 373; TWCY_MYANMAR = 95 ; TWCY_NORTHKOREA = 850; TWCY_PUERTORICO = 787; TWCY_RUSSIA = 7 ; TWCY_SERBIA = 381; TWCY_SLOVAKIA = 421; TWCY_SLOVENIA = 386; TWCY_SOUTHKOREA = 82 ; TWCY_UKRAINE = 380; TWCY_USVIRGINIS = 340; TWCY_VIETNAM = 84 ; !!} {!! IEVision Description IEVision is an optional plugin for ImageEn which adds advanced vision features: • OCR (Optical character recognition supporting more than 100 languages) • Facial recognition: Searching for specific faces • Face detection: Finding faces and other parts of the body, eyes, glasses, smile, body (full/upper/lower), cat faces and Russian number plates • Face and objects tracking • Barcode reading (EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code) • Photo Stitching • Inpainting/Image patching (to hide blemishes and copy content) • Other advanced image processing algorithms (Non-local Means Denoising, Hough transformations, edge detection, image erosion and dilation, etc) In order to use IEVision you must copy the ievision.dll library to the same folder as your executable or in any location in the system path. You can check if ievision.dll is accessible by ImageEn calling function. For example: if not IEVisionAvailable() then begin ShowMessage('This application requires the ievision.dll plugin'); Application.Terminate; exit; end; The ievision unit exports all interfaces and helper functions, plus the public field which encapsulates the factory class . It is possible to encapsulate an ImageEn bitmap () inside a IEVision bitmap (), but it is necessary to change the TIEBitmap origin. For example: ImageEnView1.IEBitmap.Origin := ieboTOPLEFT; image := IEVisionLib.createImage(ImageEnView1.IEBitmap.Width, ImageEnView1.IEBitmap.Height, ievUINT8, 3, ImageEnView1.IEBitmap.Rowlen, ImageEnView1.IEBitmap.ScanLine[0]); This way you can use all IEVision functions sharing the results to a TImageEnView embedded image. It is also possible to create an IEVision image from scratch and then copy it to TIEBitmap or TImageEnView. An alternative way is to use which sets the bitmap origin and pixelformat for you: image := ImageEnView1.IEBitmap.GetIEVisionImage(); All IEVision objects are implemented as COM objects, so you don't need to handle object destruction (it is done automatically at runtime). For example, if you create an IEVision image with: image := IEVisionLib.createImage(1000, 1000, ievUINT8, 3); You don't need to free or dispose it. IEVision is not part of ImageEn and is sold separately. Demos Demos\IEVision\Barcode\Barcode.dpr Demos\IEVision\BarCodeCam\BarCodeCam.dpr Demos\IEVision\FaceDetection\FaceDetection.dpr Demos\IEVision\FaceDetection_LowLevel\FaceDetection_LowLevel.dpr Demos\IEVision\GetFaces\GetFaces.dpr Demos\IEVision\GetPeople\GetPeople.dpr Demos\IEVision\Inpaint_Brush\Inpaint_Brush.dpr Demos\IEVision\Inpaint_Selection\Inpaint_Selection.dpr Demos\IEVision\TrackObjects\TrackObjects.dpr Demos\IEVision\TrackObjects_LowLevel\TrackObjects_LowLevel.dpr Demos\IEVision\OCR\OCR.dpr Demos\IEVision\OCRwithLayout\OCRwithLayout.dpr !!} {!! IEVision Helper Functions IEVision Availability Simple Record Constructors !!} {!! Distributing IEVision To take advantage of IEVision's functionality you will need to ship ievision.dll (or ievision64.dll) with your application. ievision.dll should be installed in one of the following locations: • The same folder as your application EXE (RECOMMENDED) • The Windows System32 folder • A path specified in the Windows %PATH% environment variable Distribution is royalty-free if you have purchased an ImageEn and IEVision license. !!} {!! IEVision What's New Version 3.0.8 - Fixed: inPaint, crash when brush size is smaller than ROI rectangle Version 3.0.7 - Fixed: Lossless transformations do not work - Improved jpeg2000 loading and saving speed Version 3.0.6 - Updated dcraw to version 1.477 (9.27) Version 3.0.5 - findIn: Limited maximum size to 2MPixels, to avoid out of memory errors (can still happen when scaleFactor is less than 1.1) - Removed OpenCL support to avoid problems on some CPUs Version 3.0.4 - FaceRecognizer: added clear, isTrained, train, load and save overloads - Added: ObjectsFinder.setHaarMaxSize and setHaarMinSize methods - ObjectsFinder, added setEqualizeHistogram method to make histogram equalization optional Version 3.0.3 - Updated dcraw to version 1.476 (9.26) - Linked dcraw to jpeglib and jasperlib to support some Kodak devices Version 3.0.2 - Fixed bug loading some reduced size jpegs Version 3.0.1 - Fixed OCR problem (disabled inline expansion) - Fixed OCR environment path problem Version 3.0.0 - Added: New edge detection algorithm in TIEVisionImage.canny - Added: Line and segments detection in TIEVisionImage.houghLines and TIEVisionImage.houghLinesP - Added: New blur algorithm in TIEVisionImage.blur - Added: Panorama stitching in TIEVisionStitcher class - Added: Image denoising using Non-local Means Denoising algorithm TIEVisionImage.fastNlMeansDenoisingColored - Added: New thresholding algorithms in TIEVisionImage.threshold and TIEVisionImage.adaptiveThreshold - Added: New erode/dilate algorithms in TIEVisionImage.erode and TIEVisionImage.dilate - Added: Background subtractor in TIEVisionBackgroundSubtractor class - Added: Face recognizer in TIEVisionFaceRecognizer class - 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 - Fixed: Wrong bitmap orientation using IEVision and TImageEnProc.Undo - 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 Version 2.0.2 - Added MICR reading support Version 2.0.1 - Updated DCRAW to support newest Digital Camera Raw formats - Barcode decoder now supports monochrome images Version 2.0.0 - Added bar code reading support (EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code) - Added TIEVisionBarCodeSymbol class - Added TIEVisionBarCodeScanner class - Added TIEVisionLibrary.createBarCodeScanner method - Added TIEVisionLibrary.getLibraryInfo method Version 1.0.4 - Updated OCR library (now supports more languages with enhanced accuracy) - OCR: English is no more embedded - OCR: createOCR accepts only language code instead of file name - OCR: now supports multithreading - OCR: removed TIEVisionOCR.setAccuracy method - OCR: TIEVisionOCR.getRegions, added onlyText parameter to get only text regions - OCR: TIEVisionOCRWordBox, added getConfidence method - OCR: TIEVisionOCRWordBox, added isBold method - OCR: TIEVisionOCRWordBox, added isItalic method - OCR: TIEVisionOCRWordBox, added isUnderlined method - OCR: TIEVisionOCRWordBox, added isMonospace method - OCR: TIEVisionOCRWordBox, added isSerif method - OCR: TIEVisionOCRWordBox, added isSmallCaps method - OCR: TIEVisionOCRWordBox, added getPointSize method - OCR: TIEVisionOCRWordBox, added getLanguage method - OCR: TIEVisionOCRWordBox, added getScriptDirection method - OCR: now supported loading and detecting multiple languages (on the same TIEVisionOCR object) !!} end.