MAININDEX

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.

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


Keywords

Keywords

A

Aborting (TIEAcquireParams)
Aborting (TIEDcimAcquire)
Aborting (TImageEnIO)
Aborting (TImageEnMIO)
AbortTransition (TImageEnView)
absDiff (TIEVisionMath)
AbsolutePath (TImageEnDBVect)
AbsolutePath (TImageEnDBView)
AcceptedImages (TIETwainParams)
Access (TIEBaseBitmap)
Acquire (TIEAcquireParams)
Acquire (TIEDcimAcquire)
Acquire (TImageEnIO)
Acquire (TImageEnMIO)
AcquireFormats (TIEDcimAcquire)
AcquireFrameBottom (TIEAcquireParams)
AcquireFrameBottom (TIETwainParams)
AcquireFrameEnabled (TIEAcquireParams)
AcquireFrameEnabled (TIETwainParams)
AcquireFrameLeft (TIEAcquireParams)
AcquireFrameLeft (TIETwainParams)
AcquireFrameRight (TIEAcquireParams)
AcquireFrameRight (TIETwainParams)
AcquireFrameTop (TIEAcquireParams)
AcquireFrameTop (TIETwainParams)
AcquireParams (TImageEnIO)
AcquireParams (TImageEnMIO)
AcquireSourceToStr
Action Classes
Action (TIEMouseWheelParams)
Actions ImageIndex List
ActivateEditor (TIELineLayer)
ActivateEditor (TIETextLayer)
ActiveDeviceID (TIEPortableDevices)
ActiveFolderID (TIEPortableDevices)
adaptiveThreshold (TIEVisionImage)
Add (TIEDoubleList)
Add (TIEIntegerList)
add (TIEVisionMath)
AddBufferItem (TIEIPTCInfoList)
addClassifier (TIEVisionObjectsFinder)
AddColor (TIEColorPalette)
AddInnerShadow (TImageEnProc)
AddMarker (TIEMarkerList)
AddNewObject (TImageEnVect)
AddPoint (TIEPolylineLayer)
AddPolyLinePoint (TImageEnVect)
AddSelBreak (TImageEnView)
AddSelObject (TImageEnVect)
AddSelPoint (TImageEnView)
AddSoftShadow (TImageEnProc)
AddStringItem (TIEIPTCInfoList)
AddTag (TIEDicomTags)
addTrainImage (TIEVisionFaceRecognizer)
addWeighted (TIEVisionImage)
AdjustBrightnessContrastSaturation (TImageEnProc)
AdjustGainOffset (TImageEnProc)
AdjustGPSCoordinates (TIOParams)
AdjustLumSatHistogram (TImageEnProc)
AdjustmentsMask (TIEBitmap)
AdjustSaturation (TImageEnProc)
AdjustTemperature (TImageEnProc)
AdjustTint (TImageEnProc)
Alignment (TIETextLayer)
AlignObjects (TImageEnVect)
AlignToImage (TIEViewRulerParams)
AllObjectsHidden (TImageEnVect)
Allocate (TIEBitmap)
Allocate (TIEDibBitmap)
AllocateBits (TIEDibBitmap)
AllocateBits (TIEMask)
AllowMalformedPages (TImageEnMIO)
AllowOutOfBitmapMoving (TImageEnVect)
AllowOutOfBitmapPolylines (TImageEnVect)
Alpha (TIEBitmap)
AlphaChannel (TIEBitmap)
AlphaChannel (TImageEnView)
AlphaChannelOpt (TIEBitmap)
AlphaEdgeFeathering (TIELayer)
AlwaysAnimate (TOpenImageEnDialog)
AngleToImageEnRotateAngle
Animation (TImageEnMView)
AnimDuration (TIEAnimation)
AnimPolygonAddPt (TImageEnView)
AnimPolygonClear (TImageEnView)
AnimPolygonDel (TImageEnView)
AnimPolygonNew (TImageEnView)
AnnotationsVisible (TImageEnMView)
AntiAlias (TIELayer)
AntialiasMode (TIECropToolInteraction)
append (TIEVisionString)
append (TIEVisionWString)
AppendColorLuminancePalette (TIEColorPalette)
AppendFile (TImageEnFolderMView)
AppendGradientPalette (TIEColorPalette)
AppendImage (TIEDBMultiBitmap)
AppendImage (TIEMultiBitmap)
AppendImage (TImageEnFolderMView)
AppendImage (TImageEnMView)
AppendImageRef (TIEImageList)
AppendSplit (TIEMultiBitmap)
AppendSplit (TImageEnMView)
Apply (TIEICC)
apply (TIEVisionBackgroundSubtractor)
Apply2 (TIEICC)
ApplyBitmapToSelection (TImageEnView)
ApplyColorProfileOnRendering (TIEImageEnGlobalSettings)
ApplyFilter (TImageEnProc)
ApplyFilterPreset (TImageEnProc)
AppManufacturer (TIETwainParams)
AppProductfamily (TIETwainParams)
AppProductName (TIETwainParams)
AppVersionInfo (TIETwainParams)
AspectRatioLocked (TIELayer)
Assign (TIEBitmap)
Assign (TIEDibBitmap)
Assign (TIEICC)
Assign (TIEImagingAnnot)
Assign (TIEIPTCInfoList)
Assign (TIELayer)
Assign (TIEMarkerList)
Assign (TIEMask)
Assign (TIEMultiBitmap)
Assign (TIETwainParams)
Assign (TIEVSoftShadow)
Assign (TImageEnMView)
Assign (TImageEnView)
Assign (TIOMultiParams)
Assign (TIOParams)
Assign_AdobeRGB1998 (TIEICC)
Assign_CMYKProfile (TIEICC)
Assign_LabProfile (TIEICC)
Assign_LabProfileD50 (TIEICC)
Assign_LabProfileFromTemp (TIEICC)
Assign_sRGBProfile (TIEICC)
Assign_XYZProfile (TIEICC)
AssignEx (TImageEnMView)
AssignIEVisionImage (TIEBitmap)
AssignImage (TIEBitmap)
AssignLayers (TImageEnMView)
AssignPalette (TIEColorPalette)
AssignParams (TImageEnIO)
AssignRect (TIEBitmap)
AssignSelTo (TImageEnView)
AsyncMode (TImageEnIO)
AsyncRunning (TImageEnIO)
at (TIEVisionString)
at (TIEVisionWString)
AttachedBitmap (TImageEnIO)
AttachedBitmap (TImageEnProc)
AttachedDCIMParams (TIEAcquireParams)
AttachedIEBitmap (TImageEnIO)
AttachedIEBitmap (TImageEnProc)
AttachedIEMBitmap (TImageEnMIO)
AttachedImageEn (TImageEnIO)
AttachedImageEn (TImageEnProc)
AttachedImageEnIO (TSaveImageEnDialog)
AttachedImageEnProc (THistogramBox)
AttachedMView (TImageEnMIO)
AttachedTImage (TImageEnIO)
AttachedTImage (TImageEnProc)
AttachedTwainParams (TIEAcquireParams)
AttachedWIAParams (TIEAcquireParams)
AudioCodecs (TIEDirectShow)
AudioInputs (TIEDirectShow)
AutoAdjustDPI (TImageEnIO)
AutoAdjustDPI (TImageEnMIO)
AutoAdjustDPI (TOpenImageEnDialog)
AutoBorderDetection (TIETwainParams)
AutoBright (TIETwainParams)
AutoCalcBWValues (TIEBitmap)
AutoConvertFormat (TImageEnProc)
AutoCrop (TImageEnProc)
AutoCrop2 (TImageEnProc)
AutoCursors (TImageEnView)
AutoDeskew (TIETwainParams)
AutoDiscardBlankPages (TIETwainParams)
AutoDisplay (TImageEnDBVect)
AutoDisplay (TImageEnDBView)
AutoDragFiles (TImageEnFolderMView)
AutoDropFiles (TImageEnFolderMView)
AutoFeed (TIEAcquireParams)
AutoFeed (TIETwainParams)
AutoFit (TImageEnView)
AutoFragmentBitmap (TIEImageEnGlobalSettings)
AutoImageEnhance1 (TImageEnProc)
AutoImageEnhance2 (TImageEnProc)
AutoImageEnhance3 (TImageEnProc)
AutoLoad (TIEDBBitmap)
AutoLocateOnDisk (TIEImageEnGlobalSettings)
AutoRefresh (TImageEnFolderMView)
AutoRotate (TIETwainParams)
AutoScan (TIETwainParams)
AutoSetFilter (TOpenImageEnDialog)
AutoSetFilterFileType (TOpenImageEnDialog)
AutoSharp (TImageEnProc)
AutoShrink (TImageEnView)
AutoSize (TIETextLayer)
AutoStretch (TImageEnView)
AutoUndo (TImageEnProc)
avg (TIEVisionImage)
avgSdv (TIEVisionImage)
AVI_FrameCount (TIOParams)
AVI_FrameDelayTime (TIOParams)

B

BackBuffer (TImageEnView)
Background (THistogramBox)
Background (THSVBox)
Background (TImageEnIO)
Background (TImageEnMView)
Background (TImageEnProc)
Background (TImageEnView)
Background (TRulerBox)
BackgroundStyle (TImageEnMView)
BackgroundStyle (TImageEnView)
BarsDistance (THSVBox)
BeginColor (TIEGradientBar)
BeginImageAnalysis (TImageEnProc)
BeginImageProcessing (TImageEnProc)
BeginPostFrames (TImageEnView)
BeginSelectImages (TImageEnMView)
BiDiMode (TIEColorPalette)
BiDiMode (TImageEnMView)
BitAlignment (TIEBitmap)
BitCount (TIEBitmap)
BitCount (TIEDibBitmap)
BitDepth (TIEAcquireParams)
BitDepth (TIETwainParams)
Bitmap (THistogramBox)
Bitmap (TIELayer)
Bitmap (TImageEnIO)
Bitmap (TImageEnMView)
Bitmap (TImageEnView)
BitmapPolygon (TIECropToolInteraction)
BitmapResampleFilter (TImageEnVect)
Bits (TIEDibBitmap)
Bits (TIEMask)
BitsPerPixel (TIEMask)
BitsPerPixelToStr
BitsPerSample (TIOParams)
BlackValue (TIEBitmap)
Blank (TImageEnView)
blimit
Blue (THSVBox)
BlueToGrayCoef (TIEImageEnGlobalSettings)
blur (TIEVisionImage)
Blur (TImageEnProc)
BMP_Compression (TIOParams)
BMP_HandleTransparency (TIOParams)
BMP_Version (TIOParams)
BMPRAW_ChannelOrder (TIOParams)
BMPRAW_DataFormat (TIOParams)
BMPRAW_HeaderSize (TIOParams)
BMPRAW_Planes (TIOParams)
BMPRAW_RowAlign (TIOParams)
BmpXToLongitude (TIESlippyMap)
BmpYToLatitude (TIESlippyMap)
BorderColor (TIEImageLayer)
BorderColor (TIELayer)
BorderColor (TIEShapeLayer)
BorderColor (TIETextLayer)
BorderPen (TIEAnimation)
BorderShape (TIETextLayer)
BorderWidth (TIEImageLayer)
BorderWidth (TIELayer)
BorderWidth (TIEShapeLayer)
BorderWidth (TIETextLayer)
BorderX (TIEImageEnGlobalSettings)
BorderY (TIEImageEnGlobalSettings)
BottomGap (TImageEnMView)
BottomTextFont (TImageEnMView)
BoundingBox (TIEGestureLayerMoveOptions)
BoundingBox (TIEGesturePanOptions)
boundingRect (TIEVisionMath)
Brightness (TIEAcquireParams)
Brightness (TIETwainParams)
bswap
BufferedReadStreamSize (TIEImageEnGlobalSettings)
BufferedTransfer (TIETwainParams)
BufferToTIEBitmap (TIEDirectShow)
BumpMapping (TImageEnProc)

C

c_str (TIEVisionString)
c_str (TIEVisionTempDirName)
c_str (TIEVisionTempFileName)
c_str (TIEVisionWString)
CachePath (TIESlippyMap)
calc (TIEVisionHistogram)
CalcAverageRGB (TImageEnProc)
calcBackProject (TIEVisionHistogram)
calcCovarMatrix (TIEVisionMath)
CalcDensityHistogram (TImageEnProc)
CalcGridHeight (TImageEnMView)
CalcGridWidth (TImageEnMView)
CalcImageNumColors (TImageEnProc)
CalcImagePalette (TImageEnProc)
CalcOrientation (TImageEnProc)
CalcRAWSize (TIEBitmap)
CalcStdDev (TImageEnProc)
CamFov (TIEEquirectangularRenderer)
CamHeading (TIEEquirectangularRenderer)
CamPitch (TIEEquirectangularRenderer)
camShift (TIEVisionImage)
Cancel (TIECropToolInteraction)
Cancel (TIEPortableDevices)
CancelInteracts (TImageEnVect)
CanCopyToClipboard (TImageEnProc)
CanCutToClipboard (TImageEnProc)
CanNavigateToParent (TIEPortableDevices)
canny (TIEVisionImage)
CanOpenParentFolder (TImageEnFolderMView)
CanPasteFilesFromClipboard
CanPasteFilesFromClipboard (TImageEnFolderMView)
CanPasteFromClipboard (TImageEnProc)
CanRedo (TImageEnProc)
CanUndo (TImageEnProc)
Canvas (TIEBitmap)
CanvasCurrentAlpha (TIEBitmap)
CapabilitiesValid (TIETwainParams)
capacity (TIEVisionBaseVector)
CaptureFromScreen (TImageEnIO)
CaptureMode (TIEDirectShow)
Capturing (TIEMediaFoundationSourceReader)
cartToPolar (TIEVisionMath)
CastAlpha (TImageEnProc)
CastColor (TImageEnProc)
CastColorRange (TImageEnProc)
CellSize (TIEColorPalette)
CellStyle (TIEColorPalette)
Center (TImageEnView)
CenterFrame (TImageEnMView)
CenterImage (TImageEnView)
CenterNewObjects (TImageEnVect)
CenterSelected (TImageEnMView)
ChangeBackground (TImageEnIO)
Changed (TIEList)
ChangeResolution (TImageEnView)
ChangeTagCode (TIETIFFHandler)
ChannelCount (TIEBitmap)
ChannelOffset (TIEBitmap)
CheckAll (TImageEnMView)
CheckAniGIF
Checkboxes (TImageEnMView)
CheckboxPos (TImageEnMView)
Checked (TImageEnMView)
CheckedCount (TImageEnMView)
CheckLegacyBitmap (TImageEnProc)
CheckThumbBoundsOnSelect (TImageEnMView)
CheckTransform (TIEICC)
circle (TIEVisionDrawing)
classifierExists (TIEVisionObjectsFinder)
Clear (THistogramBox)
Clear (TIEBitmap)
Clear (TIEColorPalette)
Clear (TIEDicomTags)
Clear (TIEDictionary)
Clear (TIEDoubleList)
Clear (TIEICC)
Clear (TIEImageEnAnnot)
Clear (TIEImageLayer)
Clear (TIEImageList)
Clear (TIEImagingAnnot)
Clear (TIEIntegerList)
Clear (TIEIPTCInfoList)
Clear (TIEList)
Clear (TIEMarkerList)
Clear (TIEMultiBitmap)
clear (TIEVisionBaseVector)
clear (TIEVisionFaceRecognizer)
clear (TIEVisionHistogram)
clear (TIEVisionImageList)
clear (TIEVisionMemoryStream)
clear (TIEVisionPropertyTree)
Clear (TImageEnMView)
Clear (TImageEnProc)
Clear (TImageEnView)
Clear (TIOMultiParams)
clearAdaptiveInfo (TIEVisionOCR)
ClearAll (TImageEnView)
ClearAllPoints (TIEPolylineLayer)
ClearAllRedo (TImageEnProc)
ClearAllUndo (TImageEnProc)
ClearGridFields (TStringGridHelper)
ClearHiddenText (TImageEnProc)
ClearImageCache (TImageEnMView)
ClearIPTCField (TIOParams)
ClearListFields (TListViewHelper)
ClearNotifyReceivers (TIEMediaFoundationSourceReader)
ClearRedo (TImageEnProc)
ClearRedoAt (TImageEnProc)
ClearSel (TImageEnProc)
ClearUndo (TImageEnProc)
ClearUndoAt (TImageEnProc)
ClientAreaBox (TIELayer)
ClockErrorTolerance (TIEDirectShow)
close (TIEVisionFileStream)
Close (TIEWICReader)
Close (TIEWICWriter)
CloseAVIFile (TImageEnIO)
CloseMediaFile (TImageEnIO)
ClosePDFFile (TImageEnIO)
ClosePSFile (TImageEnIO)
Closing (TImageEnProc)
cmp (TIEVisionImage)
ColCount (TIEColorPalette)
Color Management System
Color (THSVBox)
Color (TIEGradientBar)
Color (TIEViewRulerParams)
ColorCount (TIEColorPalette)
ColorIndex (TIEGradientBar)
Colorize (TImageEnProc)
ColorMap (TIOParams)
ColorMapCount (TIOParams)
ColorProfile (TIEBitmap)
ColorReductionAlgorithm (TIEImageEnGlobalSettings)
ColorReductionQuality (TIEImageEnGlobalSettings)
Colors (TIEColorPalette)
ColorToHex
ColorToHSL
ColorToHSV
ColorUnderCursor (TIEColorPalette)
CombineWithAlpha (TIEMask)
Common Usage Scenarios
CompareHistogramWith (TImageEnProc)
CompareWith (TImageEnProc)
CompatibilityMode (TIETwainParams)
CompBar (THistogramBox)
CompressionQuality (TIEWICWriter)
ComputeImageEquality (TImageEnProc)
Connect (TIEDirectShow)
Connect (TIERFBClient)
Connected (TIEDirectShow)
Connected (TIERFBClient)
ConnectedDeviceIndex (TIEWia)
ConnectTo (TIEWia)
ConnectToUsingDialog (TIEWia)
ConstrainGrips (TIEViewRulerParams)
Consts for Common XMP Fields
ContainsExifTag
contourArea (TIEVisionMath)
Contrast (TIEAcquireParams)
Contrast (TIEBitmap)
Contrast (TIETwainParams)
Contrast (TImageEnProc)
Contrast2 (TImageEnProc)
Contrast3 (TImageEnProc)
ConvertBitmap (TIEICC)
convertColor (TIEVisionImage)
ConvertColorFunction (TIEImageEnGlobalSettings)
convertFromUTF8 (TIEVisionWString)
convertScale (TIEVisionImage)
ConvertTimeFormat (TIEDirectShow)
ConvertTo (TImageEnProc)
ConvertTo24Bit (TImageEnProc)
ConvertToBW_FloydSteinberg (TImageEnProc)
ConvertToBWLocalThreshold (TImageEnProc)
ConvertToBWOrdered (TImageEnProc)
ConvertToBWThreshold (TImageEnProc)
ConvertToGray (TImageEnProc)
ConvertToImageLayer (TIELayer)
ConvertToPalette (TImageEnProc)
ConvertToSepia (TImageEnProc)
Convolve (TImageEnProc)
ConvXBmp2Scr (TIELayer)
ConvXScr2Bmp (TIELayer)
ConvYBmp2Scr (TIELayer)
ConvYScr2Bmp (TIELayer)
copy (TIEVisionImage)
CopyAllLayersFrom (TImageEnVect)
CopyAllObjectsTo (TImageEnVect)
CopyAndConvertFormat (TIEBitmap)
CopyBitmap (TIEMask)
CopyFileFromDevice (TIEPortableDevices)
CopyFilesToClipboard
CopyFilesToCurrentFolder (TImageEnFolderMView)
CopyFileToDevice (TIEPortableDevices)
copyFrom (TIEVisionImage)
CopyFromDIB (TIEBitmap)
CopyFromMemory (TIEBitmap)
CopyFromPolygon (TImageEnView)
CopyFromTBitmap (TIEBitmap)
CopyFromTDibBitmap (TIEBitmap)
CopyFromTIEMask (TIEBitmap)
CopyFromTImageEnVect (TIEImageEnAnnot)
CopyFromTImageEnVect (TIEImagingAnnot)
CopyFromTImageEnView (TIEImageEnAnnot)
CopyFromTImageEnView (TIEImagingAnnot)
CopyIEBitmap (TIEMask)
CopyIEBitmapAlpha (TIEMask)
CopyImages (TIEDcimAcquire)
CopyObjectsToBack (TImageEnVect)
CopyObjectTo (TImageEnVect)
CopyObjectToBack (TImageEnVect)
CopyPaletteTo (TIEBitmap)
CopyRectTo (TIEBitmap)
Copyright (TIEICC)
CopySelectedFilesToClipboard (TImageEnFolderMView)
CopySelectedFilesToFolder (TImageEnFolderMView)
CopySelectedObjectsTo (TImageEnVect)
CopySelectionToBitmap (TImageEnView)
CopyStreamFromDevice (TIEPortableDevices)
CopyTag (TIETIFFHandler)
CopyToBitmap (TIELayer)
CopyToBitmapWithAlpha (TImageEnView)
CopyToClipboard (TIEBitmap)
CopyToClipboard (TImageEnProc)
CopyToIEBitmap (TIEMultiBitmap)
CopyToIEBitmap (TImageEnMView)
CopyToPolygon (TImageEnView)
CopyToTBitmap (TIEBitmap)
CopyToTBitmap (TIEDibBitmap)
CopyToTDibBitmap (TIEBitmap)
CopyToTIEMask (TIEBitmap)
CopyToTImageEnVect (TIEImageEnAnnot)
CopyToTImageEnVect (TIEImagingAnnot)
CopyToTImageEnView (TIEImageEnAnnot)
CopyToTImageEnView (TIEImagingAnnot)
CopyWithMask1 (TIEBitmap)
CopyWithMask2 (TIEBitmap)
Count (TIEDicomTags)
Count (TIEDictionary)
Count (TIEIPTCInfoList)
Count (TIEList)
Count (TIEMarkerList)
Count (TIEMultiBitmap)
Count (TIOMultiParams)
countNonZero (TIEVisionImage)
Country (TIETwainParams)
Create (TIEAcquireParams)
Create (TIEAnimation)
Create (TIEBitmap)
Create (TIEColorPalette)
Create (TIEDBBitmap)
Create (TIEDBMultiBitmap)
Create (TIEDcimAcquire)
Create (TIEDictionary)
Create (TIEEquirectangularRenderer)
Create (TIEHashStream)
Create (TIEMultiBitmap)
Create (TIEPortableDevices)
Create (TIEResourceExtractor)
Create (TIERFBClient)
Create (TIESlippyMap)
Create (TIETIFFHandler)
Create (TIETwainParams)
create (TIEVisionImage)
Create (TImageEnIO)
Create (TImageEnProc)
Create (TIOParams)
createAlphaMask (TIEVisionImage)
CreateAVIFile (TImageEnIO)
createBackgroundSubtractor (TIEVisionLibrary)
createBarCodeScanner (TIEVisionLibrary)
createCascadeClassifier (TIEVisionHaarTraining)
createCascadeClassifier (TIEVisionLibrary)
CreateCMYK
CreateDIB (TIEBitmap)
createDrawing (TIEVisionLibrary)
createExistingMemoryStream (TIEVisionLibrary)
createFaceRecognizer (TIEVisionLibrary)
createFileStream (TIEVisionLibrary)
CreateFromBitmap (TImageEnIO)
CreateFromBitmap (TImageEnProc)
CreateFromFile (TIETIFTagsReader)
CreateFromIEMBitmap (TImageEnMIO)
CreateFromIFD (TIETIFTagsReader)
CreateFromStream (TIETIFTagsReader)
createHaarTraining (TIEVisionLibrary)
createHistogram (TIEVisionLibrary)
createImage (TIEVisionLibrary)
CreateImageFromSelectedArea (TImageEnVect)
createInputOutput (TIEVisionLibrary)
createMath (TIEVisionLibrary)
createMemoryImageList (TIEVisionLibrary)
createMemorySharedImageList (TIEVisionLibrary)
createMemoryStream (TIEVisionLibrary)
CreateMorphingSequence (TImageEnMView)
CreateNewFolder (TImageEnFolderMView)
createObjectsFinder (TIEVisionLibrary)
createObjectTracker (TIEVisionLibrary)
createOCR (TIEVisionLibrary)
CreatePDFFile (TImageEnIO)
CreatePDFFromFileList (TImageEnIO)
createPeopleDetector (TIEVisionLibrary)
CreatePolygonFromEdge (TImageEnVect)
CreatePolygonsFromSelection (TImageEnVect)
createPropertyTree (TIEVisionLibrary)
CreatePSFile (TImageEnIO)
CreatePSFromFileList (TImageEnIO)
CreateRGB
CreateRGB48
CreateRGBA
CreateROIBitmap (TIEBitmap)
CreateROICanvas (TIEBitmap)
createStitcher (TIEVisionLibrary)
createString (TIEVisionLibrary)
createTempDirName (TIEVisionLibrary)
createTempFileImageList (TIEVisionLibrary)
createTempFileName (TIEVisionLibrary)
createTempFileStream (TIEVisionLibrary)
createTrainingSamples (TIEVisionHaarTraining)
CreateTransitionBitmap (TImageEnProc)
createVectorByte (TIEVisionLibrary)
createVectorDouble (TIEVisionLibrary)
createVectorFloatPair (TIEVisionLibrary)
createVectorImageRef (TIEVisionLibrary)
createVectorInt32 (TIEVisionLibrary)
createVectorPoint (TIEVisionLibrary)
createVectorRect (TIEVisionLibrary)
createVectorString (TIEVisionLibrary)
CreateWallpaperBitmap
createWString (TIEVisionLibrary)
Crop (TIEBitmap)
Crop (TIECropToolInteraction)
Crop (TImageEnProc)
CropAlpha (TIEBitmap)
CropAlpha (TIEImageLayer)
Cropped (TIELayer)
CropSel (TImageEnProc)
CropToolInteraction (TImageEnView)
CropTransparentBorder (TImageEnProc)
CubeEngineExistsInFolder
CUR_Background (TIOParams)
CUR_ImageIndex (TIOParams)
CUR_XHotSpot (TIOParams)
CUR_YHotSpot (TIOParams)
CurrentImage (TIEAnimation)
CurrentImageZoom (TIECircularFlow)
CurrentImageZoom (TIEHorizontalFlow)
CurrentLayer (TImageEnView)
CurrentValue (TIEDoubleList)
CurrentValue (TIEIntegerList)
Cursor (TIERFBClient)
Cursor (TImageEnView)
CursorGripKind (TIEViewRulerParams)
CustomHintTimeout (TIEImageEnGlobalSettings)
CutFilesToClipboard
CutSelectedFilesToClipboard (TImageEnFolderMView)
CutToClipboard (TImageEnProc)

D

data (TIEVisionBaseVector)
DataField (TImageEnDBVect)
DataField (TImageEnDBView)
DataFieldImageFormat (TImageEnDBVect)
DataFieldImageFormat (TImageEnDBView)
DataSet (TIEIPTCInfoList)
DataSource (TIEDBBitmap)
DataSource (TIEDBMultiBitmap)
DataSource (TImageEnDBVect)
DataSource (TImageEnDBView)
DateTimeToEXIFDate
DCIMParams (TImageEnIO)
DCIMParams (TImageEnMIO)
DCT (TIEVisionImage)
DCX_ImageIndex (TIOParams)
DecodeSample (TIEMFReceivedSample)
Decrypt (TImageEnProc)
DefaultBottomText (TImageEnMView)
DefaultCoresCount (TIEImageEnGlobalSettings)
DefaultDialogFont (TIEImageEnGlobalSettings)
DefaultDitherMethod (TIEBitmap)
DefaultDitherMethod (TImageEnIO)
DefaultDitherMethod (TImageEnMIO)
DefaultDPIX (TIEImageEnGlobalSettings)
DefaultDPIY (TIEImageEnGlobalSettings)
DefaultFileIcon (TImageEnMView)
DefaultFilename (TIEDBMultiBitmap)
DefaultFolder (TImageEnFolderMView)
DefaultICCProfile (TIOParams)
DefaultInfoText (TImageEnMView)
DefaultLayerText (TIEImageEnGlobalSettings)
DefaultPreviewHistogramScale (TIEImageEnGlobalSettings)
DefaultPreviewsZoomFilter (TIEImageEnGlobalSettings)
DefaultResampleFilter (TIEImageEnGlobalSettings)
DefaultRotateAntiAlias (TIEImageEnGlobalSettings)
DefaultTopText (TImageEnMView)
DefDialogCenter (TIEImageEnGlobalSettings)
DefMinFileSize (TIEImageEnGlobalSettings)
DefTempPath (TIEImageEnGlobalSettings)
Deinterlace (TImageEnProc)
DelayDisplaySelection (TImageEnView)
DelayTimer (TImageEnView)
DelayZoomFilter (TImageEnView)
DelayZoomTime (TImageEnView)
Delete (TIEList)
DeleteDCXIm
DeleteFromDevice (TIEPortableDevices)
DeleteGIFIm
DeleteGroup (TIEDicomTags)
DeleteImage (TIEAnimation)
DeleteImage (TIEDBMultiBitmap)
DeleteImage (TIEMultiBitmap)
DeleteImage (TImageEnMView)
DeleteItem (TIEIPTCInfoList)
DeleteItem (TIEWia)
DeleteMarker (TIEMarkerList)
DeleteMarkerInstances (TIEMarkerList)
DeletePage (TIETIFFHandler)
DeleteSelectedFilesFromFolder (TImageEnFolderMView)
DeleteSelectedImages (TImageEnMView)
DeleteTag (TIEDicomTags)
DeleteTag (TIETIFFHandler)
DeleteTakenPicture (TIEWia)
DeleteTIFFIm
DeleteTIFFImGroup
DelLastSelPoint (TImageEnView)
Demos
Depth (TIEAnimation)
Description (TIEICC)
Deselect (TImageEnMView)
Deselect (TImageEnView)
Destroy (TIEAcquireParams)
Destroy (TIEAnimation)
Destroy (TIEBitmap)
Destroy (TIEColorPalette)
Destroy (TIEDBMultiBitmap)
Destroy (TIEDcimAcquire)
Destroy (TIEMultiBitmap)
Destroy (TIEPortableDevices)
DetachAlphaChannel (TIEBitmap)
detect (TIEVisionFaceRecognizer)
detect (TIEVisionPeopleDetector)
detectObjects (TIEVisionCascadeClassifier)
determinant (TIEVisionImage)
Device (TIEWia)
DeviceCount (TIEPortableDevices)
DeviceIDToIndex (TIEPortableDevices)
DeviceOnline (TIETwainParams)
Devices (TIEPortableDevices)
DevicesInfo (TIEWia)
DevicesInfoCount (TIEWia)
DFT (TIEVisionImage)
DialogBackgroundImage (TIEImageEnGlobalSettings)
DialogBackgroundStyle (TIEImageEnGlobalSettings)
DialogsMeasureUnit (TImageEnIO)
DialogsMeasureUnit (TImageEnMIO)
DIB (TIEDibBitmap)
Dicom Tags Supported by ImageEn
DICOM_Compression (TIOParams)
DICOM_FindTag (TIOParamsHelper)
DICOM_HasDicomTags (TIOParamsHelper)
DICOM_J2000Rate (TIOParams)
DICOM_JPEGQuality (TIOParams)
DICOM_Range (TIOParams)
DICOM_Tags (TIOParams)
DICOM_WindowCenterOffset (TIOParams)
DICOM_WriteToStrings (TIOParamsHelper)
DicomCompatibleFile
Dict (TIOParams)
dilate (TIEVisionImage)
Direction (TIEGradientBar)
DiscardAudioSamples (TIEMediaFoundationSourceReader)
DiscardSavedSelection (TImageEnView)
Disconnect (TIEDirectShow)
Disconnect (TIERFBClient)
Display (TIEAnimation)
DisplayGridKind (TImageEnView)
DisplayGridLyr (TImageEnView)
DisplayImageAt (TImageEnMView)
DisplayMode (TImageEnMView)
DisposeChannels (TImageEnProc)
Distributing IEVision
DlgHeight (TIOPrintPreviewParams)
DlgWidth (TIOPrintPreviewParams)
dmax
dmin
DoGetImage (TIEAnimation)
DoGetImageInfo (TIEAnimation)
DoIOPreview (TImageEnDBVect)
DoIOPreview (TImageEnDBView)
DoPreviews (TImageEnIO)
DoPreviews (TImageEnMIO)
DoPreviews (TImageEnProc)
DoPrintPreviewDialog (TImageEnIO)
DoPrintPreviewDialog (TImageEnMIO)
DoReleaseImage (TIEAnimation)
DotPerUnit (TRulerBox)
dotProduct (TIEVisionImage)
Dpi (TIOParams)
DPIX (TIEWICReader)
DPIX (TIEWICWriter)
DpiX (TIOParams)
DPIY (TIEWICReader)
DPIY (TIEWICWriter)
DpiY (TIOParams)
DrawAcquireComboListBoxItem
drawContours (TIEVisionDrawing)
DrawGuides (TIECropToolInteraction)
drawImage (TIEAnimation)
DrawImageBackground (TImageEnMView)
DrawingInfo (TIELayer)
DrawObjectsToBitmap (TImageEnVect)
DrawOneObjectToBitmap (TImageEnVect)
DrawOuter (TIELayer)
DrawOuter (TIEMask)
DrawOutline (TIEMask)
DrawPolygon (TIEMask)
DrawTo (TIESlippyMap)
DrawTo (TImageEnView)
DrawToBitmap (TIEImageEnAnnot)
DrawToBitmap (TIEImagingAnnot)
DrawToCanvas (TIEBitmap)
DrawToCanvasWithAlpha (TIEBitmap)
DrawToTIEBitmap (TIEBitmap)
DrawVersion (TImageEnView)
DShowParams (TImageEnIO)
Dump (TIEDictionary)
DuplexEnabled (TIEAcquireParams)
DuplexEnabled (TIETwainParams)
DuplexSupported (TIEAcquireParams)
DuplexSupported (TIETwainParams)
DuplicateCompressionInfo (TIEMultiBitmap)
DuplicateCompressionInfo (TImageEnMIO)
DuplicateCompressionInfo (TIOMultiParams)
Duration (TIEDirectShow)
Duration (TIEMediaFoundationSourceReader)
DVDActivateButton (TIEDirectShow)
DVDGetProperty (TIEDirectShow)
DVDInputPath (TIEDirectShow)
DVDPlayAdvanced (TIEDirectShow)
DVDPlayAt (TIEDirectShow)
DVDSelectAt (TIEDirectShow)
DVDShowMenu (TIEDirectShow)

E

EdgeDetect_ShenCastan (TImageEnProc)
EdgeDetect_Sobel (TImageEnProc)
EdgeX (TIEImageEnGlobalSettings)
EdgeY (TIEImageEnGlobalSettings)
EIEException
EIERFBError
eigenVV (TIEVisionImage)
ellipse (TIEVisionDrawing)
EllipseAngle (TIECircularFlow)
Empty (TIEMask)
empty (TIEVisionBaseVector)
empty (TIEVisionCascadeClassifier)
EnableAdjustOrientation (TImageEnMView)
EnableAdjustOrientation (TIOParams)
EnableAlphaChannel (TImageEnMView)
EnableAlphaChannel (TImageEnView)
EnableCMS (TIEImageEnGlobalSettings)
Enabled (TIEGestureOptions)
Enabled (TIEMViewerGestures)
Enabled (TIEViewerGestures)
Enabled (TIEVSoftShadow)
EnableImageCaching (TImageEnMView)
EnableInteractionHints (TImageEnView)
EnableLoadEXIFThumbnails (TImageEnMView)
EnableLoadExplorerThumbnails (TImageEnMView)
EnableMultiSelect (TImageEnMView)
EnableRangeObjectsSelection (TImageEnVect)
EnableSampleGrabber (TIEDirectShow)
EnableShiftKey (TImageEnView)
EnableSpecialFolders (TImageEnFolderMView)
EnableTheming (TIEImageEnGlobalSettings)
EncapsulatedFromMemory (TIEBitmap)
EncapsulatedFromTBitmap (TIEBitmap)
EncapsulateMemory (TIEBitmap)
EncapsulateTBitmap (TIEBitmap)
Encrypt (TImageEnProc)
EndColor (TIEGradientBar)
EndImageAnalysis (TImageEnProc)
EndImageProcessing (TImageEnProc)
EndOfStream (TIEDirectShow)
EndPostFrames (TImageEnView)
EndSelect (TImageEnView)
EndSelectImages (TImageEnMView)
EndShape (TIELineLayer)
EnsureImageLoaded (TImageEnMView)
EnumDCXIm
EnumDeviceProperties (TIEPortableDevices)
EnumGIFIm
EnumICOIm
EnumTIFFIm
EnumTIFFStream
eof (TIEVisionStream)
equalizeHistogram (TIEVisionImage)
EqualRGB
Erase (TIEDictionary)
erase (TIEVisionBaseVector)
erase (TIEVisionPropertyTree)
erode (TIEVisionImage)
ExchangeColors (TIEColorPalette)
ExchangeItems (TIEList)
ExchangePage (TIETIFFHandler)
ExclusionMask (TImageEnFolderMView)
Execute (TImageEnPaletteDialog)
Execute (TOpenImageEnDialog)
Execute (TSaveImageEnDialog)
ExecuteFile (TImageEnFolderMView)
ExecuteOpenDialog (TIEImageLayer)
ExecuteOpenDialog (TImageEnIO)
ExecuteOpenDialog (TImageEnMIO)
ExecuteSaveDialog (TImageEnIO)
ExecuteSaveDialog (TImageEnMIO)
EXIF Consts for EXIF_AsStr
EXIF Orientation Consts
EXIF_ApertureValue (TIOParams)
EXIF_ApertureValue_Str (TIOParamsHelper)
EXIF_Artist (TIOParams)
EXIF_AsStr (TIOParamsHelper)
EXIF_Bitmap (TIOParams)
EXIF_BodySerialNumber (TIOParams)
EXIF_BrightnessValue (TIOParams)
EXIF_Camera_Str (TIOParamsHelper)
EXIF_CameraOwnerName (TIOParams)
EXIF_CanWriteEXIFData (TIOParamsHelper)
EXIF_ColorSpace (TIOParams)
EXIF_CompressedBitsPerPixel (TIOParams)
EXIF_Contrast (TIOParams)
EXIF_Copyright (TIOParams)
EXIF_DateTime (TIOParams)
EXIF_DateTime2 (TIOParams)
EXIF_DateTimeDigitized (TIOParams)
EXIF_DateTimeDigitized2 (TIOParams)
EXIF_DateTimeOriginal (TIOParams)
EXIF_DateTimeOriginal2 (TIOParams)
EXIF_DigitalZoomRatio (TIOParams)
EXIF_ExifImageHeight (TIOParams)
EXIF_ExifImageWidth (TIOParams)
EXIF_ExifVersion (TIOParams)
EXIF_ExposureBiasValue (TIOParams)
EXIF_ExposureIndex (TIOParams)
EXIF_ExposureMode (TIOParams)
EXIF_ExposureProgram (TIOParams)
EXIF_ExposureTime (TIOParams)
EXIF_ExposureTime_Str (TIOParamsHelper)
EXIF_FieldDescription (TIOParamsHelper)
EXIF_FileSource (TIOParams)
EXIF_Flash (TIOParams)
EXIF_FlashPixVersion (TIOParams)
EXIF_FNumber (TIOParams)
EXIF_FNumber_Str (TIOParamsHelper)
EXIF_FocalLength (TIOParams)
EXIF_FocalLengthIn35mmFilm (TIOParams)
EXIF_FocalPlaneResolutionUnit (TIOParams)
EXIF_FocalPlaneXResolution (TIOParams)
EXIF_FocalPlaneYResolution (TIOParams)
EXIF_GainControl (TIOParams)
EXIF_Gamma (TIOParams)
EXIF_GPSAltitude (TIOParams)
EXIF_GPSAltitudeRef (TIOParams)
EXIF_GPSDateStamp (TIOParams)
EXIF_GPSDestBearing (TIOParams)
EXIF_GPSDestBearingRef (TIOParams)
EXIF_GPSDestDistance (TIOParams)
EXIF_GPSDestDistanceRef (TIOParams)
EXIF_GPSDestLatitudeDegrees (TIOParams)
EXIF_GPSDestLatitudeMinutes (TIOParams)
EXIF_GPSDestLatitudeRef (TIOParams)
EXIF_GPSDestLatitudeSeconds (TIOParams)
EXIF_GPSDestLongitudeDegrees (TIOParams)
EXIF_GPSDestLongitudeMinutes (TIOParams)
EXIF_GPSDestLongitudeRef (TIOParams)
EXIF_GPSDestLongitudeSeconds (TIOParams)
EXIF_GPSDOP (TIOParams)
EXIF_GPSImgDirection (TIOParams)
EXIF_GPSImgDirectionRef (TIOParams)
EXIF_GPSLatitude (TIOParams)
EXIF_GPSLatitude_Str (TIOParams)
EXIF_GPSLatitudeDegrees (TIOParams)
EXIF_GPSLatitudeMinutes (TIOParams)
EXIF_GPSLatitudeRef (TIOParams)
EXIF_GPSLatitudeSeconds (TIOParams)
EXIF_GPSLongitude (TIOParams)
EXIF_GPSLongitude_Str (TIOParams)
EXIF_GPSLongitudeDegrees (TIOParams)
EXIF_GPSLongitudeMinutes (TIOParams)
EXIF_GPSLongitudeRef (TIOParams)
EXIF_GPSLongitudeSeconds (TIOParams)
EXIF_GPSMapDatum (TIOParams)
EXIF_GPSMeasureMode (TIOParams)
EXIF_GPSSatellites (TIOParams)
EXIF_GPSSpeed (TIOParams)
EXIF_GPSSpeedRef (TIOParams)
EXIF_GPSStatus (TIOParams)
EXIF_GPSTimeStampHour (TIOParams)
EXIF_GPSTimeStampMinute (TIOParams)
EXIF_GPSTimeStampSecond (TIOParams)
EXIF_GPSTrack (TIOParams)
EXIF_GPSTrackRef (TIOParams)
EXIF_GPSVersionID (TIOParams)
EXIF_HasEXIFData (TIOParams)
EXIF_ImageDescription (TIOParams)
EXIF_ImageUniqueID (TIOParams)
EXIF_InteropIndex (TIOParams)
EXIF_InteropVersion (TIOParams)
EXIF_ISOSpeedRatings (TIOParams)
EXIF_LensMake (TIOParams)
EXIF_LensModel (TIOParams)
EXIF_LensSerialNumber (TIOParams)
EXIF_LightSource (TIOParams)
EXIF_Make (TIOParams)
EXIF_MakerNote (TIOParams)
EXIF_MaxApertureValue (TIOParams)
EXIF_MaxApertureValue_Str (TIOParamsHelper)
EXIF_MeteringMode (TIOParams)
EXIF_Model (TIOParams)
EXIF_Orientation (TIOParams)
EXIF_PrimaryChromaticities (TIOParams)
EXIF_ReferenceBlackWhite (TIOParams)
EXIF_RelatedSoundFile (TIOParams)
EXIF_ResolutionUnit (TIOParams)
EXIF_Saturation (TIOParams)
EXIF_SceneCaptureType (TIOParams)
EXIF_SceneType (TIOParams)
EXIF_SensingMethod (TIOParams)
EXIF_Sharpness (TIOParams)
EXIF_ShutterSpeedValue (TIOParams)
EXIF_ShutterSpeedValue_Str (TIOParamsHelper)
EXIF_Software (TIOParams)
EXIF_SubjectArea (TIOParams)
EXIF_SubjectArea_Str (TIOParamsHelper)
EXIF_SubjectDistance (TIOParams)
EXIF_SubjectDistanceRange (TIOParams)
EXIF_SubjectLocation_Str (TIOParamsHelper)
EXIF_SubjectLocationX (TIOParams)
EXIF_SubjectLocationY (TIOParams)
EXIF_SubsecTime (TIOParams)
EXIF_SubsecTimeDigitized (TIOParams)
EXIF_SubsecTimeOriginal (TIOParams)
EXIF_UserComment (TIOParams)
EXIF_UserCommentCode (TIOParams)
EXIF_WhiteBalance (TIOParams)
EXIF_WhitePoint (TIOParams)
EXIF_WriteToStrings (TIOParamsHelper)
EXIF_XPAuthor (TIOParams)
EXIF_XPComment (TIOParams)
EXIF_XPKeywords (TIOParams)
EXIF_XPRating (TIOParams)
EXIF_XPSubject (TIOParams)
EXIF_XPTitle (TIOParams)
EXIF_XResolution (TIOParams)
EXIF_XResolution_Str (TIOParamsHelper)
EXIF_YCbCrCoefficients (TIOParams)
EXIF_YCbCrPositioning (TIOParams)
EXIF_YResolution (TIOParams)
EXIF_YResolution_Str (TIOParamsHelper)
ExifCompatibleFile
EXIFDateToDateTime
EXIFInteroperabilityIndexUsage (TIEImageEnGlobalSettings)
EXIFMakerNotesHandling (TIEImageEnGlobalSettings)
exists (TIEVisionPropertyTree)
ExOptions (TSaveImageEnDialog)
exp (TIEVisionMath)
ExtendedDialog (TIECommonDialog)
ExtendedFilters (TOpenImageEnDialog)
ExtentX (TIEColorPalette)
ExtentX (TImageEnView)
ExtentY (TIEColorPalette)
ExtentY (TImageEnView)
ExtractTIFFImageFile
ExtractTIFFImageStream

F

FAQ
fastNlMeansDenoisingColored (TIEVisionImage)
FeatherAlphaEdges (TIEBitmap)
FeatherAlphaEdges (TImageEnProc)
FeederEnabled (TIEAcquireParams)
FeederEnabled (TIETwainParams)
FeederLoaded (TIEAcquireParams)
FeederLoaded (TIETwainParams)
Field (TImageEnDBVect)
Field (TImageEnDBView)
File Format Functions
FileInput (TIEDirectShow)
FileLimit (TImageEnFolderMView)
Filename (TIEBitmap)
Filename (TIEImageList)
FileName (TIOParams)
FileName (TOpenImageEnDialog)
FilenameField (TIEDBBitmap)
FilenameField (TIEDBMultiBitmap)
FilenameFieldIsUnique (TIEDBMultiBitmap)
FilenameToIndex (TImageEnMView)
FileNameW (TOpenImageEnDialog)
FileOperationOptions (TImageEnFolderMView)
FileOutput (TIEDirectShow)
Files (TOpenImageEnDialog)
FilesW (TOpenImageEnDialog)
FileTransfer (TIETwainParams)
FileType (TIEBitmap)
FileType (TIOParams)
FileTypes (TImageEnFolderMView)
FileTypesMask (TImageEnFolderMView)
FileTypeStr (TIOParams)
FileView (TIECommonDialog)
Fill (TIEBitmap)
Fill (TIEMask)
Fill (TImageEnProc)
FillColor (TIELayer)
FillColor (TIELineLayer)
FillColor (TIEPolylineLayer)
FillColor (TIEShapeLayer)
FillColor (TIETextLayer)
FillColor2 (TIELayer)
FillColor2 (TIEShapeLayer)
FillColor2 (TIETextLayer)
FillFromDirectory (TIEImageList)
FillFromDirectory (TIEMultiBitmap)
FillFromDirectory (TImageEnFolderMView)
FillFromDirectory (TImageEnMView)
FillGradient (TIELayer)
FillGradient (TIEShapeLayer)
FillGradient (TIETextLayer)
FillListWithSources (TIEAcquireParams)
FillRect (TIEBitmap)
FillThumbnail (TImageEnMView)
FillTreeView (TIEWia)
Filter (TIETwainParams)
Filter (TOpenImageEnDialog)
filter2D (TIEVisionImage)
FilterDefault (TOpenImageEnDialog)
FilteredAdjustDPI (TImageEnIO)
FilteredAdjustDPI (TImageEnMIO)
FilteredAdjustDPI (TOpenImageEnDialog)
FilterIndex (TOpenImageEnDialog)
FiltersInitialDir (TImageEnProc)
findContours (TIEVisionImage)
FindFileFormat
FindFilesByName (TIEPortableDevices)
FindFilesOfType (TIEPortableDevices)
FindImageAt (TIEAnimation)
findIn (TIEVisionObjectsFinder)
FindLayerAt (TImageEnView)
FindNestedTag (TIEDicomTags)
FindObjectAt (TImageEnVect)
FindSourceByName (TIEAcquireParams)
FindStreamFormat
FindTag (TIETIFFHandler)
Fit (TImageEnView)
FitInView (TRulerBox)
FitToHeight (TImageEnView)
FitToWidth (TImageEnView)
FixChannelOffset (TIEBitmap)
FixContrast (TIEBitmap)
FlatScrollBars (TImageEnMView)
FlatScrollBars (TImageEnView)
Flip (TIEBitmap)
Flip (TIEDBMultiBitmap)
Flip (TIEMultiBitmap)
flip (TIEVisionImage)
Flip (TImageEnProc)
FlipAll (TIEMultiBitmap)
FloatDigits (TImageEnVect)
FloatPrecision (TImageEnVect)
floodFill (TIEVisionImage)
Flush (TIEMediaFoundationSourceReader)
Folder (TImageEnFolderMView)
FolderInteract (TImageEnFolderMView)
FollowDBCursor (TIEDBMultiBitmap)
Font (TIEAnimation)
Font (TIETextLayer)
Font (TIEViewRulerParams)
ForceALTkey (TImageEnView)
FrameBuffer (TIERFBClient)
FrameCount (TIEMediaReader)
FrameCount (TIEWICReader)
FrameHeight (TIEMediaReader)
FrameHeight (TIEWICReader)
FrameIndex (TIEResourceBookmark)
FrameRate (TIEMediaReader)
FramesZoomFilter (TIEAnimation)
FrameWidth (TIEMediaReader)
FrameWidth (TIEWICReader)
FreeBits (TIEDibBitmap)
FreeBits (TIEMask)
FreeData (TIETIFFHandler)
FreeImage (TIEBitmap)
FreeResources (TIETwainParams)
FreeRow (TIEBitmap)
FreeTransform (TIEICC)
Frequency (TIEViewRulerParams)
Frequency (TRulerBox)
FrequencyOrder (TIEWICWriter)
FriendlyTypes (TIEResourceExtractor)
FTClearZone (TImageEnProc)
FTConvertFrom (TImageEnProc)
FTCreateImage (TImageEnProc)
FTDisplayFrom (TImageEnProc)
Full (TIEBitmap)
Full (TIEMask)

G

Gamma (TIETwainParams)
Gamma (TIOPrintPreviewParams)
GammaCorrect (TImageEnProc)
General Helper Functions
GenerateColorLuminancePalette
GenerateGradientPalette
genericMultiply (TIEVisionMath)
Gestures (TImageEnMView)
Gestures (TImageEnView)
Get (TIEDictionary)
GetAllSupportedFileExtensions
getAlphaMask (TIEVisionImage)
GetAngleValue (TImageEnVect)
GetAverageTimePerFrame (TIEDirectShow)
GetBitmap (TIEMultiBitmap)
GetBitmap (TImageEnMView)
GetBoolean (TIEDictionary)
getBoundingBox (TIEVisionBarCodeSymbol)
getBox (TIEVisionOCRWordBox)
getBoxes (TIEVisionOCR)
GetBuffer (TIEResourceExtractor)
GetCanvas (TIEView)
GetCellRect (TIEColorPalette)
getChannelFormat (TIEVisionImage)
getChannels (TIEVisionImage)
getClassifier (TIEVisionObjectsFinder)
GetColorAt (THSVBox)
getColumn (TIEVisionImage)
getColumns (TIEVisionImage)
getConfidence (TIEVisionOCRWordBox)
getCString (TIEVisionVectorString)
GetCurrentMediaType (TIEMediaFoundationSourceReader)
GetCurrentVideoFormat (TIEDirectShow)
getData (TIEVisionBarCodeSymbol)
GetDataType (TIETagsHandler)
GetDefaultSource (TIETwainParams)
GetDeviceProperty (TIEWia)
getDiagonal (TIEVisionImage)
GetDictionary (TIEDictionary)
GetDominantColor (TImageEnProc)
GetDouble (TIEDictionary)
getDouble (TIEVisionPropertyTree)
getDouble (TIEVisionVectorDouble)
GetEventCode (TIEDirectShow)
GetExifOrFileCreationDate
GetExifTagList
GetExifThumbnail (TOpenImageEnDialog)
GetFileExtensionsOfType
getFilename (TIEVisionTempFileImageList)
getFilename (TIEVisionTempFileStream)
GetFloat (TIETIFFHandler)
getFloatPair (TIEVisionVectorFloatPair)
getFoundRect (TIEVisionObjectsFinder)
getFoundRectCount (TIEVisionObjectsFinder)
GetFrame (TIEWICReader)
GetFrameBuffer (TIEResourceExtractor)
GetFromScanner (TIETwainParams)
GetGripAt (TImageEnView)
GetGroupAndFrame (TIEResourceExtractor)
GetHash (TIEBitmap)
GetHash (TIEHashStream)
getHeight (TIEVisionImage)
GetHiddenDataSpace (TImageEnProc)
GetHistogram (TImageEnProc)
GetHSVChannel (TImageEnProc)
GetHSVChannelAll (TImageEnProc)
GetIdealZoom (TImageEnView)
GetIEVisionImage (TIEBitmap)
getImage (TIEVisionImageList)
getImage (TIEVisionVectorImageRef)
GetImageDetails
GetImageRectWithinArea
GetImageSizeWithinArea
GetImageToFile (TIEMultiBitmap)
GetImageToFile (TImageEnMView)
GetImageToStream (TIEMultiBitmap)
GetImageToStream (TImageEnMView)
GetImageVisibility (TImageEnMView)
GetIndex (TIELayer)
GetIndexFromObj (TImageEnVect)
getInt32 (TIEVisionPropertyTree)
getInt32 (TIEVisionVectorInt32)
GetInteger (TIEDictionary)
GetInteger (TIETagsHandler)
GetInteger (TIETIFFHandler)
GetInteger (TIETIFTagsReader)
GetIntegerArray (TIETagsHandler)
GetIntegerArray (TIETIFTagsReader)
GetIntegerIndexed (TIETagsHandler)
GetIntegerIndexed (TIETIFTagsReader)
GetItemData (TIEIPTCInfoList)
GetItemLength (TIEIPTCInfoList)
GetItemProperty (TIEWia)
GetItemPropertyAttrib (TIEWia)
GetItemThumbnail (TIEWia)
getLanguage (TIEVisionOCRWordBox)
GetLayerMask (TIELayer)
getLibraryInfo (TIEVisionLibrary)
GetList (TIEDictionary)
GetMaxViewXY (TImageEnView)
GetMediaType (TIEMediaFoundationSourceReader)
GetMediaTypesCount (TIEMediaFoundationSourceReader)
GetMemoFormattedString (TImageEnVect)
getMetadata (TIEVisionImage)
GetMiniString (TIETagsHandler)
GetMiniString (TIETIFTagsReader)
GetNext (TIEDictionary)
GetNextSample (TIEMediaFoundationSourceReader)
getObj (TIEVisionVectorObjRef)
GetObjDiagLen (TImageEnVect)
GetObjectAdvancedProps (TIEPortableDevices)
GetObjFromID (TImageEnVect)
GetObjFromIndex (TImageEnVect)
GetObjFromName (TImageEnVect)
GetObjRect (TImageEnVect)
getOCRBox (TIEVisionVectorOCRBox)
getOrientation (TIEVisionOCR)
GetPagesCount (TIETIFFHandler)
GetPixel (TIEMask)
getPoint (TIEVisionVectorPoint)
getPointSize (TIEVisionOCRWordBox)
GetPolylineArea (TImageEnVect)
GetPolylineCentroid (TImageEnVect)
GetPolylineLen (TImageEnVect)
GetProperties (TIELayer)
GetProperty (TIOPrintPreviewParams)
GetProperty (TIPDialogParams)
getPropertyTree (TIEVisionPropertyTree)
GetRational (TIETagsHandler)
GetRational (TIETIFTagsReader)
GetRationalIndexed (TIETagsHandler)
GetRationalIndexed (TIETIFTagsReader)
GetRawData (TIETagsHandler)
GetRawData (TIETIFTagsReader)
getRect (TIEVisionImage)
getRect (TIEVisionPropertyTree)
getRect (TIEVisionVectorRect)
GetRedoInfo (TImageEnProc)
getRegions (TIEVisionOCR)
GetRenderRectangles (TImageEnView)
GetReSel (TImageEnProc)
GetResourceBookmark (TIEResourceExtractor)
GetRGBChannel (TImageEnProc)
GetRGBChannelAll (TImageEnProc)
GetRow (TIEBitmap)
getRow (TIEVisionImage)
getRowLen (TIEVisionImage)
getRows (TIEVisionImage)
GetSample (TIEDirectShow)
GetSample (TIEMediaReader)
getScalarInt32 (TIEVisionVectorScalarInt32)
getScanline (TIEVisionImage)
getScriptDirection (TIEVisionOCRWordBox)
GetSegment (TIEBitmap)
GetSegment (TIESlippyMap)
GetSegment (TIEVirtualBitmapProvider)
GetSelectionArea (TImageEnVect)
GetSelectionCentroid (TImageEnVect)
GetSelectionGripStyle (TImageEnView)
GetSelectionLen (TImageEnVect)
GetStreamType (TIEMediaFoundationSourceReader)
GetString (TIEDictionary)
GetString (TIETagsHandler)
GetString (TIETIFFHandler)
GetString (TIETIFTagsReader)
getString (TIEVisionPropertyTree)
getString (TIEVisionVectorString)
GetSupportedTVStandards (TIEDirectShow)
getSymbolType (TIEVisionBarCodeSymbol)
GetTag (TIEDicomTags)
GetTagChildren (TIEDicomTags)
GetTagCode (TIETIFFHandler)
GetTagDescription (TIEDicomTags)
GetTagDescription (TIETIFFHandler)
GetTagLength (TIETIFFHandler)
GetTagLengthInBytes (TIETIFFHandler)
GetTagNumeric (TIEDicomTags)
GetTagsCount (TIETIFFHandler)
GetTagString (TIEDicomTags)
GetTagType (TIETIFFHandler)
getText (TIEVisionOCRWordBox)
getTextAngle (TIEVisionOCR)
GetThumbnail (TIOParams)
GetTIEBitmap (TIEDBMultiBitmap)
GetTIEBitmap (TIEMultiBitmap)
GetTIEBitmap (TImageEnMView)
getUInt8 (TIEVisionVectorByte)
GetUndoInfo (TImageEnProc)
GetValue (TIETIFFHandler)
getValue (TIEVisionHistogram)
GetValueRAW (TIETIFFHandler)
GetVideoRenderNativeSize (TIEDirectShow)
GetVideoRenderRect (TIEDirectShow)
getWidth (TIEVisionImage)
GetWindowsSpecialFolder
getWordBoxes (TIEVisionOCR)
getXML (TIEVisionBarCodeSymbol)
GIF_Action (TIOParams)
GIF_Background (TIOParams)
GIF_Comments (TIOParams)
GIF_DelayTime (TIOParams)
GIF_FlagTranspColor (TIOParams)
GIF_ImageCount (TIOParams)
GIF_ImageIndex (TIOParams)
GIF_Interlaced (TIOParams)
GIF_Ratio (TIOParams)
GIF_RAWLoad (TIOParams)
GIF_TranspColor (TIOParams)
GIF_Version (TIOParams)
GIF_WinHeight (TIOParams)
GIF_WinWidth (TIOParams)
GIF_XPos (TIOParams)
GIF_YPos (TIOParams)
GradientEndColor (TImageEnMView)
GradientEndColor (TImageEnView)
GrayColor (THistogramBox)
Green (THSVBox)
GreenToGrayCoef (TIEImageEnGlobalSettings)
GridMajorStep (TIEImageEnGlobalSettings)
GridPen (TIEImageEnGlobalSettings)
GridWidth (TImageEnMView)
GripBaseDim (TRulerBox)
GripColorDefault (TIEViewRulerParams)
GripColorDefault (TRulerBox)
GripHeight (TIEViewRulerParams)
GripKindDefault (TIEViewRulerParams)
GripKindDefault (TRulerBox)
GripPenColor (TIEViewRulerParams)
GripPenColor (TRulerBox)
GripsColor (TRulerBox)
GripsCount (TRulerBox)
GripsDir (TRulerBox)
GripSize (TIECropToolInteraction)
GripsKind (TRulerBox)
GripsMax (TRulerBox)
GripsMin (TRulerBox)
GripsPos (TRulerBox)
GripsPosBase (TIEViewRulerParams)
GripWidth (TIEViewRulerParams)
GroupCountFrames (TIEResourceExtractor)
GroupFrameDepth (TIEResourceExtractor)
GroupFrameHeight (TIEResourceExtractor)
GroupFrameName (TIEResourceExtractor)
GroupFrameWidth (TIEResourceExtractor)
GroupIndex (TIELayer)
GroupObjects (TImageEnVect)
GuessChromaKeyColor (TImageEnProc)
Guid (TIELayer)
GuidelineCount (TIEImageEnGlobalSettings)

H

HasAlphaChannel (TIEBitmap)
HasAlphaChannel (TImageEnView)
hasAlphaMask (TIEVisionImage)
HasKey (TIEDictionary)
HasVectorialObjects (TIEImageEnAnnot)
HDC (TIEDibBitmap)
HDP_ImageQuality (TIOParams)
HDP_Lossless (TIOParams)
Height (TIEBitmap)
Height (TIEDibBitmap)
Height (TIELayer)
Height (TIEMask)
Height (TIOParams)
Height (TIOPrintPreviewParams)
HexLabels (TRulerBox)
HideEmptyDevices (TIEPortableDevices)
Highlight (TIETwainParams)
HighlightedPixel (TImageEnView)
HighlightedPixelColor (TImageEnView)
HintFormat (TIEColorPalette)
HistAutoEqualize (TImageEnProc)
HistEqualize (TImageEnProc)
HistogramAbsXPos (THistogramBox)
HistogramKind (THistogramBox)
HistogramStyle (THistogramBox)
HorizBorder (TImageEnMView)
HorizontalDistance (TIEHorizontalFlow)
HorizontalTileSlices (TIEWICWriter)
HorzGripsColor (TIEViewRulerParams)
HorzGripsCount (TIEViewRulerParams)
HorzGripsKind (TIEViewRulerParams)
HorzGripsMax (TIEViewRulerParams)
HorzGripsMin (TIEViewRulerParams)
HorzGripsPos (TIEViewRulerParams)
HorzHeight (TIEViewRulerParams)
HorzInverted (TIEViewRulerParams)
HorzMargin (TIEColorPalette)
HorzPos (TIEViewRulerParams)
houghLines (TIEVisionImage)
houghLinesP (TIEVisionImage)
HScrollBarParams (TImageEnMView)
HScrollBarParams (TImageEnView)
HScrollHeight (TIEImageEnGlobalSettings)
HSL2RGB
HSLToColor
HSLvar (TImageEnProc)
HSV2RGB
HSVToColor
HSVvar (TImageEnProc)
Hue (THSVBox)
HueBarWidth (THSVBox)

I

ICO_Background (TIOParams)
ICO_BitCount (TIOParams)
ICO_ImageIndex (TIOParams)
ICO_Sizes (TIOParams)
IconSize (TImageEnMView)
IdealComponentHeight (TImageEnView)
IdealComponentWidth (TImageEnView)
IdealImageHeight (TImageEnView)
IdealImageWidth (TImageEnView)
IEAddExtIOPlugin
IEAddNewFilter
IEAddSoftShadow (TBitmap)
IEAddSoftShadow (TIEBitmap)
IEAdjustRectToAspectRatio
IEAlphaToOpacity
IEApplyAlphaToColor
IEAutoLoadIOPlugins
IEAutomaticallyRotateImageFile
IEAverageColor
IEAVIGetCodecs
IEAVIGetCodecsDescription
IEAVISelectCodec
IEBeginDrag (TImageEnMView)
IEBitmap (TImageEnIO)
IEBitmap (TImageEnMView)
IEBitmap (TImageEnView)
IECalcJpegFileQuality
IECalcJpegStreamQuality
IECalcPaperSize
IECanvas (TIEBitmap)
IECloneBitmap
IEConvertImageFile
IEConvertToThumbnail (TBitmap)
IEConvertToThumbnail (TIEBitmap)
IECopyBitmap
IECreateShapeRegion
IECreateThumbnailFromFile
IEDrawShape
IEEndDrag (TImageEnMView)
IEExtToFileFormat
IEFileExtInExtensions
IEFileFormatAdd
IEFileFormatGetInfo
IEFileFormatGetInfo2
IEFileFormatRemove
IEFileIsOfFormat
IEFilenameInExtensions
IEFileSetDate
IEFindNumberWithKnownFormat
IEFlip (TBitmap)
IEFlipImageFile
IEGetCoresCount
IEGetFileDetails
IEGetFileFramesCount
IEGetFileSize
IEGlobalSettings
IEInitialize (TBitmap)
IEInitialize (TIEBitmap)
IEIsInternalFormat
IELayersMerge
IELibAvailable
IELoadAsThumbnail (TBitmap)
IELoadAsThumbnail (TIEBitmap)
IELoadFromFile (TBitmap)
IELoadFromFile (TIEBitmap)
IELoadFromFileFast (TBitmap)
IELoadFromFileFast (TIEBitmap)
IELoadFromStream (TBitmap)
IELoadFromStream (TIEBitmap)
IELoadFromStreamFast (TBitmap)
IELoadFromStreamFast (TIEBitmap)
IEMBitmap (TImageEnMIO)
IEMBitmap (TImageEnMView)
IEMediaFoundationGetVideoSampleDecoders
IEMediaFoundationTimeToSec
IEMediaFoundationTimeToStr
IEN_Compression (TIOParams)
IEN_Description (TIOParams)
IEN_GetThumbnail (TIOParams)
IEN_LayerCount (TIOParams)
IEN_Version (TIOParams)
IEOpacityToAlpha
IEOptimizeGIF
IEPaperSizeToStr
IEPointsToPaperSize
IEReadCorrectOrientationOfImageFile
IERectangle
IERegisterFormats
IEResample (TBitmap)
IEResampleImageFile
IERotate (TBitmap)
IERotateImageFile
IESaveToFile (TBitmap)
IESaveToFile (TIEBitmap)
IESaveToStream (TBitmap)
IESaveToStream (TIEBitmap)
IESecToMediaFoundationTime
IESetTranslationWord
IEShapePreferredAspectRatio
IESoftShadowSize
IEStrToPaperSize
IEUnregisterFormats
IEVision Embedded Classifiers
IEVision Helper Functions
IEVision What's New
IEVision
IEVisionAvailable
IEVisionFloatPair
IEVisionGetLanguagesInFolder
IEVisionLanguageCodeToName
IEVisionLanguageNameToCode
IEVisionLib
IEVisionPoint
IEVisionRect
IEVisionRectToTRect
IEVisionScalar
IEVisionSize
IEVisionTermCriteria
IEWICAvailable
IEWriteICOImages
iexHelperFunctions
iexMetaHelpers
iexRegistryFunctions
iexWindowsFunctions
IIELanguageUpdatable
IIEMediaFoundationReaderNotifyReceiver
ilimit
Image (TIEImageList)
ImageAtGridPos (TImageEnMView)
ImageAtPos (TImageEnMView)
ImageBackground (TImageEnMView)
ImageBitCount (TIEMultiBitmap)
ImageBitCount (TImageEnMView)
ImageBlobField (TIEDBBitmap)
ImageBlobField (TIEDBMultiBitmap)
ImageBottomText (TImageEnMView)
ImageCacheSize (TIEMultiBitmap)
ImageCacheSize (TImageEnMView)
ImageCacheUseDisk (TIEMultiBitmap)
ImageCacheUseDisk (TImageEnMView)
ImageChange (TImageEnView)
ImageCol (TImageEnMView)
ImageCount (TIEAnimation)
ImageCount (TIEImageList)
ImageCount (TIETIFTagsReader)
ImageCount (TImageEnMView)
ImageCount (TIOParams)
ImageCreateDate (TImageEnMView)
ImageDelayTime (TImageEnMView)
ImageDelayTime (TIOParams)
ImageDictionary (TIEMultiBitmap)
ImageEditDate (TImageEnMView)
ImageEn DLLs and 64bit Support
ImageEn Features
ImageEn Hierarchy
ImageEnAnnot (TIOParams)
ImageEnRotateAngleToAngle
ImageEnVersion (TImageEnIO)
ImageEnVersion (TImageEnMIO)
ImageEnVersion (TImageEnMView)
ImageEnVersion (TImageEnProc)
ImageEnVersion (TImageEnView)
ImageFileName (TIEMultiBitmap)
ImageFileName (TImageEnMView)
ImageFileSize (TImageEnMView)
ImageFileType (TImageEnMView)
ImageFormat (TIEDBBitmap)
ImageFormat (TIEDBMultiBitmap)
ImageHash (TIEMultiBitmap)
ImageHeight (TIEMultiBitmap)
ImageHeight (TImageEnMView)
ImageHorizAlignment (TImageEnView)
ImageID (TImageEnMView)
ImageIndex (TIOParams)
ImageInfoText (TImageEnMView)
ImageOriginalHeight (TImageEnMView)
ImageOriginalWidth (TImageEnMView)
ImagePath (TIEDBBitmap)
ImagePath (TIEDBMultiBitmap)
ImageProcMaxThreads (TIEImageEnGlobalSettings)
ImageProcThreadsMinSize (TIEImageEnGlobalSettings)
ImageQuality (TIEWICWriter)
ImageResize (TImageEnProc)
ImageRow (TImageEnMView)
Images (TIEAnimation)
ImagesHorizontalPercentage (TIEHorizontalFlow)
ImagesSizePercentage (TIECircularFlow)
ImageStorageMode (TIEDBBitmap)
ImageStorageMode (TIEDBMultiBitmap)
ImagesVerticalPercentage (TIEHorizontalFlow)
ImagesZoom (TIECircularFlow)
ImagesZoom (TIEHorizontalFlow)
ImageTag (TIEMultiBitmap)
ImageTag (TImageEnMView)
ImageTopText (TImageEnMView)
ImageType (TImageEnMView)
ImageUserPointer (TIEMultiBitmap)
ImageUserPointer (TImageEnMView)
ImageVertAlignment (TImageEnView)
ImageWidth (TIEMultiBitmap)
ImageWidth (TImageEnMView)
ImageX (TImageEnMView)
ImageY (TImageEnMView)
ImagingAnnot (TIOParams)
imax
imin
ImportDXF (TImageEnVect)
ImportMetafile (TImageEnIO)
IncludeSubFolders (TImageEnFolderMView)
IndexAtPos (TIEColorPalette)
IndexOf (TIEDicomTags)
IndexOf (TIEDoubleList)
IndexOf (TIEIntegerList)
IndexOf (TIEIPTCInfoList)
IndexOf (TIEMarkerList)
IndexOf (TIEMultiBitmap)
IndexOfFirstStream (TIEMediaFoundationSourceReader)
IndexOfType (TIEResourceExtractor)
IndexUnderCursor (TIEColorPalette)
Inertia (TIEGestureOptions)
InfoPanel (TOpenImageEnDialog)
InfoTextFont (TImageEnMView)
InitializeGrid (TStringGridHelper)
InitializeList (TListViewHelper)
InitTransform (TIEICC)
InjectJpegEXIF (TImageEnIO)
InjectJpegEXIFStream (TImageEnIO)
InjectJpegIPTC (TImageEnIO)
InjectJpegIPTCStream (TImageEnIO)
InjectTIFFEXIF (TImageEnIO)
inpaint (TIEVisionImage)
InputColorSpace (TIEICC)
InputICCProfile (TIOParams)
inRange (TIEVisionImage)
Insert (TIEDictionary)
Insert (TIEDoubleList)
Insert (TIEIntegerList)
insert (TIEVisionImageList)
insertExistingFile (TIEVisionTempFileImageList)
InsertFile (TImageEnFolderMView)
InsertImage (TIEAnimation)
InsertImage (TIEDBMultiBitmap)
InsertImage (TIEMultiBitmap)
InsertImage (TImageEnFolderMView)
InsertImage (TImageEnMView)
InsertImageEx (TImageEnFolderMView)
InsertImageEx (TImageEnMView)
InsertingPen (TImageEnVect)
InsertingPoint (TImageEnMView)
InsertMarker (TIEMarkerList)
InsertPage (TIETIFFHandler)
InsertPageAsFile (TIETIFFHandler)
InsertPageAsImage (TIETIFFHandler)
InsertPageAsStream (TIETIFFHandler)
InsertStringItem (TIEIPTCInfoList)
InsertTIFFFile (TIETIFFHandler)
InsertTIFFImageFile
InsertTIFFImageStream
InsertTIFFStream (TIETIFFHandler)
InsertToFileDCX (TImageEnIO)
InsertToFileGif (TImageEnIO)
InsertToFileTIFF (TImageEnIO)
InsertToStreamTIFF (TImageEnIO)
InsertTransitionFrames (TIEMultiBitmap)
InsertTransitionFrames (TImageEnMView)
InsertTransitionFramesEx (TIEMultiBitmap)
InsertTransitionFramesEx (TImageEnMView)
Installation
int64array
IntegerArray
integral (TIEVisionImage)
Intensity (TIEVSoftShadow)
Intensity (TImageEnProc)
IntensityRGBAll (TImageEnProc)
Intersect (TIEMask)
invert (TIEVisionImage)
InvertCanvas (TIEMask)
InvertDirection (TIEMouseWheelParams)
Inverted (TRulerBox)
InvertSelection (TImageEnView)
IO (TImageEnView)
IOOptionsEx (TImageEnMView)
IOParams (TImageEnDBVect)
IOParams (TImageEnDBView)
IOPreviewsDialogHeight (TIEImageEnGlobalSettings)
IOPreviewsDialogWidth (TIEImageEnGlobalSettings)
IOPreviewsParams (TImageEnDBVect)
IOPreviewsParams (TImageEnDBView)
IPDialogParams (TImageEnProc)
IPTC items compatible with Adobe PhotoShop
IPTC_HasIPTCData (TIOParamsHelper)
IPTC_Info (TIOParams)
IPTC_Photoshop (TIOParams)
IPTC_WriteToStrings (TIOParamsHelper)
IPTCCompatibleFile
IsAllBlack (TIEBitmap)
isAllWhite (TIEVisionImage)
IsAlpha (TIEBitmap)
IsApplied (TIEICC)
IsAvailable (TIEMediaFoundationSourceReader)
IsAvailable (TIEMediaFoundationVideoProcessor)
IsAvailable (TIEMiscPluginsImageMagick)
IsAvailable (TIEWICReader)
IsAvailable (TIEWICWriter)
isBold (TIEVisionOCRWordBox)
IsCapabilitySupported (TIETwainParams)
IsEditMode (TImageEnVect)
IsEmpty (TIEBitmap)
IsEmpty (TIEDictionary)
IsEmpty (TIEImageEnAnnot)
IsEmpty (TIEMask)
isEmpty (TIEVisionImage)
IsEmpty (TImageEnView)
IsEmpty2 (TImageEnView)
IsGrayScale (TIEBitmap)
IsGroup (TIEResourceExtractor)
IsGrouped (TIEResourceExtractor)
IsInsideScrollbar (TIEAnimation)
IsInsideScrollbarSlider (TIEAnimation)
IsInsideTwain (TIEImageEnGlobalSettings)
isItalic (TIEVisionOCRWordBox)
IsItemDeleted (TIEWia)
IsKnownFormat
IsKnownSaveFormat
IsMask (TIEImageLayer)
isMonospace (TIEVisionOCRWordBox)
IsNavigator (TImageEnView)
IsOpenAVI (TImageEnIO)
IsOpenMediaFile (TImageEnIO)
IsPixelTypeSupported (TIEAcquireParams)
IsPointInside (TIEMask)
IsPointInsideSelection (TImageEnView)
IsRemoteSession (TIEImageEnGlobalSettings)
IsResource (TIOParams)
IsSelected (TImageEnMView)
IsSelObject (TImageEnVect)
isSerif (TIEVisionOCRWordBox)
isSmallCaps (TIEVisionOCRWordBox)
isTrained (TIEVisionFaceRecognizer)
isUnderlined (TIEVisionOCRWordBox)
IsValid (TIEICC)
IsValid (TIEResourceExtractor)
IsVirtual (TIEBitmap)
IsVisible (TImageEnMView)
iswap
isWordValid (TIEVisionOCR)
Items (TIEDoubleList)
Items (TIEIntegerList)

J

J2000_ColorSpace (TIOParams)
J2000_Rate (TIOParams)
J2000_ScalableBy (TIOParams)
JobsRunning (TImageEnMView)
JobsWaiting (TImageEnMView)
JPEG_ColorSpace (TIOParams)
JPEG_CromaSubsampling (TIOParams)
JPEG_DCTMethod (TIOParams)
JPEG_EnableAdjustOrientation (TIOParams)
JPEG_GetExifThumbnail (TIOParams)
JPEG_MarkerList (TIOParams)
JPEG_OptimalHuffman (TIOParams)
JPEG_OriginalHeight (TIOParams)
JPEG_OriginalWidth (TIOParams)
JPEG_Progressive (TIOParams)
JPEG_Quality (TIOParams)
JPEG_Scale (TIOParams)
JPEG_Scale_Used (TIOParams)
JPEG_Smooth (TIOParams)
JPEG_WarningCode (TIOParams)
JPEG_WarningTot (TIOParams)
JPEGLosslessFlipFile
JPEGLosslessRotateFile
JpegLosslessTransform
JpegLosslessTransform2
JpegLosslessTransformStream
JpegQuality (TIEDBBitmap)
JpegQuality (TIEDBMultiBitmap)
JpegQuality (TImageEnDBVect)
JpegQuality (TImageEnDBView)

K

KeyInteract (TImageEnMView)
Kind (TIELayer)

L

LabelAlignment (TIELineLayer)
LabelBorderColor (TIELineLayer)
LabelBorderWidth (TIELineLayer)
LabelFillColor (TIELineLayer)
LabelFillColor2 (TIELineLayer)
LabelFillGradient (TIELineLayer)
LabelFont (TIELineLayer)
LabelFreq (TRulerBox)
LabelFrequency (TIEViewRulerParams)
LabelPosition (TIELineLayer)
LabelPrecision (TIEViewRulerParams)
LabelPrecision (TRulerBox)
Labels (THistogramBox)
LabelShape (TIELineLayer)
LabelText (TIELineLayer)
Language support
Language (TIETwainParams)
LanguageExistsInFolder
LanguageToStr
LastError (TIEPortableDevices)
LastError (TIETwainParams)
LastErrorStr (TIETwainParams)
LastFrameZoomFilter (TIEAnimation)
Latitude (TIESlippyMap)
LatitudeToBmpY (TIESlippyMap)
LayerDefaults (TImageEnView)
LayerMove (TIEViewerGestures)
LayerOptions (TImageEnView)
LayerRotate (TIEViewerGestures)
Layers (TImageEnView)
LayersAdd (TImageEnView)
LayersAlign (TImageEnView)
LayersCaching (TImageEnView)
LayersCancelEditor (TImageEnView)
LayersClear (TImageEnView)
LayersConvertToImageLayers (TImageEnView)
LayersCopyToAlpha (TImageEnView)
LayersCount (TImageEnView)
LayersCreateFromAlpha (TImageEnView)
LayersCreateFromClipboard (TImageEnView)
LayersCreateFromEdge (TImageEnView)
LayersCreateFromFile (TImageEnView)
LayersCreateFromSelection (TImageEnView)
LayersCropBackground (TImageEnView)
LayersCropped (TImageEnView)
LayersCurrent (TImageEnView)
LayersDeselectAll (TImageEnView)
LayersDrawBox (TImageEnView)
LayersDrawTo (TImageEnView)
LayersFastDrawing (TImageEnView)
LayersFastOutput (TImageEnView)
LayersFixBorders (TImageEnView)
LayersFixRotations (TImageEnView)
LayersFixSizes (TImageEnView)
LayersGroup (TImageEnView)
LayersImport (TImageEnView)
LayersInsert (TImageEnView)
LayersMerge (TImageEnView)
LayersMergeAll (TImageEnView)
LayersMergeFilter (TImageEnView)
LayersMergeTo (TImageEnView)
LayersMove (TImageEnView)
LayersRect (TImageEnView)
LayersRemove (TImageEnVect)
LayersRemove (TImageEnView)
LayersRepositionAll (TImageEnView)
LayersResizeAspectRatio (TImageEnView)
LayersRotateAll (TImageEnView)
LayersRotateStep (TImageEnView)
LayersRotationAntialias (TImageEnView)
LayersRotationFilter (TImageEnView)
LayersRotationUseFilterOnPreview (TImageEnView)
LayersSaveMergedTo (TImageEnView)
LayersSelCount (TImageEnView)
LayersSelectAll (TImageEnView)
LayersSelectConstrains (TImageEnView)
LayersSetProperties (TImageEnView)
LayersSizeAll (TImageEnView)
LayersUngroup (TImageEnView)
Layout (TIETextLayer)
LegacyBitmap (TImageEnView)
Length (TIEMediaReader)
length (TIEVisionString)
length (TIEVisionWString)
Lens (TImageEnProc)
License Agreement
LineColor (TIELineLayer)
LineColor (TIEPolylineLayer)
LineLength (TIELineLayer)
LinePoints (TIELineLayer)
LineStep (TIEScrollBarParams)
LineWidth (TIELineLayer)
LineWidth (TIEPolylineLayer)
LittleEndian (TIETIFFHandler)
load (TIEVisionCascadeClassifier)
load (TIEVisionFaceRecognizer)
load (TIEVisionPropertyTree)
LoadedFieldImageFormat (TImageEnDBVect)
LoadedFieldImageFormat (TImageEnDBView)
LoadFilterFromFile
LoadFromAVI (TImageEnIO)
LoadFromBlob (TImageEnIO)
LoadFromBlobFast (TImageEnIO)
LoadFromBuffer (TIEICC)
LoadFromBuffer (TImageEnIO)
LoadFromBuffer (TImageEnMIO)
LoadFromFile (TIEColorPalette)
LoadFromFile (TIEHashStream)
LoadFromFile (TIEICC)
loadFromFile (TIEVisionStream)
LoadFromFile (TImageEnIO)
LoadFromFile (TImageEnMIO)
LoadFromFile (TIOParams)
LoadFromFile (TIOPrintPreviewParams)
LoadFromFile (TIPDialogParams)
LoadFromFileAll (TImageEnVect)
LoadFromFileAuto (TImageEnIO)
LoadFromFileAuto (TImageEnMIO)
LoadFromFileAutoEx (TImageEnIO)
LoadFromFileAVI (TImageEnMIO)
LoadFromFileBMP (TImageEnIO)
LoadFromFileBMPRAW (TImageEnIO)
LoadFromFileCUR (TImageEnIO)
LoadFromFileCUR (TImageEnMIO)
LoadFromFileDCX (TImageEnIO)
LoadFromFileDCX (TImageEnMIO)
LoadFromFileDICOM (TImageEnIO)
LoadFromFileDICOM (TImageEnMIO)
LoadFromFileEx (TImageEnIO)
LoadFromFileFast (TImageEnIO)
LoadFromFileGIF (TImageEnIO)
LoadFromFileGIF (TImageEnMIO)
LoadFromFileHDP (TImageEnIO)
LoadFromFileICO (TImageEnIO)
LoadFromFileICO (TImageEnMIO)
LoadFromFileIEN (TImageEnIO)
LoadFromFileIEV (TImageEnVect)
LoadFromFileJ2K (TImageEnIO)
LoadFromFileJP2 (TImageEnIO)
LoadFromFileJpeg (TImageEnIO)
LoadFromFileJPEGFast (TImageEnIO)
LoadFromFileOnDemand (TImageEnMView)
LoadFromFilePCX (TImageEnIO)
LoadFromFilePDF (TImageEnMIO)
LoadFromFilePNG (TImageEnIO)
LoadFromFilePSD (TImageEnIO)
LoadFromFilePXM (TImageEnIO)
LoadFromFileRAW (TImageEnIO)
LoadFromFileRawFast (TImageEnIO)
LoadFromFiles (TImageEnMIO)
LoadFromFileTGA (TImageEnIO)
LoadFromFileTIFF (TImageEnIO)
LoadFromFileTIFF (TImageEnMIO)
LoadFromFileWBMP (TImageEnIO)
LoadFromMediaFile (TImageEnIO)
LoadFromMediaFile (TImageEnMIO)
LoadFromResource (TIEBitmap)
LoadFromResource (TImageEnIO)
LoadFromStandardBuffer (TIEImagingAnnot)
LoadFromStandardBuffer (TIEIPTCInfoList)
LoadFromStream (TIEHashStream)
LoadFromStream (TIEICC)
LoadFromStream (TIEImagingAnnot)
LoadFromStream (TIEIPTCInfoList)
LoadFromStream (TIEMarkerList)
LoadFromStream (TImageEnIO)
LoadFromStream (TImageEnMIO)
LoadFromStream (TIOParams)
LoadFromStream (TIOPrintPreviewParams)
LoadFromStream (TIPDialogParams)
LoadFromStreamAll (TImageEnVect)
LoadFromStreamBMP (TImageEnIO)
LoadFromStreamBMPRAW (TImageEnIO)
LoadFromStreamCUR (TImageEnIO)
LoadFromStreamCUR (TImageEnMIO)
LoadFromStreamDCX (TImageEnIO)
LoadFromStreamDCX (TImageEnMIO)
LoadFromStreamDICOM (TImageEnIO)
LoadFromStreamDICOM (TImageEnMIO)
LoadFromStreamEx (TImageEnIO)
LoadFromStreamFast (TImageEnIO)
LoadFromStreamGIF (TImageEnIO)
LoadFromStreamGIF (TImageEnMIO)
LoadFromStreamHDP (TImageEnIO)
LoadFromStreamICO (TImageEnIO)
LoadFromStreamICO (TImageEnMIO)
LoadFromStreamIEN (TImageEnIO)
LoadFromStreamIEV (TImageEnVect)
LoadFromStreamJ2K (TImageEnIO)
LoadFromStreamJP2 (TImageEnIO)
LoadFromStreamJpeg (TImageEnIO)
LoadFromStreamJPEGFast (TImageEnIO)
LoadFromStreamPCX (TImageEnIO)
LoadFromStreamPDF (TImageEnMIO)
LoadFromStreamPNG (TImageEnIO)
LoadFromStreamPSD (TImageEnIO)
LoadFromStreamPXM (TImageEnIO)
LoadFromStreamRAW (TImageEnIO)
LoadFromStreamTGA (TImageEnIO)
LoadFromStreamTIFF (TImageEnIO)
LoadFromStreamTIFF (TImageEnMIO)
LoadFromStreamWBMP (TImageEnIO)
LoadFromText (TImageEnIO)
LoadFromURL (TBitmap)
LoadFromURL (TIEBitmap)
LoadFromURL (TImageEnIO)
LoadFromURL (TImageEnMIO)
LoadImage (TIEDBBitmap)
LoadJpegFromFileCRW (TImageEnIO)
LoadObjectsFromTIFF (TImageEnVect)
LoadOnDemand (TImageEnFolderMView)
LoadPaletteFromFile
LoadPicture (TImageEnDBVect)
LoadPicture (TImageEnDBView)
LoadRAWFromBufferOrStream (TIEBitmap)
LoadSelectionFromFile (TImageEnView)
LoadSelectionFromStream (TImageEnView)
LoadSnapshot (TIEMultiBitmap)
LoadSnapshot (TImageEnMView)
LoadState (TImageEnView)
LoadThumbnailFromExplorer (TImageEnIO)
locateNewPosition (TIEVisionObjectTracker)
Location (TIEBitmap)
LockAspectRatio (TIECropToolInteraction)
Locked (TIELayer)
LockFrameBuffer (TIERFBClient)
LockHeight (TIECropToolInteraction)
LockPaint (TImageEnMView)
LockPaint (TImageEnView)
LockPaintCount (TImageEnMView)
LockPaintCount (TImageEnView)
LockUpdate (TIECustomMultiBitmap)
LockUpdate (TImageEnFolderMView)
LockUpdate (TImageEnMView)
LockUpdate (TImageEnView)
LockUpdate (TRulerBox)
LockUpdateCount (TIECustomMultiBitmap)
LockUpdateCount (TImageEnFolderMView)
LockUpdateCount (TImageEnMView)
LockUpdateCount (TImageEnView)
LockWidth (TIECropToolInteraction)
log (TIEVisionMath)
LogFile (TIETwainParams)
Longitude (TIESlippyMap)
LongitudeToBmpX (TIESlippyMap)
LookAhead (TImageEnMView)
LookupDeviceFriendlyName (TIEPortableDevices)
LookupObjectFriendlyName (TIEPortableDevices)
Lossless Jpeg Transformations
Lossless (TIEWICWriter)
LUT (TIEVisionImage)

M

MagicWandMaxFilter (TImageEnView)
MagicWandMode (TImageEnView)
MagicWandTolerance (TImageEnView)
Magnify (TIEImageLayer)
mahalonobisDistance (TIEVisionMath)
MaintainInvisibleImages (TImageEnMView)
makeBorder (TIEVisionImage)
MakeSelectionFeather (TImageEnView)
MakeTile (TImageEnProc)
MapGrayToColor (TImageEnProc)
MarginBottom (TIOPrintPreviewParams)
MarginLeft (TIOPrintPreviewParams)
MarginRight (TIOPrintPreviewParams)
MarginTop (TIOPrintPreviewParams)
MarkerData (TIEMarkerList)
MarkerLength (TIEMarkerList)
MarkerStream (TIEMarkerList)
MarkerType (TIEMarkerList)
MatchHSVRange (TImageEnProc)
Max (TIEGestureLayerRotateOptions)
Max (TIEGestureZoomOptions)
max (TIEVisionImage)
max_size (TIEVisionBaseVector)
MaxColors (TIEColorPalette)
MaxDisplayRecords (TIEDBMultiBitmap)
MaxGripHeight (TRulerBox)
MaxImageEMFSize (TIEImageEnGlobalSettings)
Maximum (TImageEnProc)
MaximumViewX (TImageEnMView)
MaximumViewY (TImageEnMView)
MaxLayerHeight (TImageEnView)
MaxLayerWidth (TImageEnView)
MaxMovingDistance (TImageEnVect)
MaxSelected (THistogramBox)
MaxSelectionDistance (TImageEnVect)
MaxTextLength (TImageEnVect)
MaxThreads (TIESlippyMap)
MeasureCoefX (TImageEnVect)
MeasureCoefY (TImageEnVect)
MeasureColor (TIEViewRulerParams)
MeasureHintBorder1 (TImageEnVect)
MeasureHintBorder2 (TImageEnVect)
MeasureHintBrush (TImageEnVect)
MeasureHintFont (TImageEnVect)
MeasureTrack (TImageEnVect)
MeasureUnits (TIEImageEnGlobalSettings)
MEDIAFILE_FrameCount (TIOParams)
MEDIAFILE_FrameDelayTime (TIOParams)
MediaFoundationSourceReader (TImageEnIO)
MedianFilter (TImageEnProc)
MediaType (TIEMFReceivedSample)
MemoEdit (TImageEnVect)
MemoEditingGetCharInfo (TImageEnVect)
MemoEditingSetCharInfo (TImageEnVect)
Memory (TIEBitmap)
MemoryAllocator (TIEBitmap)
MemoryCacheSize (TIESlippyMap)
MemoShortCuts (TIEImageEnGlobalSettings)
merge (TIEVisionImage)
Merge (TImageEnProc)
mergeAllRects (TIEVisionObjectsFinder)
MergeAlphaRectTo (TIEBitmap)
MergeFromTDibBitmap (TIEBitmap)
MergeMetaFile (TImageEnIO)
mergeRects (TIEVisionObjectsFinder)
MergeSelectionFromFile (TImageEnView)
MergeSelectionFromStream (TImageEnView)
MergeWithAlpha (TIEBitmap)
Min (TIEGestureLayerRotateOptions)
Min (TIEGestureZoomOptions)
min (TIEVisionImage)
MinColors (TIEColorPalette)
MinFileSize (TIEBitmap)
Minimum (TImageEnProc)
MinLabelSpacing (TIEViewRulerParams)
MinLabelSpacing (TRulerBox)
minMax (TIEVisionHistogram)
minMax (TIEVisionImage)
MinSelected (THistogramBox)
MinZoomDisplayGrid (TIEImageEnGlobalSettings)
MIO (TImageEnMView)
MissingFileIcon (TImageEnMView)
MissingTileColor (TIESlippyMap)
MMX (TIEImageEnGlobalSettings)
Mode (TIECropToolInteraction)
ModelessSelectTwainSource (TIEImageEnGlobalSettings)
Modified (TIEBitmap)
Modified (TIECustomMultiBitmap)
Modified (TIELayer)
Modified (TIEMultiBitmap)
Modified (TImageEnView)
MotionBlur (TImageEnProc)
MouseInteract (THistogramBox)
MouseInteract (TIEGradientBar)
MouseInteract (TImageEnMView)
MouseInteract (TImageEnView)
MouseInteractVt (TImageEnVect)
MouseScrollRate (TImageEnView)
MouseWheelParams (TImageEnMView)
MouseWheelParams (TImageEnView)
MouseWheelParamsAlt (TImageEnMView)
MoveContentTo (TImageEnView)
MoveFilesToCurrentFolder (TImageEnFolderMView)
MoveImage (TIEMultiBitmap)
MoveImage (TImageEnMView)
MovePage (TIETIFFHandler)
MoveRegion (TIEBitmap)
MoveScrollbarSliderTo (TIEAnimation)
MoveSelectedFilesToFolder (TImageEnFolderMView)
MoveSelectedImagesTo (TImageEnMView)
MoveSelection (TImageEnView)
MsgLanguage (TIEImageEnGlobalSettings)
mul (TIEVisionMath)
mulSpectrums (TIEVisionImage)
Multipage Image functions
Multiplier (TIEGestureOptions)
MultiSelectedImages (TImageEnMView)
MultiSelectedImagesCount (TImageEnMView)
MultiSelectedImagesList (TImageEnMView)
MultiSelecting (TImageEnMView)
MultiSelectionOptions (TImageEnMView)
MultiSelectSortList (TImageEnMView)
mulTransposed (TIEVisionImage)
MUnit (TImageEnVect)
MViewExplorerThumbnailExts (TIEImageEnGlobalSettings)

N

Name (TIELayer)
NameIndex (TIEResourceBookmark)
Names (TIEResourceExtractor)
NamesCount (TIEResourceExtractor)
NativePixelFormat (TImageEnIO)
NativePixelFormat (TImageEnMIO)
NavigateToFolderID (TIEPortableDevices)
NavigateToFolderPath (TIEPortableDevices)
NavigateToParent (TIEPortableDevices)
NeedRefresh (TIEAnimation)
Negative (TIEMask)
Negative (TImageEnProc)
NewGridForExif (TStringGridHelper)
NewGridForIPTC (TStringGridHelper)
NewListForExif (TListViewHelper)
NewListForIPTC (TListViewHelper)
norm (TIEVisionImage)
normalize (TIEVisionHistogram)
NotifyWindow (TIEDirectShow)

O

ObjAnchorToLayers (TImageEnVect)
ObjAnglePoints (TImageEnVect)
ObjAngleShowSmall (TImageEnVect)
ObjAntialias (TImageEnVect)
ObjArcEndingAngle (TImageEnVect)
ObjArcStartingAngle (TImageEnVect)
ObjAspectRatio (TImageEnVect)
ObjAutoUndo (TImageEnVect)
ObjBeginShape (TImageEnVect)
ObjBitmap (TImageEnVect)
ObjBitmapAlpha (TImageEnVect)
ObjBitmapBorder (TImageEnVect)
ObjBitmapHandleTransparencyOnSel (TImageEnVect)
ObjBlendOperation (TImageEnVect)
ObjBottom (TImageEnVect)
ObjBoxHighLight (TImageEnVect)
ObjBoxInnerSelectable (TImageEnVect)
ObjBrushColor (TImageEnVect)
ObjBrushStyle (TImageEnVect)
ObjCanUndo (TImageEnVect)
ObjClearAllUndo (TImageEnVect)
ObjClearUndo (TImageEnVect)
ObjCopyToClipboard (TImageEnVect)
ObjCutToClipboard (TImageEnVect)
ObjectCount (TIEPortableDevices)
ObjectIDToIndex (TIEPortableDevices)
ObjectIsFolder (TIEPortableDevices)
Objects (TIEImagingAnnot)
Objects (TIEPortableDevices)
ObjectsCount (TIEImageEnAnnot)
ObjectsCount (TIEImagingAnnot)
ObjectsCount (TImageEnVect)
ObjectsExtents (TImageEnVect)
ObjectsTIFFTag (TIEImageEnGlobalSettings)
ObjEditOnNewText (TImageEnVect)
ObjEnableFastDrawing (TImageEnVect)
ObjEndShape (TImageEnVect)
ObjFontAngle (TImageEnVect)
ObjFontHeight (TImageEnVect)
ObjFontLocked (TImageEnVect)
ObjFontName (TImageEnVect)
ObjFontQuality (TImageEnVect)
ObjFontStyles (TImageEnVect)
ObjGraphicRender (TImageEnVect)
ObjGripBrush (TImageEnVect)
ObjGripImage (TImageEnVect)
ObjGripPen (TImageEnVect)
ObjGripShape (TImageEnVect)
ObjGripSize (TImageEnVect)
ObjGroupIndex (TImageEnVect)
ObjHeight (TImageEnVect)
ObjID (TImageEnVect)
ObjIsClipboardAvailable (TImageEnVect)
ObjIsVisible (TImageEnVect)
ObjKind (TImageEnVect)
ObjLabelBorder (TImageEnVect)
ObjLabelBrushColor (TImageEnVect)
ObjLabelBrushStyle (TImageEnVect)
ObjLabelPosition (TImageEnVect)
ObjLayer (TImageEnVect)
ObjLeft (TImageEnVect)
ObjMemoBorderColor (TImageEnVect)
ObjMemoBorderStyle (TImageEnVect)
ObjMemoCharsBrushStyle (TImageEnVect)
ObjMemoFixedHeight (TImageEnVect)
ObjMemoHasBitmap (TImageEnVect)
ObjMemoLineSpace (TImageEnVect)
ObjMemoMarginBottom (TImageEnVect)
ObjMemoMarginLeft (TImageEnVect)
ObjMemoMarginRight (TImageEnVect)
ObjMemoMarginTop (TImageEnVect)
ObjName (TImageEnVect)
ObjPasteFromClipboard (TImageEnVect)
ObjPenColor (TImageEnVect)
ObjPenStyle (TImageEnVect)
ObjPenWidth (TImageEnVect)
ObjPolylineClosed (TImageEnVect)
ObjPolylinePoints (TImageEnVect)
ObjPolylinePointsCount (TImageEnVect)
ObjRight (TImageEnVect)
ObjRulerQuoteHorizon (TImageEnVect)
ObjRulerType (TImageEnVect)
ObjRulerUnit (TImageEnVect)
ObjSaveUndo (TImageEnVect)
ObjSetTBitmap (TImageEnVect)
ObjShapeHeight (TImageEnVect)
ObjShapeWidth (TImageEnVect)
ObjSoftShadow (TImageEnVect)
ObjStyle (TImageEnVect)
ObjText (TImageEnVect)
ObjTextAlign (TImageEnVect)
ObjTextAutoSize (TImageEnVect)
ObjTextCurveCharRot (TImageEnVect)
ObjTextCurveStretch (TImageEnVect)
ObjTextEditable (TImageEnVect)
ObjTextEditMode (TImageEnVect)
ObjTextMaintainAlignmentOnRotate (TImageEnVect)
ObjTop (TImageEnVect)
ObjTransparency (TImageEnVect)
ObjUndo (TImageEnVect)
ObjUndoAt (TImageEnVect)
ObjUndoCount (TImageEnVect)
ObjUndoLimit (TImageEnVect)
ObjUndoMode (TImageEnVect)
ObjUserData (TImageEnVect)
ObjUserDataLength (TImageEnVect)
ObjWidth (TImageEnVect)
OffScreenPaint (TImageEnView)
OffsetX (TIEVSoftShadow)
OffsetX (TImageEnView)
OffsetX (TRulerBox)
OffsetY (TIEVSoftShadow)
OffsetY (TImageEnView)
OffsetY (TRulerBox)
OnAcquireBitmap (TImageEnIO)
OnAcquireBitmap (TImageEnMIO)
OnAcquireBitmap (TImageEnMView)
OnAcquireBitmap (TImageEnView)
OnAcquireClose (TImageEnIO)
OnAcquireClose (TImageEnMIO)
OnActivateTextEdit (TImageEnVect)
OnActivateTextEditor (TImageEnView)
OnAfterAcquireBitmap (TImageEnMIO)
OnAfterDrawObject (TImageEnVect)
OnAfterEvent (TImageEnMView)
OnAllDisplayed (TImageEnMView)
OnAnimationText (TImageEnMView)
OnBeforeDrawObject (TImageEnVect)
OnBeforeImageDraw (TImageEnMView)
OnBeforeImageDrawEx (TImageEnMView)
OnBeforeLoadImage (TImageEnDBView)
OnBeforeSelectionChange (TImageEnView)
OnBeforeVectorialChanged (TImageEnVect)
OnBeginWork (TIESlippyMap)
OnBell (TIERFBClient)
OnCellClick (TIEColorPalette)
OnChange (THSVBox)
OnChange (TIEGradientBar)
OnChanged (TIEBitmap)
OnChanged (TIECustomMultiBitmap)
OnCheckboxClick (TImageEnMView)
OnClipboardText (TIERFBClient)
OnColorsChange (TIEColorPalette)
OnCreateCustomControls (TOpenImageEnDialog)
OnCreateImage (TImageEnMView)
OnCursorShapeUpdated (TIERFBClient)
OnCustomSortCompare (TImageEnFolderMView)
OnDeactivateTextEdit (TImageEnVect)
OnDeactivateTextEditor (TImageEnView)
OnDestroyCustomControls (TOpenImageEnDialog)
OnDestroyImage (TImageEnMView)
OnDoPreviews (TImageEnIO)
OnDoPreviews (TImageEnMIO)
OnDragLenEnd (TImageEnVect)
OnDrawBackBuffer (TImageEnView)
OnDrawBackground (TImageEnView)
OnDrawCanvas (TImageEnView)
OnDrawLayer (TImageEnView)
OnDrawLayerBox (TImageEnView)
OnDrawLayerGrip (TImageEnView)
OnDrawPolygon (TImageEnView)
OnDrawProgress (TImageEnMView)
OnDropFiles (TImageEnFolderMView)
OnDShowEvent (TImageEnView)
OnDShowNewFrame (TImageEnView)
OnFinishSmoothTask (TImageEnView)
OnFinishWork (TIESlippyMap)
OnFinishWork (TImageEnIO)
OnFinishWork (TImageEnMIO)
OnFinishWork (TImageEnMView)
OnFinishWork (TImageEnProc)
OnFinishWork (TImageEnView)
OnFolderChanged (TImageEnFolderMView)
OnFolderChanging (TImageEnFolderMView)
OnGetHintText (TIEColorPalette)
OnGetText (TImageEnMView)
OnGetTextEx (TImageEnMView)
OnImageAdd (TImageEnMView)
OnImageAdded (TImageEnMView)
OnImageAtPos (TImageEnMView)
OnImageChange (TImageEnView)
OnImageDeselect (TImageEnMView)
OnImageDraw (TImageEnMView)
OnImageDraw2 (TImageEnMView)
OnImageEnGesture (TImageEnMView)
OnImageEnGesture (TImageEnView)
OnImageIDRequest (TImageEnMView)
OnImageIDRequestEx (TImageEnMView)
OnImageLoaded (TImageEnMView)
OnImageOut (TImageEnMView)
OnImageSelect (TImageEnMView)
OnIOPreview (TImageEnIO)
OnIOProgress (TImageEnMView)
OnLayerMoveSize (TImageEnView)
OnLayerNotify (TImageEnView)
OnLayerSelectionChange (TImageEnView)
OnLog (TIEDcimAcquire)
OnLog (TIEPortableDevices)
OnMeasureHint (TImageEnVect)
OnMediaFoundationNotify (TImageEnView)
OnMouseEnter (TIEView)
OnMouseInResizingGrip (TImageEnView)
OnMouseInSel (TImageEnView)
OnMouseLeave (TIEView)
OnNewLayer (TImageEnView)
OnNewObject (TImageEnVect)
OnObjectClick (TImageEnVect)
OnObjectDblClick (TImageEnVect)
OnObjectMoveResize (TImageEnVect)
OnObjectOver (TImageEnVect)
OnPaint (TImageEnView)
OnPaintCell (TIEColorPalette)
OnPlayFrame (TImageEnMView)
OnPresentMeasure (TImageEnVect)
OnPreview (TImageEnProc)
OnPreviewFile (TOpenImageEnDialog)
OnProgress (TImageEnIO)
OnProgress (TImageEnMIO)
OnProgress (TImageEnMView)
OnProgress (TImageEnProc)
OnProgress (TImageEnView)
OnRenderVirtualPixel (TIEBitmap)
OnRulerClick (TImageEnView)
OnRulerClick (TRulerBox)
OnRulerGripClick (TImageEnView)
OnRulerGripClick (TRulerBox)
OnRulerGripDblClick (TImageEnView)
OnRulerGripDblClick (TRulerBox)
OnRulerGripPosChange (TImageEnView)
OnRulerPosChange (TRulerBox)
OnSaveUndo (TImageEnProc)
OnSaveUndo (TImageEnView)
OnSelectedColorChange (TIEColorPalette)
OnSelectionChange (TImageEnView)
OnSelectionChanged (THistogramBox)
OnSelectionChanging (THistogramBox)
OnSelectionChanging (TImageEnMView)
OnSelectionChanging (TImageEnView)
OnSelectObject (TImageEnVect)
OnSetCursor (TImageEnView)
OnSpecialKey (TImageEnView)
OnTextEdit (TImageEnVect)
OnTextEditCursorMoved (TImageEnVect)
OnTextEditorKeyDown (TImageEnView)
OnTextKeyDown (TImageEnVect)
OnTransitionPaint (TImageEnView)
OnTransitionStep (TImageEnView)
OnTransitionStop (TImageEnView)
OnUnableToLoadImage (TImageEnDBVect)
OnUnableToLoadImage (TImageEnDBView)
OnUpdate (TIERFBClient)
OnUpdateRect (TIERFBClient)
OnUpdateScreenSize (TIERFBClient)
OnUserDeselectObject (TImageEnVect)
OnUserSelectObject (TImageEnVect)
OnVectorialChanged (TImageEnVect)
OnViewChange (TImageEnMView)
OnViewChange (TImageEnView)
OnViewChanging (TImageEnView)
OnVirtualKey (TImageEnView)
OnWrongImage (TImageEnMView)
OnZoomIn (TImageEnView)
OnZoomOut (TImageEnView)
Opacity (TIELayer)
opAnd (TIEVisionMath)
opDiv (TIEVisionMath)
open (TIEVisionFileStream)
Open (TIEWICReader)
Open (TIEWICWriter)
OpenAVIFile (TImageEnIO)
OpenFolder (TImageEnFolderMView)
Opening (TImageEnProc)
OpenMediaFile (TImageEnIO)
OpenParentFolder (TImageEnFolderMView)
Operation (TIELayer)
operatorASSIGN (TIEVisionBaseVector)
operatorASSIGN (TIEVisionHistogram)
operatorASSIGN (TIEVisionImage)
operatorASSIGN (TIEVisionPropertyTree)
operatorASSIGN (TIEVisionString)
operatorASSIGN (TIEVisionWString)
operatorEQUAL (TIEVisionPropertyTree)
operatorEQUAL (TIEVisionString)
operatorEQUAL (TIEVisionWString)
opNot (TIEVisionImage)
opOr (TIEVisionMath)
OpSys (TIEImageEnGlobalSettings)
optimizeWith_NelderMeadSimplexMethod (TIEVisionMath)
Options (TIECropToolInteraction)
opXor (TIEVisionMath)
OrdCor
Orientation (TIEAcquireParams)
Orientation (TIETwainParams)
Origin (TIEBitmap)
OriginalHeight (TIOParams)
OriginalWidth (TIOParams)
OutputColorSpace (TIEICC)
OutputICCProfile (TIOParams)
Overlap (TIEWICWriter)

P

PageStep (TIEScrollBarParams)
PaintMark (TImageEnProc)
PaintPenMarker (TImageEnProc)
PaintRect (TImageEnView)
PaintScrollBar (TIEAnimation)
PaintText (TIEAnimation)
PaintTo (TImageEnMView)
Palette (TIEBaseBitmap)
Palette (TIEColorPalette)
PaletteLength (TIEBaseBitmap)
PaletteUsed (TIEBaseBitmap)
Pan (TIEMViewerGestures)
Pan (TIEViewerGestures)
PanWithSingleFingerHorizontally (TIEGesturePanOptions)
PanWithSingleFingerVertically (TIEGesturePanOptions)
PanZoomQualityFilter (TIEImageEnGlobalSettings)
PaperDetectable (TIEAcquireParams)
PaperDetectable (TIETwainParams)
Params (TIEBitmap)
Params (TIEMultiBitmap)
Params (TImageEnIO)
Params (TImageEnMIO)
Params (TIOMultiParams)
ParamsCount (TImageEnMIO)
ParamsEnabled (TIEBitmap)
ParamsEnabled (TIEMultiBitmap)
ParamsFromBuffer (TImageEnIO)
ParamsFromBuffer (TImageEnMIO)
ParamsFromFile (TImageEnIO)
ParamsFromFile (TImageEnMIO)
ParamsFromStream (TImageEnIO)
ParamsFromStream (TImageEnMIO)
Parse (TIEDictionary)
PasteFilesFromClipboard
PasteFilesFromClipboard (TImageEnFolderMView)
PasteFromClipboard (TIEBitmap)
PasteFromClipboard (TImageEnProc)
PathToFolderID (TIEPortableDevices)
Pause (TIEDirectShow)
PauseCapture (TIEMediaFoundationSourceReader)
pboolean
PBYTEROW
PBYTEROWS
PCIELAB
PCIELABROW
PCMYK
PCMYKROW
PCX_Compression (TIOParams)
PCX_Version (TIOParams)
PDF_Author (TIOParams)
PDF_Compression (TIOParams)
PDF_Creator (TIOParams)
PDF_Keywords (TIOParams)
PDF_PaperHeight (TIOParams)
PDF_PaperSize (TIOParams)
PDF_PaperWidth (TIOParams)
PDF_Producer (TIOParams)
PDF_Subject (TIOParams)
PDF_Title (TIOParams)
PDoubleArray
PDPointArray
PDWordArray
PencilSketch (TImageEnProc)
PerspectiveDraw (TImageEnProc)
perspectiveTransform (TIEVisionImage)
PHistogramItem
PhysicalHeight (TIEAcquireParams)
PhysicalHeight (TIETwainParams)
PhysicalWidth (TIEAcquireParams)
PhysicalWidth (TIETwainParams)
PicturePanel (TOpenImageEnDialog)
PIEDicomTag
PIEPointArray
PIERGBAPalette
PIERGBPalette
PIESmallIntArray
PIEVisionBGR16
PIEVisionBGR8
PIEVisionOCRBox
PIEVisionRect
PIEVisionRGB16
PIEVisionRGB8
PIEVObject
pint64array
pIntegerArray
pixel_BGR8 (TIEVisionImage)
pixel_float32 (TIEVisionImage)
pixel_float64 (TIEVisionImage)
pixel_RGB8 (TIEVisionImage)
pixel_uint16 (TIEVisionImage)
pixel_uint8 (TIEVisionImage)
PixelFormat (TIEBitmap)
PixelFormat (TIEDibBitmap)
Pixelize (TImageEnProc)
Pixels (TIEBitmap)
Pixels_ie16g (TIEBitmap)
Pixels_ie1g (TIEBitmap)
Pixels_ie24RGB (TIEBitmap)
Pixels_ie32f (TIEBitmap)
Pixels_ie32RGB (TIEBitmap)
Pixels_ie48RGB (TIEBitmap)
Pixels_ie8 (TIEBitmap)
Pixels_ieCIELab (TIEBitmap)
Pixels_ieCMYK (TIEBitmap)
PixelType (TIEAcquireParams)
PixelType (TIETwainParams)
Playing (TImageEnMView)
Playing (TImageEnView)
PlayLoop (TImageEnMView)
PlayLoop (TImageEnView)
PNG_Background (TIOParams)
PNG_Compression (TIOParams)
PNG_Filter (TIOParams)
PNG_Interlaced (TIOParams)
PNG_TextKeys (TIOParams)
PNG_TextValues (TIOParams)
PointCount (TIEPolylineLayer)
PointPasteFromClip (TImageEnProc)
PointPosition (TIESlippyMap)
Points (TIEPolylineLayer)
PolylineClosed (TIEPolylineLayer)
PolylineClosingMode (TImageEnVect)
PolylineEndingMode (TImageEnVect)
PolySel (TImageEnView)
PolySelCount (TImageEnView)
PolySelPoints (TImageEnView)
pop_back (TIEVisionBaseVector)
PopNotifyReceiver (TIEMediaFoundationSourceReader)
PopupMenuUseSystem (TImageEnFolderMView)
PopupSystemMenu
PopupSystemMenu (TImageEnFolderMView)
Position (TIEDirectShow)
Position (TIOPrintPreviewParams)
PosX (TIELayer)
PosY (TIELayer)
pow (TIEVisionMath)
ppeColorAdjustments
ppeEditingFunctions
ppeSpecialEffects
PPixels_ie24RGB (TIEBitmap)
PPixels_ie32RGB (TIEBitmap)
PPixels_ie48RGB (TIEBitmap)
PPointArray
PPointerArray
PPRGBArray
PProgressRec
PreferredAspectRatio (TIELayer)
PrepareSpaceFor (TIEMultiBitmap)
PrepareSpaceFor (TImageEnMView)
PrepareTransition (TImageEnView)
PrepareTransitionBitmaps (TImageEnProc)
PrepareTransitionBitmapsEx (TImageEnProc)
PreviewAdditionalMultipageExts (TIEImageEnGlobalSettings)
PreviewBorderStyle (TOpenImageEnDialog)
PreviewFont (TImageEnDBVect)
PreviewFont (TImageEnDBView)
PreviewFont (TImageEnIO)
PreviewFont (TImageEnMIO)
PreviewFont (TImageEnProc)
PreviewFontEnabled (TImageEnDBVect)
PreviewFontEnabled (TImageEnDBView)
PreviewFontEnabled (TImageEnIO)
PreviewFontEnabled (TImageEnMIO)
PreviewFontEnabled (TImageEnProc)
PreviewImageBackgroundColor (TIEImageEnGlobalSettings)
PreviewImageBackgroundStyle (TIEImageEnGlobalSettings)
PreviewPrintImage (TImageEnIO)
PreviewPrintImages (TImageEnMIO)
PreviewSize (TOpenImageEnDialog)
PreviewsLog (TImageEnProc)
PreviewsParams (TImageEnIO)
PreviewsParams (TImageEnMIO)
PreviewsParams (TImageEnProc)
PRGB
PRGB32ROW
PRGB48
PRGB48ROW
PRGBA
PRGBArray
PRGBROW
PrintDialogMarginsIncrement (TIEImageEnGlobalSettings)
PrintDialogMarginsMinValue (TIEImageEnGlobalSettings)
PrintImage (TBitmap)
PrintImage (TIEBitmap)
PrintImage (TImageEnIO)
PrintImage (TImageEnMIO)
PrintImagePos (TImageEnIO)
PrintImagePos (TImageEnMIO)
PrintImages (TImageEnMIO)
PrintImagesToFile (TImageEnMIO)
PrintingFilterOnSubsampling (TImageEnIO)
PrintingFilterOnSubsampling (TImageEnMIO)
PrintPreviewParams (TImageEnIO)
PrintPreviewParams (TImageEnMIO)
PrintSelected (TIOPrintPreviewParams)
PrintThumbnails (TIOPrintPreviewParams)
Proc (TImageEnMView)
Proc (TImageEnView)
ProgressIndicators (TIETwainParams)
ProjectDraw (TImageEnProc)
PromptForFolder (TImageEnFolderMView)
ProxyAddress (TIEImageEnGlobalSettings)
ProxyPassword (TIEImageEnGlobalSettings)
ProxyUser (TIEImageEnGlobalSettings)
PS_Compression (TIOParams)
PS_PaperHeight (TIOParams)
PS_PaperSize (TIOParams)
PS_PaperWidth (TIOParams)
PS_Title (TIOParams)
PSD_HasPremultipliedAlpha (TIOParams)
PSD_LargeDocumentFormat (TIOParams)
PSD_LoadLayers (TIOParams)
PSD_ReplaceLayers (TIOParams)
PSD_SelectLayer (TIOParams)
PSingleArray
push_back (TIEVisionVectorByte)
push_back (TIEVisionVectorDouble)
push_back (TIEVisionVectorFloatPair)
push_back (TIEVisionVectorImageRef)
push_back (TIEVisionVectorInt32)
push_back (TIEVisionVectorObjRef)
push_back (TIEVisionVectorOCRBox)
push_back (TIEVisionVectorPoint)
push_back (TIEVisionVectorRect)
push_back (TIEVisionVectorScalarInt32)
push_back (TIEVisionVectorString)
pushBack (TIEVisionImageList)
pushBackExistingFile (TIEVisionTempFileImageList)
PushNotifyReceiver (TIEMediaFoundationSourceReader)
putDouble (TIEVisionPropertyTree)
PutFrame (TIEWICWriter)
putInt32 (TIEVisionPropertyTree)
putPropertyTree (TIEVisionPropertyTree)
putRect (TIEVisionPropertyTree)
putString (TIEVisionPropertyTree)
PXM_Comments (TIOParams)
PYCBCR
pyrDown (TIEVisionImage)
pyrUp (TIEVisionImage)

Q

Quality (TIEEquirectangularRenderer)
Quality (TIEWICWriter)
QualityToZoomFilter

R

RadialStretch (TImageEnProc)
Radius (TIEVSoftShadow)
Random (TImageEnProc)
RangeMax (TIEDoubleList)
RangeMax (TIEIntegerList)
RangeMin (TIEDoubleList)
RangeMin (TIEIntegerList)
RangeStep (TIEDoubleList)
RangeStep (TIEIntegerList)
Rate (TIEDirectShow)
RAW_AutoAdjustColors (TIOParams)
RAW_BlueScale (TIOParams)
RAW_Bright (TIOParams)
RAW_Camera (TIOParams)
RAW_ExtraParams (TIOParams)
RAW_FourColorRGB (TIOParams)
RAW_Gamma (TIOParams)
RAW_GetExifThumbnail (TIOParams)
RAW_HalfSize (TIOParams)
RAW_QuickInterpolate (TIOParams)
RAW_RedScale (TIOParams)
RAW_UseAutoWB (TIOParams)
RAW_UseCameraWB (TIOParams)
Read (TIEBitmap)
Read (TIEDBBitmap)
Read (TIEHashStream)
Read (TIEMultiBitmap)
read (TIEVisionStream)
Read (TIOMultiParams)
Read (TIOParams)
ReadExifCameraFieldsFromFile
ReadExifGPSFieldsFromFile
ReadFile (TIETIFFHandler)
ReadGridFromDicom (TStringGridHelper)
ReadGridFromExif (TStringGridHelper)
ReadGridFromIPTC (TStringGridHelper)
ReadGridFromXMP (TStringGridHelper)
ReadHiddenData (TImageEnProc)
ReadHiddenText (TImageEnProc)
ReadIPTCDescriptionAndKeywordsFromFile
ReadIPTCField (TIOParams)
ReadListFromDicom (TListViewHelper)
ReadListFromExif (TListViewHelper)
ReadListFromIPTC (TListViewHelper)
ReadListFromXMP (TListViewHelper)
ReadOnly (TIEDBMultiBitmap)
ReadOnly (TIELineLayer)
ReadOnly (TIETextLayer)
ReadOnly (TImageEnDBVect)
ReadOnly (TImageEnDBView)
ReadStream (TIETIFFHandler)
recognize (TIEVisionOCR)
RecordNumber (TIEIPTCInfoList)
rectangle (TIEVisionDrawing)
rectContains (TIEVisionMath)
rectIntersect (TIEVisionMath)
rectTestIntersect (TIEVisionMath)
rectUnion (TIEVisionMath)
Red (THSVBox)
Redo (TImageEnProc)
RedoAt (TImageEnProc)
RedoCaptions (TImageEnProc)
RedoCount (TImageEnProc)
RedToGrayCoef (TIEImageEnGlobalSettings)
reduce (TIEVisionImage)
ReferenceClock (TIEDirectShow)
Reflection (TImageEnProc)
Refresh (TIEDcimAcquire)
RefreshDevices (TIEPortableDevices)
RefreshFileList (TImageEnFolderMView)
RefreshSorting (TImageEnFolderMView)
RegisterPlugin (TIEMiscPluginsImageMagick)
ReleaseBitmap (TIEDBMultiBitmap)
ReleaseBitmap (TIEMultiBitmap)
ReleaseBitmap (TImageEnMView)
ReleaseTwainResources (TIEImageEnGlobalSettings)
Reload (TImageEnIO)
ReloadImage (TImageEnMView)
Remove (TIEImageList)
remove (TIEVisionImageList)
removeAllClassifiers (TIEVisionObjectsFinder)
RemoveAllObjects (TImageEnVect)
RemoveAlphaChannel (TIEBitmap)
RemoveAlphaChannel (TImageEnView)
RemoveBlankPages (TIEMultiBitmap)
RemoveBlankPages (TImageEnMView)
RemoveChromaKey (TImageEnProc)
removeClassifier (TIEVisionObjectsFinder)
RemoveDuplicates (TIEMultiBitmap)
RemoveDuplicates (TImageEnMView)
RemoveFile (TImageEnFolderMView)
RemoveIsolatedPixels (TImageEnProc)
RemoveNoise (TImageEnProc)
RemoveObject (TImageEnVect)
RemovePoint (TIEPolylineLayer)
RemovePolygonJaggedEdges (TImageEnVect)
RemovePolyLinePoint (TImageEnVect)
RemoveRedEyes (TImageEnProc)
RenameFile (TImageEnFolderMView)
Render (TIESlippyMap)
Render (TIEVirtualBitmapProvider)
RenderAudio (TIEDirectShow)
RenderToCanvas (TIEBitmap)
RenderToCanvasWithAlpha (TIEBitmap)
RenderToTBitmap (TIEBitmap)
RenderToTBitmapEx (TIEBitmap)
RenderToTIEBitmap (TIEBitmap)
RenderToTIEBitmapEx (TIEBitmap)
RenderVideo (TIEDirectShow)
RepaintVideo (TIEDirectShow)
repeatImage (TIEVisionImage)
ReplaceAlphaChannel (TIEBitmap)
ReplaceExifTags
ReplaceFileGIF (TImageEnIO)
ReplaceFileTIFF (TImageEnIO)
ReplaceStreamTIFF (TImageEnIO)
Resample (TIEBitmap)
Resample (TIEDBMultiBitmap)
Resample (TIEMultiBitmap)
Resample (TImageEnProc)
ResampleAll (TIEMultiBitmap)
ResampleFilter (TIEImageLayer)
ResampleTo (TImageEnProc)
reserve (TIEVisionBaseVector)
reserve (TIEVisionMemoryStream)
reset (TIEVisionExistingMemoryStream)
ResetEXIF (TIOParams)
ResetInfo (TIOParams)
ResetState (TImageEnView)
Resize (TIEBitmap)
Resize (TIEMask)
resize (TIEVisionBaseVector)
resize (TIEVisionImage)
RestartAnimation (TIEAnimation)
RestoreAspectRatio (TIELayer)
RestoreSelection (TImageEnView)
RestoreSize (TIEImageLayer)
RestoreState (TIEBitmap)
ResumeCapture (TIEMediaFoundationSourceReader)
RGB (TIEGradientBar)
RGB2HSL
RGB2HSV
RGB2TColor
RGB32ROW
RGBROW
Rotate (TIEBitmap)
Rotate (TIEDBMultiBitmap)
Rotate (TIELayer)
Rotate (TIEMultiBitmap)
Rotate (TImageEnProc)
RotateAll (TIEMultiBitmap)
RotateAllObjects (TImageEnVect)
RotateAndCrop (TImageEnProc)
RotateAngle (TIEHorizontalFlow)
RotateCenterX (TIELayer)
RotateCenterY (TIELayer)
RotatedPolygon (TIECropToolInteraction)
RotateObject (TImageEnVect)
Rotation (TIEAcquireParams)
Rotation (TIECropToolInteraction)
Rotation (TIETwainParams)
RoundImage (TImageEnProc)
RowCount (TIEColorPalette)
RowLen (TIEBitmap)
Rowlen (TIEDibBitmap)
Rowlen (TIEMask)
Ruler (TRulerBox)
RulerColor (TRulerBox)
RulerDir (TRulerBox)
RulerParams (TImageEnView)
Run (TIEDirectShow)
RunTransition (TImageEnView)

S

Sample (TIEMFReceivedSample)
SamplesBufferSize (TIEMediaFoundationSourceReader)
SamplesPerPixel (TIOParams)
Sat (THSVBox)
save (TIEVisionFaceRecognizer)
save (TIEVisionImage)
save (TIEVisionPropertyTree)
SavedSelectionsCount (TImageEnView)
SaveFilterToFile
SaveGraph (TIEDirectShow)
SaveObjectsToTIFF (TImageEnVect)
SavePaletteToFile
SaveRAWToBufferOrStream (TIEBitmap)
SaveRedo (TImageEnProc)
SaveSelection (TImageEnView)
SaveSelectionToFile (TImageEnView)
SaveSelectionToStream (TImageEnView)
SaveSnapshot (TIEMultiBitmap)
SaveSnapshot (TImageEnMView)
SaveState (TIEBitmap)
SaveState (TImageEnView)
SaveTagToFile (TIETIFFHandler)
SaveToAVI (TImageEnIO)
SaveToBlob (TImageEnIO)
SaveToFile (TIEColorPalette)
SaveToFile (TIEHashStream)
saveToFile (TIEVisionStream)
saveToFile (TIEVisionString)
saveToFile (TIEVisionWString)
SaveToFile (TImageEnIO)
SaveToFile (TImageEnMIO)
SaveToFile (TIOParams)
SaveToFile (TIOPrintPreviewParams)
SaveToFile (TIPDialogParams)
SaveToFileAll (TImageEnVect)
SaveToFileAVI (TImageEnMIO)
SaveToFileBMP (TImageEnIO)
SaveToFileBMPRAW (TImageEnIO)
SaveToFileDCX (TImageEnIO)
SaveToFileDCX (TImageEnMIO)
SaveToFileDicom (TImageEnIO)
SaveToFileDICOM (TImageEnMIO)
SaveToFileEx (TImageEnIO)
SaveToFileGif (TImageEnIO)
SaveToFileGIF (TImageEnMIO)
SaveToFileHDP (TImageEnIO)
SaveToFileICO (TImageEnIO)
SaveToFileICO (TImageEnMIO)
SaveToFileIEN (TImageEnIO)
SaveToFileIEV (TImageEnVect)
SaveToFileJ2K (TImageEnIO)
SaveToFileJP2 (TImageEnIO)
SaveToFileJpeg (TImageEnIO)
SaveToFilePCX (TImageEnIO)
SaveToFilePDF (TImageEnIO)
SaveToFilePDF (TImageEnMIO)
SaveToFilePNG (TImageEnIO)
SaveToFilePS (TImageEnIO)
SaveToFilePS (TImageEnMIO)
SaveToFilePSD (TImageEnIO)
SaveToFilePXM (TImageEnIO)
SaveToFileSVG (TImageEnIO)
SavetoFileTGA (TImageEnIO)
SaveToFileTIFF (TImageEnIO)
SaveToFileTIFF (TImageEnMIO)
SaveToFileWBMP (TImageEnIO)
SaveToPDF (TImageEnIO)
SaveToPS (TImageEnIO)
SaveToStandardBuffer (TIEImagingAnnot)
SaveToStandardBuffer (TIEIPTCInfoList)
SaveToStream (TIEHashStream)
SaveToStream (TIEICC)
SaveToStream (TIEImagingAnnot)
SaveToStream (TIEIPTCInfoList)
SaveToStream (TIEMarkerList)
SaveToStream (TImageEnIO)
SaveToStream (TImageEnMIO)
SaveToStream (TIOParams)
SaveToStream (TIOPrintPreviewParams)
SaveToStream (TIPDialogParams)
SaveToStreamAll (TImageEnVect)
SaveToStreamBMP (TImageEnIO)
SaveToStreamBMPRAW (TImageEnIO)
SaveToStreamDCX (TImageEnIO)
SaveToStreamDCX (TImageEnMIO)
SaveToStreamDicom (TImageEnIO)
SaveToStreamDICOM (TImageEnMIO)
SaveToStreamEx (TImageEnIO)
SaveToStreamGif (TImageEnIO)
SaveToStreamGIF (TImageEnMIO)
SaveToStreamHDP (TImageEnIO)
SaveToStreamICO (TImageEnIO)
SaveToStreamICO (TImageEnMIO)
SaveToStreamIEN (TImageEnIO)
SaveToStreamIEV (TImageEnVect)
SaveToStreamJ2K (TImageEnIO)
SaveToStreamJP2 (TImageEnIO)
SaveToStreamJpeg (TImageEnIO)
SaveToStreamPCX (TImageEnIO)
SaveToStreamPDF (TImageEnIO)
SaveToStreamPDF (TImageEnMIO)
SaveToStreamPNG (TImageEnIO)
SaveToStreamPS (TImageEnIO)
SaveToStreamPS (TImageEnMIO)
SaveToStreamPSD (TImageEnIO)
SaveToStreamPXM (TImageEnIO)
SaveToStreamSVG (TImageEnIO)
SaveToStreamTGA (TImageEnIO)
SaveToStreamTIFF (TImageEnIO)
SaveToStreamTIFF (TImageEnMIO)
SaveToStreamWBMP (TImageEnIO)
SaveToText (TImageEnIO)
SaveTransferBufferAs (TIEWia)
SaveUndo (TImageEnProc)
Scale (THistogramBox)
scaleAdd (TIEVisionImage)
ScaleFactor (TImageEnVect)
scan (TIEVisionBarCodeScanner)
Scanline (TIEBitmap)
Scanline (TIEDibBitmap)
ScanLine (TIEMask)
ScreenName (TIERFBClient)
ScreenPixelFormat (TIERFBClient)
ScreenPolygon (TIECropToolInteraction)
ScreenSize (TIERFBClient)
ScrollBarParams (TIEColorPalette)
ScrollBars (TImageEnMView)
ScrollBars (TImageEnView)
ScrollBarsAlwaysVisible (TImageEnMView)
ScrollBarsAlwaysVisible (TImageEnView)
ScrollRate (TIEViewRulerParams)
ScrollRate (TRulerBox)
Seek (TIEHashStream)
seek (TIEVisionStream)
Seek (TImageEnIO)
Seek (TImageEnMView)
SelAllObjects (TImageEnVect)
SelColor1 (TImageEnView)
SelColor2 (TImageEnView)
Select (TImageEnView)
Selectable (TIEColorPalette)
Selectable (TIELayer)
SelectAcquireSource (TImageEnIO)
SelectAcquireSource (TImageEnMIO)
SelectAll (TImageEnMView)
SelectColors (TImageEnView)
SelectCustom (TImageEnView)
Selected (TIECropToolInteraction)
Selected (TIELayer)
Selected (TImageEnView)
SelectedAcquireSource (TImageEnIO)
SelectedAcquireSource (TImageEnMIO)
SelectedColor (TIEColorPalette)
SelectedFilename (TImageEnFolderMView)
SelectedFilenames (TImageEnFolderMView)
SelectedFontColor (TImageEnMView)
SelectedFrame (TOpenImageEnDialog)
SelectedImage (TImageEnMView)
SelectedImageAlwaysVisible (TImageEnMView)
SelectedIndex (TIEColorPalette)
SelectedRect (TImageEnView)
SelectedSource (TIEAcquireParams)
SelectedSource (TIEDcimAcquire)
SelectedSource (TIETwainParams)
SelectedSourceApi (TIEAcquireParams)
selectEigenFaceRecognizer (TIEVisionFaceRecognizer)
SelectEllipse (TImageEnView)
selectFisherFaceRecognizer (TIEVisionFaceRecognizer)
SelectionAbsHeight (TImageEnView)
SelectionAbsWidth (TImageEnView)
SelectionAspectRatio (TImageEnView)
SelectionBase (TImageEnView)
SelectionColor (THistogramBox)
SelectionColor (TImageEnMView)
SelectionGridColor (TIEImageEnGlobalSettings)
SelectionGridHeight (TImageEnView)
SelectionGridSize (TImageEnView)
SelectionGridWidth (TImageEnView)
SelectionIntensity (TImageEnView)
SelectionMask (TImageEnView)
SelectionMaskDepth (TImageEnView)
SelectionOptions (TImageEnView)
SelectionWidth (TImageEnMView)
SelectionWidthNoFocus (TImageEnMView)
selectLBPHFaceRecognizer (TIEVisionFaceRecognizer)
SelectMagicWand (TImageEnView)
SelectMediaType (TIEMediaFoundationSourceReader)
selectMethodKNN (TIEVisionBackgroundSubtractor)
selectMethodMOG2 (TIEVisionBackgroundSubtractor)
SelectNonAlpha (TImageEnView)
SelectOnMouseDown (TImageEnVect)
SelectRoundRect (TImageEnView)
SelectSeek (TImageEnMView)
SelectSource (TIEAcquireParams)
SelectSourceByName (TIETwainParams)
SelObjects (TImageEnVect)
SelObjectsCount (TImageEnVect)
SelX1 (TImageEnView)
SelX2 (TImageEnView)
SelY1 (TImageEnView)
SelY2 (TImageEnView)
SendClipboard (TIERFBClient)
SendKeyEvent (TIERFBClient)
SendPointerEvent (TIERFBClient)
SendRequestUpdate (TIERFBClient)
SeparateObjects (TImageEnProc)
SetAcquireSource (TImageEnIO)
SetAcquireSource (TImageEnMIO)
SetAllText (TImageEnMView)
SetAlphaRangePixelsColor (TImageEnView)
SetAudioCodec (TIEDirectShow)
SetAudioInput (TIEDirectShow)
SetBitmapPolygon (TIECropToolInteraction)
SetCheckboxParams (TImageEnMView)
SetChessboardStyle (TImageEnMView)
SetChessboardStyle (TImageEnView)
SetColor (THSVBox)
SetCurrentVideoFormat (TIEDirectShow)
SetDefaultParams (TIETwainParams)
SetDefaultParams (TIOParams)
SetDefaultParams (TIPDialogParams)
SetDestinationRectangle (TIEMediaFoundationVideoProcessor)
SetDeviceProperty (TIEWia)
SetDevicePropertyVariant (TIEWia)
setDivisor (TIEVisionObjectsFinder)
setDouble (TIEVisionVectorDouble)
SetEllipse (TIEMask)
SetEndValues (TIEAnimation)
setEqualizeHistogram (TIEVisionObjectsFinder)
SetExternalBitmap (TImageEnView)
SetExternalMBitmap (TImageEnMView)
SetFileInput (TIEMediaFoundationSourceReader)
setFloatPair (TIEVisionVectorFloatPair)
SetFolderEx (TImageEnFolderMView)
setHaarFlags (TIEVisionObjectsFinder)
setHaarMaxSize (TIEVisionObjectsFinder)
setHaarMinNeighbors (TIEVisionObjectsFinder)
setHaarMinSize (TIEVisionObjectsFinder)
setHaarScaleFactor (TIEVisionObjectsFinder)
setIdentity (TIEVisionImage)
SetImage (TIEDBMultiBitmap)
SetImage (TIEMultiBitmap)
setImage (TIEVisionImageList)
setImage (TIEVisionVectorImageRef)
SetImage (TImageEnMView)
SetImageEx (TImageEnMView)
SetImageFromFile (TImageEnMView)
SetImageFromStream (TImageEnMView)
SetImageRect (TIEMultiBitmap)
SetImageRect (TImageEnMView)
setInitialPosition (TIEVisionObjectTracker)
SetInitialValues (TIEAnimation)
setInt32 (TIEVisionVectorInt32)
SetInteractionHint (TImageEnView)
SetItemProperty (TIEWia)
SetItemPropertyVariant (TIEWia)
SetLayersBoxStyle (TImageEnView)
SetLayersGripStyle (TImageEnView)
SetMarker (TIEMarkerList)
SetMediaTypeAudio (TIEMediaFoundationSourceReader)
SetMediaTypeCustom (TIEMediaFoundationSourceReader)
SetMediaTypeVideo (TIEMediaFoundationSourceReader)
SetMirror (TIEMediaFoundationVideoProcessor)
SetModernStyling (TImageEnMView)
SetNavigator (TImageEnView)
SetNotifyWindow (TIEDirectShow)
setObj (TIEVisionVectorObjRef)
SetObjAnglePoints (TImageEnVect)
SetObjBackTo (TImageEnVect)
SetObjBitmapFromFile (TImageEnVect)
SetObjBitmapFromStream (TImageEnVect)
SetObjBitmapICO (TImageEnVect)
SetObjFont (TImageEnVect)
SetObjFrontOf (TImageEnVect)
SetObjPolylinePoints (TImageEnVect)
SetObjRect (TImageEnVect)
SetObjTextCurve (TImageEnVect)
SetObjTextCurveFromPolyline (TImageEnVect)
SetObjTextCurveShape (TImageEnVect)
setOCRBox (TIEVisionVectorOCRBox)
SetPalette (TImageEnPaletteDialog)
SetPixel (TIEMask)
setPoint (TIEVisionVectorPoint)
SetPoints (TIEPolylineLayer)
SetPosition (TIEMediaFoundationSourceReader)
SetPresetThumbnailFrame (TImageEnMView)
SetProperties (TIELayer)
SetProperty (TIOPrintPreviewParams)
SetProperty (TIPDialogParams)
setRect (TIEVisionVectorRect)
SetRectangle (TIEMask)
SetRGB (THSVBox)
SetRotation (TIEMediaFoundationVideoProcessor)
setScalarInt32 (TIEVisionVectorScalarInt32)
SetScaleFromPixels (TImageEnVect)
SetScaleFromSelectionLen (TImageEnVect)
setSegmentationMode (TIEVisionOCR)
SetSelectedAreaAlpha (TImageEnView)
SetSelectedPixelsColor (TImageEnView)
SetSelectedStreams (TIEMediaFoundationSourceReader)
SetSelectionGripStyle (TImageEnView)
SetSelectionMarkOuterStyle (TImageEnView)
SetSortOrderEx (TImageEnFolderMView)
SetSource (TIEAcquireParams)
SetSourceByStr (TIEAcquireParams)
SetSourceRectangle (TIEMediaFoundationVideoProcessor)
SetStartEndValues (TIEAnimation)
SetStartValues (TIEAnimation)
setString (TIEVisionVectorString)
SetStyleEx (TImageEnMView)
SetTagByteBuffer (TIEDicomTags)
SetTagNumeric (TIEDicomTags)
SetTagString (TIEDicomTags)
SetThumbnailSize (TImageEnMView)
SetTransparentColors (TImageEnProc)
SetTVStandard (TIEDirectShow)
setUInt8 (TIEVisionVectorByte)
SetupEvents (TIEAnimation)
SetURLInput (TIEMediaFoundationSourceReader)
SetValue (TIETIFFHandler)
setValue (TIEVisionImage)
SetValueRAW (TIETIFFHandler)
SetVCRHorizontalLocking (TIEDirectShow)
SetVideoCodec (TIEDirectShow)
SetVideoInput (TIEDirectShow)
SetVideoInput (TIEMediaFoundationSourceReader)
SetVideoRenderRect (TIEDirectShow)
SetViewXY (TImageEnMView)
SetViewXY (TImageEnView)
SetViewXYSmooth (TImageEnView)
setZero (TIEVisionImage)
SetZoomSmooth (TImageEnView)
Shadow (TIETwainParams)
ShadowAlphaMax (TIEAnimation)
ShadowAlphaMin (TIEAnimation)
ShadowColor (TIEVSoftShadow)
Shape (TIEShapeLayer)
ShapeModifier (TIEShapeLayer)
ShapeSize (TIELineLayer)
share (TIEVisionImage)
ShareBitmaps (TImageEnVect)
Sharpen (TImageEnProc)
ShiftChannel (TImageEnProc)
ShowAcquireDialog (TIEWia)
ShowAllFrames (TOpenImageEnDialog)
ShowBorder (TIEAnimation)
ShowBorder (TIEViewRulerParams)
ShowBorder (TRulerBox)
ShowFolders (TImageEnFolderMView)
ShowFormats (TOpenImageEnDialog)
ShowHiddenFiles (TImageEnFolderMView)
ShowMeasure (TIEViewRulerParams)
ShowPlacesBar (TIECommonDialog)
ShowPropertyPages (TIEDirectShow)
ShowRulers (TImageEnView)
ShowScrollbar (TIEAnimation)
ShowSettingsOnly (TIETwainParams)
ShowTempHourglass
ShowText (TIEAnimation)
ShowText (TImageEnMView)
ShowThumbnailHint (TImageEnMView)
ShowWindowsPrintWizard
SideGap (TImageEnMView)
silent_getc (TIEVisionStream)
silent_read (TIEVisionStream)
silent_write (TIEVisionStream)
SimplifiedParamsDialogs (TImageEnIO)
SimplifiedParamsDialogs (TImageEnMIO)
SimplifyPolygon (TIEPolylineLayer)
SimplifyPolygon (TImageEnVect)
size (TIEVisionBaseVector)
size (TIEVisionHistogram)
size (TIEVisionImageList)
size (TIEVisionPropertyTree)
size (TIEVisionStream)
Size (TIOPrintPreviewParams)
SizeToFit (TIELineLayer)
SizeToText (TIETextLayer)
SkewDetection (TImageEnProc)
SkewDetectionFine (TImageEnProc)
smooth (TIEVisionImage)
SmoothScrollValue (TImageEnView)
SmoothZoomValue (TImageEnView)
SnapDelta (TIEGestureOptions)
SnapGrips (TIEViewRulerParams)
SnapValues (TIEGestureOptions)
SoftCrop (TImageEnView)
SoftCropValue (TImageEnView)
SoftShadow (TIELayer)
SoftShadow (TImageEnMView)
solve (TIEVisionMath)
solveCubic (TIEVisionMath)
Sort (TIEList)
sort (TIEVisionBaseVector)
sort (TIEVisionPropertyTree)
Sort (TImageEnFolderMView)
Sort (TImageEnMView)
SortAscending (TImageEnFolderMView)
SortCaseSensitive (TImageEnFolderMView)
Sorted (TIEDicomTags)
Sorted (TIEPortableDevices)
SortMethod (TIEColorPalette)
SortOrder (TIEColorPalette)
SortOrder (TImageEnFolderMView)
SourceCount (TIEDcimAcquire)
SourceCount (TIETwainParams)
SourceName (TIETwainParams)
SourceNameToIndex (TIEDcimAcquire)
Sources (TIEDcimAcquire)
SourceSettings (TIETwainParams)
splitPlanes (TIEVisionImage)
StandardSize (TIETwainParams)
StartCapture (TIEMediaFoundationSourceReader)
StartShape (TIELineLayer)
State (TIEDirectShow)
Step (TIEDirectShow)
stitch (TIEVisionStitcher)
Stop (TIEDirectShow)
StopCapture (TIEMediaFoundationSourceReader)
StoreType (TImageEnMView)
StreamCount (TIEMediaFoundationSourceReader)
StreamFlags (TIEMFReceivedSample)
StreamHeaders (TImageEnDBView)
StreamHeaders (TImageEnIO)
StreamIndex (TIEMFReceivedSample)
StreamType (TIEMFReceivedSample)
Stretch (TImageEnView)
StretchRectTo (TIEBitmap)
StretchTextRect (TImageEnVect)
StretchValues (TIEBitmap)
StringItem (TIEIPTCInfoList)
StrToAcquireSource
Style (TImageEnMView)
sub (TIEVisionMath)
Subsampling (TIEWICWriter)
Supported_Generate_Points_Shapes
SupportsFeature (TIELayer)
Suspended (TIERFBClient)
SVG_ImageCompression (TIOParams)
Swap (TIELayer)
swap (TIEVisionBaseVector)
swap (TIEVisionHistogram)
swap (TIEVisionImage)
swap (TIEVisionPropertyTree)
SwapImages (TIEMultiBitmap)
SwitchTo (TIEBitmap)
SymmetricNearestNeighbour (TImageEnProc)
SyncAlphaChannel (TIEBitmap)
SyncFull (TIEBitmap)
SyncFull (TIEMask)
SynchronizeRGBA (TIEBitmap)
SyncRect (TIEMask)
SystemColors (TIEImageEnGlobalSettings)
SystemDPIX (TIEImageEnGlobalSettings)
SystemDPIY (TIEImageEnGlobalSettings)

T

Tag (TIELayer)
TagExists (TIETagsHandler)
TagExists (TIETIFTagsReader)
TagLength (TIETagsHandler)
TagLength (TIETIFTagsReader)
TakePicture (TIEWia)
TBitmap
TBitmapScanlines (TIEBitmap)
TBYTEROW
TBYTEROWS
TCIELab
TCIELABROW
TCMYK
TCMYK16
TCMYKROW
TColor2TRGB
TColor2TRGBA
TDataFieldImageFormat
TDoubleArray
TDPoint
TDPointArray
TDWordArray
tell (TIEVisionStream)
Text (TIETextLayer)
TextBackgroundColor (TImageEnMView)
TextBackgroundStyle (TImageEnMView)
TextBlockWidth (TImageEnMView)
TextColumnWidths (TImageEnMView)
TextMargin (TImageEnMView)
TextOut (TImageEnProc)
TextTruncSide (TImageEnMView)
TFileChangeNotifyEvent
TFitMethod
TFlipDir
TGA_AspectRatio (TIOParams)
TGA_Author (TIOParams)
TGA_Background (TIOParams)
TGA_Compressed (TIOParams)
TGA_Date (TIOParams)
TGA_Descriptor (TIOParams)
TGA_Gamma (TIOParams)
TGA_GrayLevel (TIOParams)
TGA_ImageName (TIOParams)
TGA_XPos (TIOParams)
TGA_YPos (TIOParams)
TGraphFilter
TGripKind
TGripsDir
TGripsXDir
THistogram
THistogramBox
THistogramItem
THistogramKind
THistogramLabels
THistogramMouseInteract
THistogramScale
THistogramStyle
ThreadPoolSize (TImageEnMView)
ThreadsCount (TImageEnIO)
Threshold (TIEAcquireParams)
Threshold (TIETwainParams)
threshold (TIEVisionImage)
Threshold (TImageEnProc)
Threshold2 (TImageEnProc)
THSVBox
ThumbHeight (TImageEnMView)
ThumbnailClipping (TImageEnMView)
ThumbnailColumns (TIOPrintPreviewParams)
ThumbnailDisplayFilter (TImageEnMView)
ThumbnailFrame (TImageEnMView)
ThumbnailFrameRect (TImageEnMView)
ThumbnailFrameSelected (TImageEnMView)
ThumbnailOptionsEx (TImageEnMView)
ThumbnailResampleFilter (TImageEnMView)
ThumbnailRows (TIOPrintPreviewParams)
ThumbnailsBackground (TImageEnMView)
ThumbnailsBackgroundSelected (TImageEnMView)
ThumbnailsBackgroundStyle (TImageEnMView)
ThumbnailsBorderColor (TImageEnMView)
ThumbnailsBorderCurved (TImageEnMView)
ThumbnailsBorderWidth (TImageEnMView)
ThumbnailShowText (TIOPrintPreviewParams)
ThumbnailsInternalBorder (TImageEnMView)
ThumbnailsInternalBorderColor (TImageEnMView)
ThumbnailSize (TIEImageEnGlobalSettings)
ThumbnailSpacing (TIOPrintPreviewParams)
ThumbnailStyle (TIOPrintPreviewParams)
ThumbSizeInfo (TImageEnMView)
ThumbsRounded (TImageEnMView)
ThumbWidth (TImageEnMView)
TidyIPTCStr
TIE2DPoint
TIE2DPointArray
TIE3DPoint
TIEAcquireApi
TIEAcquireApis
TIEAcquireBitmapEvent
TIEAcquireDeviceType
TIEAcquireOrientation
TIEAcquireParams
TIEAcquirePixelType
TIEAcquireRotation
TIEAcquireSource
TIEAfterAcquireBitmapEvent
TIEAfterEvent
TIEAfterEventEvent
TIEAlignLayers
TIEAlignment
TIEAnimation
TIEAnimationGetImageEvent
TIEAnimationGetImageInfoEvent
TIEAnimationImageInfo
TIEAnimationReleaseImageEvent
TIEAnimationTextEvent
TIEAntialiasMode
TIEArrayOfByte
TIEArrayOfDouble
TIEArrayOfDWord
TIEArrayOfInteger
TIEArrayOfSingle
TIEArrayOfTRGB
TIEAutoSaveErrorEvent
TIEBackgroundStyle
TIEBaseBitmap
TIEBeforeLoadImageEvent
TIEBitmap
TIEBitmapOrigin
TIEBooleanEx
TIECanvas
TIECellClickEvent
TIECellStyle
TIEChannel
TIEChannels
TIECheckboxClickEvent
TIECircularFlow
TIECmpMode
TIEColorCellState
TIEColorPalette
TIEColorSpace
TIECommonDialog
TIECommonDialogView
TIECompareFunction
TIEConvertColorFunction
TIECopyPasteType
TIECreateAVIFileResult
TIECreateImageEvent
TIECropAlgorithm
TIECropToolInteraction
TIECropToolInteractionMode
TIECropToolOptions
TIECSSource
TIECurve
TIECustomMultiBitmap
TIEDataAccess
TIEDBBitmap
TIEDBMultiBitmap
TIEDBorderStyle
TIEDcimAcquire
TIEDefaultFolder
TIEDeinterlaceMode
TIEDestroyImageEvent
TIEDialogBackgroundStyle
TIEDialogCenter
TIEDialogsMeasureUnit
TIEDialogType
TIEDibBitmap
TIEDicomCompression
TIEDicomInclude
TIEDicomRange
TIEDicomTag
TIEDicomTags
TIEDicomTagSource
TIEDicomTagType
TIEDictionary
TIEDictionaryParserLang
TIEDirectShow
TIEDirectShowState
TIEDitherMethod
TIEDitherType
TIEDoPreviewsEvent
TIEDoubleList
TIEDrawingInfo
TIEDrawLayerBoxEvent
TIEDrawLayerEvent
TIEDrawLayerGrip
TIEDrawObjectEvent
TIEDRect
TIEDRectangle
TIEDropFilesEvent
TIEDRotatedRectangle
TIEDSCapturemode
TIEDSRunResult
TIEDVDMenu
TIEEdit
TIEEncryptionAlgorithm
TIEEquirectangularRenderer
TIEEquirectangularRendererQuality
TIEEXIFInteroperabilityIndexUsage
TIEEXIFMakerNotesHandling
TIEFastDrawing
TIEFileDlgPreviewEvent
TIEFileDragDrop
TIEFileDragDropActions
TIEFileDropEvent
TIEFileFormatInfo
TIEFileOperationOptions
TIEFilterPresets
TIEFindFormatMethod
TIEFinishSmoothTaskEvent
TIEFolderChangeEvent
TIEFolderFileTypes
TIEFolderImageType
TIEFolderInteractOptions
TIEFolderWatch
TIEFontQuality
TIEFtImageType
TIEGestureFlags
TIEGestureID
TIEGestureLayerMoveOptions
TIEGestureLayerRotateOptions
TIEGestureOptions
TIEGesturePanOptions
TIEGestureZoomOptions
TIEGetHintTextEvent
TIEGetTextEvent
TIEGetTextExEvent
TIEGIFAction
TIEGradientBar
TIEGradientDir
TIEGridKind
TIEGrip
TIEGripShape
TIEHAlign
TIEHashAlgorithm
TIEHashStream
TIEHistogram
TIEHistogramContent
TIEHorizontalFlow
TIEHorizontalPos
TIEICC Supported Color Formats
TIEICC
TIEImageAddEvent
TIEImageAtPosEvent
TIEImageDraw2Event
TIEImageDrawEvent
TIEImageDrawEventEx
TIEImageEnAnnot
TIEImageEnGestureEvent
TIEImageEnGlobalSettings
TIEImageEnMViewDefaultText
TIEImageEnMViewIconSize
TIEImageEnMViewSortBy
TIEImageEnMViewSortCompare
TIEImageEnMViewSortCompareEx
TIEImageIDRequestEvent
TIEImageIDRequestExEvent
TIEImageLayer
TIEImageList
TIEImageNotifyEvent
TIEImageOutEvent
TIEImageSelectEvent
TIEImageStorageMode
TIEImagingAnnot
TIEImagingObject
TIEIntegerList
TIEIOPreviewEvent
TIEIOSeekDestination (TImageEnIO)
TIEIPTCInfoList
TIEJob
TIEJobEvent
TIEJpegCopyMarkers
TIEJpegTransform
TIELabelBorder
TIELabelPos
TIELayer Property Consts
TIELayer
TIELayerEvent
TIELayerFeatures
TIELayerKind
TIELayerMagnification
TIELayerMoveSizeEvent
TIELayerNotify
TIELayerOptions
TIELayersResizeAspectRatio
TIELayout
TIELineEndShape
TIELineLabelPos
TIELineLayer
TIEList
TIEListSortCompareFunc
TIELocation
TIEMagicWandMode
TIEMagnifySource
TIEMagnifyStyle
TIEMarkerList
TIEMask
TIEMCheckboxPos
TIEMCheckboxType
TIEMDisplayMode
TIEMeasureUnits
TIEMedFilType
TIEMediaFoundationAudioRenderer
TIEMediaFoundationNotifyEvent
TIEMediaFoundationSourceReader
TIEMediaFoundationVideoProcessor
TIEMediaFoundationVideoProcessorMirror
TIEMediaFoundationVideoProcessorRotation
TIEMediaFoundationVideoSampleDecoder
TIEMediaFountationNotifyType
TIEMediaReader
TIEMemoEditCharInfo
TIEMemoryAllocator
TIEMemoShortCut
TIEMemoShortCuts
TIEMFReceivedSample
TIEMIOOptionsEx
TIEMiscPluginsImageMagick
TIEMKeyInteract
TIEMKeyInteractItems
TIEMMouseInteract
TIEMMouseInteractItems
TIEMouseInResizingGripEvent
TIEMouseInteract
TIEMouseInteractGr
TIEMouseInteractItems
TIEMouseInteractItemsGr
TIEMouseInteractVt
TIEMouseInteractVtItems
TIEMouseWheelParams
TIEMouseWheelParamsAction
TIEMouseWheelParamsVariation
TIEMouseWheelParamsZoomPosition
TIEMProgressEvent
TIEMSelectMode
TIEMStyle
TIEMTextPos
TIEMThumbnailOptionsEx
TIEMTruncSide
TIEMultiBitmap
TIEMultiCallBack
TIEMultiSelectionOptions
TIEMViewerGestures
TIEMViewImageNotifyEvent
TIENavigatorOptions
TIENewLayerEvent
TIEOCRLanguages
TIEOnDrawBackground
TIEOnDrawCanvas
TIEOnDrawPolygon
TIEOnPresentMeasure
TIEOnTransitionPaint
TIEOnUndoRedoEvent
TIEOpSys
TIEPaintCellEvent
TIEPaletteType
TIEPanZoomType
TIEPixelFormat
TIEPixelFormatSet
TIEPlayFrameEvent
TIEPoint
TIEPointArray
TIEPolylineClosingMode
TIEPolylineEndingMode
TIEPolylineLayer
TIEPortableDevice
TIEPortableDeviceLogEvent
TIEPortableDevices
TIEPortableDevicesSource
TIEPreviewEvent
TIEPreviewSize
TIEProcessStreamEvent
TIEProgressEvent
TIEPropertyPages
TIEPropertyPagesType
TIEQuadCoords
TIEQuality
TIEReadImageStream
TIERectangle
TIEReferenceClock
TIERenderOperation
TIERenderVirtualPixel
TIEResourceBookmark
TIEResourceExtractor
TIERFBClient
TIERFBClipboardTextEvent
TIERFBPixelFormat
TIERFBUpdateRectEvent
TIERGBAPalette
TIERGBPalette
TIERotateCenter
TIERSOptions
TIERulerPosBase
TIERulerSnapping
TIERulerUnits
TIESaveDlgOpt
TIESaveSnapshotOptions
TIESaveUndoEvent
TIEScrollBarParams
TIESeek
TIESelectionBase
TIESelectionChangingEvent
TIESelectionOptions
TIESelOp
TIESetCursorEvent
TIEShape
TIEShapeLayer
TIEShowFormats
TIESize
TIESlippyMap
TIESlippyMapProvider
TIESmallIntArray
TIESmoothTask
TIESoftCropMode
TIESortMethod
TIESortOrder
TIESourceType
TIESpecialKeyEvent
TIEStoreType
TIESwapFunction
TIETagsHandler
TIETagType
TIETextControl
TIETextEditorEvent
TIETextFormat
TIETextLayer
TIEThreshMode
TIEThumbSizeType
TIETIFFHandler Examples
TIETIFFHandler
TIETIFTagsReader
TIETimeFormat
TIETransferFormat
TIETransitionStepEvent
TIETransitionTiming
TIETransitionType
TIETransparentStyle
TIETryImageStream
TIETVStandard
TIETVStandards
TIETwainParams
TIETWFilter
TIEUndoSource
TIEUnits
TIEUpdateReason
TIEUserSelectObject
TIEVAlign
TIEVArrowShape
TIEVBitmap
TIEVDragLenEndEvent
TIEVerticalPos
TIEVideoFormat
TIEView
TIEViewerGestures
TIEViewRulerParams
TIEVirtualBitmapProvider
TIEVirtualKeyEvent
TIEVisionAdaptiveMethod
TIEVisionBackgroundSubtractor
TIEVisionBarCodeScanner
TIEVisionBarCodeSymbol
TIEVisionBase
TIEVisionBaseVector
TIEVisionBGR16
TIEVisionBGR8
TIEVisionBorderType
TIEVisionBox2D
TIEVisionCascadeClassifier
TIEVisionChannelFormat
TIEVisionCmpOp
TIEVisionContourApproxMethod
TIEVisionContourRetrMode
TIEVisionCovarFlags
TIEVisionCvtColorCode
TIEVisionDCTFlags
TIEVisionDFTFlags
TIEVisionDrawing
TIEVisionExistingMemoryStream
TIEVisionFaceRecognizer
TIEVisionFileFormat
TIEVisionFileStream
TIEVisionFileStreamMode
TIEVisionFlipMode
TIEVisionFloatPair
TIEVisionGEMMFlags
TIEVisionHaarBoostType
TIEVisionHaarDetectObjectsFlags
TIEVisionHaarInvert
TIEVisionHaarMode
TIEVisionHaarStumpError
TIEVisionHaarTraining
TIEVisionHistogram
TIEVisionHistogramType
TIEVisionImage
TIEVisionImageList
TIEVisionInpaintMethod
TIEVisionInputOutput
TIEVisionInterpolation
TIEVisionInvertMethod
TIEVisionLanguages
TIEVisionLibrary
TIEVisionLibraryInfo
TIEVisionMath
TIEVisionMemoryImageList
TIEVisionMemorySharedImageList
TIEVisionMemoryStream
TIEVisionMulSpectrumsFlags
TIEVisionObjectsFinder
TIEVisionObjectTracker
TIEVisionOCR
TIEVisionOCRBox
TIEVisionOCREngine
TIEVisionOCROrientation
TIEVisionOCRPageSegmentationMode
TIEVisionOCRScriptDirection
TIEVisionOCRTextlineOrder
TIEVisionOCRWordBox
TIEVisionOCRWritingDirection
TIEVisionOptimizerFunction
TIEVisionPeopleDetector
TIEVisionPoint
TIEVisionPoint2f
TIEVisionPropertyTree
TIEVisionPropertyTreeFormat
TIEVisionRect
TIEVisionReduceOp
TIEVisionRGB16
TIEVisionRGB8
TIEVisionRotatedRect
TIEVisionScalar
TIEVisionScalarInt32
TIEVisionSeekOffset
TIEVisionSize
TIEVisionSize2f
TIEVisionSmoothType
TIEVisionSolveMethod
TIEVisionSortOrder
TIEVisionStitcher
TIEVisionStitchingStatus
TIEVisionStream
TIEVisionString
TIEVisionStructuringElementShape
TIEVisionSVBFlags
TIEVisionSVDFlags
TIEVisionTempDirName
TIEVisionTempFileImageList
TIEVisionTempFileName
TIEVisionTempFileStream
TIEVisionTermCriteria
TIEVisionTermCriteriaType
TIEVisionThresholdType
TIEVisionVectorByte
TIEVisionVectorDouble
TIEVisionVectorFloatPair
TIEVisionVectorImageRef
TIEVisionVectorInt32
TIEVisionVectorObjRef
TIEVisionVectorOCRBox
TIEVisionVectorPoint
TIEVisionVectorRect
TIEVisionVectorScalarInt32
TIEVisionVectorString
TIEVisionWString
TIEVMeasureHintEvent
TIEVNewObject
TIEVObjectClickEvent
TIEVObjectKind
TIEVObjectMoveResizeEvent
TIEVRulerType
TIEVSoftShadow
TIEVStyle
TIEVTextEditEvent
TIEVUndoMode
TIEVValType
TIEWallpaperStyle
TIEWia
TIEWiaAttrib
TIEWiaDeviceInfo
TIEWiaItem
TIEWiaItemType
TIEWiaValues
TIEWICReader
TIEWICTIFFCompressionMethod
TIEWICWriter
TIEWordTransitionParams
TIEWPDObject
TIEWPDObjectAdvancedProps
TIEWPDObjectType
TIEWPDObjectTypes
TIEWriteImageStream
TIEWrongImageEvent
TIEZoomEvent
TIFF_BigTIFF (TIOParams)
TIFF_ByteOrder (TIOParams)
TIFF_Compression (TIOParams)
TIFF_DocumentName (TIOParams)
TIFF_EnableAdjustOrientation (TIOParams)
TIFF_FillOrder (TIOParams)
TIFF_GetTile (TIOParams)
TIFF_ImageCount (TIOParams)
TIFF_ImageDescription (TIOParams)
TIFF_ImageIndex (TIOParams)
TIFF_JPEGColorSpace (TIOParams)
TIFF_JPEGQuality (TIOParams)
TIFF_NewSubfileType (TIOParams)
TIFF_Orientation (TIOParams)
TIFF_PageCount (TIOParams)
TIFF_PageName (TIOParams)
TIFF_PageNumber (TIOParams)
TIFF_PhotometInterpret (TIOParams)
TIFF_PhotoshopImageResources (TIOParams)
TIFF_PhotoshopImageSourceData (TIOParams)
TIFF_PlanarConf (TIOParams)
TIFF_StripCount (TIOParams)
TIFF_SubIndex (TIOParams)
TIFF_XPos (TIOParams)
TIFF_YPos (TIOParams)
TIFF_ZIPCompression (TIOParams)
TIFFCompressionMethod (TIEWICWriter)
TileBitmapOntoCanvas
TImageEn
TImageEnDBVect
TImageEnDBView
TImageEnFolderMView Actions
TImageEnFolderMView
TImageEnIO
TImageEnMIO
TImageEnMView Actions
TImageEnMView
TImageEnPaletteDialog
TImageEnProc
TImageEnVect Actions
TImageEnVect
TImageEnView Actions
TImageEnView
TimeFormat (TIEDirectShow)
TimeStamp (TIEMFReceivedSample)
TIOBMPCompression
TIOBMPRAWChannelOrder
TIOBMPRAWDataFormat
TIOBMPRAWPlanes
TIOBMPVersion
TIOByteOrder
TIOFileType
TIOICOBitCount
TIOICOSizes
TIOJ2000ColorSpace
TIOJ2000ScalableBy
TIOJPEGColorspace
TIOJPEGCromaSubsampling
TIOJPEGDctMethod
TIOJPEGScale
TIOMultiParams
TIOParams
TIOParamsHelper
TIOPCXCompression
TIOPDFCompression
TIOPDFPaperSize
TIOPNGFilter
TIOPreviewsParams
TIOPreviewsParamsItems
TIOPrintPreviewParams
TIOPrintPreviewPosition
TIOPrintPreviewSize
TIOPrintPreviewThumbnailStyle
TIOPSCompression
TIOTIFFCompression
TIOTIFFPhotometInterpret
TIPDialogParams
TLightOrigin
TListViewHelper
TMsgLanguage
TMsgLanguageWords
TOnError
TOpenImageEnDialog
TopTextFont (TImageEnMView)
TPointArray
TPointerArray
TPreviewEffects
TPreviewParams
TProgressRec
TPRPreviewsParams
TPRPreviewsParamsItems
trace (TIEVisionMath)
Tracking (TIEScrollBarParams)
TrackMouseSelection (TImageEnMView)
train (TIEVisionFaceRecognizer)
trainCascadeClassifier (TIEVisionHaarTraining)
TransferFormat (TIEWia)
Transform (TIEICC)
transform (TIEVisionMath)
TransitionDuration (TImageEnMView)
TransitionEffect (TImageEnMView)
TransitionRunning (TImageEnMView)
TransitionRunning (TImageEnView)
TransitionsDrawAlternative (TIEImageEnGlobalSettings)
TransitionsDrawShape (TIEImageEnGlobalSettings)
TransitionTiming (TImageEnView)
TranslateBitmap (TIEMask)
Transparency (TIELayer)
TransparentStyle (TIEColorPalette)
transpose (TIEVisionImage)
transpose (TIEVisionMath)
TResampleFilter
TRGB
TRGB2TColor
TRGB48
TRGB48ROW
TRGBA
TRGBA48
TRulerBox
TRulerClickEvent
TRulerDir
TRulerDirs
TRulerGripClickEvent
TRulerGripPosChangeEvent
TSaveImageEnDialog
TSingleArray
TStringGridHelper
TUnableToLoadImageEvent
TunerChannel (TIEDirectShow)
TunerFindSignal (TIEDirectShow)
TViewChangeEvent
TViewChangingEvent
Twain country constants
Twain language constants
TwainAcquireClose (TImageEnIO)
TwainAcquireClose (TImageEnMIO)
TwainAcquireOpen (TImageEnIO)
TwainAcquireOpen (TImageEnMIO)
TwainParams (TImageEnIO)
TwainParams (TImageEnMIO)
TwainTransferBufferSize (TIEImageEnGlobalSettings)
TWallpaperEffect
TWatchActions
TWatchOptions
TWPDContentType
TWPDObjectFormat
TYCbCr
TypeIndex (TIEResourceBookmark)
Types (TIEResourceExtractor)
TypesCount (TIEResourceExtractor)

U

UncheckAll (TImageEnMView)
UndefinedImageSize (TIETwainParams)
Undo Operation Consts
Undo (TImageEnProc)
UndoAt (TImageEnProc)
UndoCaptions (TImageEnProc)
UndoCount (TImageEnProc)
UndoLimit (TImageEnProc)
UndoLocation (TImageEnProc)
UndoRect (TImageEnProc)
UngroupObjects (TImageEnVect)
UnicodeOS (TIEImageEnGlobalSettings)
Units (TIEViewRulerParams)
UnlockFrameBuffer (TIERFBClient)
UnlockPaint (TImageEnMView)
UnlockPaint (TImageEnView)
UnlockUpdate (TIECustomMultiBitmap)
UnLockUpdate (TImageEnFolderMView)
UnLockUpdate (TImageEnMView)
UnlockUpdate (TImageEnView)
UnlockUpdate (TRulerBox)
UnLockUpdateEx (TImageEnView)
UnSelAllObjects (TImageEnVect)
UnselectImage (TImageEnMView)
UnSelObject (TImageEnVect)
UnsharpMask (TImageEnProc)
Update (TIECustomMultiBitmap)
Update (TIEDBMultiBitmap)
Update (TIETwainParams)
Update (TImageEnIO)
Update (TImageEnMIO)
Update (TImageEnMView)
Update (TImageEnProc)
Update (TImageEnView)
UpdateDatabaseImage (TIEDBBitmap)
UpdateEXIFThumbnail (TIOParams)
UpdateFromBitmap (THistogramBox)
UpdateFromHistogram (THistogramBox)
UpdateFromTBitmap (TIEBitmap)
UpdateImage (TImageEnMView)
UpdateItems (TIEWia)
UpdateNoPaint (TImageEnView)
UpdateReason (TImageEnView)
UpdateRect (TImageEnView)
UpdateVideoInputs (TIEMediaFoundationSourceReader)
Updating and Compatibility
UpperGap (TImageEnMView)
UseButtonGlyphsInDialogs (TIEImageEnGlobalSettings)
UseCentralGrip (TImageEnVect)
UseCMYKProfile (TIEImageEnGlobalSettings)
UseCodecOptions (TIEWICWriter)
UseDefaultFileExists (TIEImageEnGlobalSettings)
UseGDIPlus (TIEImageEnGlobalSettings)
UseMemoryHandle (TIETwainParams)
UseMemoryStream (TIEDBBitmap)
UseMemoryStream (TIEDBMultiBitmap)
UseMemoryStream (TImageEnDBView)
UserData (TIELayer)
UserDataLen (TIELayer)
UseRelativeStreams (TIEImageEnGlobalSettings)
UseResampleFilter (TIEImageLayer)
UserKey (TIESlippyMap)

V

Val (THSVBox)
Value (TIEMouseWheelParams)
Variation (TIEMouseWheelParams)
VclBitmap (TIEBitmap)
Version (TIETIFFHandler)
VertBorder (TImageEnMView)
VertGripsColor (TIEViewRulerParams)
VertGripsCount (TIEViewRulerParams)
VertGripsKind (TIEViewRulerParams)
VertGripsMax (TIEViewRulerParams)
VertGripsMin (TIEViewRulerParams)
VertGripsPos (TIEViewRulerParams)
VerticalTileSlices (TIEWICWriter)
VertInverted (TIEViewRulerParams)
VertMargin (TIEColorPalette)
VertPos (TIEViewRulerParams)
VertWidth (TIEViewRulerParams)
VideoCodecQuality (TIEDirectShow)
VideoCodecs (TIEDirectShow)
VideoFormats (TIEDirectShow)
VideoFormatsCount (TIEDirectShow)
VideoInputs (TIEDirectShow)
VideoInputs (TIEMediaFoundationSourceReader)
VideoInputSource (TIEDirectShow)
VideoInputSources (TIEDirectShow)
VideoProcessor (TIEMediaFoundationSourceReader)
ViewHeight (TIEAnimation)
ViewMax (TRulerBox)
ViewMin (TRulerBox)
ViewPos (TRulerBox)
ViewWidth (TIEAnimation)
ViewX (TIEColorPalette)
ViewX (TImageEnMView)
ViewX (TImageEnView)
ViewY (TIEColorPalette)
ViewY (TImageEnMView)
ViewY (TImageEnView)
VirtualBitmapProvider (TIEBitmap)
Visible (TIELayer)
VisibleBitmapRect (TImageEnView)
VisibleBox (TIELayer)
VisibleDialog (TIEAcquireParams)
VisibleDialog (TIETwainParams)
VisibleFrame (TImageEnMView)
VisibleImages (TIECircularFlow)
VisibleRowCount (TIEColorPalette)
VisibleSelection (TImageEnMView)
VisibleSelection (TImageEnView)
VScrollBarParams (TImageEnMView)
VScrollBarParams (TImageEnView)
VScrollWidth (TIEImageEnGlobalSettings)

W

WaitThreads (TImageEnIO)
WallisFilter (TImageEnProc)
Wallpaper (TImageEnMView)
Wallpaper (TImageEnView)
WallpaperStyle (TImageEnMView)
WallpaperStyle (TImageEnView)
Wave (TImageEnProc)
What's New
WhiteBalance_AutoWhite (TImageEnProc)
WhiteBalance_coef (TImageEnProc)
WhiteBalance_GrayWorld (TImageEnProc)
WhiteBalance_WhiteAt (TImageEnProc)
WhiteValue (TIEBitmap)
WIA Camera device properties
WIA device properties
WIA item properties
WIAParams (TImageEnIO)
WIAParams (TImageEnMIO)
WicRead (TIEBitmap)
Width (TIEBitmap)
Width (TIEDibBitmap)
Width (TIELayer)
Width (TIEMask)
Width (TIOParams)
Width (TIOPrintPreviewParams)
WindowsAddToRecentDocs
WindowsCopy
WindowsDesktopFolder
WindowsErase
WindowsLaunchFile
WindowsLocalAppDataFolder
WindowsMove
WindowsMyDocumentsFolder
WindowsMyMusicFolder
WindowsMyPicturesFolder
WindowsMyVideosFolder
WindowsProgramFilesFolder
WindowsRename
WindowsSelectDirectory
wlimit
WordTransitionParams (TIEImageEnGlobalSettings)
Write (TIEBitmap)
Write (TIEDBBitmap)
Write (TIEHashStream)
Write (TIEMultiBitmap)
write (TIEVisionStream)
WriteFile (TIETIFFHandler)
WriteGridToExif (TStringGridHelper)
WriteGridToIPTC (TStringGridHelper)
WriteHiddenData (TImageEnProc)
WriteHiddenText (TImageEnProc)
WriteIPTCDescriptionAndKeywordsToFile
WriteIPTCField (TIOParams)
WriteListToExif (TListViewHelper)
WriteListToIPTC (TListViewHelper)
WriteStream (TIETIFFHandler)

X

X1 (TIEMask)
X2 (TIEMask)
XBmp2Scr (TImageEnView)
XMP_AsDateTime (TIOParamsHelper)
XMP_AsInt (TIOParamsHelper)
XMP_AsStr (TIOParamsHelper)
XMP_HasXMPData (TIOParamsHelper)
XMP_Info (TIOParams)
XMP_WriteToStrings (TIOParamsHelper)
XMPCompatibleFile
XResolution (TIEAcquireParams)
XResolution (TIETwainParams)
XScaling (TIETwainParams)
XScr2Bmp (TImageEnView)

Y

Y1 (TIEMask)
Y2 (TIEMask)
YBmp2Scr (TImageEnView)
YResolution (TIEAcquireParams)
YResolution (TIETwainParams)
YScaling (TIETwainParams)
YScr2Bmp (TImageEnView)

Z

zcompress (TIEVisionInputOutput)
zdecompress (TIEVisionInputOutput)
Zoom (TIEMViewerGestures)
Zoom (TIESlippyMap)
Zoom (TIEViewerGestures)
Zoom (TImageEnMView)
Zoom (TImageEnView)
ZoomAt (TImageEnView)
ZoomFilter (TImageEnView)
ZoomFilter (TOpenImageEnDialog)
ZoomIn (TImageEnView)
ZoomObjectsWidth (TImageEnVect)
ZoomOut (TImageEnView)
ZoomPosition (TIEMouseWheelParams)
ZoomSelection (TImageEnView)
ZoomSelectionAspectRatio (TImageEnView)
ZoomX (TImageEnView)
ZoomY (TImageEnView)


ImageEn Features

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 float 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


Common Usage Scenarios

Common Usage Scenarios

See also: TImageEnView, TImageEnIO and TImageEnProc

See also: TImageEnFolderMView, TImageEnMIO and TImageEnProc

See also: TImageEnMView, TImageEnMIO and TImageEnProc

See also: TImageEnMView, TImageEnMIO and TImageEnProc

See also: TImageEnMView, TImageEnMIO and TIEAcquireParams

See also: TImageEnView, TImageEnIO and TIEMediaFoundationSourceReader

See also: TImageEnView, TImageEnIO and TIEDirectShow

See also: TImageEnVect, TImageEnIO and TImageEnProc


ImageEn Hierarchy

ImageEn Hierarchy

TObject

• TIEScrollBarParams

• TIEMouseWheelParams

• TIEList

• TIEIntegerList

• TIEDoubleList

• TIEMarkerList

• TIEIPTCInfoList

• TIEImagingObject

• TIEImagingAnnot

• TIEMask

• TIEBaseBitmap

• TIEBitmap

• TIEDibBitmap

• TIETIFTagsReader

• TIETagsHandler

• TIETIFFHandler

• TIEICC

• TIEDICOMTags

• TIEDirectShow

• TIEMediaFoundationSourceReader

• TIEMediaReader

• TIEPortableDevices

• TIEWia

• TIEWICReader

• TIEWICWriter

• TComponent

• TImageEnMIO

• TImageEnIO (encapsulates TIEDirectShow, TIEWia, TIEMediaFoundationSourceReader)

• TImageEnProc

• TIECommonDialog

• TOpenImageEnDialog

• TSaveImageEnDialog

• TCustomControl

• TIEView

• TImageEnMView (encapsulates TImageEnMIO, TImageEnProc)

• TImageEnView (encapsulates TImageEnIO, TImageEnProc)

• TImageEnDBView

• TImageEnVect

• TImageEnDBVect

• TImageEn alias of TImageEnView

• THistogramBox

• THSVBox

• TIEColorPalette

• TIEGradientBar

• TRulerBox

• TForm

• TImageEnPaletteDialog


What's New

What's New

VERSION 7.0.0

New Features

- Added: CropTool can be locked to specific sizes
- Added: Symmetric Neareast Neighbour smoothing filter
- Added: Side grips of CropTool can be set to honor Aspect locking
- Added: Pixelize effect
- Added: TImageEnProc.CalcImageNumColors works on all pixel formats (natively ie24RGB and ie1g)
- Added: Pencil Sketch effect
- Added: Improved Russian translations
- Added: Can now hide deprecated by methods by version number
- Added: 40 new shapes for IEDrawShape/IECreateShapeRegion
- Added: Rotation support for IEDrawShape/IECreateShapeRegion
- Added: Can specify custom shapes for transition effects
- Added: TImageEnView.LayersFastDrawing property to speed up layer drawing
- Added: Rewritten TImageEnProc.RemoveIsolatedPixels algorithm
- Added: Proc.TextOut now uses GDI+ even for rotated text
- Added: Consts can be passed to Layer.PosX/PosY to quickly center or align
- Added: Borders can be applied to image layers
- Added: New layer types for TImageEnView: text, shape, line and polyline layers
- Added: TImageEnIO support for ImageEn native image format
- Added: TImageEnView.Layers to import objects from TImageEnVect IEV, ALL or DXF files as layers
- Added: TIETwainParams.IsCapabilitySupported method to check if a Twain capability is supported
- Added: Much improved clipboard handling
- Added: IECompareImages and TImageEnProc.CompareWith now supports all pixel formats
- Added: TImageEnView.LayersCropBackground
- Added: Forty new layer and other TActions
- Added: Some optimization to initialization of TImageEnView
- Added: DICOM, supported some 32 bit gray scale images (as ie32f pixel format)
- Added: Loading of encrypted PDF files in WPViewPDF
- Added: Layers can be saved and loaded to JPEG and TIFF EXIF data (using Params.ImageEnAnnot)
- Added: Layers can be saved and loaded as TIFF Wang annotations (using Params.ImagingAnnot)
- Added: Styling improvements for TImageEnMView
- Added: Full support for VCL theming (XE2 and newer)
- Added: Print methods can print layers, imaging and ImageEn annotations
- Added: Layer properties can now be set for all selected layers
- Added: Exporting of layers and objects to SVG (Scalable Vector Graphics)
- Added: Now supports RAD Studio 10.2 Tokyo
- Added: Improved layout of Proc Previews dialog
- Added: Improved BMP reader
- Added: TImageEnMView.Assign supports TImageList
- Added: TImageEnMView.SetImageSize can specify size of images
- Added: Documentation now includes an index
- Added: THistogramBox.Scale to plot linear, linear clipped and logarithmic scaled histograms
- Added: Histogram in Proc Previews dialog, added scale combobox
- Added: TImageEnView.Modified

Bug Fixes

- Fixed: Odd colors when load uncompressed DICOM RGB images
- Fixed: ImageEnView cursors may not auto-set as relevant
- Fixed: TImageEnView.ZoomFilter now doesn't change inside MouseDown/MouseUp events
- Fixed: Unable to load some GIF files
- Fixed: Slow ARW find file format by content
- Fixed: Added Nikon Coolpix S50 maker tags detection
- Fixed: TImageEnProc.CalcImageNumColors always returns 2 on black/white images
- Fixed: TDBImageEnVect may not update database for objects added via AddNewObject()
- Fixed: Slow ARW loading
- Fixed: TImageEnView.IsEmpty2 may give incorrect results when multiple layers are used
- Fixed: TImageEnFolderMView may not display IEF_Desktop_Folder or IEF_Drives_Folder
- Fixed: TImageEnProc.TextOut_Legacy does not support both angle and text alignment
- Fixed: Clicking background does not deselect layer if multiple selection is disabled
- Fixed: Use of LYR_SELECTED_LAYERS with LayersMove() fails if multiple selection is disabled
- Fixed: TImageEnMView.Acquire locks up when scanner jams
- Fixed: TImageEnProc.HSVvar and HSLvar incorrectly handles gray scale values
- Fixed: May not print when using TActions
- Fixed: rfNone image stretching may not process last column/row
- Fixed: Maxi print preview may not used specified measurement unit
- Fixed: Corruption when LayersRotationFilter ierBicubic or ierBilinear on not RGB24 images
- Fixed: EXIF data not assigned when acquiring via WPD
- Fixed: May get flickering when using run-time themes and borders are disabled
- Fixed: Some panels in ImageEn open dialog are not themed
- Fixed: ImageEn prevents selection of Ctl3D borders (now allowed, but not default)
- Fixed: TIEAcquireParams.FindSourceByName fails with WIA devices
- Fixed: Ugly initial view for TImageEnView Rulers
- Fixed: Preview button in Open dialog fails if "Show Preview" not checked
- Fixed: May fail to load layer files saved with JPEG compression
- Fixed: IsEmpty2 does not return false on startup
- Fixed: Histogram not blank for blank image

Changes to Classes

- Added: TImageEnProc.SymmetricNearestNeighbour method
- Added: TImageEnProc.Pixelize method
- Added: TImageEnProc.PencilSketch method
- Changed: IEPDFFrameCount uses plug-ins if available in preference to internal code
- Added: TIEImageEnGlobalSettings.BufferedReadStreamSize property
- Added: THistogramBox.Clear
- Added: TImageEnView.LayersInsert now has all overloads of LayersAdd
- Added: IEGlobalSettings().EXIFMakerNotesHandling to decide behavior on unsupported MarkerNotes
- Removed: TImageEnView.LayersSync property
- Added: TImageEnView.CropToolInteraction.Selected property
- Added: Helper methods: IEPointsToPaperSize and IECalcPaperSize
- Added: RemoveIsolatedPixels supports progress
- Added: TIELayer.Tag property
- Added: TImageEnVect.CopyAllObjectsTo allows copying objects to a TImageEnView as layers
- Added: TIEBitmap.CopyToClipboard
- Added: New Action: TImageEnViewCutToClipboard
- Added: TImageEnView.OnLayerSelectionChange
- Changed: TImageEnView.XScr2Bmp, YScr2Bmp, XBmp2Scr and YBmp2Scr take care of current layer bitmap position and size
- Added: Forty new layer actions: TImageEnViewMouseCreateImageLayers, TImageEnViewMouseCreateShapeLayers, TImageEnViewMouseCreateLineLayers, TImageEnViewMouseCreatePolylineLayers, TImageEnViewMouseCreateTextLayers,
TImageEnViewLayersPromptToOpen, TImageEnViewLayersSave, TImageEnViewLayersPromptToSave, TImageEnViewLayersAlignLeftEdges, TImageEnViewLayersAlignRightEdges, TImageEnViewLayersAlignTopEdges,
TImageEnViewLayersAlignBottomEdges, TImageEnViewLayersAlignHorizontalCenters, TImageEnViewLayersAlignVerticalCenters, TImageEnViewLayersMatchWidth, TImageEnViewLayersMatchHeight, TImageEnViewLayersCropBackground,
TImageEnViewLayersFastDrawing, TIELayerAspectRatioLocked, TIELayerLocked, TIELayerRestoreAspectRatio, TIELayerSizeToFit, TIELayerSoftShadow, TIELayerVisible, TIEImageLayerRestoreSize, TIEImageLayerExecuteOpenDialog,
TIEPolylineLayerPolylineClosed, TIELayerRotateLeft, TIELayerRotateRight, TIELayerConvertToImageLayer, TImageEnViewImageLayersAdd, TImageEnViewShapeLayersAdd, TImageEnViewLineLayersAdd, TImageEnViewPolylineLayersAdd,
TImageEnViewTextLayersAdd, TIELayerEditText, TIELineLayerShowLabel, TIELayerResetRotate, TIELayerCropped
- Added: Other new actions: TIEFolderMViewIncludeSubFolders, TImageEnViewCropToolEnable, TImageEnViewCropToolEnactCrop, TImageEnViewCropToolCancelCrop, TImageEnViewClearAll
- Added: TImageEnMView.AssignLayers to display ImageEnView layers in a TImageEnMView
- Added: Rect overloads for TImageEnProc.TextOut
- Added: TIEBitmap.SyncAlphaChannel to make it easier to assign alternative sources for alpha channel
- Added: TIEBitmap.RenderToCanvas optional BackgroundColor parameter to render images with transparency
- Added: IEGlobalSettings().PreviewImageBackgroundStyle affects Print Preview dialog
- Changed: TImageEnMView Unpublished and documented: MissingFileIcon and DefaultFileIcon
- Changed: TImageEnMView Published: ShowThumbnailHint, SelectedFontColor, ThumbnailResampleFilter, ThumbnailDisplayFilter
- Changed: TImageEnView Published: MouseWheelParams, AutoCursors
- Changed: TImageEnView Unpublished: CropToolInteraction, UserInteractions
- Added: TIEImageEnGlobalSettings.DefaultPreviewHistogramScale property

Changes to Method Parameters

- Changed: TImageEnProc.CopyToClipboard
- Changed: TImageEnProc.PasteFromClipboard

Compatibility Issues

- TIELayer class moved to iexLayers unit
- Although backwardly compatible, TIEImageLayer should now be used for image layers
- DrawCustomShape/CreateCustomShapeRegion/TXCustomShape have been deprecated. Use new IEDrawShape/IECreateShapeRegion/TIEShape instead
- TImageEnView.LayersRotationDelayFilterOnPreview has been deprecated. Instead use TImageEnView.LayersFastDrawing = iefDelayed;
- TImageEnView.LayersCreateFromText has been deprecated. Instead use TImageEnView.LayersAdd Text overload
- TImageEnView.Layers are no longer created at position (0,0), they are given a default position which increments with each new layer
- TImageEnView.GetFitValue: now also considers any layers that lie outside the background image (layer 0)
- TImageEnView.MaxLayerWidth/MaxLayerHeight: result now now also includes any layers that lie outside the background image (layer 0)
- TImageEnView.LayersSync property has been removed
- By default, ImageEn no longer displays warnings for deprecated methods

Also See

- Complete History
- Updating and Compatibility

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


Updating and Compatibility

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 DisplayGridKind
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 LayerOptions. Also it is enabled by default if TImageEnView.Proc.AutoUndo is true
DisplayImageRect | 5.2.0 | Removed | Set VisibleBitmapRect 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 BitmapPolygonTIECropToolInteraction.RotatedRectangle renamed to RotatedPolygonTIECropToolInteraction.SetBitmapRectangle renamed to SetBitmapPolygonTIECropToolInteraction.ScreenRectangle renamed to ScreenPolygon
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 ThumbSizeInfo 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 TextBackgroundStyle and TextBackgroundColor. If you need custom styles for certain frames use OnGetTextEx
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 OnGetTextEx
Checkboxes | 5.2.0 | Changed Functionality | Checkbox properties of have changed. See Checkboxes and CheckboxPos
OnPlayFrame | 5.2.0 | Changed Parameters | Remove existing event and add event handler again
HighlightTextColor | 5.2.0 | Removed | Use SelectedFontColor (Note: Default of HighlightColor was clHighlightText, whereas ThumbnailsBackgroundSelected defaults to clNone)
SelectionStyle | 5.2.0 | Removed | Use ThumbnailsBackgroundSelected instead
HighlightColor | 5.2.0 | Removed | Use ThumbnailsBackgroundSelected (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 ThumbnailOptionsEx 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 OnFolderChanging and OnFolderChanged 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 FilterDefault is set
AdjustRectToAspectRatio | 6.0.0 | Changed Parameters | Replaced by IEAdjustRectToAspectRatio, but note change of parameter order
iexHelperFunctions.GetFileDetails | 6.0.0 | Removed | Use IEGetFileDetails 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, ShowFormats, 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 TIEImageEnGlobalSettings
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 MsgLanguage
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 CopySelectionToBitmap instead
TImageEnMView.SelectionAntialiased | 7.0.0 | Deprecated | Replaced by ThumbnailsBorderCurved
TImageEnMView.SetIEBitmap | 6.2.0 | Deprecated | Use SetImage 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 SaveUndo/SaveRedo instead
TImageEnProc.MergeIEBitmap | 6.2.0 | Deprecated | Use Merge instead
TImageEnProc.SelPasteFromClipStretch | 6.2.0 | Deprecated | Use PasteFromClipboard instead
TImageEnProc.ppeColorAdjust/ppeEffects | 6.0.0 | Deprecated | Use ppeColorAdjustments, ppeEditingFunctions, ppeSpecialEffects instead
TImageEnIO.LoadFromFileFormat/LoadFromStreamFormat | 6.2.0 | Deprecated | Use LoadFromFile/LoadFromStream instead
TImageEnIO.TIOParamsVals | 6.2.0 | Deprecated | Renamed TIOParamsVals class to TIOParams
TImageEnMIO.LoadFromFileFormat/LoadFromStreamFormat | 6.2.0 | Deprecated | Use LoadFromFile/LoadFromStream 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 IEDrawShape/IECreateShapeRegion/TIEShape instead
TImageEnVideoView/TImageEnVideoCap | 5.0.0 | Deprecated | Use DirectShow instead. See demos for more info


Installation

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"


ImageEn DLLs and 64bit Support

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 IELibAvailable

See Also

- IEAutoLoadIOPlugins

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


Language support

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().MsgLanguage.

Email support@xequte.com to add or improve translation for your language.


Color Management System

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;

EnableCMS 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: TIEICC

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.


Demos

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 TImageEnVect capabilities for creating and editing vector based images
Vectorial with User Data | \Demo\Annotations\UserDataVect\ | Store user data with objects in a TImageEnVect

Database Demos

Database Demo | \Demo\Database\DBDemo\ | Display of an image stored within a database blob field of the active record using TImageEnDBView
Database Path Demo | \Demo\Database\DBPath\ | Display of an image referenced by path within a database field of the active record using TImageEnDBView
Database Thumbnail Viewer | \Demo\Database\DBMultiBitmap\ | Use of TIEDBMultiBitmap to make a data-aware TImageEnMView 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 TImageEnMView
Database Vectorial Demo | \Demo\Database\DBDemoVect\ | Display of vector files stored within a database blob field using TImageEnDBVect
Database Vectorial Stream | \Demo\Database\ManualVect\ | Streamed display of vector files stored within a database blob field using TImageEnVect
DBCtrlGrid Demo | \Demo\Database\DBCtrl\ | Display of multiple images stored within a database blob field using TImageEnDBView and TDBCtrlGrid
DBCtrlGrid Path Demo | \Demo\Database\DBCtrlPath\ | Display of multiple images referenced by path within a database field using TImageEnDBView and TDBCtrlGrid

Display Demos

"Coverflow" Effect | \Demo\Display\MviewFlow\ | Demo of "Coverflow" style effect using a TImageEnMView
"Coverflow" Effect (Manual) | \Demo\Display\ManualFlow\ | Demo of "Coverflow" style effect (output to an TImageEnView)
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 TImageEnView
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 TImageEnView
Magnifier 2 | \Demo\Display\Magnify2\ | Magnify a portion of an image using a layer
Navigator 1 | \Demo\Display\Navigator\ | Use of SetNavigator to show the currently viewable portion of the image
Navigator 2 | \Demo\Display\Navigator2\ | Use of SetNavigator 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 ProjectDraw for advanced image display effects
Soft-Pan Navigation | \Demo\Display\SoftPan\ | Navigate an image with the cursor (using MouseInteract = 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 TImageEnView to create layers
Dragging to TImageEnMView | \Demo\DragDrop\TImageEnMView_FileList_1\ | Adding images to a TImageEnMView using drag and drop
Dragging to TImageEnVect | \Demo\DragDrop\ImageEnVect_DragDrop\ | Dragging text from a listbox to a TImageEnVect
TImageEnMView Drag-Drop | \Demo\DragDrop\MultiView2\ | Dragging of images within a TImageEnMView
TImageEnMView Drag-Drop 2 | \Demo\DragDrop\TImageEnMView_DragDrop\ | Dragging of images between multiple TImageEnMView

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 SkewDetection to automatically rotate poorly scanned images
Color Density Analysis | \Demo\ImageAnalysis\DensityAnalysis\ | Calculate the pixel density within an image (CalcDensityHistogram)
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 (FTCreateImage)
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 (SetScaleFromSelectionLen)
Separate Objects | \Demo\ImageAnalysis\SeparateObjects\ | Detect and separate all objects in an image (SeparateObjects)
Show Image Differences | \Demo\ImageAnalysis\ImagesDiff\ | Calculate and display the differences between two images (CompareWith)

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 TImageEnView
Layers and Text | \Demo\ImageEditing\TextOut\ | Working with text and image layers and transparency
Lens Effect | \Demo\ImageEditing\Lens\ | Demo of the lens effect (Lens)
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 RadialStretch 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 TImageEnView
Rotate and Crop | \Demo\ImageEditing\RotateAndCrop\ | Automatic cropping of borders using RotateAndCrop
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 TImageEnMView
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 TImageEnMView 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 TIEMultiBitmap to edit multi-page TIFF files in memory
ImageEnFolderMView Demo | \Demo\Multi\FolderMView\ | Using TImageEnFolderMView to display file folders
ImageEnMView Styles | \Demo\Multi\MViewStyles\ | Changing styles and display modes of a TImageEnMView
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 TImageEnMView 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 TImageEnMView to view frames and animate multiple-image files such as AVI, TIFF and GIF
View Meta-data Annotations | \Demo\Multi\Multiview2\ | Display in TImageEnMView and TImageEnView 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 TImageEnMView) 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 TImageEnMView 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 TRulerBox to show current cursor position
Select Image Cells | \Demo\Other\CellsAndGrid\ | Divide an image into a grid and allow selection of individual cells


FAQ

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?

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.

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).

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;

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)

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;

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');

Is it possible to de/activate duplex on a scanner?

Write ImageEnView1.IO.TwainParams.DuplexEnabled := True (or False to disable).

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.

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');

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');

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.

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');

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 CopyObjectsToBack the method, then save the background image (IO.SaveToFile).

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');

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');

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
...

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;

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

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.

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;

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.

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');

How do I store/retrieve pages of a multiple image file in a blob field with TImageEnDBView?

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.

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');

How do I terminate a polyline without double-clicking?

Just set:
ImageEnVect.PolylineEndingMode := ieemMouseUp;

Why am I unable to read Camera RAW formats?

To read Camera RAW files you must add ielib.dll to your EXE folder.

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];

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);

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;


License Agreement

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.


TIEImageEnGlobalSettings

TIEImageEnGlobalSettings

Description

Contains almost all ImageEn shared settings.

IEGlobalSettings returns the instance of this object.

Example

// Change the language to Italian
IEGlobalSettings().MsgLanguage := msItalian;

Properties

General
DefTempPath
MaxImageEMFSize
MeasureUnits
MsgLanguage
ProxyAddress
ProxyPassword
ProxyUser

Bitmap Settings
AutoFragmentBitmap
AutoLocateOnDisk
DefaultDPIX
DefaultDPIY
DefMinFileSize
ThumbnailSize

Color Settings
ApplyColorProfileOnRendering
BlueToGrayCoef
ColorReductionAlgorithm
ColorReductionQuality
ConvertColorFunction
EnableCMS
GreenToGrayCoef
RedToGrayCoef
UseCMYKProfile

Visual Component (TImageEnView, TImageEnVect, TImageEnMView) Settings
CustomHintTimeout
EnableTheming
DefaultLayerText
GridPen
GridMajorStep
GuidelineCount
MinZoomDisplayGrid
MemoShortCuts
MViewExplorerThumbnailExts
SelectionGridColor

ImageEn Dialog Display Settings
DefDialogCenter
DefaultDialogFont
DefaultPreviewHistogramScale
DefaultPreviewsZoomFilter
DialogBackgroundStyle
DialogBackgroundImage
IOPreviewsDialogHeight
IOPreviewsDialogWidth
PreviewAdditionalMultipageExts
PreviewImageBackgroundColor
PreviewImageBackgroundStyle
PrintDialogMarginsIncrement
PrintDialogMarginsMinValue
UseButtonGlyphsInDialogs

Transition Effects
PanZoomQualityFilter
TransitionsDrawAlternative
TransitionsDrawShape
WordTransitionParams

Twain (Acquisition) Settings
IsInsideTwain
ModelessSelectTwainSource
ReleaseTwainResources
TwainTransferBufferSize

System Status
BorderX
BorderY
EdgeX
EdgeY
HScrollHeight
IsRemoteSession
MMX
OpSys
SystemColors
SystemDPIX
SystemDPIY
UnicodeOS
VScrollWidth

Advanced Settings
BufferedReadStreamSize
DefaultCoresCount
EXIFInteroperabilityIndexUsage
EXIFMakerNotesHandling
ImageProcMaxThreads
ImageProcThreadsMinSize
ObjectsTIFFTag
UseDefaultFileExists
UseGDIPlus
UseRelativeStreams

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


File Format Functions

File Format Functions

File Formats

FindFileFormat
FindStreamFormat
IEExtToFileFormat
IEFileIsOfFormat
IEFileFormatGetInfo
IEFileFormatGetInfo2
IEFilenameInExtensions
IEFileExtInExtensions
IEFindNumberWithKnownFormat
IEGetFileFramesCount
IEIsInternalFormat
IsKnownFormat
IsKnownSaveFormat
GetAllSupportedFileExtensions
GetFileExtensionsOfType

External Formats (Plug-Ins)

IEAddExtIOPlugin
IEAutoLoadIOPlugins
TIEMiscPluginsImageMagick

Register ImageEn Formats in VCL

IERegisterFormats
IEUnregisterFormats

Custom File Format Support

To add your own custom file format to ImageEn you need only use IEFileFormatAdd by allocating and filling a TIEFileFormatInfo structure.
IEFileFormatAdd
IEFileFormatRemove
IEFileFormatGetInfo
IEFileFormatGetInfo2

Demo

Demos\InputOutput\FileFormatPlugins\Fplug.dpr


General Helper Functions

General Helper Functions

Layers

IELayersMerge

JPEG

IECalcJpegFileQuality
IECalcJpegStreamQuality

AVI

IEAVISelectCodec
IEAVIGetCodecs
IEAVIGetCodecsDescription

Color Methods

ColorToHSL
ColorToHSV
CreateCMYK
CreateRGB
CreateRGB48
CreateRGBA
EqualRGB
HSL2RGB
HSLToColor
HSV2RGB
HSVToColor
IEAverageColor
IEApplyAlphaToColor
RGB2HSL
RGB2HSV
RGB2TColor
TColor2TRGB
TColor2TRGBA
TRGB2TColor

Palette Methods

GenerateColorLuminancePalette
GenerateGradientPalette
LoadPaletteFromFile
SavePaletteToFile

Math Methods

AngleToImageEnRotateAngle
ImageEnRotateAngleToAngle
GetImageRectWithinArea
GetImageSizeWithinArea
IEAdjustRectToAspectRatio

File Methods

IEFileSetDate
IEGetFileDetails
IEGetFileSize

Other Utilities

IEAlphaToOpacity
IEGetCoresCount
IEOpacityToAlpha

See Also

- Lossless Jpeg Transformations: Lossless JPEG Rotation and Flip
- Multipage Image functions: Tiff/Gif and Other Multipage Functions
- iexHelperFunctions: TImageEnIO, TIEBitmap, TBitmap and File Functions
- iexMetaHelpers: EXIF, IPTC and Dicom functions
- iexWindowsFunctions: File and Folder Management Functions
- iexRegistryFunctions: Saving/Loading settings from the registry


iexHelperFunctions

iexHelperFunctions

iexHelperFunctions.pas provides helper functions for TImageEnIO, TBitmap and TIEBitmap, plus a variety of file functions. These methods provide quicker access to some ImageEn functionality for common tasks.

Simply add iexHelperFunctions to your uses clause to access the new methods

IMAGEENIO HELPER FUNCTIONS

Adds shortcut methods to the TImageEnIO class:
CreatePDFFromFileList
CreatePSFromFileList
LoadFromBlob
LoadFromBlobFast
LoadFromFileAutoEx
LoadFromFileEx
LoadFromFileFast
LoadFromFileJPEGFast
LoadFromFileRawFast
LoadFromStreamEx
LoadFromStreamFast
LoadFromStreamJPEGFast
Reload
SaveToBlob
SaveToFileEx
SaveToStreamEx

BITMAP HELPER FUNCTIONS

Adds more functionality to the TBitmap class:
IEInitialize
IELoadFromFile
IELoadFromFileFast
IELoadFromStream
IELoadFromStreamFast
LoadFromURL
IESaveToFile
IESaveToStream
IERotate
IEFlip
IEResample
IELoadAsThumbnail
IEConvertToThumbnail
IEAddSoftShadow
PrintImage

IEBITMAP HELPER FUNCTIONS

Adds more functionality to the TIEBitmap class:
IEInitialize
IELoadFromFile
IELoadFromFileFast
IELoadFromStream
IELoadFromStreamFast
LoadFromURL
IESaveToFile
IESaveToStream
IELoadAsThumbnail
IEConvertToThumbnail
IEAddSoftShadow
PrintImage
WicRead

FILE FUNCTIONS

Perform image manipulation functions without direct use of ImageEn components:
IEResampleImageFile
IEConvertImageFile
IECreateThumbnailFromFile
GetImageDetails
GetExifOrFileCreationDate
JPEGLosslessRotateFile
JPEGLosslessFlipFile
IERotateImageFile
IEFlipImageFile
IEReadCorrectOrientationOfImageFile
IEAutomaticallyRotateImageFile

CANVAS FUNCTIONS

Functions to output custom shapes and wallpaper to a TCanvas or TBitmap
IEDrawShape
IECreateShapeRegion
CreateWallpaperBitmap
TileBitmapOntoCanvas

OTHER FUNCTIONS

Other functions that may be useful with ImageEn:
BitsPerPixelToStr
QualityToZoomFilter
ShowTempHourglass

* Note: Delphi/C++ 2005 or newer is required to use helper classes


iexRegistryFunctions

iexRegistryFunctions

iexRegistryFunctions.pas adds the ability to save key properties of TImageEnIO, TImageEnMIO, TIPDialogParams, TIOPrintPreviewParams, TImageEnProc, TImageEnView and TImageEnMView to the registry or an ini file.

Declaration

function LoadFromRegistry(const sKey : string; aHKEY: HKEY = HKEY_CURRENT_USER): boolean;
function SaveToRegistry(const sKey : string; aHKEY: HKEY = HKEY_CURRENT_USER): boolean;
function LoadFromIniFile(const sFilename : string; sSection : string = ''): boolean;
function SaveToIniFile(const sFilename : string; sSection : string = ''): boolean;

Description

Saves common user settings for the component to the registry path specified by sKey, or the ini file specified by sFilename.

Note: If you call ImageEnMView1.SaveToRegistry you do not need to call ImageEnMView1.Proc.SaveToRegistry, ImageEnMView1.IO.SaveToRegistry, etc, as this will be done automatically.

Component | Properties Saved
TImageEnView | AutoShrink, AutoStretch, Center, MouseInteract, PlayLoop, BackgroundStyle, Background, GradientEndColor, ZoomFilter, TImageEnProc properties (See below) and TImageEnIO properties (See below)
TImageEnMView | EnableAdjustOrientation, HorizBorder, VertBorder, ThumbWidth, ThumbHeight, PlayLoop, BackgroundStyle, Background, GradientEndColor, ThumbnailResampleFilter, TImageEnProc properties (See below) and TImageEnMIO properties (See below)
TImageEnFolderMView | ExclusionMask, FileTypes, FileTypesMask, Folder, ShowFolders, ShowHiddenFiles, SortAscending, SortOrder, ShowThumbnailHint, DefaultBottomText, DefaultInfoText, DefaultTopText, TImageEnMView properties (See above) , TImageEnProc properties (See below) and TImageEnMIO properties (See below)
TImageEnIO | AutoAdjustDPI, JPEG_Quality, EnableAdjustOrientation, SelectedAcquireSource, DialogsMeasureUnit, MsgLanguage and all print preview dialog properties
TImageEnMIO | AutoAdjustDPI, SelectedAcquireSource, DialogsMeasureUnit, MsgLanguage and all print preview dialog properties
TImageEnProc | MsgLanguage and all image processing dialog properties
TIEAcquireParams | All

Example

uses
iexRegistryFunctions;
...

procedure TMainForm.FormCreate(Sender: TObject);
begin
// Load settings of our ImageEnView from the registry
ImageEnView1.LoadFromRegistry('Software\MyCompany\MySoftware');
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// Save settings of our ImageEnView to the registry
ImageEnView1.SaveToRegistry('Software\MyCompany\MySoftware');
end;


iexWindowsFunctions

iexWindowsFunctions

iexWindowsFunctions.pas provides access to Windows API methods for file and folder management. It is mainly used for TImageEnFolderMView.

CLASSES

TIEFileDragDrop
TIEFolderWatch

FILE OPERATION FUNCTIONS

WindowsCopy
WindowsMove
WindowsErase
WindowsLaunchFile
WindowsRename

CLIPBOARD FUNCTIONS

CutFilesToClipboard
CopyFilesToClipboard
PasteFilesFromClipboard
CanPasteFilesFromClipboard

SPECIAL FOLDER FUNCTIONS

WindowsDesktopFolder
WindowsMyVideosFolder
WindowsMyMusicFolder
WindowsMyPicturesFolder
WindowsMyDocumentsFolder
WindowsLocalAppDataFolder
WindowsProgramFilesFolder
GetWindowsSpecialFolder

OTHER FUNCTIONS

ShowWindowsPrintWizard
WindowsSelectDirectory
WindowsAddToRecentDocs
PopupSystemMenu

See Also

- IEFileSetDate
- IEGetFileDetails
- IEGetFileSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView

TImageEnView

Declaration

TImageEnView = class(TIEView);

Description

TImageEnView is an image container, viewer and editor. It supports zooming, scrolling, selections and layers.

TImageEnView encapsulates a TImageEnIO (IO property) for loading/saving/acquisition and a TImageEnProc (Proc property) component for image editing/processing (you do not need to add extra TImageEnIO and TImageEnProc components to your form).

For rapid UI development a full set of actions is also available.

Example

// Setup
with ImageEnView1 do
begin
LegacyBitmap := False; // Support bigger files and multithreading
AutoShrink := True; // Make the image fit within the window
BorderStyle := bsNone; // Normally don't require a 3D border
ZoomFilter := rfFastLinear; // Use better quality drawing when the image is not 100%, Use rfFastLinear for best speed or rfLanczos3 for best quality
MouseInteract := [miSelect]; // What action should the mouse do?
end;

// Display an image
ImageEnView1.IO.LoadFromFile('C:\MyImage.jpg');

// Rotate the image
ImageEnView1.Proc.Rotate(270, True);

Methods and Properties

Display
AutoShrink
AutoStretch
Center
CenterImage
DisplayGridKind
DisplayGridLyr
DelayTimer
DelayZoomFilter
DelayZoomTime
ExtentX
ExtentY
Fit
FitToHeight
FitToWidth
GetIdealZoom
GetMaxViewXY
GetRenderRectangles
IdealComponentHeight
IdealComponentWidth
IdealImageHeight
IdealImageWidth
ImageHorizAlignment
ImageVertAlignment
LockPaint
LockPaintCount
LockUpdate
LockUpdateCount
OffScreenPaint
OffsetX
OffsetY
PaintRect
RulerParams
SetViewXY
SetViewXYSmooth
SetZoomSmooth
ShowRulers
SmoothScrollValue
SmoothZoomValue
Stretch
UnLockPaint
UnLockUpdate
UnLockUpdateEx
Update
UpdateNoPaint
UpdateReason
UpdateRect
ViewX
ViewY
VisibleBitmapRect
XBmp2Scr
XScr2Bmp
YBmp2Scr
YScr2Bmp
Zoom
ZoomAt
ZoomIn
ZoomFilter
ZoomOut
ZoomSelection
ZoomX
ZoomY

Background
BackgroundStyle
Background
GradientEndColor
SetChessboardStyle
WallpaperStyle
Wallpaper

Scrollbars
FlatScrollBars
HScrollBarParams
ScrollBarsAlwaysVisible
ScrollBars
VScrollBarParams

Image Processing
Proc

Input/Output
IO

Bitmap
Bitmap
Blank
ChangeResolution
Clear
ClearAll
CopyFromPolygon
CopyToPolygon
DrawTo
IEBitmap
IsEmpty
IsEmpty2
LegacyBitmap
SetExternalBitmap
SetSelectedPixelsColor

User Actions
CropToolInteraction
EnableInteractionHints
ForceALTkey (Lock Aspect Ratio)
Gestures
MagicWandMaxFilter
MagicWandMode
MagicWandTolerance
MouseInteract
MouseScrollRate
MouseWheelParams
SetInteractionHint
ZoomSelectionAspectRatio

Selections
AddSelBreak
AddSelPoint
ApplyBitmapToSelection
AssignSelTo
CopySelectionToBitmap
DelayDisplaySelection
DelLastSelPoint
Deselect
DiscardSavedSelection
EnableShiftKey (Multiple selections)
EndSelect
GetSelectionGripStyle
InvertSelection
IsPointInsideSelection
LoadSelectionFromFile
LoadSelectionFromStream
MakeSelectionFeather
MergeSelectionFromFile
MergeSelectionFromStream
MoveSelection
PolySel
PolySelCount
PolySelPoints
RestoreSelection
SavedSelectionsCount
SaveSelection
SaveSelectionToFile
SaveSelectionToStream
SelColor1
SelColor2
Select
SelectColors
SelectCustom
SelectNonAlpha
Selected
SelectedRect
SelectEllipse
SelectionAbsHeight
SelectionAbsWidth
SelectionAspectRatio
SelectionBase
SelectionGridHeight
SelectionGridSize
SelectionGridWidth
SelectionIntensity
SelectionMask
SelectionMaskDepth
SelectionOptions
SelectMagicWand
SelectRoundRect
SelX1
SelX2
SelY1
SelY2
SetSelectionGripStyle
SetSelectionMarkOuterStyle
VisibleSelection

Alpha Channel (Transparency)
AlphaChannel
CopyToBitmapWithAlpha
EnableAlphaChannel
HasAlphaChannel
RemoveAlphaChannel
SetAlphaRangePixelsColor
SetSelectedAreaAlpha

Layers
CurrentLayer
FindLayerAt
LayerDefaults
LayerOptions
Layers
LayersAdd
LayersAlign
LayersClear
LayersCaching
LayersCancelEditor
LayersCopyToAlpha
LayersConvertToImageLayers
LayersCount
LayersCreateFromAlpha
LayersCreateFromClipboard
LayersCreateFromEdge
LayersCreateFromFile
LayersCreateFromSelection
LayersCropBackground
LayersCropped
LayersCurrent
LayersDeselectAll
LayersDrawBox
LayersDrawTo
LayersFastDrawing
LayersFixBorders
LayersFixRotations
LayersFixSizes
LayersGroup
LayersImport
LayersInsert
LayersMerge
LayersMergeAll
LayersMergeFilter
LayersMergeTo
LayersMove (Arrange)
LayersRect
LayersRepositionAll
LayersRemove
LayersResizeAspectRatio
LayersRotateAll
LayersRotateStep
LayersRotationAntialias
LayersRotationFilter
LayersRotationUseFilterOnPreview
LayersSaveMergedTo
LayersSelCount
LayersSelectAll
LayersSelectConstrains
LayersSetProperties
LayersSizeAll
LayersUngroup
MaxLayerHeight
MaxLayerWidth
SetLayersBoxStyle
SetLayersGripStyle
SoftCrop
SoftCropValue

Also: Layer Loading and Layer Saving

Animations and Transitions
AbortTransition
PrepareTransition
RunTransition
TransitionRunning
TransitionTiming
Playing
PlayLoop

Navigator
IsNavigator
SetNavigator

Animated Polygons
AnimPolygonAddPt
AnimPolygonClear
AnimPolygonDel
AnimPolygonNew

Other
Assign
AutoCursors
Cursor
GetCanvas
BackBuffer
BeginPostFrames
DrawVersion
EndPostFrames
GetGripAt
HighlightedPixel
LoadState
Modified
MoveContentTo
ResetState
SaveState

Events

OnActivateTextEditor
OnAcquireBitmap
OnBeforeSelectionChange
OnDeactivateTextEditor
OnDrawBackBuffer
OnDrawBackground
OnDrawCanvas
OnDrawLayer
OnDrawLayerBox
OnDrawLayerGrip
OnDrawPolygon
OnDShowEvent
OnDShowNewFrame
OnFinishSmoothTask
OnFinishWork
OnImageChange
OnImageEnGesture
OnLayerNotify
OnLayerMoveSize
OnLayerSelectionChange
OnMouseEnter
OnMediaFoundationNotify
OnMouseInResizingGrip
OnMouseInSel
OnMouseLeave
OnNewLayer
OnPaint
OnProgress
OnRulerClick
OnRulerGripClick
OnRulerGripDblClick
OnRulerGripPosChange
OnSaveUndo
OnSelectionChange
OnSelectionChanging
OnSetCursor
OnSpecialKey
OnTextEditorKeyDown
OnTransitionPaint
OnTransitionStep
OnTransitionStop
OnViewChange
OnViewChanging
OnVirtualKey
OnZoomIn
OnZoomOut

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer

TIELayer

Description

TImageEnView supports layer editing, allowing your users to build complex images from text, shapes, lines, polygon and other images, and merge them. All layer types can be created, resized, rotated and moved, either programatically of by the end-user.

Loading and Saving

Standard image types such as JPEG and BMP, do not support layers, so to preserve your layer information you will need to use one of the following formats:
- ImageEn Native Format (*.ien): Maintains all layer information. Supported only by ImageEn (Loading and Saving)
- Photoshop (*.psd): Widely used layer format. Only image layers are supported; non-image layers will be converted when saving (Loading and Saving)
- Scalable Vector Graphics (*.svg): Vector image format for web browsers (Saving only)

Layer Types

TIELayer is the ancestor of all layer classes:
Kind | Class | Description
ielkImage | TIEImageLayer | Layer that contains an image
ielkShape | TIEShapeLayer | Layer that displays standard shapes (rectangles, ellipses, stars, etc)
ielkLine | TIELineLayer | Layer that displays a single line, optionally including a text label and start and ending arrows
ielkPolyline | TIEPolylineLayer | Layer that displays a polyline or polgon comprising of multiple points
ielkText | TIETextLayer | Layer that displays text

Demos

Name | Location | Description
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 TImageEnView
ImageEn Layer Actions | \Demo\Other\Actions_Layers\ | Image Layering application built using only ImageEnView actions
Dragging to Create Layers | \Demo\DragDrop\Layers_DragDrop\ | Dragging text, images and shapes onto a TImageEnView to create layers

Methods and Properties

AntiAlias
AspectRatioLocked
Assign
AlphaEdgeFeathering
Bitmap
BorderColor
BorderWidth
ClientAreaBox
ConvertToImageLayer
ConvXBmp2Scr
ConvXScr2Bmp
ConvYBmp2Scr
ConvYScr2Bmp
CopyToBitmap
Cropped
DrawingInfo
DrawOuter
FillColor
FillColor2
FillGradient
GetIndex
GetLayerMask
GetProperties
Guid
GroupIndex
Height
Kind
Locked
Modified
Name
Opacity
Operation
PosX
PosY
PreferredAspectRatio
RestoreAspectRatio
Rotate
RotateCenterX
RotateCenterY
Selectable
Selected
SetProperties
SoftShadow
Swap
SupportsFeature
Tag
Transparency
UserData
UserDataLen
Visible
VisibleBox
Width

Provide generic access to properties in descendent classes

Examples

ImageEnView1.LayersAdd( ielkImage ); // Append an image layer
ImageEnView1.IO.LoadFromFile('C:\image.jpg'); // Load image into the new/active layer

// Add a yellow explosion shape layer at size 220 x 120
ImageEnView1.LayersAdd( iesExplosion, 50, 50, 220, 120 );
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

// Append an image layer and assign a pink border
ImageEnView1.LayersAdd( ielkImage ); // Append an image layer
ImageEnView1.IO.LoadFromFile('C:\New Zealand.jpg'); // Load image into the new/active layer
ImageEnView1.CurrentLayer.BorderColor := $008000FF;
ImageEnView1.CurrentLayer.BorderWidth := 3;

See Also

- LayersAdd
- LayersInsert
- TIELayerKind

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect

TImageEnVect

Description

TImageEnVect inherits from TImageEnView (has all its method and properties), and handles editing of vectorial objects.

TImageEnVect encapsulates a TImageEnProc (Proc property) component for image editing/processing and a TImageEnIO (IO property) (you do not need to add extra TImageEnIO and TImageEnProc components to your form). However for loading and saving of vector objects you should use the custom TImageEnVect functions for this.

For rapid UI development a full set of actions is also available.

Demo

Demos\Annotations\Vectorial\Demo.dpr

Methods and Properties

Display
AllObjectsHidden
BitmapResampleFilter
ObjAntialias
ObjectsExtents
ObjEnableFastDrawing
ObjGraphicRender
ZoomObjectsWidth

User Interaction
AllowOutOfBitmapMoving
AllowOutOfBitmapPolylines
CancelInteracts
CenterNewObjects
EnableRangeObjectsSelection
FindObjectAt
IsEditMode
MaxMovingDistance
MouseInteractVt
ObjEditOnNewText
PolylineClosingMode
PolylineEndingMode
SelectOnMouseDown
UseCentralGrip

Accessing Objects
GetObjFromID
GetObjFromIndex
GetObjFromName
ObjectsCount

Editing Objects
AddNewObject
AddPolyLinePoint
AlignObjects
CreateImageFromSelectedArea
CreatePolygonFromEdge
CreatePolygonsFromSelection
GetIndexFromObj
GetMemoFormattedString
GetObjRect
MaxTextLength
MemoEdit
MemoEditingGetCharInfo
MemoEditingSetCharInfo
ObjSetTBitmap
ObjTextEditMode
RemoveAllObjects
RemoveObject
RemovePolygonJaggedEdges
RemovePolyLinePoint
RotateAllObjects
RotateObject
SetObjAnglePoints
SetObjBackTo
SetObjBitmapICO
SetObjFont
SetObjFrontOf
SetObjPolylinePoints
SetObjRect
SetObjTextCurve
SetObjTextCurveFromPolyline
SetObjTextCurveShape
SimplifyPolygon
StretchTextRect

Rendering and Copying
CopyAllObjectsTo
CopyAllLayersFrom
CopyObjectsToBack
CopyObjectToBack
CopyObjectTo
DrawObjectsToBitmap
DrawOneObjectToBitmap

Input/Output
ImportDXF
LoadFromFileAll
LoadFromFileIEV
LoadFromStreamAll
LoadFromStreamIEV
LoadObjectsFromTIFF
SaveObjectsToTIFF
SaveToFileAll
SaveToFileIEV
SaveToStreamAll
SaveToStreamIEV
SetObjBitmapFromFile
SetObjBitmapFromStream

Clipboard
ObjCopyToClipboard
ObjCutToClipboard
ObjIsClipboardAvailable
ObjPasteFromClipboard

Object Properties
ObjAnchorToLayers
ObjAngleShowSmall
ObjAnglePoints
ObjArcEndingAngle
ObjArcStartingAngle
ObjAspectRatio
ObjBeginShape
ObjBitmapAlpha
ObjBitmapBorder
ObjBitmap
ObjBlendOperation
ObjBottom
ObjBoxHighLight
ObjBoxInnerSelectable
ObjBrushColor
ObjBrushStyle
ObjEndShape
ObjFontAngle
ObjFontHeight
ObjFontLocked
ObjFontName
ObjFontStyles
ObjFontQuality
ObjGroupIndex
ObjHeight
ObjID
ObjIsVisible
ObjKind
ObjLabelBorder
ObjLabelBrushColor
ObjLabelBrushStyle
ObjLabelPosition
ObjLayer
ObjLeft
ObjMemoBorderColor
ObjMemoBorderStyle
ObjMemoCharsBrushStyle
ObjMemoFixedHeight
ObjMemoHasBitmap
ObjMemoLineSpace
ObjMemoMarginBottom
ObjMemoMarginLeft
ObjMemoMarginRight
ObjMemoMarginTop
ObjName
ObjPenColor
ObjPenStyle
ObjPenWidth
ObjPolylineClosed
ObjPolylinePointsCount
ObjPolylinePoints
ObjRight
ObjRulerQuoteHorizon
ObjRulerType
ObjRulerUnit
ObjShapeHeight
ObjShapeWidth
ObjSoftShadow
ObjStyle
ObjTextAlign
ObjTextAutoSize
ObjTextCurveCharRot
ObjTextEditable
ObjTextMaintainAlignmentOnRotate
ObjText
ObjTop
ObjTransparency
ObjUserDataLength
ObjUserData
ObjWidth

Measurement
FloatDigits
FloatPrecision
GetAngleValue
GetObjDiagLen
GetPolylineArea
GetPolylineCentroid
GetPolylineLen
GetSelectionArea
GetSelectionCentroid
GetSelectionLen
MeasureCoefX
MeasureCoefY
MeasureHintBorder1
MeasureHintBorder2
MeasureHintBrush
MeasureHintFont
MeasureTrack
MUnit
ScaleFactor
SetScaleFromPixels
SetScaleFromSelectionLen

Grips
ObjGripBrush
ObjGripImage
ObjGripPen
ObjGripShape
ObjGripSize

Selection
AddSelObject
CopySelectedObjectsTo
GroupObjects
IsSelObject
MaxSelectionDistance
SelAllObjects
SelObjects
SelObjectsCount
UnSelAllObjects
UnSelObject
UngroupObjects

Undo/Redo
ObjAutoUndo
ObjCanUndo
ObjClearAllUndo
ObjClearUndo
ObjSaveUndo
ObjUndo
ObjUndoAt
ObjUndoCount
ObjUndoLimit
ObjUndoMode

Others
LayersRemove
InsertingPen
ShareBitmaps

Events

OnActivateTextEdit
OnAfterDrawObject
OnBeforeDrawObject
OnBeforeVectorialChanged
OnDeactivateTextEdit
OnDragLenEnd
OnMeasureHint
OnNewObject
OnObjectClick
OnObjectDblClick
OnObjectMoveResize
OnObjectOver
OnPresentMeasure
OnSelectObject
OnTextEdit
OnTextEditCursorMoved
OnTextKeyDown
OnUserDeselectObject
OnUserSelectObject
OnVectorialChanged

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView

TImageEnMView

Description

The TImageEnMView component is similar to a TImageEnView, but is designed for multiple images:
- Multiple images can be displayed in a grid (similar to a thumbnail view in Windows Explorer)
- A single frame of a multiple-frame image (such as a GIF, AVI or TIFF) can be displayed. This can also be animated.

ImageEn supports loading and saving multiple frames from GIF, TIFF, AVI, DCX, DICOM and ICO formats. It can also load from CUR format, and save to PDF and PS format (loading of PDF is supported if a relevant plug-in is installed).

The images can be stored as full images, as thumbnails (a sub-resampled image of the original), loaded when displayed (you need only specify the file name), or upon request (an event is generated whenever an image needs to be shown).
Thumbnails for video formats are retrieved from Windows Explorer. This can be disabled or expanded by setting MViewExplorerThumbnailExts.

For rapid UI development a full set of actions is also available.

You can also specify a custom function whenever an image is shown (i.e., to paint the image index near the image).

Note: Do not attach a TImageEnIO component to TImageEnMView. Only the TImageEnMIO component can be attached to a TImageEnMView component, or you can use embedded MIO object.

Demos

Demos\Multi\...
Demos\Other\Actions_MView\MViewActions.dpr

Example

// In FormCreate()
with ImageEnMView1 do
begin
// Update to the most modern styling
SetModernStyling(False);

ThumbWidth := 140; // Better size for thumbnails
ThumbHeight := 150;

GridWidth := -1; // Auto-column widths
BorderStyle := bsNone; // Normally don't require a 3D border

StoreType := ietThumb; // Don't need to store whole image in memory, just a sub-sampled thumbnail
end;

// Now display the images of a folder in the grid
ImageEnMView1.FillFromDirectory('C:\MyImages\', -1, False, '', False, '', True);

Methods and Properties

Display
Animation
AnnotationsVisible
Background
BackgroundStyle
BiDiMode
CenterFrame
ClearImageCache
DefaultFileIcon
DisplayImageAt
DisplayMode
EnableAlphaChannel
FlatScrollBars
GradientEndColor
GridWidth (Column count)
LockPaint
LockPaintCount
LockUpdate
LockUpdateCount
MaximumViewX
MaximumViewY
MissingFileIcon
SetChessboardStyle
SetPresetThumbnailFrame
SetModernStyling
SetStyleEx
SetViewXY
SoftShadow
Style
UnLockPaint
UnLockUpdate
ViewX
ViewY
VisibleFrame
Wallpaper
WallpaperStyle

Frame Editing
Assign
AssignEx
AppendImage
AppendSplit
Clear
CreateMorphingSequence
DeleteImage
ImageCount
InsertImageEx
InsertImage
InsertTransitionFrames
InsertTransitionFramesEx
MoveImage
RemoveBlankPages
RemoveDuplicates
Sort

Image Access
Bitmap
CopyToIEBitmap
GetBitmap
GetTIEBitmap
IEBitmap
PrepareSpaceFor
ReleaseBitmap
SetImage
SetImageEx
SetImageRect
UpdateImage

Image Information
FilenameToIndex
ImageBitCount
ImageCol
ImageCreateDate
ImageEditDate
ImageFileName
ImageFileSize
ImageFileType
ImageHeight
ImageID
ImageOriginalHeight
ImageOriginalWidth
ImageRow
ImageTag
ImageUserPointer
ImageWidth
ImageX
ImageY

Image Text
BottomTextFont
DefaultBottomText
DefaultInfoText
DefaultTopText
ImageBottomText
ImageInfoText
ImageTopText
InfoTextFont
SelectedFontColor
SetAllText
ShowText
TextColumnWidths
TextBackgroundColor
TextBackgroundStyle
TextBlockWidth
TextMargin
TextTruncSide
TopTextFont

Thumbnail Appearance
BottomGap
DrawImageBackground
HorizBorder
IconSize
FillThumbnail
ImageBackground
SetThumbnailSize
ShowThumbnailHint
SideGap
ThumbHeight
ThumbnailClipping
ThumbnailDisplayFilter
ThumbnailFrameRect
ThumbnailFrameSelected
ThumbnailFrame
ThumbnailResampleFilter
ThumbnailsBackground
ThumbnailsBackgroundSelected
ThumbnailsBackgroundStyle
ThumbnailsBorderColor
ThumbnailsBorderCurved
ThumbnailsBorderWidth
ThumbnailsInternalBorderColor
ThumbnailsInternalBorder
ThumbnailOptionsEx
ThumbsRounded
ThumbWidth
UpperGap
VertBorder
Zoom

Input/Output
EnableAdjustOrientation (Auto-Rotate)
EnableImageCaching
EnableLoadEXIFThumbnails
EnableLoadExplorerThumbnails
EnsureImageLoaded
FillFromDirectory
GetImageToFile
GetImageToStream
ImageCacheSize
ImageCacheUseDisk
IOOptionsEx
JobsRunning
JobsWaiting
LoadFromFileOnDemand
LoadSnapshot
LookAhead
MaintainInvisibleImages
MIO
ReloadImage
SaveSnapshot
Seek
SetImageFromFile
SetImageFromStream
ThreadPoolSize

Selections
BeginSelectImages
CenterSelected
CheckThumbBoundsOnSelect
DeleteSelectedImages
Deselect
EnableMultiSelect
EndSelectImages
IsSelected
MoveSelectedImagesTo
MultiSelectedImages
MultiSelectedImagesCount
MultiSelectedImagesList
MultiSelecting
MultiSelectionOptions
MultiSelectSortList
SelectAll
SelectedImage
SelectedImageAlwaysVisible
SelectionColor
SelectionWidth
SelectionWidthNoFocus
SelectSeek
TrackMouseSelection
UnselectImage
VisibleSelection

Checkboxes
Checkboxes
Checked
CheckedCount
CheckboxPos
SetCheckboxParams
CheckAll
UncheckAll

User Interaction
Gestures
GetImageVisibility
HScrollBarParams
ImageAtGridPos
ImageAtPos
InsertingPoint
IsVisible
KeyInteract
MouseInteract
MouseWheelParams (Default)
MouseWheelParamsAlt (Ctrl Key)
ScrollBars
ScrollBarsAlwaysVisible
VScrollBarParams

Animations and Transitions
ImageDelayTime
Playing
PlayLoop
TransitionDuration
TransitionEffect
TransitionRunning

Other
AssignLayers
CalcGridHeight
CalcGridWidth
IEBeginDrag
IEEndDrag
IEMBitmap
ImageEnVersion
Proc
SetExternalMBitmap
StoreType
Update

Events

OnAcquireBitmap
OnAfterEvent
OnAllDisplayed
OnAnimationText
OnBeforeImageDrawEx
OnBeforeImageDraw
OnCheckboxClick
OnCreateImage
OnDestroyImage
OnDrawProgress
OnFinishWork
OnGetText
OnGetTextEx
OnImageAdd
OnImageAdded
OnImageAtPos
OnImageDeselect
OnImageDraw
OnImageDraw2
OnImageIDRequestEx
OnImageIDRequest
OnImageEnGesture
OnImageLoaded
OnImageOut
OnImageSelect
OnIOProgress
OnMouseEnter
OnMouseLeave
OnPlayFrame
OnProgress
OnSelectionChanging
OnViewChange
OnWrongImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView

TImageEnFolderMView

Description

The TImageEnFolderMView component is a descendent of TImageEnMView, but is designed specifically for displaying the content of file folders.

While much of TImageEnFolderMView's functionality can be replicated in TImageEnMView using FillFromDirectory, there are a number of features that are only available in this control:
- Dragging and dropping files from Windows
- Cut, copy and paste files from Windows Explorer
- Automatic refreshing when folder contents change
- Display of the standard folder popup menu
- File functions to move, copy, rename and delete files
- In-built file navigation, file shortcuts and other functions

To use TImageEnFolderMView, specify a Folder and the file types that you wish to display. For more control you can specify your own file mask, exclusion mask and sort order.

For rapid UI development TImageEnFolderMView provides a set of actions, plus you can use all actions of TImageEnMView.

Demos

Demos\Multi\FolderMView\FolderMView.dpr
Demos\Other\Actions_Folder\FolderMViewActions.dpr

Example

// Set up
with IEFolderMView1 do
begin
BorderStyle := bsNone; // Normally don't require a 3D border

ThumbWidth := 140; // Choose a good size for your thumbnails
ThumbHeight := 150;

// Default is rfFastLinear for speed, but rfLanczos3 will give much better quality
ThumbnailDisplayFilter := rfLanczos3;
end;

// Now display the images of a folder in the grid
IEFolderMView1.Folder := 'C:\MyImages\';
IEFolderMView1.FileTypes := iefAllImages; // Images only
IEFolderMView1.SortOrder := iesbImageSize; // Sort by image dimensions

Methods and Properties

Folder Display
AutoRefresh
DefaultFolder
EnableSpecialFolders
ExclusionMask
FileLimit
FileTypes
FileTypesMask
Folder
IncludeSubFolders
PopupMenuUseSystem
PromptForFolder
RefreshFileList
RefreshSorting
SetFolderEx
SetSortOrderEx
SortAscending
SortCaseSensitive
SortOrder
ShowFolders
ShowHiddenFiles

File Operations
AutoDragFiles
AutoDropFiles
CreateNewFolder
ExecuteFile
CopyFilesToCurrentFolder
CopySelectedFilesToClipboard
CopySelectedFilesToFolder
CutSelectedFilesToClipboard
DeleteSelectedFilesFromFolder
FileOperationOptions
FolderInteract
MoveFilesToCurrentFolder
MoveSelectedFilesToFolder
OpenFolder
OpenParentFolder
CanOpenParentFolder
PasteFilesFromClipboard
CanPasteFilesFromClipboard
PopupSystemMenu
RenameFile

Display
Animation
AnnotationsVisible
Background
BackgroundStyle
BiDiMode
CenterFrame
ClearImageCache
DisplayImageAt
DisplayMode
EnableAlphaChannel
FlatScrollBars
GradientEndColor
GridWidth (Column count)
LockPaint
LockPaintCount
LockUpdate
LockUpdateCount
MaximumViewX
MaximumViewY
SetChessboardStyle
SetPresetThumbnailFrame
SetModernStyling
SetStyleEx
SetViewXY
SoftShadow
Style
UnLockPaint
UnLockUpdate
ViewX
ViewY
VisibleFrame
Wallpaper
WallpaperStyle

Frame Editing
AppendFile
AppendImage
AppendSplit
Clear
CreateMorphingSequence
DeleteImage
ImageCount
InsertFile
InsertImageEx
InsertImage
InsertTransitionFrames
InsertTransitionFramesEx
MoveImage
RemoveBlankPages
RemoveFile

Image Access
Bitmap
CopyToIEBitmap
GetBitmap
GetTIEBitmap
IEBitmap
PrepareSpaceFor
ReleaseBitmap
SetImage
SetImageEx
SetImageRect
UpdateImage

Image Information
FilenameToIndex
ImageBitCount
ImageCol
ImageCreateDate
ImageEditDate
ImageFileName
ImageFileSize
ImageFileType
ImageHeight
ImageID
ImageOriginalHeight
ImageOriginalWidth
ImageRow
ImageTag
ImageUserPointer
ImageWidth
ImageX
ImageY

Image Text
BottomTextFont
DefaultBottomText
DefaultInfoText
DefaultTopText
ImageBottomText
ImageInfoText
ImageTopText
InfoTextFont
SelectedFontColor
SetAllText
ShowText
TextBackgroundColor
TextBackgroundStyle
TextMargin
TextTruncSide
TopTextFont

Thumbnail Appearance
BottomGap
DrawImageBackground
HorizBorder
IconSize
FillThumbnail
ImageBackground
SetThumbnailSize
ShowThumbnailHint
SideGap
ThumbHeight
ThumbnailClipping
ThumbnailDisplayFilter
ThumbnailFrameRect
ThumbnailFrameSelected
ThumbnailFrame
ThumbnailResampleFilter
ThumbnailsBackground
ThumbnailsBackgroundSelected
ThumbnailsBackgroundStyle
ThumbnailsBorderColor
ThumbnailsBorderWidth
ThumbnailsInternalBorderColor
ThumbnailsInternalBorder
ThumbnailOptionsEx
ThumbsRounded
ThumbWidth
UpperGap
VertBorder
Zoom

Input/Output
EnableAdjustOrientation (Auto-Rotate)
EnableImageCaching
EnableLoadEXIFThumbnails
EnableLoadExplorerThumbnails
EnsureImageLoaded
GetImageToFile
GetImageToStream
ImageCacheSize
ImageCacheUseDisk
IOOptionsEx
JobsRunning
JobsWaiting
LoadFromFileOnDemand
LoadSnapshot
LookAhead
MaintainInvisibleImages
MIO
ReloadImage
SaveSnapshot
Seek
SetImageFromFile
SetImageFromStream
ThreadPoolSize

Selections
BeginSelectImages
CenterSelected
CheckThumbBoundsOnSelect
DeleteSelectedImages
Deselect
EnableMultiSelect
EndSelectImages
IsSelected
MoveSelectedImagesTo
MultiSelectedImages
MultiSelectedimagesCount
MultiSelectedImagesList
MultiSelecting
MultiSelectionOptions
MultiSelectSortList
SelectAll
SelectedImage
SelectedImageAlwaysVisible
SelectedFilename
SelectedFilenames
SelectionColor
SelectionWidth
SelectionWidthNoFocus
SelectSeek
TrackMouseSelection
UnselectImage
VisibleSelection

Checkboxes
Checkboxes
Checked
CheckedCount
CheckboxPos
SetCheckboxParams
CheckAll
UncheckAll

User Interaction
Gestures
GetImageVisibility
HScrollBarParams
ImageAtGridPos
ImageAtPos
InsertingPoint
IsVisible
KeyInteract
MouseInteract
MouseWheelParams (Default)
MouseWheelParamsAlt (Ctrl Key)
ScrollBars
ScrollBarsAlwaysVisible
VScrollBarParams

Animations and Transitions
ImageDelayTime
Playing
PlayLoop
TransitionDuration
TransitionEffect
TransitionRunning

Other
CalcGridHeight
CalcGridWidth
IEBeginDrag
IEEndDrag
ImageEnVersion
Proc
StoreType
Update

Internal
FillFromDirectory
Sort

Events

OnAfterEvent
OnAllDisplayed
OnAnimationText
OnBeforeImageDrawEx
OnBeforeImageDraw
OnCheckboxClick
OnCreateImage
OnCustomSortCompare
OnDestroyImage
OnDrawProgress
OnDropFiles
OnFinishWork
OnFolderChanging
OnFolderChanged
OnGetText
OnGetTextEx
OnImageAdd
OnImageAdded
OnImageAtPos
OnImageDeselect
OnImageDraw
OnImageDraw2
OnImageIDRequestEx
OnImageIDRequest
OnImageEnGesture
OnImageLoaded
OnImageOut
OnImageSelect
OnIOProgress
OnMouseEnter
OnMouseLeave
OnPlayFrame
OnProgress
OnSelectionChanging
OnViewChange
OnWrongImage

Unique to TImageEnFolderMView

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc

TImageEnProc

Description

TImageEnProc provides image processing and analysis functionality to the TImageEnView, TImageEnDBView, TIEBitmap, TImage or TBitmap component. It also handles clipboard operations, undo/redo and encryption.

Note: TImageEnView already encapsulates TImageEnProc (as Proc), so you don't generally need to add a TImageEnProc component to a form.

Examples

// Rotate an image in a TImageEnView 90° clockwise
ImageEnView1.Proc.Rotate(270);

// Reduce the size of an image in a TImageEnView to half its size (so when saved it will be much smaller on disk)
ImageEnView1.Proc.Resample(ImageEnView1.IEBitmap.Width div 2, -1, rfLanczos3);

// Prompt the user to perform image modification effects on an image in a TImage
ImageEnView1.Proc.AttachedBitmap := Image1.Picture.Bitmap;
ImageEnView1.Proc.DoPreviews([peAll]);

// Load an image with a TIEBitmap, make it negative then save it
iebmp := TIEBitmap.Create;
ImageEnProc := TImageEnProc.create(nil);
ImageEnProc.AttachedIEBitmap := iebmp;
iebmp.Read('animage.tif');
ImageEnProc.Negative;
iebmp.Write('output.tif');
ImageEnProc.Free;
iebmp.Free;

Methods and Properties

Connected component
AttachedBitmap
AttachedIEBitmap
AttachedImageEn
AttachedTImage

Dialogs
DoPreviews
IPDialogParams
PreviewFont
PreviewFontEnabled
PreviewsLog
PreviewsParams

Shadows
AddInnerShadow
AddSoftShadow (and Glow)

Fourier Analysis (FFT)
FTClearZone
FTConvertFrom
FTCreateImage
FTDisplayFrom

Paint
CastColor
ClearSel
Clear
Fill
PaintMark
PaintPenMarker

Alpha Channel
CastAlpha
FeatherAlphaEdges
SetTransparentColors

Chroma Key
GuessChromaKeyColor
RemoveChromaKey

Analysis
CalcAverageRGB
CalcDensityHistogram
CalcImageNumColors
CalcImagePalette
CalcOrientation
CalcStdDev
CompareWith
CompareHistogramWith
ComputeImageEquality
GetDominantColor
GetHistogram
GetHSVChannelAll
GetHSVChannel
GetRGBChannelAll
GetRGBChannel
SeparateObjects

Custom Image Analysis
BeginImageAnalysis
EndImageAnalysis

Custom Image Processing
BeginImageProcessing
EndImageProcessing

Automatic Image Enhancement
AdjustGainOffset
AutoImageEnhance1
AutoImageEnhance2
AutoImageEnhance3
AutoSharp
HistAutoEqualize
WhiteBalance_AutoWhite
WhiteBalance_GrayWorld

Color Adjustment
AdjustBrightnessContrastSaturation
AdjustLumSatHistogram
AdjustSaturation
AdjustTemperature
AdjustTint
CastColorRange
Closing
Colorize
Contrast
Contrast2
Contrast3
ConvertTo24Bit
ConvertToBW_FloydSteinberg
ConvertToBWLocalThreshold
ConvertToBWOrdered
ConvertToBWThreshold
ConvertToGray
ConvertToPalette
ConvertToSepia
ConvertTo
DisposeChannels
Deinterlace
EdgeDetect_ShenCastan
EdgeDetect_Sobel
GammaCorrect
HistEqualize
HSLvar
HSVvar
IntensityRGBAll
Intensity
MapGrayToColor
Maximum
MedianFilter
MatchHSVRange
Minimum
Negative
Opening
Random
Threshold
Threshold2
WallisFilter
WhiteBalance_coef
WhiteBalance_WhiteAt

Pixel Adjustment
ApplyFilterPreset
ApplyFilter
Blur
BumpMapping
Convolve
FiltersInitialDir
Lens
Merge
MotionBlur
RemoveRedEyes
Pixelize
PencilSketch
Sharpen
SymmetricNearestNeighbour
UnsharpMask
Wave

Noise
RemoveIsolatedPixels
RemoveNoise

Clipboard
CanCutToClipboard
CutToClipboard
CanCopyToClipboard
CopyToClipboard
CanPasteFromClipboard
PasteFromClipboard
PointPasteFromClip

Steganography
ClearHiddenText
GetHiddenDataSpace
ReadHiddenData
ReadHiddenText
WriteHiddenData
WriteHiddenText

Encryption
Decrypt
Encrypt

Geometric (Rotate, resize, crop, etc)
AutoCrop
AutoCrop2
CropTransparentBorder
CropSel
Crop
Flip
ImageResize
MakeTile
PerspectiveDraw
ProjectDraw
RadialStretch
Reflection
Resample
ResampleTo
RotateAndCrop
Rotate
RoundImage
ShiftChannel
SkewDetectionFine
SkewDetection

Undo
AutoUndo
CanUndo
ClearAllUndo
ClearUndoAt
ClearUndo
GetUndoInfo
SaveUndo
Undo
UndoAt
UndoCaptions
UndoCount
UndoLimit
UndoLocation
UndoRect

Redo
CanRedo
ClearAllRedo
ClearRedo
ClearRedoAt
GetRedoInfo
Redo
RedoAt
RedoCaptions
RedoCount
SaveRedo

Transitions
PrepareTransitionBitmaps
PrepareTransitionBitmapsEx
CreateTransitionBitmap

Others
AutoConvertFormat
Background
CheckLegacyBitmap
Create
CreateFromBitmap
GetReSel
ImageEnVersion
TextOut
Update

Events

OnFinishWork
OnPreview
OnProgress
OnSaveUndo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEICC

TIEICC

Description

TIEICC class contains a color profile. It is used for loading an image ICC profile and for displaying the ICC profile (which is sRGB by default).

Note: several constants are defined in ielcms unit.

Methods and Properties

Apply
Apply2
Assign_AdobeRGB1998
Assign_CMYKProfile
Assign_LabProfile
Assign_LabProfileD50
Assign_LabProfileFromTemp
Assign_sRGBProfile
Assign_XYZProfile
Assign
CheckTransform
Clear
ConvertBitmap
Copyright
Description
FreeTransform
InputColorSpace
OutputColorSpace
InitTransform
IsApplied
IsValid
LoadFromBuffer
LoadFromFile
LoadFromStream
SaveToStream
Transform

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


Lossless Jpeg Transformations

Lossless Jpeg Transformations

Rotate, flip or crop a JPEG image without recompression so that its quality is maintained.

Note: Defined in iexBitmaps unit

JpegLosslessTransform
JpegLosslessTransform2
JpegLosslessTransformStream

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO

TImageEnIO

Description

TImageEnIO provides input/output support to ImageEn:
- Loading and saving images
- Access to image properties and meta-data
- Acquisition of images from cameras and scanners
- Printing
- DirectShow functions for multimedia support

See also: TImageEnMIO, which is made to work with images containing multiple frames (e.g. animated GIFs)

Generally you will not add a TImageEnIO component directly to your project. It is accessed via the following methods:

1. Using the IO property of a TImageEnView or TImageEnVect

ImageEnView1.IO.LoadFromFile('C:\MyImage.jpeg');
ImageEnView1.IO.DoPrintPreviewDialog;

2. Attached to a TBitmap or TIEBitmap in code

MyBitmap := TBitmap.create;
AnImageEnIO := TImageEnIO.CreateFromBitmap(MyBitmap);
AnImageEnIO.LoadFromFile('C:\input.jpg');
...
AnImageEnIO.Free;
MyBitmap.Free;

3. Attached to a TImage

Note: In this case a TImageEnIO would be added to the form and the AttachedTImage set appropriately.

Notes

- Ensure you do not call any TImageEnIO methods before it is actually attached to an image container (TImageEnView, TIEBitmap, etc)
- Do not attach TImageEnIO to a TImageEnMView component. Only a TImageEnMIO can be attached to a TImageEnMView component.

Methods and Properties

Connected Component
AttachedBitmap
AttachedIEBitmap
AttachedImageEn
AttachedTImage
Update

Generic Input/Output
Aborting
AssignParams
AutoAdjustDPI
Background
Bitmap
CaptureFromScreen
ChangeBackground
Create
CreateFromBitmap
DefaultDitherMethod
FilteredAdjustDPI
IEBitmap
LoadFromBuffer
LoadFromFileAuto
LoadFromFile
LoadFromResource
LoadFromStream
LoadFromText
LoadFromURL
NativePixelFormat
Params
ParamsFromBuffer
ParamsFromFile
ParamsFromStream
SaveToFile
SaveToStream
SaveToText
Seek
StreamHeaders

Image Acquisition (Twain/WIA)
Acquire
SelectAcquireSource
SelectedAcquireSource
SetAcquireSource
AcquireParams
DCIMParams
TwainParams
TwainAcquireOpen
TwainAcquireClose
WIAParams

Aynchronous input/output
AsyncMode
AsyncRunning
ThreadsCount
WaitThreads

DirectShow capture
DShowParams

Dialogs
DialogsMeasureUnit
DoPreviews
ExecuteOpenDialog
ExecuteSaveDialog
PreviewFont
PreviewFontEnabled
PreviewsParams
SimplifiedParamsDialogs

Printing
DoPrintPreviewDialog
PreviewPrintImage
PrintImagePos
PrintImage
PrintingFilterOnSubsampling
PrintPreviewParams

IEN (ImageEn native image format with layers)
LoadFromFileIEN
LoadFromStreamIEN
SaveToFileIEN
SaveToStreamIEN

JPEG
InjectJpegEXIFStream
InjectJpegEXIF
InjectJpegIPTCStream
InjectJpegIPTC
LoadFromFileJpeg
LoadFromStreamJpeg
SaveToFileJpeg
SaveToStreamJpeg

JPEG 2000
LoadFromFileJ2K
LoadFromFileJP2
LoadFromStreamJ2K
LoadFromStreamJP2
SaveToFileJ2K
SaveToFileJP2
SaveToStreamJ2K
SaveToStreamJP2

GIF
InsertToFileGIF
LoadFromFileGIF
LoadFromStreamGIF
SaveToFileGIF
SaveToStreamGIF
ReplaceFileGIF

Adobe PSD
LoadFromFilePSD
LoadFromStreamPSD
SaveToFilePSD
SaveToStreamPSD

Microsoft HD Photos (HDP)
LoadFromFileHDP
LoadFromStreamHDP
SaveToFileHDP
SaveToStreamHDP

TIFF
InjectTIFFEXIF
InsertToFileTIFF
InsertToStreamTIFF
LoadFromFileTIFF
LoadFromStreamTIFF
ReplaceFileTIFF
ReplaceStreamTIFF
SaveToFileTIFF
SaveToStreamTIFF

BMP
LoadFromFileBMP
LoadFromStreamBMP
SaveToFileBMP
SaveToStreamBMP

PNG
LoadFromFilePNG
LoadFromStreamPNG
SaveToFilePNG
SaveToStreamPNG

Cursors (CUR)
LoadFromFileCUR
LoadFromStreamCUR

ICO
LoadFromFileICO
LoadFromStreamICO
SaveToFileICO
SaveToStreamICO

PCX
LoadFromFilePCX
LoadFromStreamPCX
SaveToFilePCX
SaveToStreamPCX

DCX (Multipage PCX)
LoadFromFileDCX
LoadFromStreamDCX
SaveToStreamDCX
SaveToFileDCX
InsertToFileDCX

Meta Files (WMF, EMF)
ImportMetafile
MergeMetaFile

SVG (Scalable Vector Graphics)
SaveToFileSVG
SaveToStreamSVG

Targa (TGA)
LoadFromFileTGA
LoadFromStreamTGA
SaveToFileTGA
SaveToStreamTGA

PXM (PPM, PBM, PGM)
LoadFromFilePXM
LoadFromStreamPXM
SaveToFilePXM
SaveToStreamPXM

AVI Videos
CloseAVIFile
CreateAVIFile
IsOpenAVI
LoadFromAVI
OpenAVIFile
SaveToAVI

WBMP
LoadFromFileWBMP
LoadFromStreamWBMP
SaveToFileWBMP
SaveToStreamWBMP

PostScript (PS)
ClosePSFile
CreatePSFile
SaveToFilePS
SaveToPS
SaveToStreamPS

Adobe PDF
ClosePDFFile
CreatePDFFile
SaveToFilePDF
SaveToPDF
SaveToStreamPDF

Raw Camera Files
LoadFromFileRAW
LoadFromStreamRAW
LoadJpegFromFileCRW

Media Files (AVI, MPEG, WMV..)
CloseMediaFile
IsOpenMediaFile
LoadFromMediaFile
OpenMediaFile

BmpRaw (a true "raw" format, not the same as a digital camera Raw file)
LoadFromFileBMPRAW
LoadFromStreamBMPRAW
SaveToFileBMPRAW
SaveToStreamBMPRAW

DICOM Medical Imaging Format
LoadFromFileDICOM
LoadFromStreamDICOM
SaveToFileDICOM
SaveToStreamDICOM

Events

OnAcquireBitmap
OnAcquireClose
OnDoPreviews
OnFinishWork
OnIOPreview
OnProgress

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO

TImageEnMIO

Description

TImageEnMIO provides input/output support to ImageEn when working with images containing multiple frames (TIFF, GIF, DICOM, AVI, etc):
- Loading and saving multi-frame images
- Access to image properties and meta-data
- Acquisition of multiple images from cameras and scanners
- Printing of thumbnails and images

ImageEn supports loading and saving multiple frames from GIF, TIFF, AVI, DCX, DICOM and ICO formats. It can also load from CUR format, and save to PDF and PS format (loading of PDF is supported if a relevant plug-in is installed).

Generally you will not add a TImageEnMIO component directly to your project. It is accessed via the following methods:

1. Using the MIO property of a TImageEnMView

ImageEnMView1.MIO.LoadFromFile('C:\MyImage.tiff');
ImageEnMView1.MIO.DoPrintPreviewDialog;

2. Attached to a TIEMultiBitmap in code

MyMBitmap := TIEMultiBitmap.create;
AnImageEnMIO := TImageEnMIO.CreateFromIEMBitmap(MyMBitmap);
AnImageEnMIO.LoadFromFile('C:\input.gif');
...
AnImageEnMIO.Free;
MyMBitmap.Free;

Notes

- Ensure you do not call any TImageEnMIO methods before it is actually attached to an image container (TImageEnMView, TIEMultiBitmap, etc)
- Users often attach a TImageEnIO component to TImageEnMView component. This is not correct. The TImageEnMIO component must be attached only to a TImageEnMView component.

See also TImageEnIO, which works with single-frame images, such as JPEG, BMP, etc.

Methods and Properties

Connected Component
AttachedIEMBitmap
AttachedMView
CreateFromIEMBitmap
IEMBitmap
Update

Generic Input/Output
Aborting
AllowMalformedPages
AutoAdjustDPI
DefaultDitherMethod
DuplicateCompressionInfo
ExecuteOpenDialog
ExecuteSaveDialog
FilteredAdjustDPI
LoadFromBuffer
LoadFromFileAuto
LoadFromFile
LoadFromFiles
LoadFromStream
LoadFromURL
NativePixelFormat
Params
ParamsCount
ParamsFromBuffer
ParamsFromFile
ParamsFromStream
SaveToFile
SaveToStream

Dialogs
DialogsMeasureUnit
DoPreviews
PreviewFont
PreviewFontEnabled
PreviewsParams
SimplifiedParamsDialogs

Image Acquisition (Twain/WIA)
Acquire
SelectAcquireSource
SelectedAcquireSource
SetAcquireSource
AcquireParams
DCIMParams
TwainParams
TwainAcquireOpen
TwainAcquireClose
WIAParams

Printing
DoPrintPreviewDialog
PrintImage
PrintImagePos
PrintImages
PrintImagesToFile
PrintingFilterOnSubsampling
PrintPreviewParams

AVI Videos
LoadFromFileAVI
SaveToFileAVI

Cursor Resources (CUR)
LoadFromFileCUR
LoadFromStreamCUR

DCX (Multipage PCX)
LoadFromFileDCX
LoadFromStreamDCX
SaveToFileDCX
SaveToStreamDCX

GIF
LoadFromFileGIF
LoadFromStreamGIF
SaveToFileGIF
SaveToStreamGIF

Icons (ICO)
LoadFromFileICO
LoadFromStreamICO
SaveToFileICO
SaveToStreamICO

TIFF
LoadFromFileTIFF
LoadFromStreamTIFF
SaveToFileTIFF
SaveToStreamTIFF

DirectShow Media Files
LoadFromMediaFile

Adobe PDF
LoadFromFilePDF (Requires Plug-In)
LoadFromStreamPDF (Requires Plug-In)
SaveToFilePDF
SaveToStreamPDF

PostScript (PS)
SaveToFilePS
SaveToStreamPS

DICOM Medical Imaging Format
LoadFromFileDICOM
LoadFromStreamDICOM
SaveToFileDICOM
SaveToStreamDICOM

Events

OnAcquireBitmap
OnAcquireClose
OnAfterAcquireBitmap
OnDoPreviews
OnFinishWork
OnProgress

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams

TIOParams

Description

Provides access to the properties of all image and video file formats supported by ImageEn, such as compression type, text comments, bits per sample, samples per pixel, etc.
The properties for this class are set when loading an image or can be retrieved (without loading of the image) using LoadFromFile (excluding save-only formats, such as PDF, PS, etc).
You can modify these properties before saving your image (naturally this is only relevant to formats which ImageEn can save, which excludes EMF, WMF, CUR, etc).

See Also

- TImageEnIO.Params
- TIEBitmap.Params
- TIEMultiBitmap.Params
- TImageEnDBView.IOParams

Methods and Properties

Property Storage Handling
AdjustGPSCoordinates
Assign
Create
LoadFromFile (load stored paramaters)
LoadFromStream (load stored paramaters)
Read (load paramaters of an image)
ResetEXIF
ResetInfo
SaveToFile (store paramaters)
SaveToStream (store paramaters)
SetDefaultParams
UpdateEXIFThumbnail

General
BitsPerSample
ColorMapCount
ColorMap
DefaultICCProfile
Dpi
DpiX
DpiY
EnableAdjustOrientation
FileName
FileTypeStr
FileType
GetThumbnail
Height
ImageCount
ImageIndex
ImageDelayTime
ImageEnAnnot
ImagingAnnot
InputICCProfile
IsResource
OutputICCProfile
OriginalHeight
OriginalWidth
SamplesPerPixel
Width

Adobe PDF
PDF_Author
PDF_Compression
PDF_Creator
PDF_Keywords
PDF_PaperHeight
PDF_PaperWidth
PDF_PaperSize
PDF_Producer
PDF_Subject
PDF_Title

Adobe PSD
PSD_HasPremultipliedAlpha
PSD_LargeDocumentFormat
PSD_LoadLayers
PSD_ReplaceLayers
PSD_SelectLayer

BMP
BMP_Compression
BMP_HandleTransparency
BMP_Version

CUR
CUR_Background
CUR_ImageIndex
CUR_XHotSpot
CUR_YHotSpot

Dicom
DICOM_Compression
DICOM_J2000Rate
DICOM_JPEGQuality
DICOM_Range
DICOM_Tags
DICOM_WindowCenterOffset

DCX
DCX_ImageIndex

GIF
GIF_Action
GIF_Background
GIF_Comments
GIF_DelayTime
GIF_FlagTranspColor
GIF_ImageCount
GIF_ImageIndex
GIF_Interlaced
GIF_Ratio
GIF_RAWLoad
GIF_TranspColor
GIF_Version
GIF_WinHeight
GIF_WinWidth
GIF_XPos
GIF_YPos

HDP
HDP_ImageQuality
HDP_Lossless

ICO
ICO_Background
ICO_BitCount
ICO_ImageIndex
ICO_Sizes

IEN (ImageEn native image format with layers)
IEN_Compression
IEN_Description
IEN_GetThumbnail
IEN_LayerCount
IEN_Version

JPEG
JPEG_ColorSpace
JPEG_DCTMethod
JPEG_CromaSubsampling
JPEG_EnableAdjustOrientation
JPEG_GetExifThumbnail
JPEG_MarkerList
JPEG_OptimalHuffman
JPEG_OriginalWidth
JPEG_OriginalHeight
JPEG_Progressive
JPEG_Quality
JPEG_Scale_Used
JPEG_Scale
JPEG_Smooth
JPEG_WarningCode
JPEG_WarningTot

JPEG 2000
J2000_ColorSpace
J2000_Rate
J2000_ScalableBy

PCX
PCX_Compression
PCX_Version

PNG
PNG_Background
PNG_Compression
PNG_Filter
PNG_Interlaced
PNG_TextKeys
PNG_TextValues

PostScript
PS_Compression
PS_PaperHeight
PS_PaperWidth
PS_PaperSize
PS_Title

PXM
PXM_Comments

RAW (Camera Digital Images)
RAW_AutoAdjustColors
RAW_BlueScale
RAW_Bright
RAW_Camera
RAW_ExtraParams
RAW_FourColorRGB
RAW_Gamma
RAW_GetExifThumbnail
RAW_HalfSize
RAW_QuickInterpolate
RAW_RedScale
RAW_UseAutoWB
RAW_UseCameraWB

RealRAW (not camera RAW)
BMPRAW_DataFormat
BMPRAW_ChannelOrder
BMPRAW_HeaderSize
BMPRAW_Planes
BMPRAW_RowAlign

TGA
TGA_AspectRatio
TGA_Author
TGA_Background
TGA_Compressed
TGA_Date
TGA_Descriptor
TGA_Gamma
TGA_GrayLevel
TGA_ImageName
TGA_XPos
TGA_YPos

TIFF
TIFF_BigTIFF
TIFF_ByteOrder
TIFF_Compression
TIFF_DocumentName
TIFF_EnableAdjustOrientation
TIFF_GetTile
TIFF_FillOrder
TIFF_ImageCount
TIFF_ImageDescription
TIFF_ImageIndex
TIFF_NewSubfileType
TIFF_JPEGColorSpace
TIFF_JPEGQuality
TIFF_Orientation
TIFF_PageCount
TIFF_PageName
TIFF_PageNumber
TIFF_PhotometInterpret
TIFF_PhotoshopImageResources
TIFF_PhotoshopImageSourceData
TIFF_PlanarConf
TIFF_SubIndex
TIFF_StripCount
TIFF_XPos
TIFF_YPos
TIFF_ZIPCompression

SVG (Scalable Vector Graphics)
SVG_ImageCompression

AVI
AVI_FrameCount
AVI_FrameDelayTime

MediaFile (AVI, MPEG, WMV, etc)
MEDIAFILE_FrameCount
MEDIAFILE_FrameDelayTime

EXIF Tags (for JPEG, TIFF and RAW)
EXIF_HasEXIFData
EXIF_ApertureValue
EXIF_Artist
EXIF_Bitmap
EXIF_BodySerialNumber
EXIF_BrightnessValue
EXIF_CameraOwnerName
EXIF_ColorSpace
EXIF_CompressedBitsPerPixel
EXIF_Contrast
EXIF_Copyright
EXIF_DateTime
EXIF_DateTime2
EXIF_DateTimeOriginal
EXIF_DateTimeOriginal2
EXIF_DateTimeDigitized
EXIF_DateTimeDigitized2
EXIF_DigitalZoomRatio
EXIF_ExifImageHeight
EXIF_ExifImageWidth
EXIF_ExifVersion
EXIF_ExposureBiasValue
EXIF_ExposureIndex
EXIF_ExposureMode
EXIF_ExposureProgram
EXIF_ExposureTime
EXIF_FileSource
EXIF_FlashPixVersion
EXIF_Flash
EXIF_FNumber
EXIF_FocalLength
EXIF_FocalLengthIn35mmFilm
EXIF_FocalPlaneResolutionUnit
EXIF_FocalPlaneXResolution
EXIF_FocalPlaneYResolution
EXIF_GainControl
EXIF_Gamma
EXIF_ImageDescription
EXIF_ImageUniqueID
EXIF_InteropIndex
EXIF_InteropVersion
EXIF_ISOSpeedRatings
EXIF_LensMake
EXIF_LensModel
EXIF_LensSerialNumber
EXIF_LightSource
EXIF_Make
EXIF_MakerNote
EXIF_MaxApertureValue
EXIF_MeteringMode
EXIF_Model
EXIF_Orientation
EXIF_PrimaryChromaticities
EXIF_ReferenceBlackWhite
EXIF_RelatedSoundFile
EXIF_ResolutionUnit
EXIF_Saturation
EXIF_SceneCaptureType
EXIF_SceneType
EXIF_SensingMethod
EXIF_Sharpness
EXIF_ShutterSpeedValue
EXIF_Software
EXIF_SubjectArea
EXIF_SubjectDistanceRange
EXIF_SubjectDistance
EXIF_SubjectLocationX
EXIF_SubjectLocationY
EXIF_SubsecTimeDigitized
EXIF_SubsecTimeOriginal
EXIF_SubsecTime
EXIF_UserCommentCode
EXIF_UserComment
EXIF_WhiteBalance
EXIF_WhitePoint
EXIF_XResolution
EXIF_YCbCrCoefficients
EXIF_YCbCrPositioning
EXIF_YResolution

Windows EXIF Tags (for JPEG, TIFF and RAW)
EXIF_XPAuthor
EXIF_XPComment
EXIF_XPKeywords
EXIF_XPRating
EXIF_XPSubject
EXIF_XPTitle

GPS EXIF Tags (for JPEG, TIFF and RAW)
EXIF_GPSVersionID
EXIF_GPSLatitude
EXIF_GPSLatitude_Str
EXIF_GPSLatitudeRef
EXIF_GPSLatitudeDegrees
EXIF_GPSLatitudeMinutes
EXIF_GPSLatitudeSeconds
EXIF_GPSLongitude
EXIF_GPSLongitude_Str
EXIF_GPSLongitudeRef
EXIF_GPSLongitudeDegrees
EXIF_GPSLongitudeMinutes
EXIF_GPSLongitudeSeconds
EXIF_GPSAltitudeRef
EXIF_GPSAltitude
EXIF_GPSTimeStampHour
EXIF_GPSTimeStampMinute
EXIF_GPSTimeStampSecond
EXIF_GPSSatellites
EXIF_GPSStatus
EXIF_GPSMeasureMode
EXIF_GPSDOP
EXIF_GPSSpeedRef
EXIF_GPSSpeed
EXIF_GPSTrackRef
EXIF_GPSTrack
EXIF_GPSImgDirectionRef
EXIF_GPSImgDirection
EXIF_GPSMapDatum
EXIF_GPSDestLatitudeRef
EXIF_GPSDestLatitudeDegrees
EXIF_GPSDestLatitudeMinutes
EXIF_GPSDestLatitudeSeconds
EXIF_GPSDestLongitudeRef
EXIF_GPSDestLongitudeDegrees
EXIF_GPSDestLongitudeMinutes
EXIF_GPSDestLongitudeSeconds
EXIF_GPSDestBearingRef
EXIF_GPSDestBearing
EXIF_GPSDestDistanceRef
EXIF_GPSDestDistance
EXIF_GPSDateStamp

IPTC Tags (for JPEG and TIFF)
IPTC_Info
IPTC_Photoshop
ReadIPTCField
WriteIPTCField
ClearIPTCField

Adobe XMP Info (for JPEG, TIFF and PSD)
XMP_Info

Extra Parameters
Dict

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOMultiParams

TIOMultiParams

Description

A list of TIOParams for handling images with multiple frames, such as AVI, TIFF, GIF and DICOM. It is used by TImageEnMIO and TIEMultiBitmap.

See Also

- Params

Methods and Properties

General
Assign
Clear
Count
DuplicateCompressionInfo
Read
Params

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog

TOpenImageEnDialog

Description

Displays a modal Windows dialog box for selecting and opening image files. It includes all properties, methods and events of the standard TOpenDialog. It also includes a preview window which displays all ImageEn supported file formats. If the file is an animated GIF, AVI video or a multi page TIFF, all images will be shown in sequence: the "Play" button will be activated to animate the sequence.

Image information such as dimensions, colors, dpi, file type, compression and file-memory sizes is also shown.

See Also

- TOpenDialog
- TSaveImageEnDialog

Methods and Properties

AlwaysAnimate
AutoAdjustDPI
AutoSetFilter
AutoSetFilterFileType
Execute
ExtendedDialog
ExtendedFilters
FileName
FileNameW
Files
FilesW
FileView
Filter
FilteredAdjustDPI
FilterDefault
FilterIndex
GetExifThumbnail
InfoPanel
PicturePanel
PreviewBorderStyle
PreviewSize
SelectedFrame
ShowAllFrames
ShowFormats
ShowPlacesBar
ZoomFilter

Events

OnCreateCustomControls
OnDestroyCustomControls
OnPreviewFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TSaveImageEnDialog

TSaveImageEnDialog

Description

TSaveImageEnDialog is the same as the TOpenImageEnDialog, but with an "Advanced" button to display and modify advanced specific file format parameters.

Also you can hide the image preview (using ExOptions).

TSaveImageEnDialog should be attached to a TImageEnIO, TImageEnMIO, TImageEnView or TImageEnMView component to get/set Params properties (when the user clicks the "Advanced" button). If it is not attached it will function as a standard save dialog with a preview, but without the ability to modify image properties.

See Also

- TSaveDialog
- TOpenImageEnDialog

Methods and Properties

AlwaysAnimate
AttachedImageEnIO
AutoAdjustDPI
AutoSetFilter
AutoSetFilterFileType
Execute
ExtendedDialog
ExtendedFilters
ExOptions
FileName
FileNameW
Files
FilesW
Filter
FilteredAdjustDPI
FilterDefault
FilterIndex
FileView
GetExifThumbnail
InfoPanel
PicturePanel
PreviewBorderStyle
PreviewSize
SelectedFrame
ShowAllFrames
ShowFormats
ShowPlacesBar
ZoomFilter

Events

OnCreateCustomControls
OnDestroyCustomControls

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEHashStream

TIEHashStream

Description

Builds a hash string from a stream.
Hash algorithm can be MD2, MD4, MD5 and SHA.

Examples

// saves the file with an unique name (create hash from the jpeg content and use it as file name)
var
hashStream: TIEHashStream;
begin
hashStream := TIEHashStream.Create(iehaMD5);
try
ImageEnView1.IO.SaveToStreamJpeg(hashStream);
hashStream.SaveToFile(hashStream.GetHash()+'.jpg');
finally
hashStream.Free;
end;
end;

Methods and Properties

Create
GetHash
LoadFromFile
LoadFromStream
Write
Read
Seek
SaveToFile
SaveToStream

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEResourceExtractor

TIEResourceExtractor

Description

TIEResourceExtractor class helps to extract resources from a PE files like EXE, DLL, OCX, ICL, BPL, etc..
In details, it is intended to extract Icons, Bitmaps, Cursors and other image resources.

Demo

Demos\InputOutput\ResourceLoader\ResourceLoader.dpr

Example

// loads resource 143, in "Bitmap"s, from "explorer.exe" (should be a little Windows logo)
var
re: TIEResourceExtractor;
buffer: pointer;
bufferLen: integer;
begin
re := TIEResourceExtractor.Create('explorer.exe');
try
buffer := re.GetBuffer('Bitmap', 'INTRESOURCE:143', bufferLen);
ImageEnView1.IO.Params.IsResource := true;
ImageEnView1.IO.LoadFromBuffer(buffer, bufferLen, ioBMP);
finally
re.Free;
end;
end;

Methods and Properties

Create
FriendlyTypes
GetBuffer
GetFrameBuffer
GetGroupAndFrame
GetResourceBookmark
GroupCountFrames
GroupFrameDepth
GroupFrameHeight
GroupFrameName
GroupFrameWidth
IndexOfType
IsGroup
IsGrouped
IsValid
Names
NamesCount
TypesCount
Types

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETIFFHandler

TIETIFFHandler

Description

This class allows you to read all TIFF tags, edit/add tags and pages, delete pages, and finally save back the modified TIFF.

Note: This class is unable to work with some OLD-JPEG tiff files. OLD-JPEG compression is no longer supported by the TIFF standard.

Examples

TIETIFFHandler Examples

Demo

Demos\InputOutput\TiffHandler\TiffHandler.dpr

Methods and Properties

Create

Input/output
ReadFile
ReadStream
InsertTIFFStream
InsertTIFFFile
InsertPageAsFile
InsertPageAsStream
InsertPageAsImage
WriteFile
WriteStream
FreeData

Meta Information
LittleEndian
Version

Tag Information
GetTagsCount
GetPagesCount
GetTagCode
GetTagType
GetTagLength
GetTagLengthInBytes
FindTag
DeleteTag
GetTagDescription
ChangeTagCode

Tag Reading
GetInteger
GetString
GetFloat
GetValue
SaveTagToFile
GetValueRAW

Tag Writing
SetValue
SetValueRAW

Tag Copying
CopyTag

Page Handling
DeletePage
InsertPage
MovePage
ExchangePage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETagsHandler

TIETagsHandler

Description

This class allows reading of EXIF maker note tags, which are not in IFD format (such as Canon).

Methods and Properties

GetDataType
GetInteger
GetIntegerArray
GetIntegerIndexed
GetMiniString
GetRational
GetRationalIndexed
GetRawData
GetString
TagExists
TagLength

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEWICReader

TIEWICReader

Description

TIEWICReader class encapsulates some Microsoft Windows Imaging Component (WIC) interfaces and allows you to load Microsoft HD Photo and other WIC installed file formats.
WIC preinstalled decoders are TIFF, PNG, GIF, ICO, BMP, JPEG, HDP.

Note: Requires Windows XP (SP2) with .Net 3.0, Windows Vista or newer.

Examples

// loads input.hdp in ImageEnView1, which is the same as ImageEnView1.IO.LoadFromFile('input.hdp')
with TIEWICReader.Create do
begin
Open('input.hdp', ioHDP);
GetFrame(0, ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;
ImageEnView1.Update;

// loads input.jpg in ImageEnView1
with TIEWICReader.Create do
begin
Open('input.jpg', ioJPEG);
GetFrame(0, ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;
ImageEnView1.Update;

// loads page 2 from input.tif to ImageEnView1
with TIEWICReader.Create do
begin
Open('input.tif', ioTIFF);
GetFrame(2, ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;
ImageEnView1.Update;

Methods and Properties

Close
DPIX
DPIY
FrameCount
FrameHeight
FrameWidth
GetFrame
IsAvailable
Open

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEWICWriter

TIEWICWriter

Description

TIEWICWriter class encapsulates some Microsoft Windows Imaging Component (WIC) interfaces and allows you to write Microsoft HD Photo and other WIC installed file formats.
WIC preinstalled encoders are TIFF, PNG, GIF, BMP, JPEG, HDP.

Note: Requires Windows XP (SP2) with .Net 3.0, Windows Vista or newer.

Examples

// saves ImageEnView1 to output.hdp, which is the same as ImageEnView1.IO.SaveToFile('output.hdp')
with TIEWICWriter.Create do
begin
Open('output.hdp', ioHDP);
PutFrame(ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;

// saves ImageEnView1 to output.jpg
with TIEWICWriter.Create do
begin
Open('output.jpg', ioJPEG);
PutFrame(ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;

// saves ImageEnView1 and ImageEnView2 as two pages in output.tif
with TIEWICWriter.Create do
begin
Open('output.tif', ioTIFF);
PutFrame(ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
PutFrame(ImageEnView2.IEBitmap, ImageEnView2.IO.Params);
Free;
end;

Methods and Properties

Close
DPIX
DPIY
IsAvailable
Open
PutFrame

Canonical Encoder Parameter Properties
CompressionQuality
ImageQuality
Lossless

Specific HD Photo Encoder Parameter Properties
FrequencyOrder
HorizontalTileSlices
Overlap
Quality
Subsampling
UseCodecOptions
VerticalTileSlices

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIERFBClient

TIERFBClient

Description

TIERFBClient implements a RFB (Remote Frame Buffer) client.
It can connect to any RFB compatible server like RealVNC, TightVNC, VMWare virtual machines or Macintosh remote desktop.

Currently implemented features:
Protocol | 3.3, 3.7 and 3.8
Authentication | No authentication or VNC (DES) authentication
Pixel format | 8 bit with RGB palette, 16 bit RGB, 32 bit RGB
Client messages | SetPixelFormat, SetEncodings, FrameBufferUpdateRequest, KeyEvent, PointerEvent, ClientCutText
Server messages | FrameBufferUpdate, SetColorMapEntries, Bell, ServerCutText
Keyboard | Limited support (CTRL-?, ALT-? could require more code by application)
Encodings | Raw, CopyRect, RRE, Cursor, DesktopSize
Cursor | Cursor shape and drawing local handled

Notes:
- Keysending doesn't support all key combinations (like CTRL-?, ALT-?, etc...), so applications should handle these combination manually.
- Requires at least Windows 2000.

Demos

Demos\VideoCapture\RFB_VNCViewer1\VNCViewer1.dpr
Demos\VideoCapture\RFB_VNCViewer2\VNCViewer2.dpr

Methods and properties

Create

Connect/Disconnect
Connect
Connected
Disconnect
Suspended

Server Properties
ScreenName
ScreenPixelFormat
ScreenSize

Commands
SendClipboard
SendKeyEvent
SendPointerEvent
SendRequestUpdate

Framebuffer Access (accessing frame buffer or cursor)
LockFrameBuffer
UnlockFrameBuffer

Frame Buffer and Cursor Bitmaps
Cursor
FrameBuffer

Events
OnBell
OnClipboardText
OnCursorShapeUpdated
OnUpdate
OnUpdateRect
OnUpdateScreenSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


Multipage Image functions

Multipage Image functions

Global methods for managing multi-frame image types without use of visual components such as TImageEnMView. You can also manipulate multi-page images in memory using the TIEMultiBitmap class.

Note: Defined in iexBitmaps unit

GIF

CheckAniGIF
DeleteGifIm
EnumGifIm
IEOptimizeGIF

TIFF

DeleteTIFFImGroup
DeleteTIFFIm
EnumTIFFIm
EnumTIFFStream
ExtractTIFFImageFile
ExtractTIFFImageStream
InsertTIFFImageFile
InsertTIFFImageStream

Icons (ICO)

EnumICOIm
IEWriteICOImages

Multipage PCX (DCX)

DeleteDCXIm
EnumDCXIm

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


iexMetaHelpers

iexMetaHelpers

iexMetaHelpers.pas provides helper functions for working with the EXIF and IPTC meta data in compatible files (e.g. JPEG and TIFF files). It includes an array of all common EXIF fields and provides methods for reading and writing fields by ID, as well as displaying and saving data in a TStringGrid or TListView. Also supports DICOM meta data.

Simply add iexMetaHelpers to your uses clause to access the new methods

IOPARAMS EXIF HELPER FUNCTIONS

Provide string formatted access (human-readable) to some EXIF properties (that are complex to interpret):
EXIF_AsStr
EXIF_CanWriteEXIFData
EXIF_FieldDescription
EXIF_ApertureValue_Str
EXIF_Camera_Str
EXIF_ExposureTime_Str
EXIF_FNumber_Str
EXIF_MaxApertureValue_Str
EXIF_ShutterSpeedValue_Str
EXIF_SubjectArea_Str
EXIF_SubjectLocation_Str
EXIF_XResolution_Str
EXIF_YResolution_Str

IOPARAMS XMP HELPER FUNCTIONS

Helper functions for XMP meta-data:
XMP_AsStr
XMP_AsInt
XMP_AsDateTime

IOPARAMS METADATA OUTPUT FUNCTIONS

Helper functions to output EXIF, IPTC, Dicom and XMP fields to a TStrings Object:
EXIF_WriteToStrings
IPTC_WriteToStrings
Dicom_WriteToStrings
XMP_WriteToStrings

OTHER IOPARAMS HELPER FUNCTIONS

General Helper functions for working with meta-data:
DICOM_FindTag
IPTC_HasIPTCData
DICOM_HasDicomTags
XMP_HasXMPData

STRINGGRID HELPER FUNCTIONS

Helper functions to output EXIF, IPTC and Dicom fields to a TStringGrid:
NewGridForExif
ReadGridFromExif
WriteGridToExif
NewGridForIPTC
ReadGridFromIPTC
WriteGridToIPTC
ReadGridFromDicom
ReadGridFromXMP
InitializeGrid
ClearGridFields

LISTVIEW HELPER FUNCTIONS

Helper functions to output EXIF and IPTC fields to a TListView:
NewListForExif
ReadListFromExif
WriteListToExif
NewListForIPTC
ReadListFromIPTC
WriteListToIPTC
ReadListFromDicom
ReadListFromXMP
InitializeList
ClearListFields

GENERAL EXIF METHODS

EXIFCompatibleFile
ReadEXIFCameraFieldsFromFile
ReadEXIFGPSFieldsFromFile

GENERAL IPTC METHODS

IPTCCompatibleFile
ReadIPTCDescriptionAndKeywordsFromFile
WriteIPTCDescriptionAndKeywordsToFile

EXIF TAG METHODS

ContainsExifTag
GetExifTagList
ReplaceExifTags

OTHER METHODS

DicomCompatibleFile
XMPCompatibleFile

* Note: Delphi/C++ 2005 or newer is required to use helper classes


TIEAcquireParams

TIEAcquireParams

Description

The TIEAcquireParams object provides a generic interface to the Twain, WIA and Portable Devices interfaces of ImageEn. It allows you to use all available acquisition methods without writing separate code for Twain and WIA.

Demo

Demos\ImageAcquisition\AllAcquire\AllAcquire.dpr

General Method and Properties

Aborting
Acquire
AttachedTwainParams
AttachedDCIMParams
AttachedWIAParams
Create
Destroy
IsPixelTypeSupported
VisibleDialog

Sources

FillListWithSources
SelectedSource
SelectedSourceApi
SelectSource
SetSource
SetSourceByStr

Device Properties

AcquireFrameEnabled
AcquireFrameBottom
AcquireFrameLeft
AcquireFrameRight
AcquireFrameTop
AutoFeed
BitDepth
Brightness
Contrast
DuplexEnabled
DuplexSupported
FeederEnabled
FeederLoaded
Orientation
PaperDetectable
PhysicalHeight
PhysicalWidth
PixelType
Rotation
Threshold
XResolution
YResolution

IEAcquire Helper Functions

StrToAcquireSource
AcquireSourceToStr
DrawAcquireComboListBoxItem

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams

TIETwainParams

Description

The TIETwainParams object contains many properties and methods to control Twain scanners without using the default dialog.

Twain Communication Methods

Assign
Create
FreeResources
GetDefaultSource
GetFromScanner
IsCapabilitySupported
SelectSourceByName
SetDefaultParams
Update

Twain Properties

AcceptedImages
AcquireFrameBottom
AcquireFrameEnabled
AcquireFrameLeft
AcquireFrameRight
AcquireFrameTop
AppManufacturer
AppProductFamily
AppProductName
AppVersionInfo
AutoBorderDetection
AutoBright
AutoDeskew
AutoDiscardBlankPages
AutoFeed
AutoRotate
AutoScan
BitDepth
Brightness
BufferedTransfer
CapabilitiesValid
CompatibilityMode
Contrast
Country
DeviceOnline
DuplexEnabled
DuplexSupported
FeederEnabled
FeederLoaded
FileTransfer
Filter
Gamma
Highlight
Language
LastErrorStr
LastError
LogFile
Orientation
PaperDetectable
PhysicalHeight
PhysicalWidth
PixelType
ProgressIndicators
Rotation
SelectedSource
Shadow
ShowSettingsOnly
SourceCount
SourceName
StandardSize
Threshold
UndefinedImageSize
UseMemoryHandle
VisibleDialog
XResolution
XScaling
YResolution
YScaling

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEWia

TIEWia

Description

TIEWia class (TImageEnIO.WIAParams and TImageEnMIO.WIAParams properties) allows you to set/get parameters, show dialogs and control WIA devices.

Methods and Properties

ConnectedDeviceIndex
ConnectTo
ConnectToUsingDialog
DeleteItem
DeleteTakenPicture
Device
DevicesInfo
DevicesInfoCount
FillTreeView
GetDeviceProperty
GetItemProperty
GetItemPropertyAttrib
GetItemThumbnail
IsItemDeleted
SaveTransferBufferAs
SetDeviceProperty
SetDevicePropertyVariant
SetItemProperty
SetItemPropertyVariant
ShowAcquireDialog
TakePicture
TransferFormat
UpdateItems

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPortableDevices

TIEPortableDevices

Description

An implementation of Windows Portable Devices API, which provides access to connected devices and external drives. It is used in ImageEn by the TIEDcimAcquire class for acquisition of images from devices.

Demos

Demos\ImageAcquisition\AllAcquire\AllAcquire.dpr
Demos\ImageAcquisition\PortableDevices\WPDDemo.dpr

Properties

ActiveDeviceID
ActiveFolderID
CanNavigateToParent
HideEmptyDevices
Devices
DeviceCount
Objects
ObjectCount
LastError
Sorted

Methods

Create
Destroy
Cancel
CopyFileToDevice
CopyFileFromDevice
CopyStreamFromDevice
DeleteFromDevice
DeviceIDToIndex
FindFilesByName
FindFilesOfType
GetObjectAdvancedProps
ObjectIDToIndex
ObjectIsFolder
LookupDeviceFriendlyName
LookupObjectFriendlyName
NavigateToFolderID
NavigateToFolderPath
NavigateToParent
RefreshDevices

Events

OnLog

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader

TIEMediaFoundationSourceReader

Description

Encapsulates Microsoft Media Foundation source reader object, allowing the capture of video and audio samples from a source.

Presently TIEMediaFoundationSourceReader can capture from video capture devices (webcams), files (all formats supported by Windows Media Player) and URLs.

To setup TIEMediaFoundationSourceReader, applications must specify a video/file source, a video/audio stream and a media type. Then call GetNextSample() to read samples (images) from the source.
TImageEnView and TImageEnIO embed a TIEMediaFoundationSourceReader object to simplify usage.

See the VideoCapture\MediaFoundation demos for usage samples.

TIEMediaFoundationSourceReader is available in Windows Vista and newer. We have tested to confirm compatibility with Windows 7, 8.1 and 10.

Demos

Demos\VideoCapture\MediaFoundationCam\MediaFoundationCam.dpr
Demos\VideoCapture\MediaFoundationFile\MediaFoundationFile.dpr
Demos\VideoCapture\MediaFoundationURL\MediaFoundationURL.dpr

Example

// This is a minimal setup to capture from a webcam (the first webcam, using first proposed media type):

ImageEnView1.IO.MediaFoundationSourceReader.SetVideoInput(0); // select first video input (first webcam)
ImageEnView1.IO.MediaFoundationSourceReader.SetSelectedStreams('Video', true); // enable first video stream
ImageEnView1.IO.MediaFoundationSourceReader.SelectMediaType(mmf_VIDEO_STREAM, 0); // select first media type of the first video stream
ImageEnView1.IO.MediaFoundationSourceReader.StartCapture(); // start capture

// handler for TImageEnView.OnMediaFoundatioNotify event
procedure TForm1.ImageEnVect1MediaFoundationNotify(Sender, MediaFoundationObject: TObject; NotifyType: TIEMediaFountationNotifyType);
var
sample: TIEMFReceivedSample;
begin
if NotifyType = iemfnFRAME then // is this a frame?
begin
sample := ImageEnView1.IO.MediaFoundationSourceReader.GetNextSample(); // retrieve frame sample
try
sample.DecodeSample(ImageEnView1.IEBitmap); // convert frame sample to bitmap
ImageEnView1.Update(); // update TImageEnView to show the new bitmap
finally
sample.Free(); // free the sample
end;
end;
end;

Methods and Properties

Media Foundation Availability
IsAvailable

Events/Frame Notification
ClearNotifyReceivers
PopNotifyReceiver
PushNotifyReceiver

Video Input Information
UpdateVideoInputs
VideoInputs

Video Input Selection
SetVideoInput

File Input Selection
SetFileInput

URL Input Selection
SetURLInput

Stream Information
GetStreamType
IndexOfFirstStream
StreamCount

Stream Selection
SetSelectedStreams

Media Type Information
GetMediaType
GetMediaTypesCount

Media Type Selection (for native media type selection)
SelectMediaType

Media Type Setting (for custom media types)
SetMediaTypeAudio
SetMediaTypeCustom
SetMediaTypeVideo

Current Media Type Info
GetCurrentMediaType

Seeking
Duration
SetPosition

Capture Control
Capturing
Flush
PauseCapture
ResumeCapture
StartCapture
StopCapture

Sample Capture
GetNextSample
SamplesBufferSize
DiscardAudioSamples

Video Processing
VideoProcessor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow

TIEDirectShow

Description

TIEDirectShow class allows control of some Direct Show features, such as video capture, audio capture, multimedia files capture as well video rendering, and multimedia file writing.

Methods and Properties

AudioCodecs
AudioInputs
BufferToTIEBitmap
CaptureMode
ClockErrorTolerance
Connect
Connected
ConvertTimeFormat
Disconnect
Duration
DVDActivateButton
DVDGetProperty
DVDInputPath
DVDPlayAdvanced
DVDPlayAt
DVDSelectAt
DVDShowMenu
EnableSampleGrabber
EndOfStream
FileInput
FileOutput
GetAverageTimePerFrame
GetCurrentVideoFormat
GetEventCode
GetSample
GetSupportedTVStandards
GetVideoRenderNativeSize
GetVideoRenderRect
NotifyWindow
Pause
Position
Rate
ReferenceClock
RenderAudio
RenderVideo
RepaintVideo
Run
SaveGraph
SetAudioCodec
SetAudioInput
SetCurrentVideoFormat
SetNotifyWindow
SetTVStandard
SetVCRHorizontalLocking
SetVideoCodec
SetVideoInput
SetVideoRenderRect
ShowPropertyPages
State
Step
Stop
TimeFormat
TunerChannel
TunerFindSignal
VideoCodecQuality
VideoCodecs
VideoFormats
VideoFormatsCount
VideoInputs
VideoInputSource
VideoInputSources

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaReader

TIEMediaReader

Description

This class provides access to frames from a media file (wmv, mpeg...).
TIEMediaReader is a simple stand-alone class, with one single method to copy the wanted frame to a TIEBitmap object.
Reading of frames could be slow.

Note: TIEMediaReader uses IMediaDet. Microsoft marks IMediaDet as Deprecated and may be removed from future releases of Windows

Example

var
media: TIEMediaReader;

media := TIEMediaReader.Create('video.wmv');

// get frame 0 and save to sample0.jpeg
media.GetSample( 0, ImageEnView1.IEBitmap );
ImageEnView1.IO.SaveToFile('sample0.jpeg');

// get frame 1 and save to sample1.jpeg
media.GetSample( 1, ImageEnView1.IEBitmap );
ImageEnView1.IO.SaveToFile('sample1.jpeg');

...etc...

media.free;

Methods and Properties

FrameCount
FrameHeight
FrameRate
FrameWidth
GetSample
Length

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap

TIEDBBitmap

Description

TIEDBBitmap is a descendant of TIEBitmap, but it links to a datasource to provide access to images stored in a database table.
TIEDBBitmap supports both images stored within the database as a blob (by setting ImageBlobField) or images stored locally and referenced by a filename field (by setting only FilenameField). You will need to set DataSource.

There are two ways you can use TIEDBBitmap:

• Connected to a TTable

By setting the DataSource and ImageBlobField or FilenameField, the TIEDBBitmap will be connected to the database and the content will update with the movement and changes on the table, either automatically (AutoLoad is true) or manually (by calling LoadImage). This is generally used to create a data-aware TImageEnView by setting the external bitmap to a TIEDBBitmap.

// Create DB Aware TImageEnView
procedure TMainForm.FormCreate(Sender: TObject);
begin
... Open a database table ...

fDBBitmap := TIEDBBitmap.create( DataSource1, 'Image', 'Name' );
ImageEnView1.SetExternalBitmap( fDBBitmap );
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBBitmap );
end;

• As an adhoc Bitmap with database access

Use TIEDBBitmap to retrieve images embedded in a database blob field using the data-aware overload of Read.

// Extract an image from a database and save it
MyBMP := TIEDBBitmap.Create();
MyBMP.Read( MyTableImageBlob );
MyBmp.Write( 'D:\MyBlobImage.jpeg' );
MyBmp.Free;

Methods and Properties

General
AdjustmentsMask
Allocate
BitAlignment
BitCount
Clear
Contrast
Create
CreateDIB
CreateROIBitmap
CreateROICanvas
Destroy
FreeImage
FixChannelOffset
FixContrast
Height
IsEmpty
IsVirtual
Location
MemoryAllocator
MinFileSize
Origin
PixelFormat
Resize
VclBitmap
Width

Database
DataSource
AutoLoad
FilenameField
ImageBlobField
ImageFormat
ImagePath
ImageStorageMode
JpegQuality
UseMemoryStream
Read (Load from blob/file/stream)
Write (Save to blob/file/stream)
LoadImage
UpdateDatabaseImage

Assignment between Objects
Assign
AssignImage
CopyAndConvertFormat
CopyFromDIB
CopyFromMemory
CopyFromTBitmap
CopyFromTDibBitmap
CopyFromTIEMask
CopyRectTo
CopyToTBitmap
CopyToTDibBitmap
CopyToTIEMask
CopyWithMask1
CopyWithMask2
DrawToTIEBitmap
EncapsulatedFromMemory
EncapsulatedFromTBitmap
EncapsulateMemory
EncapsulateTBitmap
MergeFromTDibBitmap
RenderToTBitmap
RenderToTBitmapEx
RenderToTIEBitmap
RenderToTIEBitmapEx
RestoreState
SaveState
StretchRectTo
SwitchTo
UpdateFromTBitmap

File I/O
Access (inherited from TIEBaseBitmap)
CalcRAWSize
GetHash
LoadFromResource
LoadRAWFromBufferOrStream
ParamsEnabled
Params
SaveRAWToBufferOrStream

Canvas Access
IECanvas
Canvas
DrawToCanvas
Fill
FillRect
MoveRegion
RenderToCanvas

Alpha Channel (Transparency)
Alpha
AlphaChannel
AlphaChannelOpt
CanvasCurrentAlpha
DrawToCanvasWithAlpha
FeatherAlphaEdges
HasAlphaChannel
IsAlpha
MergeAlphaRectTo
MergeWithAlpha
RemoveAlphaChannel
RenderToCanvasWithAlpha
SynchronizeRGBA

Pixel Access
FreeRow
GetRow
GetSegment
Memory
Pixels_ie16g
Pixels_ie1g
Pixels_ie24RGB
Pixels_ie32f
Pixels_ie32RGB
Pixels_ie48RGB
Pixels_ie8
Pixels_ieCIELab
Pixels_ieCMYK
Pixels
PPixels_ie24RGB
PPixels_ie32RGB
PPixels_ie48RGB
Rowlen
ScanLine
TBitmapScanlines
VirtualBitmapProvider

Palette and Color
Palette (inherited from TIEBaseBitmap)
PaletteLength (inherited from TIEBaseBitmap)
PaletteUsed (inherited from TIEBaseBitmap)
AutoCalcBWValues
BlackValue
ChannelCount
ChannelOffset
ColorProfile
CopyPaletteTo
DefaultDitherMethod
Full
IsAllBlack
IsGrayScale
StretchValues
SyncFull
WhiteValue

Image Manipulation
Flip
Resample
Rotate

IEVision related
GetIEVisionImage
AssignIEVisionImage

Events
OnRenderVirtualPixel

Unique functionality to TIEDBBitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap

TIEDBMultiBitmap

Description

TIEDBMultiBitmap is a descendant of TIECustomMultiBitmap, but unlike TIEMultiBitmap it links to a datasource to provide access to images stored in a database table.
Generally a TIEDBMultiBitmap is attached to a TImageEnMView to make it DB aware.

TIEDBMultiBitmap supports both images stored within the database as a blob (by setting ImageBlobField) or images stored locally and referenced by a filename field (by setting only FilenameField). You will also need to set DataSource.

Demo

Demos\Database\DBMultiBitmap\DBMultiBitmap.dpr

Example

// Create DB Aware TImageEnMView
procedure TMainForm.FormCreate(Sender: TObject);
begin
... Open a database table ...

fDBMBitmap := TIEDBMultiBitmap.create( DataSource1, 'Image', 'Name' );
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBMBitmap );
end;

Methods and Properties

General
Create
Destroy
Count
LockUpdate
LockUpdateCount
UnLockUpdate

Database
DataSource
FollowDBCursor
FilenameField
FilenameFieldIsUnique
ImageBlobField
ImageFormat
ImagePath
ImageStorageMode
MaxDisplayRecords
Update
UseMemoryStream

Database Editing
AppendImage
DefaultFilename
DeleteImage
InsertImage
JpegQuality
ReadOnly

Image Access
CopyToIEBitmap
GetBitmap
GetTIEBitmap
ReleaseBitmap
SetImage

Image Information
ImageBitCount
ImageFilename
ImageHeight
ImageTag
ImageUserPointer
ImageWidth

Input/Output
ImageCacheSize
ImageCacheUseDisk
GetImageToFile
GetImageToStream

Input/Output Parameters (Meta-Data)
ParamsEnabled
Params

Image Manipulation
Flip
Resample
Rotate

Unique functionality to TIEDBMultiBitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnDBView

TImageEnDBView

Description

TImageEnDBView is a descendant of TImageEnView, but it can be connected to a TDataset object to store/load images (BMP, PCX, GIF, JPEG, TIFF, PNG, PXM and others) into Blob fields or into path reference (string) fields.

TImageEnDBView works similarly to Delphi TDBImage components.

You can specify particular file format parameters through IOParams property, or by executing the DoIOPreview method.

You can attach a TImageEnProc component for processing the image contained in the Blob.

Also see methods and properties of TImageEnView.

Methods and Properties

AbsolutePath
AutoDisplay
DataField
DataFieldImageFormat
DataSource
DoIOPreview
Field
IOParams
IOPreviewsParams
JpegQuality
LoadedFieldImageFormat
LoadPicture
PreviewFont
PreviewFontEnabled
ReadOnly
StreamHeaders
UseMemoryStream

Events

OnUnableToLoadImage
OnBeforeLoadImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnDBVect

TImageEnDBVect

Description

TImageEnDBVect is a descendant of TImageEnVect, but it can connected to a TDataset object to store/load images (BMP, PCX, GIF, JPEG, TIFF, PNG and others) and vectorial objects in Blob field.

It is similar to the TDBImage component of Delphi.
You can specify particular file format parameters through IOParams property, or executing DoIOPreview method.
You can attach a TImageEnProc component for image processing the image contained in the Blob.

Also see methods and properties of TImageEnVect.

Methods and Properties

AbsolutePath
AutoDisplay
DataField
DataFieldImageFormat
DataSource
DoIOPreview
Field
IOParams
IOPreviewsParams
JpegQuality
LoadedFieldImageFormat
LoadPicture
PreviewFont
PreviewFontEnabled
ReadOnly

Events

OnUnableToLoadImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView Actions

TImageEnView Actions

ImageEn includes a large set of actions for ImageEnView, ImageEnMView , ImageEnFolderMView and ImageEnVect components to allow you to rapidly develop your UI.

To use actions:

1. Add a TActionList component to your form
2. Double-click your TActionList to open it
3. Select "New Standard Action"
4. Scroll down to the ImageEnView actions, select the ones you require and click OK
5. Select your actions and set the ImageEnView property to your TImageEnView component
6. Assign the actions to menu items and buttons

Demos

Demos\Other\Actions\Actions.dpr
Demos\Other\Actions_Layers\Actions.dpr

Notes:

- You must set the ImageEnView property of the actions
- You can set MsgLanguage to localize the actions
- See the list of the default ImageIndexes if you are planning to add graphics to your actions

General Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnViewAutoShrink | Auto-Shrink | Display large images at the window size | AutoShrink | -
TImageEnViewAutoStretch | Auto-Stretch | Display small images at the window size | AutoStretch | -
TImageEnViewBlank | Clear | Clear the image | Blank | -
TImageEnViewClearAll | Clear All | Clear the image and layers | ClearAll | -
TImageEnViewDeselect | Deselect | Clear your selection | Deselect | -
TImageEnViewFit | Fit Image | Display the image at the size of the window | Fit | -
TImageEnViewFitToHeight | Fit Image to Height | Display the image at the height of the window | FitToHeight | -
TImageEnViewFitToWidth | Fit Image to Width | Display the image at the width of the window | FitToWidth | -
TImageEnViewEnableAdjustOrientation | Auto-Rotate Display | Automatically display image with the correct orientation | EnableAdjustOrientation | -
TImageEnViewPlaying | Animate | Display the animation of a GIF or AVI file | Playing | -
TImageEnViewPlayLoop | Loop Playback | Continuously loop the playback of a GIF or AVI file | PlayLoop" | -
TImageEnViewShowRulers | Show Rulers | Show measurement rulers beside image | ShowRulers | -
TImageEnViewRulerUnitPixels | Pixels | Show ruler in pixels | Units | -
TImageEnViewRulerUnitInches | Inches | Show ruler in onches | Units | -
TImageEnViewRulerUnitMillimeters | Millimeters | Show ruler in millimeters | Units | -
TImageEnViewRulerUnitCentimeters | Centimeters | Show ruler in centimeters | Units | -
TImageEnViewZoomIn | Zoom In | Display the image larger | ZoomIn | -
TImageEnViewZoomOut | Zoom Out | Display the image smaller | ZoomOut | -
TImageEnViewZoomFullSize | Zoom to Full Size | Display the image at full size | Zoom | -
TImageEnViewSetZoom | Zoom to x% | Display the image at x% Zoom | Zoom | Zoom

Layer Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnViewLayersAdd | Add Layer | Add a new layer to this image * | LayersAdd | LayerKind
TImageEnViewImageLayersAdd | Add Image Layer | Add a new image layer to this image * | LayersAdd | -
TImageEnViewShapeLayersAdd | Add Shape Layer | Add a new shape layer to this image * | LayersAdd | Shape
TImageEnViewLineLayersAdd | Add Line Layer | Add a new line layer to this image * | LayersAdd | -
TImageEnViewPolylineLayersAdd | Add Polyline Layer | Add a new polyline layer to this image * | LayersAdd | -
TImageEnViewTextLayersAdd | Add Text Layer | Add a new text layer to this image * | LayersAdd | TIETextLayer.Text>DefaultText
TImageEnViewLayersCreateFromFile | Load File as Layer... | Prompts for an image file and loads it as a new layer | LayersCreateFromFile | -
TImageEnViewLayersCropBackground/C> | Crop Background to Selection | Crop the background image to match selected layers | LayersCropBackground | FillAlpha, AllowReduce, AllowEnlarge
TImageEnViewLayersDeselectAll | Deselect All Layers | Deselect all layers of the image | LayersDeselectAll | -
TImageEnViewLayersFastDrawing | Fast Preview | Reduce preview quality to improve performance | LayersFastDrawing, ZoomFilter, DelayZoomFilter, LayersRotationUseFilterOnPreview | DelayedHighQuality, ZoomFilter
TImageEnViewLayersMerge | Merge Layers | Merge selected layers into a single layer | LayersMerge | -
TImageEnViewLayersMergeAll | Merge All Layers | Merge all layers of the image into a single layer | LayersMergeAll | -
TImageEnViewLayersPromptToOpen | Open | Load layers from a file | ExecuteOpenDialog, LoadFromFile | DialogTitle, LockToIEN, FileName
TImageEnViewLayersPromptToSave | Save as | Save layers to a new filename | ExecuteSaveDialog, SaveToFile | DialogTitle, LockToIEN, FileName
TImageEnViewLayersRemoveCurrent | Remove Layer | Remove the selected layers from the image | LayersRemove | -
TImageEnViewLayersSave | Save | Save changes to file | SaveToFile | EnableOnlyWhenChanged, FileName
TImageEnViewLayersSelectAll | Select All Layers | Select all layers of the image | LayersSelectAll | -

Layer Alignment Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnViewLayersAlignLeftEdges | Align on Left | Align selected layers to the edge of the left-most layer | ilaAlignLeftEdges | -
TImageEnViewLayersAlignRightEdges | Align on Right | Align selected layers to the edge of the right-most layer | ilaAlignRightEdges | -
TImageEnViewLayersAlignTopEdges | Align Tops | Align selected layers to the edge of the top-most layer | ilaAlignTopEdges | -
TImageEnViewLayersAlignBottomEdges | Align Bottoms | Align selected layers to the edge of the bottom-most layer | ilaAlignBottomEdges | -
TImageEnViewLayersAlignHorizontalCenters | Align Horizontal Centers | Align selected layers to have the same horizontal center | ilaAlignHorizontalCenters | -
TImageEnViewLayersAlignVerticalCenters | Align Vertical Centers | Align selected layers to have the same vertical center | ilaAlignVerticalCenters | -
TImageEnViewLayersMatchWidth | Match Widths | Resize all selected layers to the width of the widest layer | ilaMatchWidth | -
TImageEnViewLayersMatchHeight | Match Heights | Resize all selected layers to the height of the tallest layer | ilaMatchHeight | -

Layer Property Actions

TIELayerAspectRatioLocked | Lock Aspect Ratio | Prevent resizing from affecting the aspect ratio of the selected layer | AspectRatioLocked | -
TIELayerConvertToImageLayer | Convert to Image Layer | Convert the layer to an image | ConvertToImageLayer | QualityFactor, CropAlpha, ConvertImages
TIELayerCropped | Crop Layer to Background | Hide any part of the layer that is outside the background | Cropped | -
TIELayerEditText | Edit Layer Text | Edit the text of the selected layer | Text/LabelText | UseDialog
TIELayerLocked | Lock Position | Prevent movement of the selected layer | Locked | -
TIELayerResetRotate | Reset Rotation | Reset the rotation of the selected layer | Rotate | -
TIELayerRestoreAspectRatio | Restore Aspect Ratio | Restore the original aspect ratio of the selected layer | RestoreAspectRatio | PreferredOnly
TIELayerRotateLeft | Rotate Left | Rotate the layer counter-clockwise | Rotate | RotateDegrees
TIELayerRotateRight | Rotate Right | Rotate the layer clockwise | Rotate | RotateDegrees
TIELayerSizeToFit | Size to Fit | Resize the layer to match its content | SizeToFit, SizeToText | -
TIELayerSoftShadow | Soft Shadow | Add a soft shadow to the selected layer | SoftShadow | Radius, Intensity, ShadowColor
TIELayerVisible | Visible | Display the current layer | Visible | -
TIEImageLayerRestoreSize | Reset Size | Restore the original size of the selected layer | RestoreSize | -
TIEImageLayerExecuteOpenDialog | Select Image | Browse for an image to load into the layer | ExecuteOpenDialog | -
TIELineLayerShowLabel | Show Label | Attach a text label to the selected layer | LabelPosition | -
TIEPolylineLayerPolylineClosed | Close Polyline | Join the first and last points of the polyline to create a polygon | PolylineClosed | -
TImageEnViewLayersFixBorders | Crop Transparency | Remove transparent borders from the selected layers | LayersFixBorders | -
TImageEnViewLayersGroup | Group Layers | Add selected layers to a selection group | LayersGroup | -
TImageEnViewLayersMoveBringToFront | Bring to Front | Bring the selected layer to the front of all others | LayersMove | -
TImageEnViewLayersMoveBringForward | Bring Forward | Move the selected layer forward | LayersMove | -
TImageEnViewLayersMoveSendToBack | Send to Back | Position the selected layer behind all others | LayersMove | -
TImageEnViewLayersMoveSendBackward | Send Backwards | Move the selected layer backward | LayersMove | -
TImageEnViewLayersUngroup | Ungroup Layers | Remove selected layers from selection group | LayersUngroup | -

Layer Mouse Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnViewMouseMoveLayers | Move Layers | Use the mouse to move image layers | miMoveLayers | -
TImageEnViewMouseResizeLayers | Resize Layers | Use the mouse to resize image layers | miResizeLayers | -
TImageEnViewMouseRotateLayers | Rotate Layers | Use the mouse to rotate image layers | miRotateLayers | -
TImageEnViewMouseCreateImageLayers | Add Image Layer | Click and drag to create an image layer * | miCreateImageLayers (creating a TIEImageLayer | PromptForImage
TImageEnViewMouseCreateShapeLayers | Add Shape Layer | Click and drag to create a shape layer * | miCreateShapeLayers (creating a TIEShapeLayer | -
TImageEnViewMouseCreateLineLayers | Add Line Layer | Click and drag to create a line layer * | miCreateLineLayers (creating a TIELineLayer | -
TImageEnViewMouseCreatePolylineLayers | Add Polyline Layer | Click and drag to create a polyline layer * | miCreatePolylineLayers (creating a TIEPolylineLayer | -
TImageEnViewMouseCreateTextLayers | Add Text Layer | Click and drag to create a text layer * | miCreateTextLayers (creating a TIETextLayer | -

General Mouse Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnViewMouseMovingScroll | Scroll to Cursor | Move the mouse to scroll the image | miMovingScroll | -
TImageEnViewMouseScroll | Scroll Image | Click the image and drag the mouse to scroll | miScroll | -
TImageEnViewMouseSelect | Rectangular Select | Select a rectangular area of your image | miSelect | -
TImageEnViewMouseSelectCircle | Circular Select | Select a circular area of your image | miSelectCircle | -
TImageEnViewMouseSelectLasso | Lasso Select | Perform an irregular selection of your image by dragging the mouse | miSelectLasso | -
TImageEnViewMouseSelectMagicWand | Select by Color | Select a portion of your image of a similar color | miSelectMagicWand | -
TImageEnViewMouseSelectPolygon | Polygon Select | Perform an irregular selection of your image by clicking the mouse | miSelectPolygon | -
TImageEnViewMouseSelectZoom | Zoom to Selection | Select an area of the image to zoom into | miSelectZoom | -
TImageEnViewMouseZoom | Zoom | Left-click the image to Zoom In. Right-click to Zoom Out | miZoom | -

Crop Tool Interaction

Action | Name | Description | Associated Method | Extra Properties
TImageEnViewCropToolEnable | Enable Cropping | Enable cropping mode to select an area of image to maintain | TIECropToolInteraction | CropMode-
TImageEnViewCropToolEnactCrop | Crop to Selection | Crop the image to the selection | Crop | -
TImageEnViewCropToolCancelCrop | Cancel Cropping | Clear the current crop selection | Cancel | -

Proc Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnViewDoPreviews | Do Effects | Display the Effects dialog for editing and enhancing the image (all or a specific effect) | DoPreviews | Effects
TImageEnViewDoAdjustPreviews | Adjust Colors | Perform color enhancement functions on the image | DoPreviews(ppeColorAdjustments) | -
TImageEnViewDoEffectPreviews | Image Effects | Perform effects on the image | DoPreviews(ppeSpecialEffects) | -
TImageEnViewDoEditPreviews | Edit Image | Perform editing functions on the image: rotate, resize, crop, etc. | DoPreviews(ppeEditingFunctions) | -
TImageEnViewPromptToResize | Prompt to Resize | Display the previews dialog to allow the user to resample (resize) the image | DoPreviews | ResampleFilter
TImageEnViewPromptToRotate | Prompt to Rotate | Display the previews dialog to allow the user to rotate the image to a custom angle | DoPreviews | AntiAliasMode
TImageEnViewRotateRight | Rotate Right | Rotate the image 90° clockwise | Rotate | -
TImageEnViewRotate180 | Rotate 180° | Rotate the image 180° clockwise | Rotate | -
TImageEnViewRotateLeft | Rotate Left | Rotate the image 90° counter-clockwise | Rotate | -
TImageEnViewFlipHorizontal | Flip Horizontal | Flip the image from top to bottom | Flip | -
TImageEnViewFlipVertical | Flip Vertical | Flip the image from left to right | Flip | -
TImageEnViewCrop | Crop to Selection | Remove all parts of the image outside the current selection | Crop | -
TImageEnViewCutToClipboard | Cut | Cut the current image or selection to the clipboard | CutToClipboard | Cut Source
TImageEnViewCopyToClipboard | Copy | Copy the current image or selection to the clipboard | CopyToClipboard | Copy Source
TImageEnViewPasteFromClipboard | Paste | Paste an image from the clipboard | PasteFromClipboard | Paste Dest
TImageEnViewUndo | Undo | Undo the last action | Undo | ShowUndoAction
TImageEnViewRedo | Redo | Redo the last action that was undone | Redo | ShowRedoAction
TImageEnViewConvertToGray | Convert to Gray | Reduce the colors of the image to grayscale | ConvertToGray | -
TImageEnViewHistAutoEqualize | Auto Equalize Colors | Equalizes the color histogram for the selected region | HistAutoEqualize | -
TImageEnViewNegative | Negative | Invert the colors of the image | Negative | -
TImageEnViewRemoveRedEyes | Remove Red-Eyes | Remove the red-eye effect from the selection | RemoveRedEyes | -
TImageEnViewSharpen | Sharpen | Apply a sharpening filter to the image | Sharpen | Intensity, Neighbourhood

IO Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnViewPromptToOpen | Open | Load an image from file | ExecuteOpenDialog, LoadFromFile | DialogTitle, DefaultFilter, LimitToFileType, FileName
TImageEnViewSave | Save | Save changes to this image to file | SaveToFile | EnableOnlyWhenChanged, FileName
TImageEnViewPromptToSave | Save as | Save this image to a new filename | ExecuteSaveDialog, SaveToFile | DialogTitle, DefaultFilter, LimitToFileType, FileName
TImageEnViewDoIOPreviews | Save Properties | Specify advanced properties for this image | DoPreviews | PreviewParams
TImageEnViewDoPrintPreviewDialog | Print Preview | Display a preview of this image for printing | DoPrintPreviewDialog | DialogType
TImageEnViewPrintImageNormal | Print | Print this image at its original size | PrintImage | -
TImageEnViewPrintImageFitToPage | Print to Page | Print this image to fit the page | PrintImage | -
TImageEnViewSelectAcquireSource | Select Acquisition Source | Select the camera or scanner to acquire images from | SelectAcquireSource | Apis
TImageEnViewAcquire | Acquire | Retrieve an image from a camera or scanner | Acquire | -
TImageEnViewSeekFirst | First Frame | Display the first frame of this image | Seek | -
TImageEnViewSeekPrior | Previous Frame | Display the prior frame of this image | Seek | -
TImageEnViewSeekNext | Next Frame | Display the next frame of this image | Seek | -
TImageEnViewSeekLast | Last Frame | Display the last frame of this image | Seek | -

* Use OnNewLayer or LayerDefaults to set properties of the new layer


TImageEnVect Actions

TImageEnVect Actions

ImageEn includes a large set of actions for ImageEnVect, ImageEnView and ImageEnMView components to allow you to rapidly develop your UI.

To use actions:

1. Add a TActionList component to your form
2. Double-click your TActionList to open it
3. Select "New Standard Action"
4. Scroll down to the ImageEnVect actions, select the ones you require and click OK
5. Select your actions and set the ImageEnVect property to your TImageEnVect component
6. Assign the actions to menu items and buttons

Demo

Demos\Other\Actions_Vect\VectActions.dpr

Notes:

- You must set the ImageEnVect property of the actions
- You can set MsgLanguage to localize the actions
- See the list of the default ImageIndexes if you are planning to add graphics to your actions

General Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnVectAutoShrink | Auto-Shrink | Display large images at the window size | AutoShrink | -
TImageEnVectAutoStretch | Auto-Stretch | Display small images at the window size | AutoStretch | -
TImageEnVectClear | Clear | Clear this image | RemoveAllObjects, RemoveAllObjects | -
TImageEnVectFit | Fit Image | Display the image at the size of the window | Fit | -
TImageEnVectFitToHeight | Fit Image to Height | Display the image at the height of the window | FitToHeight | -
TImageEnVectFitToWidth | Fit Image to Width | Display the image at the width of the window | FitToWidth | -
TImageEnVectZoomIn | Zoom In | Display the image larger | ZoomIn | -
TImageEnVectZoomOut | Zoom Out | Display the image smaller | ZoomOut | -
TImageEnVectZoomFullSize | Zoom to Full Size | Display the image at full size | Zoom | -
TImageEnVectSetZoom | Zoom to x% | Display the image at x% Zoom | Zoom | Zoom
TImageEnVectCopyToClipboard | Copy Image | Copy image to the clipboard | CopyToClipboard | -

IO Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnVectPromptToOpen | Open | Load an image from file | ExecuteOpenDialog, LoadFromFileIEV, LoadFromFileALL, ImportDXF, LoadFromFile | DialogTitle, DefaultFilter, LimitToFileType
TImageEnVectPromptToSave | Save as | Save this image to a new filename | ExecuteSaveDialog, SaveToFileIEV, SaveToFileALL, SaveToFile | DialogTitle, DefaultFilter, LimitToFileType
TImageEnVectDoIOPreviews | Save Properties | Specify advanced properties for this image | DoPreviews | PreviewParams
TImageEnVectDoPrintPreviewDialog | Print Preview | Display a preview of this image for printing | DoPrintPreviewDialog | DialogType
TImageEnVectPrintImageNormal | Print | Print this image at its original size | PrintImage | -
TImageEnVectPrintImageFitToPage | Print to Page | Print this image to fit the page | PrintImage | -

Object Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnVectObjCopyToClipboard | Copy | Copy the selected object to the clipboard | ObjCopyToClipboard | -
TImageEnVectObjCutToClipboard | Cut | Move the selected object to the clipboard | ObjCutToClipboard | -
TImageEnVectObjPasteFromClipboard | Paste | Paste object from the clipboard | ObjPasteFromClipboard | -
TImageEnVectSelAllObjects | Select All | Select all objects of image | SelAllObjects | -
TImageEnVectUnSelAllObjects | Deselect All | Deselect all objects | UnSelAllObjects | -
TImageEnVectRotateObjectRight | Rotate Right | Rotate the selected object 90° clockwise | RotateObject | -
TImageEnVectRotateObject180 | Rotate 180° | Rotate the selected object 180° clockwise | RotateObject | -
TImageEnVectRotateObjectLeft | Rotate Left | Rotate the selected object 90° counter-clockwise | RotateObject | -
TImageEnVectCropImageToObjects | Crop Image to Objects | Resize the image to match all of the objects that it contains | ObjectsExtents | -
TImageEnVectMergeAllToBackground | Merge All to Background | Merge all objects with the background layer | CopyObjectsToBack, RemoveAllObjects | -
TImageEnVectMergeObjToBackground | Merge to Background | Merge the selected object with the background layer | CopyObjectToBack, RemoveObject | -
TImageEnVectObjBringToFront | Bring to Front | Position the selected object in front of all other objects | SetObjFrontOf | -
TImageEnVectObjBringForward | Bring Forward | Move the selected object forward | SetObjFrontOf | -
TImageEnVectObjSendToBack | Send to Back | Position the selected object behind all other objects | SetObjBackTo | -
TImageEnVectObjSendBackward | Send Backwards | Move the selected object backward | SetObjBackTo | -
TImageEnVectRemoveObject | Delete | Remove the selected object from the image | RemoveObject | -
TImageEnVectRemoveAllObjects | Delete All | Remove all objects from the image | RemoveAllObjects | -
TImageEnVectObjUndo | Undo | Undo the last edit | ObjUndo | -

Mouse Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnVectMouseVtArea | Measure Area | Measure a rectangula area | miArea | -
TImageEnVectMouseVtLineLen | Measure Length | Measure the distance between two points | miLineLen | -
TImageEnVectMouseVtPutLine | Insert Line | Add a line object | miPutLine | -
TImageEnVectMouseVtPutBox | Insert Rectangle | Add an rectangular object | miPutBox | -
TImageEnVectMouseVtPutEllipse | Insert Ellipse | Add an ellipical object | miPutEllipse | -
TImageEnVectMouseVtPutBitmap | Insert Image | Add an image object | miPutBitmap | -
TImageEnVectMouseVtPutText | Insert Text | Add a text object | miPutText | -
TImageEnVectMouseVtObjectSelect | Select | Select or resize an object | miObjectSelect | -
TImageEnVectMouseVtDragLen | Measure Distance | Dynamically measure a distance | miDragLen | -
TImageEnVectMouseVtPutRuler | Insert Ruler | Add a ruler object | miPutRuler | -
TImageEnVectMouseVtPutPolyLine | Insert Polyline | Free-hand paint an open polygon | miPutPolyLine | -
TImageEnVectMouseVtPutAngle | Insert Angle | Add an angle measurement object | miPutAngle | -
TImageEnVectMouseVtPutMemo | Insert Memo | Add a multi line text object | miPutMemo | -
TImageEnVectMouseVtPutLineLabel | Insert Label with Line | Add a new label object with a line | miPutLineLabel | -
TImageEnVectMouseVtEditPolyline | Edit Polyline | Edit points of a polyline | miEditPolyline | -
TImageEnVectMouseVtUnStampMode | Unstamp | Single-clicking will not insert a new object" | miUnStampMode | -
TImageEnVectMouseMovingScroll | Scroll to Cursor | Move the mouse to scroll the image | miMovingScroll | -
TImageEnVectMouseScroll | Scroll Image | Click the image and drag the mouse to scroll | miScroll | -
TImageEnVectMouseSelect | Rectangular Select | Select a rectangular area of your image | miSelect | -
TImageEnVectMouseSelectCircle | Circular Select | Select a circular area of your image | miSelectCircle | -
TImageEnVectMouseSelectLasso | Lasso Select | Perform an irregular selection of your image by dragging the mouse | miSelectLasso | -
TImageEnVectMouseSelectMagicWand | Select by Color | Select a portion of your image of a similar color | miSelectMagicWand | -
TImageEnVectMouseSelectPolygon | Polygon Select | Perform an irregular selection of your image by clicking the mouse | miSelectPolygon | -
TImageEnVectMouseSelectZoom | Zoom to Selection | Select an area of the image to zoom into | miSelectZoom | -
TImageEnVectMouseZoom | Zoom | Left-click the image to Zoom In. Right-click to Zoom Out | miZoom | -


TImageEnMView Actions

TImageEnMView Actions

ImageEn includes a large set of actions for ImageEnMView, ImageEnView and ImageEnVect components to allow you to rapidly develop your UI.

To use actions:

1. Add a TActionList component to your form
2. Double-click your TActionList to open it
3. Select "New Standard Action"
4. Scroll down to the ImageEnMView actions, select the ones you require and click OK
5. Select your actions and set the ImageEnMView property to your TImageEnMView component
6. Assign the actions to menu items and buttons

Demo

Demos\Other\Actions_MView\MViewActions.dpr

Notes:

- You must set the ImageEnMView property of the actions
- You can set MsgLanguage to localize the actions
- See the list of the default ImageIndexes if you are planning to add graphics to your actions

General Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnMViewClear | Clear | Clear all images | Clear | -
TImageEnMViewSelectAll | Select All | Select all images in the grid | SelectAll | -
TImageEnMViewDeselect | Deselect | Clear your selection | Deselect | -
TImageEnMViewPlaying | Animate | Playback these frames in sequence | Playing | -
TImageEnMViewPlayLoop | Loop Playback | Restart playback after it completes | PlayLoop | -
TImageEnMViewDisplayModeSingle | Single Frame Only | Display only the active frame | DisplayMode | -
TImageEnMViewEnableAdjustOrientation | Auto-Rotate Display | Automatically display images with the correct orientation | EnableAdjustOrientation | -
TImageEnMViewStyleShowThumbs | Thumbnail View | Display thumbnails | Style | TopText, InfoText, BottomText, FixGaps
TImageEnMViewStyleShowDetails | Detail View | Display file details | Style | TopText, InfoText, BottomText, FixGaps, ThumbnailZoom, BoldFilename
TImageEnMViewStyleShowColumns | Column View | Display file columns | Style | TopText, InfoText, BottomText, FixGaps, ThumbnailSize, ShowIconsOnly
TImageEnMViewStyleShowLargeThumbs | Large Thumb View | Display large thumbnails | Style | TopText, InfoText, BottomText, FixGaps, ThumbnailZoom, BoldFilename
TImageEnMViewStyleShowFileList | File List View | Display file list | Style | Text, FixGaps, ThumbnailSize, ShowIconsOnly
TImageEnMViewShowColumn | Show Column | Show or hide columns when Style is iemsColumns | Column

Sort Actions

TImageEnMViewSortByFilename | Sort by Filename | Sort by Filename | Sort | -
TImageEnMViewSortByFileType | Sort by FileType | Sort by FileType | Sort | -
TImageEnMViewSortByFileSize | Sort by FileSize | Sort by FileSize | Sort | -
TImageEnMViewSortByCreateDate | Sort by CreateDate | Sort by CreateDate | Sort | -
TImageEnMViewSortByEditDate | Sort by EditDate | Sort by EditDate | Sort | -
TImageEnMViewSortByImageSize | Sort by ImageSize | Sort by ImageSize | Sort | -
TImageEnMViewSortByOther | Sort by Other | Sort by Other | Sort | SortBy
TImageEnMViewSortAscending | Sort Ascending | Sort Ascending | Sort | -
TImageEnMViewSortDescending | Sort Descending | Sort Descending | Sort | -

Proc Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnMViewDoPreviews | Do Effects | Display the Effects dialog for editing and enhancing the image (all or a specific effect) | DoPreviews | Effects, AutoSaveChanges, OverrideJpegQuality, AutoSaveError
TImageEnMViewDoAdjustPreviews | Adjust Colors | Peform color enhancement functions on the selected image | DoPreviews(ppeColorAdjustments) | AutoSaveChanges, OverrideJpegQuality, AutoSaveError
TImageEnMViewDoEffectPreviews | Image Effects | Perform effects on the selected image | DoPreviews(ppeSpecialEffects) | AutoSaveChanges, OverrideJpegQuality, AutoSaveError
TImageEnMViewDoEditPreviews | Edit Image | Perform editing functions on the image: rotate, resize, crop, etc. | DoPreviews(ppeEditingFunctions) | AutoSaveChanges, OverrideJpegQuality, AutoSaveError
TImageEnMViewPromptToResize | Prompt to Resize | Display the previews dialog to allow the user to resample (resize) the image | DoPreviews | ResampleFilter, AutoSaveChanges, OverrideJpegQuality, AutoSaveError
TImageEnMViewPromptToRotate | Prompt to Rotate | Display the previews dialog to allow the user to rotate the image to a custom angle | DoPreviews | AntiAliasMode, AutoSaveChanges, OverrideJpegQuality, AutoSaveError
TImageEnMViewFlipHorizontal | Flip Horizontal | Flip the selected image from top to bottom | Flip | AutoSaveChanges, AutoSaveError
TImageEnMViewFlipVertical | Flip Vertical | Flip the selected image from left to right | Flip | AutoSaveChanges, AutoSaveError
TImageEnMViewRotateRight | Rotate Right | Rotate the selected image 90° clockwise | Rotate | AutoSaveChanges, AutoSaveError
TImageEnMViewRotate180 | Rotate 180° | Rotate the selected image 180° clockwise | Rotate | AutoSaveChanges, AutoSaveError
TImageEnMViewRotateLeft | Rotate Left | Rotate the selected image 90° counter-clockwise | Rotate | AutoSaveChanges, AutoSaveError
TImageEnMViewCutToClipboard | Cut | Copy the current image to the clipboard and remove it | CopyToClipboard | -
TImageEnMViewCopyToClipboard | Copy | Copy the current image to the clipboard | CopyToClipboard | -
TImageEnMViewPasteFromClipboard | Paste | Paste an image from the clipboard | PasteFromClipboard | -

Note: if AutoSaveChanges is true then any editing actions applied to the thumbnail will be saved to the underlying file (without prompting). For rotation and flipping of JPEGs lossless functions will be used where possible, otherwise JPEG's will be saved with the JPEG_Quality specified in the item's Params or can be overriden with OverrideJpegQuality. If an error is encountered an AutoSaveError event will occur.

IO Actions

Action | Name | Description | Associated Method | Extra Properties
TImageEnMViewPromptToOpen | Open | Load an image from file | ExecuteOpenDialog, LoadFromFile | MultiSelect, DialogTitle, DefaultFilter, LimitToFileType
TImageEnMViewPromptToAdd | Add from File | Add an image to the grid from file | ExecuteOpenDialog, AppendImage | -
TImageEnMViewSave | Save | Save changes to this image to file | SaveToFile | -
TImageEnMViewPromptToSave | Save as | Save this image to a new filename | ExecuteSaveDialog, SaveToFile | DialogTitle, DefaultFilter, LimitToFileType
TImageEnMViewDoIOPreviews | Save Properties | Specify advanced properties for all images | DoPreviews | PreviewParams
TImageEnMViewDoIOPreviewsSelected | Image Save Properties | Specify advanced properties for the selected image | DoPreviews | PreviewParams
TImageEnMViewDoPrintPreviewDialog | Print Preview | Display a preview of your printing | DoPrintPreviewDialog | -
TImageEnMViewPrintImageNormal | Print | Print the selected image at its original size | PrintImage | -
TImageEnMViewPrintImageFitToPage | Print to Page | Print the selected image to fit the page | PrintImage | -
TImageEnMViewPrintSelectedThumbnails | Print Thumbnails | Print the selected images as a sheet of thumbnails | PrintImages | ColumnCount, RowCount
TImageEnMViewPrintAllThumbnails | Print All Thumbnails | Print all images of the grid as a sheet of thumbnails | PrintImages | ColumnCount, RowCount
TImageEnMViewSelectAcquireSource | Select Acquisition Source | Select the camera or scanner to acquire images from | SelectAcquireSource | Apis
TImageEnMViewAcquire | Acquire | Retrieve images from a camera or scanner | Acquire | -
TImageEnMViewSeekFirst | First Frame | Select the first frame | Seek, SelectSeek | -
TImageEnMViewSeekPrior | Previous Frame | Select the previous frame | Seek, SelectSeek | -
TImageEnMViewSeekNext | Next Frame | Select the next frame | Seek, SelectSeek | -
TImageEnMViewSeekLast | Last Frame | Select the last frame | Seek, SelectSeek | -


TImageEnFolderMView Actions

TImageEnFolderMView Actions

When using a TImageEnFolderMView you can use both the TImageEnFolderMView specific actions which follow, as well as all the actions of TImageEnMView to rapidly develop your UI.

To use actions:

1. Add a TActionList component to your form
2. Double-click your TActionList to open it
3. Select "New Standard Action"
4. Scroll down to the ImageEnMView actions, select the ones you require and click OK
5. Select your actions and set the IEFolderMView property to your TImageEnFolderMView component
6. Assign the actions to menu items and buttons

Demo

Demos\Other\Actions_Folder\FolderMViewActions.dpr

Notes:

- You must set the ImageEnFolderMView property of the actions
- You can set MsgLanguage to localize the actions
- See the list of the default ImageIndexes if you are planning to add graphics to your actions

Folder Actions

Action | Name | Description | Associated Method | Extra Properties
TIEFolderMViewPromptForFolder | Select Folder | Select a folder to open | PromptForFolder | -
TIEFolderMViewOpenParentFolder | Go Up | Open the parent of the current folder | OpenParentFolder | -
TIEFolderMViewRefreshFileList | Refresh | Refresh the file listing | RefreshFileList | -
TIEFolderMViewCreateNewFolder | Create Folder | Create a new folder at the current location | CreateNewFolder | -
TIEFolderMViewExecuteSelectedFile | Open File | Open the selected file in the default viewer | ExecuteFile | -
TIEFolderMViewIncludeSubFolders | Include Subfolders | Also display files found in subfolders of this folder | IncludeSubFolders | -
TIEFolderMViewMoveSelectedFilesToFolder | Move Files | Move the selected files to a new folder | MoveSelectedFilesToFolder | -
TIEFolderMViewCopySelectedFilesToFolder | Copy Files | Copy the selected files to a new folder | CopySelectedFilesToFolder | -
TIEFolderMViewDeleteSelectedFilesFromFolder | Delete Files | Delete the selected files from the folder | DeleteSelectedFilesFromFolder | -
TIEFolderMViewCopySelectedFilesToClipboard | Copy Files to Clipboard | Copy the selected files to the clipboard | CopySelectedFilesToClipboard | -
TIEFolderMViewPasteFilesFromClipboard | Paste Files from Clipboard | Paste files from the clipboard to this folder | PasteFilesFromClipboard | -
TIEFolderMViewRenameSelectedFile | Rename File | Specify a new name for the selected file | RenameFile | -
TIEFolderMViewPromptForFolder | Select Folder | Select a folder to open | PromptForFolder | -
TIEFolderMViewCreateNewFolder | Create Folder | Create a new folder at the current location | CreateNewFolder | -


THistogramBox

THistogramBox

Description

THistogramBox can be attached to a TImageEnProc component from which it gets information to compute and display the color channels histogram.

Demo

Demos\ImageAnalysis\Histogram\Histogram.dpr

Example

// Setup
with HistogramBox1 do
begin
Background := clBtnFace; // Change background color
Font.Color := clDarkGray; // Set font and chart color to dark gray
MouseInteract := mhSelectValue; // Allow selection of a single value
HistogramKind := [ hkRed, hkGreen, hkBlue ]; // Histogram to show RGB levels
HistogramStyle := hsFilledLines; // Show a filled line graph instead of bars
end;

// Display histogram of colors in current image
HistogramBox1.UpdateFromBitmap( ImageEnView1.IEBitmap );

Methods and Properties

AttachedImageEnProc
Background
Bitmap
Clear
CompBar
GrayColor
HistogramKind
HistogramStyle
HistogramAbsXPos
Labels
MouseInteract
MinSelected
MaxSelected
Scale
SelectionColor
UpdateFromBitmap
UpdateFromHistogram

Events

OnSelectionChanged
OnSelectionChanging

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette

TIEColorPalette

Description

TIEColorPalette displays a color palette and allows selection of a specific color.

Note: You can use clTransparent to include a transparent/alpha value

Examples

// Display a color set
ColorPalette1.Colors.text := 'clRed' + #13 +
'clYellow' + #13 +
'clBlue' + #13 +
'clWhite' + #13 +
'clBlack' + #13 +
'clGray';

// Display colors of an image
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IO.LoadFromFile( 'C:\Image.jpeg' );
// Convert to 8bit Palette for display
if ImageEnView1.IEBitmap.PixelFormat <> ie8p then
ImageEnView1.IEBitmap.PixelFormat := ie8p;
IEColorPalette1.AssignPalette( ImageEnView1 );

Demos

Demos\Other\ColorPalette\ColorPalette.dpr
Demos\ImageAnalysis\Palette\Palette.dpr

Methods and Properties

Display
BiDiMode
CellSize
CellStyle
ColCount
ExtentX
ExtentY
GetCellRect
HintFormat
HorzMargin
RowCount
ScrollBarParams
SortMethod
SortOrder
TransparentStyle
VertMargin
ViewX
ViewY
VisibleRowCount

Color Set
</R
AddColor
AppendColorLuminancePalette
AppendGradientPalette
AssignPalette
Clear
ColorCount
Colors
ExchangeColors
MaxColors
MinColors
Palette

Selection
IndexAtPos
ColorUnderCursor
IndexUnderCursor
Selectable
SelectedColor
SelectedIndex

Other
Create
Destroy
LoadFromFile
SaveToFile

Events

OnCellClick
OnColorsChange
OnGetHintText
OnPaintCell
OnSelectedColorChange

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGradientBar

TIEGradientBar

Description

TIEGradientBar component shows a gradient bar, with a grip with which the user can select a color or an index.

Methods and Properties

BeginColor
Color
ColorIndex
Direction
EndColor
MouseInteract
RGB

Events

OnChange

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THSVBox

THSVBox

Description

THSVBox allows selection of a color in the HSV (Hue Saturation Value) color space.

Methods and Properties

Background
BarsDistance
Blue
Color
GetColorAt
Green
Hue
HueBarWidth
Red
Sat
SetColor
SetRGB
Val

Events

OnChange

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox

TRulerBox

Description

TRulerBox is a ruler. It can be used to show the position of the cursor in a TImageEnView.

Demo

\Demos\Other\RulerBox\DRulerBox.dpr

Methods and Properties

Background
DotPerUnit
FitInView
Frequency
GripBaseDim
GripsColor
GripColorDefault
GripsCount
GripsDir
GripsMax
GripsMin
GripPenColor
GripsPos
GripsKind
GripKindDefault
HexLabels
Inverted
LabelFreq
LabelPrecision
LockUpdate
MaxGripHeight
MinLabelSpacing
OffsetX
OffsetY
RulerColor
RulerDir
Ruler
ScrollRate
ShowBorder
UnlockUpdate
ViewMax
ViewMin
ViewPos

Events

OnRulerClick
OnRulerGripClick
OnRulerGripDblClick
OnRulerPosChange

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap

TIEBitmap

Description

TIEBitmap is a replacement for the VCL TBitmap class. It has many methods and properties compatible with TBitmap and enhances it by supporting multi-threading, large images and a wide range of image formats.

TIEBitmap can store images in memory mapped files (for big images), in memory (fast access) or can encapsulate TBitmap objects (for canvas drawing and compatibility).

Methods and Properties

General
AdjustmentsMask
Allocate
BitAlignment
BitCount
Clear
Contrast
Create
CreateDIB
CreateROIBitmap
CreateROICanvas
Destroy
FreeImage
FixChannelOffset
FixContrast
Height
IsEmpty
IsVirtual
Location
MemoryAllocator
MinFileSize
Modified
Origin
PixelFormat
Resize
VclBitmap
Width

Assignment between Objects
Assign
AssignImage
AssignRect
CopyAndConvertFormat
CopyFromDIB
CopyFromMemory
CopyFromTBitmap
CopyFromTDibBitmap
CopyFromTIEMask
CopyRectTo
CopyToTBitmap
CopyToTDibBitmap
CopyToTIEMask
CopyWithMask1
CopyWithMask2
DrawToTIEBitmap
EncapsulatedFromMemory
EncapsulatedFromTBitmap
EncapsulateMemory
EncapsulateTBitmap
MergeFromTDibBitmap
RenderToTBitmap
RenderToTBitmapEx
RenderToTIEBitmap
RenderToTIEBitmapEx
RestoreState
SaveState
StretchRectTo
SwitchTo
UpdateFromTBitmap

File I/O
Access (inherited from TIEBaseBitmap)
CalcRAWSize
CopyToClipboard
Filename
GetHash
LoadFromResource
LoadRAWFromBufferOrStream
ParamsEnabled
Params
PasteFromClipboard
Read (Load from file/stream)
SaveRAWToBufferOrStream
Write (Save to file/stream)

Canvas Access
IECanvas
Canvas
DrawToCanvas
Fill
FillRect
MoveRegion
RenderToCanvas

Alpha Channel (Transparency)
Alpha
AlphaChannel
AlphaChannelOpt
CanvasCurrentAlpha
CropAlpha
DetachAlphaChannel
DrawToCanvasWithAlpha
FeatherAlphaEdges
HasAlphaChannel
IsAlpha
MergeAlphaRectTo
MergeWithAlpha
RemoveAlphaChannel
RenderToCanvasWithAlpha
ReplaceAlphaChannel
SyncAlphaChannel
SynchronizeRGBA

Pixel Access
FreeRow
GetRow
GetSegment
Memory
Pixels_ie16g
Pixels_ie1g
Pixels_ie24RGB
Pixels_ie32f
Pixels_ie32RGB
Pixels_ie48RGB
Pixels_ie8
Pixels_ieCIELab
Pixels_ieCMYK
Pixels
PPixels_ie24RGB
PPixels_ie32RGB
PPixels_ie48RGB
Rowlen
ScanLine
TBitmapScanlines
VirtualBitmapProvider

Palette and Color
Palette (inherited from TIEBaseBitmap)
PaletteLength (inherited from TIEBaseBitmap)
PaletteUsed (inherited from TIEBaseBitmap)
AutoCalcBWValues
BlackValue
ChannelCount
ChannelOffset
ColorProfile
CopyPaletteTo
DefaultDitherMethod
Full
IsAllBlack
IsGrayScale
StretchValues
SyncFull
WhiteValue

Image Manipulation
Crop
Flip
Resample
Rotate

IEVision related
GetIEVisionImage
AssignIEVisionImage

Events
OnChanged
OnRenderVirtualPixel

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap

TIEMultiBitmap

Description

TIEMultiBitmap is an array of images. It allows you to work with multiple-frame images in memory, such as GIF, TIFF, AVI, etc. It is also used by TImageEnMView to store images within the grid.

Methods and Properties

General
Create
Destroy
Assign
Modified

Page Editing
AppendImage
AppendSplit
Clear
Count
DeleteImage
IndexOf
InsertImage
MoveImage
RemoveBlankPages
RemoveDuplicates
SwapImages

Image Access
CopyToIEBitmap
GetBitmap
GetTIEBitmap
PrepareSpaceFor
ReleaseBitmap
SetImage
SetImageRect

Image Information
ImageBitCount
ImageDictionary
ImageFilename
ImageHash
ImageHeight
ImageTag
ImageUserPointer
ImageWidth

Input/Output
ImageCacheSize
ImageCacheUseDisk
FillFromDirectory
GetImageToFile
GetImageToStream
LoadSnapshot
SaveSnapshot
Read (Load from file/stream)
Write (Save to file/stream)

Input/Output Parameters (Meta-Data)
DuplicateCompressionInfo
ParamsEnabled
Params

Animation and Effects
InsertTransitionFrames
InsertTransitionFramesEx

Image Manipulation
Flip
FlipAll
Resample
ResampleAll
Rotate
RotateAll

See Also

- TIEDBMultiBitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMask

TIEMask

Description

Contains a selection, which is a map of selected and unselected pixels.
A selection map can have a depth of 1 bit or 8 bit.
For a map of 1 bit, 0 is a non-selected pixel, while 1 is selected.
For a map of 8 bit, 0 is non-selected pixel, 1-254 is a "semi" selected pixel, and 255 is fully selected pixel.

TImageEnView component uses this class to store current selection in SelectionMask property.

Methods and Properties

AllocateBits
Assign
Bits
BitsPerPixel
CombineWithAlpha
CopyBitmap
CopyIEBitmap
CopyIEBitmapAlpha
DrawOuter
DrawOutline
DrawPolygon
Empty
Fill
FreeBits
Full
GetPixel
Height
Intersect
InvertCanvas
IsEmpty
IsPointInside
Negative
Resize
Rowlen
ScanLine
SetEllipse
SetPixel
SetRectangle
SyncFull
SyncRect
TranslateBitmap
Width
X1
X2
Y1
Y2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAnimation

TIEAnimation

Declaration

TIEAnimation = class;

Description

This is the base abstract class for animation classes like coverflow-like (TIEHorizontalFlow) and circular flow (TIECircularFlow) or any user custom animation classes.

Methods and Properties

Protected
DoGetImage
DoGetImageInfo
DoReleaseImage
drawImage virtual
PaintScrollBar
PaintText
SetEndValues virtual
SetInitialValues virtual
SetStartEndValues
SetStartValues virtual

Public
constructor Create
destructor Destroy

AnimDuration
CurrentImage
BorderPen
Depth
DeleteImage
Display virtual abstract
FindImageAt
Font
FramesZoomFilter
ImageCount
Images
InsertImage
IsInsideScrollbar
IsInsideScrollbarSlider
LastFrameZoomFilter
MoveScrollbarSliderTo
NeedRefresh
RestartAnimation
SetupEvents
ShadowAlphaMax
ShadowAlphaMin
ShowBorder
ShowScrollbar
ShowText
ViewHeight
ViewWidth

Demos

Demos\Display\MviewFlow\MViewFlow.dpr
Demos\Display\ManualFlow\ManualFlow.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEHorizontalFlow

TIEHorizontalFlow

Declaration

TIEHorizontalFlow = class(TIEAnimation);

Description

Implements a coverflow-like animation.

Methods and Properties

CurrentImageZoom
HorizontalDistance
ImagesHorizontalPercentage
ImagesVerticalPercentage
ImagesZoom
RotateAngle

Also inherits all properties and methods of TIEAnimation

Demos

Demos\Display\MviewFlow\MViewFlow.dpr
Demos\Display\ManualFlow\ManualFlow.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECircularFlow

TIECircularFlow

Declaration

TIECircularFlow = class(TIEAnimation);

Description

Implements a circular animation.

Methods and Properties

CurrentImageZoom
EllipseAngle
ImagesSizePercentage
ImagesZoom
VisibleImages

Also inherits all properties and methods of TIEAnimation

Demos

Demos\Display\MviewFlow\MViewFlow.dpr
Demos\Display\ManualFlow\ManualFlow.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageList

TIEImageList

Declaration

TIEImageList = class;

Description

A simple in-memory list of TIEBitmap images.

Methods and Properties

AppendImageRef
Clear
Filename
FillFromDirectory
Image
ImageCount
Remove

Demo

Demos\Display\ManualFlow\ManualFlow.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap

TIESlippyMap

Declaration

TIESlippyMap = class(TIEVirtualBitmapProvider);

Description

Slippy Map is a term referring to the main openstreetmap.org map display, a web interface for browsing rendered OpenStreetMap data (from openstreetmap wiki).
See this link for more details: wiki.openstreetmap.org/wiki/Slippy_Map

TIESlippyMap is a virtual image provider for TIEBitmap objects. Selecting a position using Latitude and Longitude a map (an image) will be loaded and handled as TIEBitmap content.
Local caching is provided to speed up re-loading tiles and to support off-line jobs.

Example

ImageEnView1.LegacyBitmap := false;
ImageEnView1.IEBitmap.VirtualBitmapProvider := TIESlippyMap.Create();
with TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider) do
begin
// move to London
Latitude := 51.503614574056016;
Longitude := -0.12774750793460043;
// location at bitmap center
PointPosition := Point(ImageEnView1.IEBitmap.Width div 2, ImageEnView1.IEBitmap.Height div 2);
// zoom
Zoom := 14;
end;
ImageEnView1.Update();

Methods and Properties

Constructor
Create

Generic Rendering
DrawTo

TIEVirtualBitmapProvider rendering
GetSegment
Render

Multithreading and Cache
CachePath
MaxThreads
MemoryCacheSize

Map Coordinates and Zooming
Latitude
Longitude
PointPosition
Zoom

Coordinates Conversion
BmpXToLongitude
BmpYToLatitude
LongitudeToBmpX
LatitudeToBmpY

Others
MissingTileColor
UserKey
OnBeginWork
OnFinishWork

Demo

Demos\Other\GeoMaps\GeoMaps.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEVision

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 IEVisionAvailable 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 IEVisionLib public field which encapsulates the factory class TIEVisionLibrary.

It is possible to encapsulate an ImageEn bitmap (TIEBitmap) inside a IEVision bitmap (TIEVisionImage), 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 GetIEVisionImage 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 What's New

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)


Distributing IEVision

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 Helper Functions

IEVision Helper Functions

IEVision Availability

IEVisionAvailable

Simple Record Constructors

IEVisionSize
IEVisionRect
IEVisionPoint
IEVisionScalar
IEVisionFloatPair
IEVisionTermCriteria

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionLibrary

TIEVisionLibrary

Declaration

TIEVisionLibrary = interface(TIEVisionBase)

Description

This interface allows you to create IEVision objects.

Methods and Properties

createBarCodeScanner
createBackgroundSubtractor
createCascadeClassifier
createDrawing
createExistingMemoryStream
createFaceRecognizer
createFileStream
createHaarTraining
createHistogram
createImage
createInputOutput
createMath
createMemoryImageList
createMemorySharedImageList
createMemoryStream
createObjectsFinder
createObjectTracker
createOCR
createPeopleDetector
createPropertyTree
createString
createWString
createStitcher
createTempDirName
createTempFileImageList
createTempFileName
createTempFileStream
createVectorByte
createVectorDouble
createVectorFloatPair
createVectorImageRef
createVectorInt32
createVectorPoint
createVectorRect
createVectorString
getLibraryInfo

Example

image := IEVisionLib.createImage(1000, 1000, ievUINT8, 3);


TIEVisionImage

TIEVisionImage

Declaration

TIEVisionImage = interface(TIEVisionBase)

Description

This interface allows you to create raster images or matrices.
It is possible to perform basic input/output operations and several image processing tasks.
It is possible also to interface TIEVisionImage to ImageEn <a TIEBitmap>, sharing the same content.

Example

// creates empty image
image := IEVisionLib.createImage();

// creates an image from "input.jpg", resize to 100x100 and save as "output.jpg"
image := IEVisionLib.createImage('input.jpg');
image.resize(100, 100); // default interpolation = linear
image.save('output.jpg');

// creates an image of 1000x1000x24 bit
image := IEVisionLib.createImage(1000, 1000, ievUINT8, 3);

// creates an image from ImageEn TImageEnView (sharing the content)
ImageEnView1.IEBitmap.Origin := ieboTOPLEFT;
image := IEVisionLib.createImage(ImageEnView1.IEBitmap.Width, ImageEnView1.IEBitmap.Height,
ievUINT8, 3, ImageEnView1.IEBitmap.Rowlen,
ImageEnView1.IEBitmap.ScanLine[0]);

// Same as previous code
image := ImageEnView1.IEBitmap.GetIEVisionImage();

Methods and Properties

adaptiveThreshold
addWeighted
avg
avgSdv
blur
camShift
canny
cmp
convertScale
copy
copyFrom
countNonZero
create
createAlphaMask
DCT
determinant
DFT
dilate
dotProduct
eigenVV
equalizeHistogram
erode
fastNlMeansDenoisingColored
filter2D
findContours
flip
floodFill
getAlphaMask
getChannelFormat
getChannels
getColumn
getColumns
getDiagonal
getHeight
getMetadata
getRect
getRow
getRowLen
getRows
getScanline
getWidth
hasAlphaMask
houghLines
houghLinesP
inpaint
inRange
integral
invert
isAllWhite
isEmpty
LUT
makeBorder
max
merge
min
minMax
mulSpectrums
mulTransposed
norm
operatorASSIGN
opNot
perspectiveTransform
pixel_BGR8
pixel_float32
pixel_float64
pixel_RGB8
pixel_uint16
pixel_uint8
pyrDown
pyrUp
reduce
repeatImage
resize
save
scaleAdd
setIdentity
setValue
setZero
share
smooth
splitPlanes
swap
threshold
transpose

See Also

- createImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionMath

TIEVisionMath

Declaration

TIEVisionMath = interface(TIEVisionBase)

Description

This interface contains a set of mathematical and logical operations with images and matrices.

Methods and Properties

absDiff
add
boundingRect
calcCovarMatrix
cartToPolar
contourArea
exp
genericMultiply
log
mahalonobisDistance
mul
opAnd
opDiv
opOr
optimizeWith_NelderMeadSimplexMethod
opXor
pow
rectContains
rectIntersect
rectTestIntersect
rectUnion
solve
solveCubic
sub
trace
transform
transpose


TIEVisionOCR

TIEVisionOCR

Declaration

TIEVisionOCR = interface(TIEVisionBase)

Description

This interface allows you to perform basic OCR (Optical Character Recognition) in English and 35 other languages.
It is possible to recognize a specific image area or the whole image.
For recognition it means:
- gets the ANSI or Unicode text from raster image
- estimates the document orientation (text angle)
- gets each recognized character position (bounding box)
- gets text regions (to reproduce text layout)

To support OCR language specify the path of the language file when calling IEVisionLib.createOCR.

Only one single instance of this object can exist in your application.

Demos

Demos\IEVision\OCR\OCR.dpr
Demos\IEVision\OCRwithLayout\OCRwithLayout.dpr

Methods and Properties

clearAdaptiveInfo
getBoxes
getOrientation
getRegions
getTextAngle
isWordValid
recognize
setSegmentationMode

See Also

createOCR
TIEVisionLanguages
IEVisionLanguageCodeToName
IEVisionLanguageNameToCode
IEVisionGetLanguagesInFolder

Example

// perform OCR
str := IEVisionLib.createOCR(IEOCRLanguageList[OCR_English_language].Code).recognize(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0)).c_str();


TIEVisionObjectsFinder

TIEVisionObjectsFinder

Declaration

TIEVisionObjectsFinder = interface(TIEVisionBase)

Description

This interface allows you to find an object or a set of different objects.
It is possible to load more than one classifier (object detector). Each classifier is executed on a different thread.

Demos

Demos\IEVision\FaceDetection\FaceDetection.dpr
Demos\IEVision\GetFaces\GetFaces.dpr

Methods and Properties

addClassifier
classifierExists
findIn
getClassifier
getFoundRect
getFoundRectCount
mergeAllRects
mergeRects
removeAllClassifiers
removeClassifier
setDivisor
setEqualizeHistogram
setHaarFlags
setHaarMinNeighbors
setHaarMaxSize
setHaarMinSize
setHaarScaleFactor

See Also

createObjectsFinder
IEVision Embedded Classifiers

Example

var
objectsFinder: TIEVisionObjectsFinder;
rects: TIEVisionVectorRect;
...
// load two face detectors
objectsFinder := IEVisionLib.createObjectsFinder();
objectsFinder.addClassifier('face detector 1', IEVisionLib.createCascadeClassifier(IEVC_FRONTAL_FACE_ALT_TREE));
objectsFinder.addClassifier('face detector 2', IEVisionLib.createCascadeClassifier(IEVC_FRONTAL_FACE_DEFAULT));

// detect objects
objectsFinder.findIn(ImageEnView1.IEBitmap.GetIEVisionImage());

// merge intersecting rectangles of all searched objects
rects := objectsFinder.mergeAllRects();

// loop among rectangles
for i := 0 to rects.size-1 do
begin
ImageEnView1.ObjPenWidth[-1] := 2;
with rects.getRect(i) do
begin
... do something with the rectangle coordinates and size
end;
end;


TIEVisionObjectTracker

TIEVisionObjectTracker

Declaration

TIEVisionObjectTracker = interface(TIEVisionBase)

Description

This interface allows you to track an objected given its initial position.
Tracking is performed using Camshift algorithm.

Demo

Demos\IEVision\TrackObjects\TrackObjects.dpr

Methods and Properties

locateNewPosition
setInitialPosition

See Also

- createObjectTracker

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionDrawing

TIEVisionDrawing

Declaration

TIEVisionDrawing = interface(TIEVisionBase)

Description

This interface contains a set of drawing primitives, to paint over a TIEVisionImage objects.

Methods and Properties

circle
drawContours
ellipse
rectangle


TIEVisionBarCodeScanner

TIEVisionBarCodeScanner

Declaration

TIEVisionBarCodeScanner = interface(TIEVisionBase)

Description

This interface allows you to read bar codes (EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code).

Demos

Demos\IEVision\Barcode\Barcode.dpr
Demos\IEVision\BarCodeCam\BarCodeCam.dpr

Methods and Properties

scan

See Also

createBarCodeScanner

Examples

var
symbols: TIEVisionVectorObjRef;
s: TIEVisionBarCodeSymbol;
i: integer;
begin
symbols := IEVisionLib.createBarCodeScanner().scan(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0));
for i := 0 to symbols.size() - 1 do
begin
s := TIEVisionBarCodeSymbol( symbols.getObj(i) );
Memo1.Lines.Add('type = ' + s.getSymbolType().c_str());
Memo1.Lines.Add('data = ' + s.getData().c_str());
with s.getBoundingBox() do
Memo1.Lines.Add('rect = ' + inttostr(x) + ' ' + inttostr(y) + ' ' + inttostr(width) + ' ' + inttostr(height));
end;
end;

// Function to read a bar code from a file
function ReadBarcodeFromFile(const Filename : string): String;
var
IEBitmap: TIEBitmap;
begin
Result := '';
IEBitmap := TIEBitmap.Create;
try
IEBitmap.Read( Filename );
m_symbols := IEVisionLib.createBarCodeScanner().scan( IEBitmap.GetIEVisionImage(), IEVisionRect( 0, 0, 0, 0 ));

if m_symbols.size() > 0 then
Result := TIEVisionBarCodeSymbol( m_symbols.getObj( m_symbols.size() - 1 )).getData().c_str();
finally
IEBitmap.Free;
end;
end;

// Function to read a bar code from a bitmap
function ReadBarcodeFromBitmap(aBitmap: TBitmap): String;
var
IEBitmap: TIEBitmap;
begin
IEBitmap := TIEBitmap.Create( aBitmap, Rect( 0, 0, aBitmap.Width, aBitmap.Height ));
try
m_symbols := IEVisionLib.createBarCodeScanner().scan( IEBitmap.GetIEVisionImage(), IEVisionRect( 0, 0, 0, 0 ));

if m_symbols.size() > 0 then
Result := TIEVisionBarCodeSymbol( m_symbols.getObj( m_symbols.size() - 1 )).getData().c_str();
finally
IEBitmap.Free;
end;
end;


TIEVisionPeopleDetector

TIEVisionPeopleDetector

Declaration

TIEVisionPeopleDetector = interface(TIEVisionBase)

Description

This interface allows you to perform people (body) detection.

Demo

Demos\IEVision\GetPeople\GetPeople.dpr

Methods and Properties

detect

See Also

createPeopleDetector

Example

detector := IEVisionLib.createPeopleDetector();
found_rectangles := detector.detect(ImageEnView1.IEBitmap.GetIEVisionImage());

for i := 0 to found_rectangles.size()-1 do
with found_rectangles.getRect(i) do
begin
ImageEnView1.IEBitmap.Canvas.Brush.Style := bsClear;
ImageEnView1.IEBitmap.Canvas.Pen.Color := clRed;
ImageEnView1.IEBitmap.Canvas.Rectangle(x, y, x+width, y+height);
end;
ImageEnView1.Update();


TIEVisionStitcher

TIEVisionStitcher

Declaration

TIEVisionStitcher = interface(TIEVisionBase)

Description

Combines multiple photographic images with overlapping fields of view to produce a segmented panorama.

Demo

Demos\IEVision\Stitcher\Stitcher.dpr

Methods and Properties

stitch

Example

var
images: TIEVisionVectorImageRef;
pano: TIEVisionImage;
status: TIEVisionStitchingStatus;
begin
images := IEVisionLib.createVectorImageRef();
images.push_back(IEVisionLib.createImage('image1.jpg'));
images.push_back(IEVisionLib.createImage('image2.jpg'));
images.push_back(IEVisionLib.createImage('image3.jpg'));

pano := IEVisionLib.createStitcher().stitch(images, status);

if status = ievSSOK then
begin
ImageEnView.IEBitmap.AssignIEVisionImage(pano);
ImageEnView.Update;
end
end;


TIEVisionBackgroundSubtractor

TIEVisionBackgroundSubtractor

Declaration

TIEVisionBackgroundSubtractor = interface(TIEVisionBase)

Description

Performs background/foreground segmentation.

Demo

Demos\IEVision\BackgroundSubtract\BackgroundSubtract.dpr

Methods and Properties

apply
selectMethodMOG2
selectMethodKNN


TIEVisionFaceRecognizer

TIEVisionFaceRecognizer

Declaration

TIEVisionFaceRecognizer = interface(TIEVisionBase)

Description

Performs face learning and recognition.

Demo

Demos\IEVision\FaceRecognizer\FaceRecognizer.dpr

Methods and Properties

addTrainImage
detect
clear
isTrained
load
save
selectEigenFaceRecognizer
selectFisherFaceRecognizer
selectLBPHFaceRecognizer
train


AcquireSourceToStr

AcquireSourceToStr

Declaration

function AcquireSourceToStr(AcquireSource : TIEAcquireSource) : string;

Description

Convert a TIEAcquireSource to a string formatted as follows:

Device Name||Index of Location||API||Device Type

E.g. My Cool Scanner||3||TWN||SCN

Example

// Save the current acquisition source to the registry
var
sDevice : string;
begin
..
// Read the selected device
sDevice := AcquireSourceToStr(ImageEnMView1.MIO.SelectedAcquireSource);
WRegistry.WriteString('SelectedAcquireSource', sDevice);
..
end;


Action Classes

Action Classes

A set of actions is available for rapid UI development

ImageEnView Actions
ImageEnMView Actions
ImageEnFolderMView Actions
ImageEnVect Actions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


Actions ImageIndex List

Actions ImageIndex List

The following is a list of the default ImageIndexes of ImageEn Actions:

ImageIndex | Image
0 | Cut
1 | Copy
2 | Paste
3 | Undo
4 | Redo
5 | Delete
6 | Delete All
7 | Open
8 | Save
9 | Save As
10 | Save Properties
11 | Select All
12 | Deselect
13 | Rotate Left
14 | Rotate 180
15 | Rotate Right
16 | Flip Horizontal
17 | Flip Vertical
18 | Seek First
19 | Seek Prior
20 | Seek Next
21 | Seek Last
22 | Zoom In
23 | Zoom Out
24 | Zoom 100%
25 | Clear
26 | Print
27 | Print Preview
28 | Adjust Colors
29 | Image Effects
30 | Grayscale
31 | Negative
32 | Auto-Equalize Colors
33 | Remove Red Eyes
34 | Sharpen
35 | Playing
36 | Play Loop
37 | Aquire
38 | Select Acquire Source
39 | Auto-Shrink
40 | Auto-Stretch
41 | Fit
42 | Fit to Height
43 | Fit to Width
47 | Crop
49 | Mouse Scroll to Cursor
52 | Mouse Scroll
53 | Mouse Select
54 | Mouse Select Circle
55 | Mouse Select Lasso
56 | Mouse Select Magic Wand
57 | Mouse Select Polygon
58 | Mouse Select Zoom
59 | Mouse Zoom
88 | Auto-Rotate Display
96 | Set Zoom
97 | Prompt to Rotate
98 | Prompt to Resize
110 | Preview Effects
111 | Edit Image
132 | Show Rulers
133 | Pixels (Units)
134 | Inches (Units)
135 | Millimeters (Units)
136 | Centimeters (Units)
138 | Enable Cropping
139 | Crop to Selection
140 | Cancel Cropping

Layers Only

44 | Add Layer
45 | Remove Layer
46 | Merge All Layers
48 | Mouse Move Layers
50 | Mouse Resize Layers
51 | Mouse Rotate Layers
89 | Create layer from Clipboard
90 | Prompt for layer file
91 | Send layer to back
92 | Send layer backward
93 | Bring layer forward
94 | Bring layer to front
95 | Crop Transparency
123 | Merge Layers
124 | Select All Layers
125 | Deselect All Layers
126 | Group Layers
127 | Ungroup Layers
141 | Mouse Create Image Layers
142 | Mouse Create Shape Layers
143 | Mouse Create Line Layers
144 | Mouse Create Polyline Layers
145 | Mouse Create Text Layers
146 | Layers Align on Left
147 | Layers Layers Align on Right
148 | Layers Align Tops
149 | Layers Align Bottoms
150 | Layers Align Horizontal Centers
151 | Layers Align Vertical Centers
152 | Layers Match Widths
153 | Layers Match Heights
154 | Crop Background to Layer Selection
155 | Layers Fast Preview
156 | Lock Aspect Ratio
157 | Lock Position
158 | Restore Aspect Ratio
159 | Size to Fit
160 | Soft Shadow
161 | Visible
162 | Reset Size
163 | Select Image
164 | Close Polyline
165 | Convert to Image Layer
166 | Add Image Layer
167 | Add Shape Layer
168 | Add Line Layer
169 | Add Polyline Layer
170 | Add Text Layer
171 | Crop Layer to Background
172 | Show Label
173 | Edit Layer Text
174 | Reset Rotation

ImageEnMView and ImageEnFolderMView Only

ImageIndex | Image
60 | Display Mode Single
61 | Prompt to Add Image
62 | Image Save Properties
63 | Print Selected Thumbs
64 | Print All Thumbs
112 | Thumbnail View
113 | Details View
114 | Sort by Filename
115 | Sort by File Type
116 | Sort by File Size
117 | Sort by Create Date
118 | Sort by Edit Date
119 | Sort by Image Size
120 | Sort by Other
121 | Sort Ascending
122 | Sort Descending
128 | Column View
129 | File List View
130 | Large Thumb View
131 | Show Column

ImageEnFolderMView Only

ImageIndex | Image
99 | Refresh Folder
100 | Open File
101 | Go Up
102 | Move Files
103 | Copy Files
104 | Delete Files
105 | Copy Files to Clipboard
106 | Paste Files from Clipboard
107 | Rename File
108 | Prompt for Folder
109 | Create Folder
137 | Include Subfolders

ImageEnVect Only

ImageIndex | Image
65 | Merge Objects to Back
66 | Merge All to Back
67 | Bring Object to Front
68 | Bring Object Forward
69 | Send Object to Back
70 | Send Object Backward
71 | Mouse Measure Area
72 | Mouse Measure Length
73 | Mouse Insert Line
74 | Mouse Insert Rectangle
75 | Mouse Insert Ellipse
76 | Mouse Insert Image
77 | Mouse Insert Text
78 | Mouse Select Object
79 | Mouse Measure Distance
80 | Mouse Insert Ruler
81 | Mouse Insert Polyline
82 | Mouse Insert Angle
83 | Mouse Insert Memo
84 | Mouse Insert Line Label
85 | Mouse Edit Polyline
86 | Mouse Unstamp
87 | Crop Image to Objects


AngleToImageEnRotateAngle

AngleToImageEnRotateAngle

Declaration

function AngleToImageEnRotateAngle(Angle: Double): Double;

Description

ImageEn's rotation parameter requires a value specified negative or positive degrees counter-clockwise. This method converts a standard positive clockwise value to an ImageEn value.

See also: ImageEnRotateAngleToAngle

Example

// Rotate image 90 deg. clockwise
ImageEnView1.Proc.Rotate( AngleToImageEnRotateAngle( 90 ) );


BitsPerPixelToStr

BitsPerPixelToStr

Declaration

function BitsPerPixelToStr(iBitsPerPixel: Integer) : string;

Description

Provides a suitable textual representation of a Bits per Sample value (i.e. BitsPerSample * SamplesPerPixel). Example outputs: Monochrome, 128 colors, 24 bit color, etc.

Example

// Display the color depth of the currently displayed image
lblColorDepth.Caption := BitsPerPixelToStr(ImageEnView1.IO.Params.BitsPerSample * ImageEnView1.IO.Params.SamplesPerPixel);


blimit

blimit

Declaration

function blimit(vv: Integer): Integer;

Description

Ensures vv is in the range of 0 to 255.


bswap

bswap

Declaration

procedure bswap(var B1, B2: Byte);

Description

Swap B1 with B2.


CanPasteFilesFromClipboard

CanPasteFilesFromClipboard

Declaration

function CanPasteFilesFromClipboard(Handle : HWND) : Boolean;

Description

Returns True if there are files on the clipboard that have been copied from Windows Explorer or TImageEnFolderMView and can be pasted using PasteFilesFromClipboard.

Example

btnPaste.Enabled := CanPasteFilesFromClipboard(Form1.Handle);


CheckAniGIF

CheckAniGIF

Declaration

function CheckAniGIF(const FileName: WideString): Boolean;

Description

Returns True if the specified GIF file has the animated flag set (i.e. the "NETSCAPE2.0" string).
If the file doesn't exist or if the image hasn't set the flag, it returns False.


ColorToHex

ColorToHex

Declaration

function ColorToHex(Color : TColor): string;

Description

Returns a hex representation of a TColor (e.g. for use in HTML)

Example

sHex := ColorToHex(clWhite); // Would return "#FFFFFF'


ColorToHSL

ColorToHSL

Declaration

procedure ColorToHSL(cl: TColor; var Hue, Sat, Lum: Double);

Description

Converts a TColor to HSL values.

Note: Hue, Sat and Lum will be in range 0 to 1.


ColorToHSV

ColorToHSV

Declaration

procedure ColorToHSV(cl: TColor; var h, s, v: Integer);

Description

Converts a TColor to HSV values.

H (Hue) is from 0 to 359 (corresponding to 0..359 degrees around a hexcone).
S (Saturation) is from 0 (shade of gray) to 99 (pure color).
V (Value) is from 0 (black) to 99 (white).


Consts for Common XMP Fields

Consts for Common XMP Fields

Declaration

Const | XMP Property | Description
XMP_Aux_ApproximateFocusDistance | aux:ApproximateFocusDistance | Focus Distance
XMP_Aux_Firmware | aux:Firmware | Firmware
XMP_Aux_FlashCompensation | aux:FlashCompensation | Flash Compensation
XMP_Aux_ImageNumber | aux:ImageNumber | Image Number
XMP_Aux_Lens | aux:Lens | Lens
XMP_Aux_LensID | aux:LensID | Lens ID
XMP_Aux_LensInfo | aux:LensInfo | Lens Info
XMP_Aux_LensSerialNumber | aux:LensSerialNumber | Lens Serial Number
XMP_Aux_OwnerName | aux:OwnerName | Owner Name
XMP_Aux_SerialNumber | aux:SerialNumber | Serial Number
XMP_CC_AttributionName | cc:AttributionName | Attribution Name
XMP_CC_AttributionURL | cc:AttributionURL | Attribution URL
XMP_CC_DeprecatedOn | cc:DeprecatedOn | Deprecated On
XMP_CC_Jurisdiction | cc:Jurisdiction | Jurisdiction
XMP_CC_LegalCode | cc:LegalCode | Legal Code
XMP_CC_License | cc:License | License
XMP_CC_MorePermissions | cc:MorePermissions | More Permissions
XMP_CC_Permits | cc:Permits | Permits
XMP_CC_Prohibits | cc:Prohibits | Prohibits
XMP_CC_Requires | cc:Requires | Requires
XMP_CC_UseGuidelines | cc:UseGuidelines | Use Guidelines
XMP_DC_Contributor | dc:Contributor | Contributor
XMP_DC_Coverage | dc:Coverage | Coverage
XMP_DC_Creator | dc:Creator | Creator
XMP_DC_Date | dc:Date | Date
XMP_DC_Description | dc:Description | Description
XMP_DC_Format | dc:Format | Format
XMP_DC_Identifier | dc:Identifier | Identifier
XMP_DC_Language | dc:Language | Language
XMP_DC_Publisher | dc:Publisher | Publisher
XMP_DC_Relation | dc:Relation | Relation
XMP_DC_Rights | dc:Rights | Rights
XMP_DC_Source | dc:Source | Source
XMP_DC_Subject | dc:Subject | Subject
XMP_DC_Title | dc:Title | Title
XMP_DC_Type | dc:Type | Type
XMP_Photoshop_AuthorsPosition | photoshop:AuthorsPosition | Authors Position
XMP_Photoshop_CaptionWriter | photoshop:CaptionWriter | Caption Writer
XMP_Photoshop_Category | photoshop:Category | Category
XMP_Photoshop_City | photoshop:City | City
XMP_Photoshop_ColorMode | photoshop:ColorMode | Color Mode
XMP_Photoshop_Country | photoshop:Country | Country
XMP_Photoshop_Credit | photoshop:Credit | Credit
XMP_Photoshop_DateCreated | photoshop:DateCreated | Date Created
XMP_Photoshop_DocumentAncestorID | photoshop:DocumentAncestorID | Document Ancestor ID
XMP_Photoshop_Headline | photoshop:Headline | Headline
XMP_Photoshop_History | photoshop:History | History
XMP_Photoshop_ICCProfileName | photoshop:ICCProfileName | ICC Profile Name
XMP_Photoshop_Instructions | photoshop:Instructions | Instructions
XMP_Photoshop_Source | photoshop:Source | Source
XMP_Photoshop_State | photoshop:State | State
XMP_Photoshop_SupplementalCategories | photoshop:SupplementalCategories | Supplemental Categories
XMP_Photoshop_TextLayerName | photoshop:TextLayerName | Text Layer Name
XMP_Photoshop_TextLayerText | photoshop:TextLayerText | Text Layer Text
XMP_Photoshop_TransmissionReference | photoshop:TransmissionReference | Transmission Reference
XMP_Photoshop_Urgency | photoshop:Urgency | Urgency
XMP_Advisory | xmp:Advisory | Advisory
XMP_Author | xmp:Author | Author
XMP_BaseURL | xmp:BaseURL | Base URL
XMP_CreateDate | xmp:CreateDate | Create Date
XMP_CreatorTool | xmp:CreatorTool | Creator Tool
XMP_Description | xmp:Description | Description
XMP_Format | xmp:Format | Format
XMP_Identifier | xmp:Identifier | Identifier
XMP_Keywords | xmp:Keywords | Keywords
XMP_Label | xmp:Label | Label
XMP_MetadataDate | xmp:MetadataDate | Metadata Date
XMP_ModifyDate | xmp:ModifyDate | Modify Date
XMP_Nickname | xmp:Nickname | Nickname
XMP_Rating | xmp:Rating | Rating
XMP_Title | xmp:Title | Title


ContainsExifTag

ContainsExifTag

Declaration

function ContainsExifTag(const Text: string): Boolean;

Description

Returns true if Text contains an exif tag, such as %EXIF-User-Comment%

Exif Tags

Exif tags allow creation of generic text blocks where the data within the text is replaced with EXIF data (in a similar way to a mail merge). For example, a user may insert the exif tag, %EXIF-User-Comment%, you can then call ReplaceExifTags to replace the tag with the actually value of the EXIF_UserComment field.

BEFORE:
Description: %EXIF-User-Comment%
Camera: %EXIF-Camera-Make%
Shutter Speed: %EXIF-Shutter-Speed%

AFTER (Example):
Description: Eiffel Tower
Camera: Nikon
Shutter Speed: 1/200 second

Examples

// Replace the exif tags in memo with the actual values of the current image
if ContainsExifTag( Memo1.Text ) then
Memo1.Text := ReplaceExifTags( Memo1.Text, ImageEnView1.IO.Params );


CopyFilesToClipboard

CopyFilesToClipboard

Declaration

function CopyFilesToClipboard(Handle : HWND; Filenames: TStrings): Boolean;

Description

Adds a list of filenames to the clipboard (same as selecting Ctrl+C in Windows Explorer). The filenames can then be pasted into other Windows applications such as Explorer using Ctrl+V.

Example

CopyFilesToClipboard(Form1.Handle, ssFilenames);


CreateCMYK

CreateCMYK

Declaration

function CreateCMYK(c, m, y, k: byte): TCMYK;

Description

Returns a TCMYK record.


CreateRGB

CreateRGB

Declaration

function CreateRGB(r, g, b: byte): TRGB;

Description

Returns a TRGB record.

Example

rgb := CreateRGB( 255, 0, 0 );
// Which is the same as rgb := TColor2TRGB( clRed );

See Also

- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


CreateRGB48

CreateRGB48

Declaration

function CreateRGB48(r, g, b: word): TRGB48;

Description

Returns a TRGB48 record.


CreateRGBA

CreateRGBA

Declaration

function CreateRGBA(r, g, b, a: byte): TRGBA;

Description

Returns a TRGBA record.


CreateWallpaperBitmap

CreateWallpaperBitmap

Declaration

function CreateWallpaperBitmap(Effect : TWallpaperEffect; Color1 : TColor; Color2 : TColor; iSize : Integer = -1; iSpacing : integer = -1; iThickness: Integer = -1) : TBitmap;

Description

Create a bitmap suitable for use as HTML wallpaper (i.e. which can be tiled). Result is a TBitmap if the method succeeds. You MUST FREE the bitmap.

Note: Defined in iexCanvasUtils unit

Example

// Create a checkered wallpaper image
WPBmp := CreateWallpaperBitmap( wpDiagCheckers, clRed, clWhite );
TileBitmapOntoCanvas( DestBmp.Canvas, DestBmp.Width, DestBmp.Height, WPBmp );
WPBmp.Free;

See Also

- TileBitmapOntoCanvas

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


CubeEngineExistsInFolder

CubeEngineExistsInFolder

Declaration

function CubeEngineExistsInFolder(aLanguage : TIEOCRLanguages; const sFolder : string) : Boolean; overload;
function CubeEngineExistsInFolder(const sLangCode : string; const sFolder : string) : Boolean; overload;

Description

Returns true if the support files for the Cube OCR engine of a specified language is found in a folder.

When creating the OCR engine you must specify which OCR engine to use, base, Cube, or both.

If you use the base OCR engine (ievOCRFAST) you will only require the *.trained data support file, e.g. eng.traineddata for processing of an English language document. Use of ievOCRCUBE and ievOCRACCURATE require you to also enclude the *.cube.* files. e.g. eng.cube.word-freq, eng.cube.size, etc.

All existing cube trainings have the following files:

XXX.cube.fold
XXX.cube.lm
XXX.cube.nn
XXX.cube.params
XXX.cube.size
XXX.cube.word-freq

Some also have these files:

XXX.cube.bigrams
XXX.cube-word-dawg
XXX.cube-unicharset
XXX.tesseract_cube.nn

Example

if (SelectedOCREngine in [ievOCRCUBE, ievOCRACCURATE]) and (CubeEngineExistsInFolder(OCR_English_language, ExtractFilePath(Application.ExeName)) = False) then
MessageDlg('Files for the selected OCR engine could not be found. Please reinstall.', mtError, [mbOK], 0);

See Also

- TIEOCRLanguages
- IEVisionGetLanguagesInFolder
- IEVisionLanguageCodeToName
- IEVisionLanguageNameToCode

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


CutFilesToClipboard

CutFilesToClipboard

Declaration

function CutFilesToClipboard(Handle : HWND; Filenames: TStrings): Boolean;

Description

Adds a list of filenames to the clipboard and specifies that they should moved (same as selecting Ctrl+X in Windows Explorer). The filenames can then be pasted into other Windows applications such as Explorer using Ctrl+V. After pasting they will be removed from the source folder.

Example

CutFilesToClipboard(Form1.Handle, ssFilenames);


DateTimeToEXIFDate

DateTimeToEXIFDate

Declaration

function DateTimeToEXIFDate(ADateTime: TDateTime): string;

Description

Converts a TDateTime value to an EXIF string representation (also used by XMP date fields). EXIF dates are formatted as "YYYY:MM:DD HH:MM:SS"+0x00

Examples

// Update the Exif date
ImageEnView1.IO.Params.EXIF_DateTime := DateTimeToEXIFDate( Now );

See Also

- EXIFDateToDateTime

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


DeleteDCXIm

DeleteDCXIm

Declaration

procedure DeleteDCXIm(const FileName: WideString; idx: integer);

Description

Removes an image at index, idx (zero-based), from a multi-frame DCX file.
Returns the remaining number of frames that the file contains. If the FileName doesn't exists or doesn't contain images, it returns 0.

Example

// Delete the second image in a multipage DCX, named 'multipage.dcx'.
DeleteDCXIm('C:\multipage.dcx', 1);

See Also

- Multipage Image functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


DeleteGIFIm

DeleteGIFIm

Declaration

function DeleteGIFIm(const FileName: WideString; idx: Integer): Integer;

Description

Removes an image at index, idx (zero-based), from a multi-frame GIF file.
Returns the remaining number of frames that the file contains. If the FileName doesn't exists or doesn't contain images, it returns 0.

Example

// Delete the second image in a multipage GIF, named 'multipage.gif'.
DeleteGIFIm('C:\multipage.gif', 1);

See Also

- Multipage Image functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


DeleteTIFFIm

DeleteTIFFIm

Declaration

function DeleteTIFFIm(const FileName: WideString; idx: Integer): Integer;

Description

Removes an image at index, idx (zero-based), from a multi-frame TIFF file.
Returns the remaining number of frames that the file contains. If the FileName doesn't exists or doesn't contain images, it returns 0.

Example

// Delete the second image in a multipage TIFF, named 'multipage.tif'.
DeleteTIFFIm('C:\multipage.tif', 1);

See Also

- Multipage Image functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


DeleteTIFFImGroup

DeleteTIFFImGroup

Declaration

function DeleteTIFFImGroup(const FileName: WideString; Indexes: array of integer): Integer;

Description

Removes the specified group of pages from the specified file. Indexes is an array of page indexes to remove.
Returns the remaining number of frames that FileName file contains. If the FileName doesn't exists or doesn't contain images, it returns 0.


Dicom Tags Supported by ImageEn

Dicom Tags Supported by ImageEn

ImageEn supports around 5,000 DICOM data tags. These are defined by NEMA, but also may be propietary to specific hardware vendors.

For further information, consult the DICOM documentation:
medical.nema.org/standard.html

Notes:
- Types are defined by TIEDicomTagType
- Tags that are Bold are part of the NEMA standard. Italicized tags have been deprecated in the standard. Other tags are proprietary.

Tag | Description | Type
(0000,0000) | Command Group Length | dvUL
(0000,0001) | Command Length to End | dvUL
(0000,0002) | Affected SOP Class UID | dvUI
(0000,0003) | Requested SOP Class UID | dvUI
(0000,0010) | Command Recognition Code | dvSH
(0000,0100) | Command Field | dvUS
(0000,0110) | Message ID | dvUS
(0000,0120) | Message ID Being Responded To | dvUS
(0000,0200) | Initiator | dvAE
(0000,0300) | Receiver | dvAE
(0000,0400) | Find Location | dvAE
(0000,0600) | Move Destination | dvAE
(0000,0700) | Priority | dvUS
(0000,0800) | Command Data Set Type | dvUS
(0000,0850) | Number of Matches | dvUS
(0000,0860) | Response Sequence Number | dvUS
(0000,0900) | Status | dvUS
(0000,0901) | Offending Element | dvAT
(0000,0902) | Error Comment | dvLO
(0000,0903) | Error ID | dvUS
(0000,1000) | Affected SOP Instance UID | dvUI
(0000,1001) | Requested SOP Instance UID | dvUI
(0000,1002) | Event Type ID | dvUS
(0000,1005) | Attribute Identifier List | dvAT
(0000,1008) | Action Type ID | dvUS
(0000,1020) | Number of Remaining Sub-operations | dvUS
(0000,1021) | Number of Completed Sub-operations | dvUS
(0000,1022) | Number of Failed Sub-operations | dvUS
(0000,1023) | Number of Warning Sub-operations | dvUS
(0000,1030) | Move Originator Application Entity Title | dvAE
(0000,1031) | Move Originator Message ID | dvUS
(0000,4000) | Dialog Receiver | dvLT
(0000,4010) | Terminal Type | dvLT
(0000,5010) | Message Set ID | dvSH
(0000,5020) | End Message ID | dvSH
(0000,5110) | Display Format | dvLT
(0000,5120) | Page Position ID | dvLT
(0000,5130) | Text Format ID | dvCS
(0000,5140) | Normal/Reverse | dvCS
(0000,5150) | Add Gray Scale | dvCS
(0000,5160) | Borders | dvCS
(0000,5170) | Copies | dvIS
(0000,5180) | Command Magnification Type | dvCS
(0000,5190) | Erase | dvCS
(0000,51A0) | Print | dvCS
(0000,51B0) | Overlays | dvUS
(0002,0000) | File Meta Information Group Length | dvUL
(0002,0001) | File Meta Information Version | dvOB
(0002,0002) | Media Storage SOP Class UID | dvUI
(0002,0003) | Media Storage SOP Instance UID | dvUI
(0002,0010) | Transfer Syntax UID | dvUI
(0002,0012) | Implementation Class UID | dvUI
(0002,0013) | Implementation Version Name | dvSH
(0002,0016) | Source Application Entity Title | dvAE
(0002,0017) | Sending Application Entity Title | dvAE
(0002,0018) | Receiving Application Entity Title | dvAE
(0002,0100) | Private Information Creator UID | dvUI
(0002,0102) | Private Information | dvOB
(0003,0000) | Undocumented | dvUS
(0003,0008) | Undocumented | dvUS
(0003,0011) | Undocumented | dvUS
(0003,0012) | Undocumented | dvUL
(0003,0013) | Undocumented | dvDA
(0003,0014) | Undocumented | dvTM
(0003,0020) | Undocumented | dvUS
(0003,0030) | Undocumented | dvDA
(0003,0031) | Undocumented | dvTM
(0004,0000) | File-set Group Length | dvUL
(0004,1130) | File-set ID | dvCS
(0004,1141) | File-set Descriptor File ID | dvCS
(0004,1142) | Specific Character Set of File-set Descriptor File | dvCS
(0004,1200) | Offset of the First Directory Record of the Root Directory Entity | dvUL
(0004,1202) | Offset of the Last Directory Record of the Root Directory Entity | dvUL
(0004,1212) | File-set Consistency Flag | dvUS
(0004,1220) | Directory Record Sequence | dvSQ
(0004,1400) | Offset of the Next Directory Record | dvUL
(0004,1410) | Record In-use Flag | dvUS
(0004,1420) | Offset of Referenced Lower-Level Directory Entity | dvUL
(0004,1430) | Directory Record Type | dvCS
(0004,1432) | Private Record UID | dvUI
(0004,1500) | Referenced File ID | dvCS
(0004,1504) | MRDR Directory Record Offset | dvUL
(0004,1510) | Referenced SOP Class UID in File | dvUI
(0004,1511) | Referenced SOP Instance UID in File | dvUI
(0004,1512) | Referenced Transfer Syntax UID in File | dvUI
(0004,151A) | Referenced Related General SOP Class UID in File | dvUI
(0004,1600) | Number of References | dvUL
(0005,0000) | Undocumented | dvUS
(0006,0000) | Undocumented | dvUS
(0008,0000) | Identifying Group Length | dvUL
(0008,0001) | Length to End | dvUL
(0008,0005) | Specific Character Set | dvCS
(0008,0006) | Language Code Sequence | dvSQ
(0008,0008) | Image Type | dvCS
(0008,0010) | Recognition Code | dvSH
(0008,0012) | Instance Creation Date | dvDA
(0008,0013) | Instance Creation Time | dvTM
(0008,0014) | Instance Creator UID | dvUI
(0008,0015) | Instance Coercion Date/Time | dvDT
(0008,0016) | SOP Class UID | dvUI
(0008,0018) | SOP Instance UID | dvUI
(0008,001A) | Related General SOP Class UID | dvUI
(0008,001B) | Original Specialized SOP Class UID | dvUI
(0008,0020) | Study Date | dvDA
(0008,0021) | Series Date | dvDA
(0008,0022) | Acquisition Date | dvDA
(0008,0023) | Content Date | dvDA
(0008,0024) | Overlay Date | dvDA
(0008,0025) | Curve Date | dvDA
(0008,002A) | Acquisition Date/Time | dvDT
(0008,0030) | Study Time | dvTM
(0008,0031) | Series Time | dvTM
(0008,0032) | Acquisition Time | dvTM
(0008,0033) | Content Time | dvTM
(0008,0034) | Overlay Time | dvTM
(0008,0035) | Curve Time | dvTM
(0008,0040) | Data Set Type | dvUS
(0008,0041) | Data Set Subtype | dvLO
(0008,0042) | Nuclear Medicine Series Type | dvCS
(0008,0050) | Accession Number | dvSH
(0008,0051) | Issuer of Accession Number Sequence | dvSQ
(0008,0052) | Query/Retrieve Level | dvCS
(0008,0053) | Query/Retrieve View | dvCS
(0008,0054) | Retrieve AE Title | dvAE
(0008,0056) | Instance Availability | dvCS
(0008,0058) | Failed SOP Instance UID List | dvUI
(0008,0060) | Modality | dvCS
(0008,0061) | Modalities in Study | dvCS
(0008,0062) | SOP Classes in Study | dvUI
(0008,0064) | Conversion Type | dvCS
(0008,0068) | Presentation Intent Type | dvCS
(0008,0070) | Manufacturer | dvLO
(0008,0080) | Institution Name | dvLO
(0008,0081) | Institution Address | dvST
(0008,0082) | Institution Code Sequence | dvSQ
(0008,0090) | Referring Physician's Name | dvPN
(0008,0092) | Referring Physician's Address | dvST
(0008,0094) | Referring Physician's Telephone Numbers | dvSH
(0008,0096) | Referring Physician Identification Sequence | dvSQ
(0008,0100) | Code Value | dvSH
(0008,0101) | Extended Code Value | dvLO
(0008,0102) | Coding Scheme Designator | dvSH
(0008,0103) | Coding Scheme Version | dvSH
(0008,0104) | Code Meaning | dvLO
(0008,0105) | Mapping Resource | dvCS
(0008,0106) | Context Group Version | dvDT
(0008,0107) | Context Group Local Version | dvDT
(0008,0108) | Extended Code Meaning | dvLT
(0008,010B) | Context Group Extension Flag | dvCS
(0008,010C) | Coding Scheme UID | dvUI
(0008,010D) | Context Group Extension Creator UID | dvUI
(0008,010F) | Context Identifier | dvCS
(0008,0110) | Coding Scheme Identification Sequence | dvSQ
(0008,0112) | Coding Scheme Registry | dvLO
(0008,0114) | Coding Scheme External ID | dvST
(0008,0115) | Coding Scheme Name | dvST
(0008,0116) | Coding Scheme Responsible Organization | dvST
(0008,0117) | Context UID | dvUI
(0008,0201) | Timezone Offset From UTC | dvSH
(0008,1000) | Network ID | dvAE
(0008,1010) | Station Name | dvSH
(0008,1030) | Study Description | dvLO
(0008,1032) | Procedure Code Sequence | dvSQ
(0008,103E) | Series Description | dvLO
(0008,103F) | Series Description Code Sequence | dvSQ
(0008,1040) | Institutional Department Name | dvLO
(0008,1048) | Physician(s) of Record | dvPN
(0008,1049) | Physician(s) of Record Identification Sequence | dvSQ
(0008,1050) | Performing Physician's Name | dvPN
(0008,1052) | Performing Physician Identification Sequence | dvSQ
(0008,1060) | Name of Physician(s) Reading Study | dvPN
(0008,1062) | Physician(s) Reading Study Identification Sequence | dvSQ
(0008,1070) | Operators' Name | dvPN
(0008,1072) | Operator Identification Sequence | dvSQ
(0008,1080) | Admitting Diagnoses Description | dvLO
(0008,1084) | Admitting Diagnoses Code Sequence | dvSQ
(0008,1090) | Manufacturer's Model Name | dvLO
(0008,1100) | Referenced Results Sequence | dvSQ
(0008,1110) | Referenced Study Sequence | dvSQ
(0008,1111) | Referenced Performed Procedure Step Sequence | dvSQ
(0008,1115) | Referenced Series Sequence | dvSQ
(0008,1120) | Referenced Patient Sequence | dvSQ
(0008,1125) | Referenced Visit Sequence | dvSQ
(0008,1130) | Referenced Overlay Sequence | dvSQ
(0008,1134) | Referenced Stereometric Instance Sequence | dvSQ
(0008,113A) | Referenced Waveform Sequence | dvSQ
(0008,1140) | Referenced Image Sequence | dvSQ
(0008,1145) | Referenced Curve Sequence | dvSQ
(0008,1148) | Undocumented | dvSQ
(0008,114A) | Referenced Instance Sequence | dvSQ
(0008,114B) | Referenced Real World Value Mapping Instance Sequence | dvSQ
(0008,114C) | Undocumented | dvSQ
(0008,1150) | Referenced SOP Class UID | dvUI
(0008,1155) | Referenced SOP Instance UID | dvUI
(0008,115A) | SOP Classes Supported | dvUI
(0008,1160) | Referenced Frame Number | dvIS
(0008,1161) | Simple Frame List | dvUL
(0008,1162) | Calculated Frame List | dvUL
(0008,1163) | Time Range | dvFD
(0008,1164) | Frame Extraction Sequence | dvSQ
(0008,1167) | Multi-frame Source SOP Instance UID | dvUI
(0008,1190) | Retrieve URL | dvUR
(0008,1195) | Transaction UID | dvUI
(0008,1196) | Warning Reason | dvUS
(0008,1197) | Failure Reason | dvUS
(0008,1198) | Failed SOP Sequence | dvSQ
(0008,1199) | Referenced SOP Sequence | dvSQ
(0008,1200) | Studies Containing Other Referenced Instances Sequence | dvSQ
(0008,1250) | Related Series Sequence | dvSQ
(0008,2110) | Lossy Image Compression (Retired) | dvCS
(0008,2111) | Derivation Description | dvST
(0008,2112) | Source Image Sequence | dvSQ
(0008,2120) | Stage Name | dvSH
(0008,2122) | Stage Number | dvIS
(0008,2124) | Number of Stages | dvIS
(0008,2127) | View Name | dvSH
(0008,2128) | View Number | dvIS
(0008,2129) | Number of Event Timers | dvIS
(0008,212A) | Number of Views in Stage | dvIS
(0008,2130) | Event Elapsed Time(s) | dvDS
(0008,2132) | Event Timer Name(s) | dvLO
(0008,2133) | Event Timer Sequence | dvSQ
(0008,2134) | Event Time Offset | dvFD
(0008,2135) | Event Code Sequence | dvSQ
(0008,2142) | Start Trim | dvIS
(0008,2143) | Stop Trim | dvIS
(0008,2144) | Recommended Display Frame Rate | dvIS
(0008,2200) | Transducer Position | dvCS
(0008,2204) | Transducer Orientation | dvCS
(0008,2208) | Anatomic Structure | dvCS
(0008,2218) | Anatomic Region Sequence | dvSQ
(0008,2220) | Anatomic Region Modifier Sequence | dvSQ
(0008,2228) | Primary Anatomic Structure Sequence | dvSQ
(0008,2229) | Anatomic Structure, Space or Region Sequence | dvSQ
(0008,2230) | Primary Anatomic Structure Modifier Sequence | dvSQ
(0008,2240) | Transducer Position Sequence | dvSQ
(0008,2242) | Transducer Position Modifier Sequence | dvSQ
(0008,2244) | Transducer Orientation Sequence | dvSQ
(0008,2246) | Transducer Orientation Modifier Sequence | dvSQ
(0008,2251) | Anatomic Structure Space or Region Code Sequence (Trial) | dvSQ
(0008,2253) | Anatomic Portal of Entrance Code Sequence (Trial) | dvSQ
(0008,2255) | Anatomic Approach Direction Code Sequence (Trial) | dvSQ
(0008,2256) | Anatomic Perspective Description (Trial) | dvST
(0008,2257) | Anatomic Perspective Code Sequence (Trial) | dvSQ
(0008,2258) | Anatomic Location of Examining Instrument Description (Trial) | dvST
(0008,2259) | Anatomic Location of Examining Instrument Code Sequence (Trial) | dvSQ
(0008,225A) | Anatomic Structure Space or Region Modifier Code Sequence (Trial) | dvSQ
(0008,225C) | On Axis Background Anatomic Structure Code Sequence (Trial) | dvSQ
(0008,3001) | Alternate Representation Sequence | dvSQ
(0008,3010) | Irradiation Event UID | dvUI
(0008,3011) | Source Irradiation Event Sequence | dvSQ
(0008,3012) | Radiopharmaceutical Administration Event UID | dvUI
(0008,4000) | Identifying Comments | dvLT
(0008,9007) | Frame Type | dvCS
(0008,9092) | Referenced Image Evidence Sequence | dvSQ
(0008,9121) | Referenced Raw Data Sequence | dvSQ
(0008,9123) | Creator-Version UID | dvUI
(0008,9124) | Derivation Image Sequence | dvSQ
(0008,9154) | Source Image Evidence Sequence | dvSQ
(0008,9205) | Pixel Presentation | dvCS
(0008,9206) | Volumetric Properties | dvCS
(0008,9207) | Volume Based Calculation Technique | dvCS
(0008,9208) | Complex Image Component | dvCS
(0008,9209) | Acquisition Contrast | dvCS
(0008,9215) | Derivation Code Sequence | dvSQ
(0008,9237) | Referenced Presentation State Sequence | dvSQ
(0008,9410) | Referenced Other Plane Sequence | dvSQ
(0008,9458) | Frame Display Sequence | dvSQ
(0008,9459) | Recommended Display Frame Rate in Float | dvFL
(0008,9460) | Skip Frame Range Flag | dvCS
(0009,0000) | Undocumented | dvUSorSS
(0009,0001) | Undocumented | dvUSorSS
(0009,0002) | Undocumented | dvUSorSS
(0009,0003) | Undocumented | dvUSorSS
(0009,0004) | Undocumented | dvUSorSS
(0009,0005) | Undocumented | dvUN
(0009,0006) | Undocumented | dvUN
(0009,0007) | Undocumented | dvUN
(0009,0008) | Undocumented | dvUSorSS
(0009,0009) | Undocumented | dvLT
(0009,000A) | Undocumented | dvIS
(0009,000B) | Undocumented | dvIS
(0009,000C) | Undocumented | dvIS
(0009,000D) | Undocumented | dvIS
(0009,000E) | Undocumented | dvIS
(0009,000F) | Undocumented | dvUN
(0009,0010) | Undocumented | dvUSorSS
(0009,0011) | Undocumented | dvUSorSS
(0009,0012) | Undocumented | dvUSorSS
(0009,0013) | Undocumented | dvUSorSS
(0009,0014) | Undocumented | dvUSorSS
(0009,0015) | Undocumented | dvUSorSS
(0009,0016) | Undocumented | dvUSorSS
(0009,0017) | Undocumented | dvLT
(0009,0018) | Undocumented | dvLT
(0009,001A) | Undocumented | dvUS
(0009,001E) | Undocumented | dvUI
(0009,0020) | Undocumented | dvUSorSS
(0009,0021) | Undocumented | dvUSorSS
(0009,0022) | Undocumented | dvSH
(0009,0023) | Undocumented | dvSL
(0009,0024) | Undocumented | dvUSorSS
(0009,0025) | Undocumented | dvUSorSS
(0009,0026) | Undocumented | dvUSorSS
(0009,0027) | Undocumented | dvUSorSS
(0009,0029) | Undocumented | dvUSorSS
(0009,002A) | Undocumented | dvSL
(0009,002C) | Undocumented | dvLO
(0009,002D) | Undocumented | dvSL
(0009,002E) | Undocumented | dvFD
(0009,002F) | Undocumented | dvLT
(0009,0030) | Undocumented | dvUSorSS
(0009,0031) | Undocumented | dvUSorSS
(0009,0032) | Undocumented | dvLT
(0009,0034) | Undocumented | dvUSorSS
(0009,0035) | Undocumented | dvSL
(0009,0037) | Undocumented | dvSL
(0009,0038) | Undocumented | dvUSorSS
(0009,0039) | Undocumented | dvSL
(0009,003A) | Undocumented | dvSL
(0009,003E) | Undocumented | dvUS
(0009,003F) | Undocumented | dvUS
(0009,0040) | Undocumented | dvUSorSS
(0009,0041) | Undocumented | dvUSorSS
(0009,0042) | Undocumented | dvUSorSS
(0009,0043) | Undocumented | dvUSorSS
(0009,0050) | Undocumented | dvLT
(0009,0051) | Undocumented | dvUSorSS
(0009,0060) | Undocumented | dvLT
(0009,0061) | Undocumented | dvLT
(0009,0070) | Undocumented | dvLT
(0009,0080) | Undocumented | dvLT
(0009,0091) | Undocumented | dvLT
(0009,00E2) | Undocumented | dvLT
(0009,00E3) | Undocumented | dvUI
(0009,00E6) | Undocumented | dvSH
(0009,00E7) | Undocumented | dvUL
(0009,00E8) | Undocumented | dvUL
(0009,00E9) | Undocumented | dvSL
(0009,00F2) | Undocumented | dvUN
(0009,00F3) | Undocumented | dvUN
(0009,00F4) | Undocumented | dvLT
(0009,00F5) | Undocumented | dvUSorSS
(0009,00F6) | Undocumented | dvLT
(0009,00F8) | Undocumented | dvUS
(0009,00FB) | Undocumented | dvIS
(0009,1002) | Suite ID | dvOB
(0009,1003) | Undocumented | dvOB
(0009,1010) | Undocumented | dvUN
(0010,0000) | Patient Group Length | dvUL
(0010,0010) | Patient's Name | dvPN
(0010,0020) | Patient ID | dvLO
(0010,0021) | Issuer of Patient ID | dvLO
(0010,0022) | Type of Patient ID | dvCS
(0010,0024) | Issuer of Patient ID Qualifiers Sequence | dvSQ
(0010,0030) | Patient's Birth Date | dvDA
(0010,0032) | Patient's Birth Time | dvTM
(0010,0040) | Patient's Sex | dvCS
(0010,0050) | Patient's Insurance Plan Code Sequence | dvSQ
(0010,0101) | Patient's Primary Language Code Sequence | dvSQ
(0010,0102) | Patient's Primary Language Modifier Code Sequence | dvSQ
(0010,0200) | Quality Control Subject | dvCS
(0010,0201) | Quality Control Subject Type Code Sequence | dvSQ
(0010,1000) | Other Patient IDs | dvLO
(0010,1001) | Other Patient Names | dvPN
(0010,1002) | Other Patient IDs Sequence | dvSQ
(0010,1005) | Patient's Birth Name | dvPN
(0010,1010) | Patient's Age | dvAS
(0010,1020) | Patient's Size | dvDS
(0010,1021) | Patient's Size Code Sequence | dvSQ
(0010,1030) | Patient's Weight | dvDS
(0010,1040) | Patient's Address | dvLO
(0010,1050) | Insurance Plan Identification | dvLO
(0010,1060) | Patient's Mother's Birth Name | dvPN
(0010,1080) | Military Rank | dvLO
(0010,1081) | Branch of Service | dvLO
(0010,1090) | Medical Record Locator | dvLO
(0010,1100) | Referenced Patient Photo Sequence | dvSQ
(0010,2000) | Medical Alerts | dvLO
(0010,2110) | Allergies | dvLO
(0010,2150) | Country of Residence | dvLO
(0010,2152) | Region of Residence | dvLO
(0010,2154) | Patient's Telephone Numbers | dvSH
(0010,2160) | Ethnic Group | dvSH
(0010,2180) | Occupation | dvSH
(0010,21A0) | Smoking Status | dvCS
(0010,21B0) | Additional Patient History | dvLT
(0010,21C0) | Pregnancy Status | dvUS
(0010,21D0) | Last Menstrual Date | dvDA
(0010,21F0) | Patient's Religious Preference | dvLO
(0010,2201) | Patient Species Description | dvLO
(0010,2202) | Patient Species Code Sequence | dvSQ
(0010,2203) | Patient's Sex Neutered | dvCS
(0010,2210) | Anatomical Orientation Type | dvCS
(0010,2292) | Patient Breed Description | dvLO
(0010,2293) | Patient Breed Code Sequence | dvSQ
(0010,2294) | Breed Registration Sequence | dvSQ
(0010,2295) | Breed Registration Number | dvLO
(0010,2296) | Breed Registry Code Sequence | dvSQ
(0010,2297) | Responsible Person | dvPN
(0010,2298) | Responsible Person Role | dvCS
(0010,2299) | Responsible Organization | dvLO
(0010,4000) | Patient Comments | dvLT
(0010,9431) | Examined Body Thickness | dvFL
(0011,0001) | Undocumented | dvUSorSS
(0011,0002) | Undocumented | dvUS
(0011,0003) | Undocumented | dvLT
(0011,0004) | Undocumented | dvLT
(0011,000A) | Undocumented | dvUSorSS
(0011,000B) | Undocumented | dvSL
(0011,000C) | Undocumented | dvSL
(0011,000D) | Undocumented | dvLO
(0011,0010) | Undocumented | dvUSorSS
(0011,0011) | Undocumented | dvUSorSS
(0011,0012) | Undocumented | dvLO
(0011,0013) | Undocumented | dvLO
(0011,0015) | Undocumented | dvUSorSS
(0011,0016) | Undocumented | dvSL
(0011,0017) | Undocumented | dvSL
(0011,0018) | Undocumented | dvSL
(0011,0019) | Undocumented | dvFD
(0011,001A) | Undocumented | dvSL
(0011,001B) | Undocumented | dvSL
(0011,001C) | Undocumented | dvSL
(0011,001D) | Undocumented | dvSL
(0011,001F) | Undocumented | dvSL
(0011,0020) | Undocumented | dvUSorSS
(0011,0021) | Undocumented | dvUSorSS
(0011,0022) | Undocumented | dvUSorSS
(0011,0023) | Undocumented | dvUSorSS
(0011,0024) | Undocumented | dvSL
(0011,0025) | Undocumented | dvUSorSS
(0011,0026) | Undocumented | dvSL
(0011,0027) | Undocumented | dvSL
(0011,0028) | Undocumented | dvSL
(0011,0030) | Undocumented | dvUSorSS
(0011,0031) | Undocumented | dvUSorSS
(0011,0032) | Undocumented | dvUN
(0011,0033) | Undocumented | dvLO
(0011,0034) | Undocumented | dvLO
(0011,0035) | Undocumented | dvUSorSS
(0011,0036) | Undocumented | dvLO
(0011,0037) | Undocumented | dvLO
(0011,0038) | Undocumented | dvSL
(0011,003A) | Undocumented | dvSL
(0011,003B) | Undocumented | dvFD
(0011,003C) | Undocumented | dvFD
(0011,003E) | Undocumented | dvSL
(0011,003F) | Undocumented | dvSL
(0011,0040) | Undocumented | dvUSorSS
(0011,0041) | Undocumented | dvLT
(0011,0042) | Undocumented | dvLT
(0011,0044) | Undocumented | dvFD
(0011,0045) | Undocumented | dvFD
(0011,0046) | Undocumented | dvSL
(0011,0055) | Undocumented | dvFD
(0011,0056) | Undocumented | dvFD
(0011,00A1) | Undocumented | dvDA
(0011,00A2) | Undocumented | dvTM
(0011,00B0) | Undocumented | dvLT
(0011,00B2) | Undocumented | dvLT
(0011,00B4) | Undocumented | dvLT
(0011,00BC) | Undocumented | dvTM
(0011,00C0) | Undocumented | dvLT
(0011,00D0) | Undocumented | dvLT
(0011,00D2) | Undocumented | dvLT
(0012,0010) | Clinical Trial Sponsor Name | dvLO
(0012,0020) | Clinical Trial Protocol ID | dvLO
(0012,0021) | Clinical Trial Protocol Name | dvLO
(0012,0030) | Clinical Trial Site ID | dvLO
(0012,0031) | Clinical Trial Site Name | dvLO
(0012,0040) | Clinical Trial Subject ID | dvLO
(0012,0042) | Clinical Trial Subject Reading ID | dvLO
(0012,0050) | Clinical Trial Time Point ID | dvLO
(0012,0051) | Clinical Trial Time Point Description | dvST
(0012,0060) | Clinical Trial Coordinating Center Name | dvLO
(0012,0062) | Patient Identity Removed | dvCS
(0012,0063) | De-identification Method | dvLO
(0012,0064) | De-identification Method Code Sequence | dvSQ
(0012,0071) | Clinical Trial Series ID | dvLO
(0012,0072) | Clinical Trial Series Description | dvLO
(0012,0081) | Clinical Trial Protocol Ethics Committee Name | dvLO
(0012,0082) | Clinical Trial Protocol Ethics Committee Approval Number | dvLO
(0012,0083) | Consent for Clinical Trial Use Sequence | dvSQ
(0012,0084) | Distribution Type | dvCS
(0012,0085) | Consent for Distribution Flag | dvCS
(0013,0000) | Undocumented | dvLT
(0013,0010) | Undocumented | dvUSorSS
(0013,0011) | Undocumented | dvSL
(0013,0012) | Undocumented | dvUSorSS
(0013,0016) | Undocumented | dvSL
(0013,0017) | Undocumented | dvSL
(0013,0018) | Undocumented | dvFD
(0013,0019) | Undocumented | dvFD
(0013,001A) | Undocumented | dvFD
(0013,001C) | Undocumented | dvFD
(0013,001D) | Undocumented | dvFD
(0013,001E) | Undocumented | dvFD
(0013,0020) | Undocumented | dvLT
(0013,0022) | Undocumented | dvLT
(0013,0026) | Undocumented | dvLT
(0013,0030) | Undocumented | dvDA
(0013,0031) | Undocumented | dvDS
(0013,0032) | Undocumented | dvLT
(0013,0033) | Undocumented | dvLT
(0013,0034) | Undocumented | dvLT
(0013,0035) | Undocumented | dvLT
(0013,0040) | Undocumented | dvLT
(0013,0042) | Undocumented | dvLT
(0013,0044) | Undocumented | dvLT
(0013,0046) | Undocumented | dvLT
(0014,0023) | CAD File Format | dvST
(0014,0024) | Component Reference System | dvST
(0014,0025) | Component Manufacturing Procedure | dvST
(0014,0028) | Component Manufacturer | dvST
(0014,0030) | Material Thickness | dvDS
(0014,0032) | Material Pipe Diameter | dvDS
(0014,0034) | Material Isolation Diameter | dvDS
(0014,0042) | Material Grade | dvST
(0014,0044) | Material Properties Description | dvST
(0014,0045) | Material Properties File Format (Retired) | dvST
(0014,0046) | Material Notes | dvLT
(0014,0050) | Component Shape | dvCS
(0014,0052) | Curvature Type | dvCS
(0014,0054) | Outer Diameter | dvDS
(0014,0056) | Inner Diameter | dvDS
(0014,1010) | Actual Environmental Conditions | dvST
(0014,1020) | Expiry Date | dvDA
(0014,1040) | Environmental Conditions | dvST
(0014,2002) | Evaluator Sequence | dvSQ
(0014,2004) | Evaluator Number | dvIS
(0014,2006) | Evaluator Name | dvPN
(0014,2008) | Evaluation Attempt | dvIS
(0014,2012) | Indication Sequence | dvSQ
(0014,2014) | Indication Number | dvIS
(0014,2016) | Indication Label | dvSH
(0014,2018) | Indication Description | dvST
(0014,201A) | Indication Type | dvCS
(0014,201C) | Indication Disposition | dvCS
(0014,201E) | Indication ROI Sequence | dvSQ
(0014,2030) | Indication Physical Property Sequence | dvSQ
(0014,2032) | Property Label | dvSH
(0014,2202) | Coordinate System Number of Axes | dvIS
(0014,2204) | Coordinate System Axes Sequence | dvSQ
(0014,2206) | Coordinate System Axis Description | dvST
(0014,2208) | Coordinate System Data Set Mapping | dvCS
(0014,220A) | Coordinate System Axis Number | dvIS
(0014,220C) | Coordinate System Axis Type | dvCS
(0014,220E) | Coordinate System Axis Units | dvCS
(0014,2210) | Coordinate System Axis Values | dvOB
(0014,2220) | Coordinate System Transform Sequence | dvSQ
(0014,2222) | Transform Description | dvST
(0014,2224) | Transform Number of Axes | dvIS
(0014,2226) | Transform Order of Axes | dvIS
(0014,2228) | Transformed Axis Units | dvCS
(0014,222A) | Coordinate System Transform Rotation and Scale Matrix | dvDS
(0014,222C) | Coordinate System Transform Translation Matrix | dvDS
(0014,3011) | Internal Detector Frame Time | dvDS
(0014,3012) | Number of Frames Integrated | dvDS
(0014,3020) | Detector Temperature Sequence | dvSQ
(0014,3022) | Sensor Name | dvST
(0014,3024) | Horizontal Offset of Sensor | dvDS
(0014,3026) | Vertical Offset of Sensor | dvDS
(0014,3028) | Sensor Temperature | dvDS
(0014,3040) | Dark Current Sequence | dvSQ
(0014,3050) | Dark Current Counts | dvOW
(0014,3060) | Gain Correction Reference Sequence | dvSQ
(0014,3070) | Air Counts | dvOW
(0014,3071) | KV Used in Gain Calibration | dvDS
(0014,3072) | MA Used in Gain Calibration | dvDS
(0014,3073) | Number of Frames Used for Integration | dvDS
(0014,3074) | Filter Material Used in Gain Calibration | dvLO
(0014,3075) | Filter Thickness Used in Gain Calibration | dvDS
(0014,3076) | Date of Gain Calibration | dvDA
(0014,3077) | Time of Gain Calibration | dvTM
(0014,3080) | Bad Pixel Image | dvOB
(0014,3099) | Calibration Notes | dvLT
(0014,4002) | Pulser Equipment Sequence | dvSQ
(0014,4004) | Pulser Type | dvCS
(0014,4006) | Pulser Notes | dvLT
(0014,4008) | Receiver Equipment Sequence | dvSQ
(0014,400A) | Amplifier Type | dvCS
(0014,400C) | Receiver Notes | dvLT
(0014,400E) | Pre-Amplifier Equipment Sequence | dvSQ
(0014,400F) | Pre-Amplifier Notes | dvLT
(0014,4010) | Transmit Transducer Sequence | dvSQ
(0014,4011) | Receive Transducer Sequence | dvSQ
(0014,4012) | Number of Elements | dvUS
(0014,4013) | Element Shape | dvCS
(0014,4014) | Element Dimension A | dvDS
(0014,4015) | Element Dimension B | dvDS
(0014,4016) | Element Pitch A | dvDS
(0014,4017) | Measured Beam Dimension A | dvDS
(0014,4018) | Measured Beam Dimension B | dvDS
(0014,4019) | Location of Measured Beam Diameter | dvDS
(0014,401A) | Nominal Frequency | dvDS
(0014,401B) | Measured Center Frequency | dvDS
(0014,401C) | Measured Bandwidth | dvDS
(0014,401D) | Element Pitch B | dvDS
(0014,4020) | Pulser Settings Sequence | dvSQ
(0014,4022) | Pulse Width | dvDS
(0014,4024) | Excitation Frequency | dvDS
(0014,4026) | Modulation Type | dvCS
(0014,4028) | Damping | dvDS
(0014,4030) | Receiver Settings Sequence | dvSQ
(0014,4031) | Acquired Soundpath Length | dvDS
(0014,4032) | Acquisition Compression Type | dvCS
(0014,4033) | Acquisition Sample Size | dvIS
(0014,4034) | Rectifier Smoothing | dvDS
(0014,4035) | DAC Sequence | dvSQ
(0014,4036) | DAC Type | dvCS
(0014,4038) | DAC Gain Points | dvDS
(0014,403A) | DAC Time Points | dvDS
(0014,403C) | DAC Amplitude | dvDS
(0014,4040) | Pre-Amplifier Settings Sequence | dvSQ
(0014,4050) | Transmit Transducer Settings Sequence | dvSQ
(0014,4051) | Receive Transducer Settings Sequence | dvSQ
(0014,4052) | Incident Angle | dvDS
(0014,4054) | Coupling Technique | dvST
(0014,4056) | Coupling Medium | dvST
(0014,4057) | Coupling Velocity | dvDS
(0014,4058) | Probe Center Location X | dvDS
(0014,4059) | Probe Center Location Z | dvDS
(0014,405A) | Sound Path Length | dvDS
(0014,405C) | Delay Law Identifier | dvST
(0014,4060) | Gate Settings Sequence | dvSQ
(0014,4062) | Gate Threshold | dvDS
(0014,4064) | Velocity of Sound | dvDS
(0014,4070) | Calibration Settings Sequence | dvSQ
(0014,4072) | Calibration Procedure | dvST
(0014,4074) | Procedure Version | dvSH
(0014,4076) | Procedure Creation Date | dvDA
(0014,4078) | Procedure Expiration Date | dvDA
(0014,407A) | Procedure Last Modified Date | dvDA
(0014,407C) | Calibration Time | dvTM
(0014,407E) | Calibration Date | dvDA
(0014,4080) | Probe Drive Equipment Sequence | dvSQ
(0014,4081) | Drive Type | dvCS
(0014,4082) | Probe Drive Notes | dvLT
(0014,4083) | Drive Probe Sequence | dvSQ
(0014,4084) | Probe Inductance | dvDS
(0014,4085) | Probe Resistance | dvDS
(0014,4086) | Receive Probe Sequence | dvSQ
(0014,4087) | Probe Drive Settings Sequence | dvSQ
(0014,4088) | Bridge Resistors | dvDS
(0014,4089) | Probe Orientation Angle | dvDS
(0014,408B) | User Selected Gain Y | dvDS
(0014,408C) | User Selected Phase | dvDS
(0014,408D) | User Selected Offset X | dvDS
(0014,408E) | User Selected Offset Y | dvDS
(0014,4091) | Channel Settings Sequence | dvSQ
(0014,4092) | Channel Threshold | dvDS
(0014,409A) | Scanner Settings Sequence | dvSQ
(0014,409B) | Scan Procedure | dvST
(0014,409C) | Translation Rate X | dvDS
(0014,409D) | Translation Rate Y | dvDS
(0014,409F) | Channel Overlap | dvDS
(0014,40A0) | Image Quality Indicator Type | dvLO
(0014,40A1) | Image Quality Indicator Material | dvLO
(0014,40A2) | Image Quality Indicator Size | dvLO
(0014,5002) | LINAC Energy | dvIS
(0014,5004) | LINAC Output | dvIS
(0015,0001) | Undocumented | dvDS
(0015,0002) | Undocumented | dvDS
(0015,0003) | Undocumented | dvDS
(0018,0000) | Acquisition Group Length | dvUL
(0018,0010) | Contrast/Bolus Agent | dvLO
(0018,0012) | Contrast/Bolus Agent Sequence | dvSQ
(0018,0013) | Contrast/Bolus T1 Relaxivity | dvFL
(0018,0014) | Contrast/Bolus Administration Route Sequence | dvSQ
(0018,0015) | Body Part Examined | dvCS
(0018,0020) | Scanning Sequence | dvCS
(0018,0021) | Sequence Variant | dvCS
(0018,0022) | Scan Options | dvCS
(0018,0023) | MR Acquisition Type | dvCS
(0018,0024) | Sequence Name | dvSH
(0018,0025) | Angio Flag | dvCS
(0018,0026) | Intervention Drug Information Sequence | dvSQ
(0018,0027) | Intervention Drug Stop Time | dvTM
(0018,0028) | Intervention Drug Dose | dvDS
(0018,0029) | Intervention Drug Code Sequence | dvSQ
(0018,002A) | Additional Drug Sequence | dvSQ
(0018,0030) | Radionuclide | dvLO
(0018,0031) | Radiopharmaceutical | dvLO
(0018,0032) | Energy Window Centerline | dvDS
(0018,0033) | Energy Window Total Width | dvDS
(0018,0034) | Intervention Drug Name | dvLO
(0018,0035) | Intervention Drug Start Time | dvTM
(0018,0036) | Intervention Sequence | dvSQ
(0018,0037) | Therapy Type | dvCS
(0018,0038) | Intervention Status | dvCS
(0018,0039) | Therapy Description | dvCS
(0018,003A) | Intervention Description | dvST
(0018,0040) | Cine Rate | dvIS
(0018,0042) | Initial Cine Run State | dvCS
(0018,0050) | Slice Thickness | dvDS
(0018,0060) | KVP | dvDS
(0018,0070) | Counts Accumulated | dvIS
(0018,0071) | Acquisition Termination Condition | dvCS
(0018,0072) | Effective Duration | dvDS
(0018,0073) | Acquisition Start Condition | dvCS
(0018,0074) | Acquisition Start Condition Data | dvIS
(0018,0075) | Acquisition Termination Condition Data | dvIS
(0018,0080) | Repetition Time | dvDS
(0018,0081) | Echo Time | dvDS
(0018,0082) | Inversion Time | dvDS
(0018,0083) | Number of Averages | dvDS
(0018,0084) | Imaging Frequency | dvDS
(0018,0085) | Imaged Nucleus | dvSH
(0018,0086) | Echo Number(s) | dvIS
(0018,0087) | Magnetic Field Strength | dvDS
(0018,0088) | Spacing Between Slices | dvDS
(0018,0089) | Number of Phase Encoding Steps | dvIS
(0018,0090) | Data Collection Diameter | dvDS
(0018,0091) | Echo Train Length | dvIS
(0018,0093) | Percent Sampling | dvDS
(0018,0094) | Percent Phase Field of View | dvDS
(0018,0095) | Pixel Bandwidth | dvDS
(0018,1000) | Device Serial Number | dvLO
(0018,1002) | Device UID | dvUI
(0018,1003) | Device ID | dvLO
(0018,1004) | Plate ID | dvLO
(0018,1005) | Generator ID | dvLO
(0018,1006) | Grid ID | dvLO
(0018,1007) | Cassette ID | dvLO
(0018,1008) | Gantry ID | dvLO
(0018,1010) | Secondary Capture Device ID | dvLO
(0018,1011) | Hardcopy Creation Device ID | dvLO
(0018,1012) | Date of Secondary Capture | dvDA
(0018,1014) | Time of Secondary Capture | dvTM
(0018,1016) | Secondary Capture Device Manufacturer | dvLO
(0018,1017) | Hardcopy Device Manufacturer | dvLO
(0018,1018) | Secondary Capture Device Manufacturer's Model Name | dvLO
(0018,1019) | Secondary Capture Device Software Versions | dvLO
(0018,101A) | Hardcopy Device Software Version | dvLO
(0018,101B) | Hardcopy Device Manufacturer's Model Name | dvLO
(0018,1020) | Software Version(s) | dvLO
(0018,1022) | Video Image Format Acquired | dvSH
(0018,1023) | Digital Image Format Acquired | dvLO
(0018,1030) | Protocol Name | dvLO
(0018,1040) | Contrast/Bolus Route | dvLO
(0018,1041) | Contrast/Bolus Volume | dvDS
(0018,1042) | Contrast/Bolus Start Time | dvTM
(0018,1043) | Contrast/Bolus Stop Time | dvTM
(0018,1044) | Contrast/Bolus Total Dose | dvDS
(0018,1045) | Syringe Counts | dvIS
(0018,1046) | Contrast Flow Rate | dvDS
(0018,1047) | Contrast Flow Duration | dvDS
(0018,1048) | Contrast/Bolus Ingredient | dvCS
(0018,1049) | Contrast/Bolus Ingredient Concentration | dvDS
(0018,1050) | Spatial Resolution | dvDS
(0018,1060) | Trigger Time | dvDS
(0018,1061) | Trigger Source or Type | dvLO
(0018,1062) | Nominal Interval | dvIS
(0018,1063) | Frame Time | dvDS
(0018,1064) | Cardiac Framing Type | dvLO
(0018,1065) | Frame Time Vector | dvDS
(0018,1066) | Frame Delay | dvDS
(0018,1067) | Image Trigger Delay | dvDS
(0018,1068) | Multiplex Group Time Offset | dvDS
(0018,1069) | Trigger Time Offset | dvDS
(0018,106A) | Synchronization Trigger | dvCS
(0018,106B) | Undocumented | dvUI
(0018,106C) | Synchronization Channel | dvUS
(0018,106E) | Trigger Sample Position | dvUL
(0018,1070) | Radiopharmaceutical Route | dvLO
(0018,1071) | Radiopharmaceutical Volume | dvDS
(0018,1072) | Radiopharmaceutical Start Time | dvTM
(0018,1073) | Radiopharmaceutical Stop Time | dvTM
(0018,1074) | Radionuclide Total Dose | dvDS
(0018,1075) | Radionuclide Half Life | dvDS
(0018,1076) | Radionuclide Positron Fraction | dvDS
(0018,1077) | Radiopharmaceutical Specific Activity | dvDS
(0018,1078) | Radiopharmaceutical Start Date/Time | dvDT
(0018,1079) | Radiopharmaceutical Stop Date/Time | dvDT
(0018,1080) | Beat Rejection Flag | dvCS
(0018,1081) | Low R-R Value | dvIS
(0018,1082) | High R-R Value | dvIS
(0018,1083) | Intervals Acquired | dvIS
(0018,1084) | Intervals Rejected | dvIS
(0018,1085) | PVC Rejection | dvLO
(0018,1086) | Skip Beats | dvIS
(0018,1088) | Heart Rate | dvIS
(0018,1090) | Cardiac Number of Images | dvIS
(0018,1094) | Trigger Window | dvIS
(0018,1100) | Reconstruction Diameter | dvDS
(0018,1110) | Distance Source to Detector | dvDS
(0018,1111) | Distance Source to Patient | dvDS
(0018,1114) | Estimated Radiographic Magnification Factor | dvDS
(0018,1120) | Gantry/Detector Tilt | dvDS
(0018,1121) | Gantry/Detector Slew | dvDS
(0018,1130) | Table Height | dvDS
(0018,1131) | Table Traverse | dvDS
(0018,1134) | Table Motion | dvCS
(0018,1135) | Table Vertical Increment | dvDS
(0018,1136) | Table Lateral Increment | dvDS
(0018,1137) | Table Longitudinal Increment | dvDS
(0018,1138) | Table Angle | dvDS
(0018,113A) | Table Type | dvCS
(0018,1140) | Rotation Direction | dvCS
(0018,1141) | Angular Position | dvDS
(0018,1142) | Radial Position | dvDS
(0018,1143) | Scan Arc | dvDS
(0018,1144) | Angular Step | dvDS
(0018,1145) | Center of Rotation Offset | dvDS
(0018,1146) | Rotation Offset | dvDS
(0018,1147) | Field of View Shape | dvCS
(0018,1149) | Field of View Dimension(s) | dvIS
(0018,1150) | Exposure Time | dvIS
(0018,1151) | X-Ray Tube Current | dvIS
(0018,1152) | Exposure | dvIS
(0018,1153) | Exposure in µAs | dvIS
(0018,1154) | Average Pulse Width | dvDS
(0018,1155) | Radiation Setting | dvCS
(0018,1156) | Rectification Type | dvCS
(0018,115A) | Radiation Mode | dvCS
(0018,115E) | Image and Fluoroscopy Area Dose Product | dvDS
(0018,1160) | Filter Type | dvSH
(0018,1161) | Type of Filters | dvLO
(0018,1162) | Intensifier Size | dvDS
(0018,1164) | Imager Pixel Spacing | dvDS
(0018,1166) | Grid | dvCS
(0018,1170) | Generator Power | dvIS
(0018,1180) | Collimator/grid Name | dvSH
(0018,1181) | Collimator Type | dvCS
(0018,1182) | Focal Distance | dvIS
(0018,1183) | X Focus Center | dvDS
(0018,1184) | Y Focus Center | dvDS
(0018,1190) | Focal Spot(s) | dvDS
(0018,1191) | Anode Target Material | dvCS
(0018,11A0) | Body Part Thickness | dvDS
(0018,11A2) | Compression Force | dvDS
(0018,11A4) | Paddle Description | dvLO
(0018,1200) | Date of Last Calibration | dvDA
(0018,1201) | Time of Last Calibration | dvTM
(0018,1202) | Date/Time of Last Calibration | dvDT
(0018,1210) | Convolution Kernel | dvSH
(0018,1240) | Upper/Lower Pixel Values | dvIS
(0018,1242) | Actual Frame Duration | dvIS
(0018,1243) | Count Rate | dvIS
(0018,1244) | Preferred Playback Sequencing | dvUS
(0018,1250) | Receive Coil Name | dvSH
(0018,1251) | Transmit Coil Name | dvSH
(0018,1260) | Plate Type | dvSH
(0018,1261) | Phosphor Type | dvLO
(0018,1300) | Scan Velocity | dvDS
(0018,1301) | Whole Body Technique | dvCS
(0018,1302) | Scan Length | dvIS
(0018,1310) | Acquisition Matrix | dvUS
(0018,1312) | In-plane Phase Encoding Direction | dvCS
(0018,1314) | Flip Angle | dvDS
(0018,1315) | Variable Flip Angle Flag | dvCS
(0018,1316) | SAR | dvDS
(0018,1318) | dB/dt | dvDS
(0018,1400) | Acquisition Device Processing Description | dvLO
(0018,1401) | Acquisition Device Processing Code | dvLO
(0018,1402) | Cassette Orientation | dvCS
(0018,1403) | Cassette Size | dvCS
(0018,1404) | Exposures on Plate | dvUS
(0018,1405) | Relative X-Ray Exposure | dvIS
(0018,1411) | Exposure Index | dvDS
(0018,1412) | Target Exposure Index | dvDS
(0018,1413) | Deviation Index | dvDS
(0018,1450) | Column Angulation | dvDS
(0018,1460) | Tomo Layer Height | dvDS
(0018,1470) | Tomo Angle | dvDS
(0018,1480) | Tomo Time | dvDS
(0018,1490) | Tomo Type | dvCS
(0018,1491) | Tomo Class | dvCS
(0018,1495) | Number of Tomosynthesis Source Images | dvIS
(0018,1500) | Positioner Motion | dvCS
(0018,1508) | Positioner Type | dvCS
(0018,1510) | Positioner Primary Angle | dvDS
(0018,1511) | Positioner Secondary Angle | dvDS
(0018,1520) | Positioner Primary Angle Increment | dvDS
(0018,1521) | Positioner Secondary Angle Increment | dvDS
(0018,1530) | Detector Primary Angle | dvDS
(0018,1531) | Detector Secondary Angle | dvDS
(0018,1600) | Shutter Shape | dvCS
(0018,1602) | Shutter Left Vertical Edge | dvIS
(0018,1604) | Shutter Right Vertical Edge | dvIS
(0018,1606) | Shutter Upper Horizontal Edge | dvIS
(0018,1608) | Shutter Lower Horizontal Edge | dvIS
(0018,1610) | Center of Circular Shutter | dvIS
(0018,1612) | Radius of Circular Shutter | dvIS
(0018,1620) | Vertices of the Polygonal Shutter | dvIS
(0018,1622) | Shutter Presentation Value | dvUS
(0018,1623) | Shutter Overlay Group | dvUS
(0018,1624) | Shutter Presentation Color CIELab Value | dvUS
(0018,1700) | Collimator Shape | dvCS
(0018,1702) | Collimator Left Vertical Edge | dvIS
(0018,1704) | Collimator Right Vertical Edge | dvIS
(0018,1706) | Collimator Upper Horizontal Edge | dvIS
(0018,1708) | Collimator Lower Horizontal Edge | dvIS
(0018,1710) | Center of Circular Collimator | dvIS
(0018,1712) | Radius of Circular Collimator | dvIS
(0018,1720) | Vertices of the Polygonal Collimator | dvIS
(0018,1800) | Acquisition Time Synchronized | dvCS
(0018,1801) | Time Source | dvSH
(0018,1802) | Time Distribution Protocol | dvCS
(0018,1803) | NTP Source Address | dvLO
(0018,2001) | Page Number Vector | dvIS
(0018,2002) | Frame Label Vector | dvSH
(0018,2003) | Frame Primary Angle Vector | dvDS
(0018,2004) | Frame Secondary Angle Vector | dvDS
(0018,2005) | Slice Location Vector | dvDS
(0018,2006) | Display Window Label Vector | dvSH
(0018,2010) | Nominal Scanned Pixel Spacing | dvDS
(0018,2020) | Digitizing Device Transport Direction | dvCS
(0018,2030) | Rotation of Scanned Film | dvDS
(0018,2041) | Biopsy Target Sequence | dvSQ
(0018,2042) | Target UID | dvUI
(0018,2043) | Localizing Cursor Position | dvFL
(0018,2044) | Calculated Target Position | dvFL
(0018,2045) | Target Label | dvSH
(0018,2046) | Displayed Z Value | dvFL
(0018,3100) | IVUS Acquisition | dvCS
(0018,3101) | IVUS Pullback Rate | dvDS
(0018,3102) | IVUS Gated Rate | dvDS
(0018,3103) | IVUS Pullback Start Frame Number | dvIS
(0018,3104) | IVUS Pullback Stop Frame Number | dvIS
(0018,3105) | Lesion Number | dvIS
(0018,4000) | Acquisition Comments | dvLT
(0018,5000) | Output Power | dvSH
(0018,5010) | Transducer Data | dvLO
(0018,5012) | Focus Depth | dvDS
(0018,5020) | Processing Function | dvLO
(0018,5021) | Postprocessing Function | dvLO
(0018,5022) | Mechanical Index | dvDS
(0018,5024) | Bone Thermal Index | dvDS
(0018,5026) | Cranial Thermal Index | dvDS
(0018,5027) | Soft Tissue Thermal Index | dvDS
(0018,5028) | Soft Tissue-focus Thermal Index | dvDS
(0018,5029) | Soft Tissue-surface Thermal Index | dvDS
(0018,5030) | Dynamic Range | dvDS
(0018,5040) | Total Gain | dvDS
(0018,5050) | Depth of Scan Field | dvIS
(0018,5100) | Patient Position | dvCS
(0018,5101) | View Position | dvCS
(0018,5104) | Projection Eponymous Name Code Sequence | dvSQ
(0018,5210) | Image Transformation Matrix | dvDS
(0018,5212) | Image Translation Vector | dvDS
(0018,6000) | Sensitivity | dvDS
(0018,6011) | Sequence of Ultrasound Regions | dvSQ
(0018,6012) | Region Spatial Format | dvUS
(0018,6014) | Region Data Type | dvUS
(0018,6016) | Region Flags | dvUL
(0018,6018) | Region Location Min X0 | dvUL
(0018,601A) | Region Location Min Y0 | dvUL
(0018,601C) | Region Location Max X1 | dvUL
(0018,601E) | Region Location Max Y1 | dvUL
(0018,6020) | Reference Pixel X0 | dvSL
(0018,6022) | Reference Pixel Y0 | dvSL
(0018,6024) | Physical Units X Direction | dvUS
(0018,6026) | Physical Units Y Direction | dvUS
(0018,6028) | Reference Pixel Physical Value X | dvFD
(0018,602A) | Reference Pixel Physical Value Y | dvFD
(0018,602C) | Physical Delta X | dvFD
(0018,602E) | Physical Delta Y | dvFD
(0018,6030) | Transducer Frequency | dvUL
(0018,6031) | Transducer Type | dvCS
(0018,6032) | Pulse Repetition Frequency | dvUL
(0018,6034) | Doppler Correction Angle | dvFD
(0018,6036) | Steering Angle | dvFD
(0018,6038) | Doppler Sample Volume X Position (Retired) | dvUL
(0018,6039) | Doppler Sample Volume X Position | dvSL
(0018,603A) | Doppler Sample Volume Y Position (Retired) | dvUL
(0018,603B) | Doppler Sample Volume Y Position | dvSL
(0018,603C) | TM-Line Position X0 (Retired) | dvUL
(0018,603D) | TM-Line Position X0 | dvSL
(0018,603E) | TM-Line Position Y0 (Retired) | dvUL
(0018,603F) | TM-Line Position Y0 | dvSL
(0018,6040) | TM-Line Position X1 (Retired) | dvUL
(0018,6041) | TM-Line Position X1 | dvSL
(0018,6042) | TM-Line Position Y1 (Retired) | dvUL
(0018,6043) | TM-Line Position Y1 | dvSL
(0018,6044) | Pixel Component Organization | dvUS
(0018,6046) | Pixel Component Mask | dvUL
(0018,6048) | Pixel Component Range Start | dvUL
(0018,604A) | Pixel Component Range Stop | dvUL
(0018,604C) | Pixel Component Physical Units | dvUS
(0018,604E) | Pixel Component Data Type | dvUS
(0018,6050) | Number of Table Break Points | dvUL
(0018,6052) | Table of X Break Points | dvUL
(0018,6054) | Table of Y Break Points | dvFD
(0018,6056) | Number of Table Entries | dvUL
(0018,6058) | Table of Pixel Values | dvUL
(0018,605A) | Table of Parameter Values | dvFL
(0018,6060) | R Wave Time Vector | dvFL
(0018,7000) | Detector Conditions Nominal Flag | dvCS
(0018,7001) | Detector Temperature | dvDS
(0018,7004) | Detector Type | dvCS
(0018,7005) | Detector Configuration | dvCS
(0018,7006) | Detector Description | dvLT
(0018,7008) | Detector Mode | dvLT
(0018,700A) | Detector ID | dvSH
(0018,700C) | Date of Last Detector Calibration | dvDA
(0018,700E) | Time of Last Detector Calibration | dvTM
(0018,7010) | Exposures on Detector Since Last Calibration | dvIS
(0018,7011) | Exposures on Detector Since Manufactured | dvIS
(0018,7012) | Detector Time Since Last Exposure | dvDS
(0018,7014) | Detector Active Time | dvDS
(0018,7016) | Detector Activation Offset From Exposure | dvDS
(0018,701A) | Detector Binning | dvDS
(0018,7020) | Detector Element Physical Size | dvDS
(0018,7022) | Detector Element Spacing | dvDS
(0018,7024) | Detector Active Shape | dvCS
(0018,7026) | Detector Active Dimension(s) | dvDS
(0018,7028) | Detector Active Origin | dvDS
(0018,702A) | Detector Manufacturer Name | dvLO
(0018,702B) | Detector Manufacturer's Model Name | dvLO
(0018,7030) | Field of View Origin | dvDS
(0018,7032) | Field of View Rotation | dvDS
(0018,7034) | Field of View Horizontal Flip | dvCS
(0018,7036) | Pixel Data Area Origin Relative to FOV | dvFL
(0018,7038) | Pixel Data Area Rotation Angle Relative to FOV | dvFL
(0018,7040) | Grid Absorbing Material | dvLT
(0018,7041) | Grid Spacing Material | dvLT
(0018,7042) | Grid Thickness | dvDS
(0018,7044) | Grid Pitch | dvDS
(0018,7046) | Grid Aspect Ratio | dvIS
(0018,7048) | Grid Period | dvDS
(0018,704C) | Grid Focal Distance | dvDS
(0018,7050) | Filter Material | dvCS
(0018,7052) | Filter Thickness Minimum | dvDS
(0018,7054) | Filter Thickness Maximum | dvDS
(0018,7056) | Filter Beam Path Length Minimum | dvFL
(0018,7058) | Filter Beam Path Length Maximum | dvFL
(0018,7060) | Exposure Control Mode | dvCS
(0018,7062) | Exposure Control Mode Description | dvLT
(0018,7064) | Exposure Status | dvCS
(0018,7065) | Phototimer Setting | dvDS
(0018,8150) | Exposure Time in µS | dvDS
(0018,8151) | X-Ray Tube Current in µA | dvDS
(0018,9004) | Content Qualification | dvCS
(0018,9005) | Pulse Sequence Name | dvSH
(0018,9006) | MR Imaging Modifier Sequence | dvSQ
(0018,9008) | Echo Pulse Sequence | dvCS
(0018,9009) | Inversion Recovery | dvCS
(0018,9010) | Flow Compensation | dvCS
(0018,9011) | Multiple Spin Echo | dvCS
(0018,9012) | Multi-planar Excitation | dvCS
(0018,9014) | Phase Contrast | dvCS
(0018,9015) | Time of Flight Contrast | dvCS
(0018,9016) | Spoiling | dvCS
(0018,9017) | Steady State Pulse Sequence | dvCS
(0018,9018) | Echo Planar Pulse Sequence | dvCS
(0018,9019) | Tag Angle First Axis | dvFD
(0018,9020) | Magnetization Transfer | dvCS
(0018,9021) | T2 Preparation | dvCS
(0018,9022) | Blood Signal Nulling | dvCS
(0018,9024) | Saturation Recovery | dvCS
(0018,9025) | Spectrally Selected Suppression | dvCS
(0018,9026) | Spectrally Selected Excitation | dvCS
(0018,9027) | Spatial Pre-saturation | dvCS
(0018,9028) | Tagging | dvCS
(0018,9029) | Oversampling Phase | dvCS
(0018,9030) | Tag Spacing First Dimension | dvFD
(0018,9032) | Geometry of k-Space Traversal | dvCS
(0018,9033) | Segmented k-Space Traversal | dvCS
(0018,9034) | Rectilinear Phase Encode Reordering | dvCS
(0018,9035) | Tag Thickness | dvFD
(0018,9036) | Partial Fourier Direction | dvCS
(0018,9037) | Cardiac Synchronization Technique | dvCS
(0018,9041) | Receive Coil Manufacturer Name | dvLO
(0018,9042) | MR Receive Coil Sequence | dvSQ
(0018,9043) | Receive Coil Type | dvCS
(0018,9044) | Quadrature Receive Coil | dvCS
(0018,9045) | Multi-Coil Definition Sequence | dvSQ
(0018,9046) | Multi-Coil Configuration | dvLO
(0018,9047) | Multi-Coil Element Name | dvSH
(0018,9048) | Multi-Coil Element Used | dvCS
(0018,9049) | MR Transmit Coil Sequence | dvSQ
(0018,9050) | Transmit Coil Manufacturer Name | dvLO
(0018,9051) | Transmit Coil Type | dvCS
(0018,9052) | Spectral Width | dvFD
(0018,9053) | Chemical Shift Reference | dvFD
(0018,9054) | Volume Localization Technique | dvCS
(0018,9058) | MR Acquisition Frequency Encoding Steps | dvUS
(0018,9059) | De-coupling | dvCS
(0018,9060) | De-coupled Nucleus | dvCS
(0018,9061) | De-coupling Frequency | dvFD
(0018,9062) | De-coupling Method | dvCS
(0018,9063) | De-coupling Chemical Shift Reference | dvFD
(0018,9064) | k-space Filtering | dvCS
(0018,9065) | Time Domain Filtering | dvCS
(0018,9066) | Number of Zero Fills | dvUS
(0018,9067) | Baseline Correction | dvCS
(0018,9069) | Parallel Reduction Factor In-plane | dvFD
(0018,9070) | Cardiac R-R Interval Specified | dvFD
(0018,9073) | Acquisition Duration | dvFD
(0018,9074) | Frame Acquisition Date/Time | dvDT
(0018,9075) | Diffusion Directionality | dvCS
(0018,9076) | Diffusion Gradient Direction Sequence | dvSQ
(0018,9077) | Parallel Acquisition | dvCS
(0018,9078) | Parallel Acquisition Technique | dvCS
(0018,9079) | Inversion Times | dvFD
(0018,9080) | Metabolite Map Description | dvST
(0018,9081) | Partial Fourier | dvCS
(0018,9082) | Effective Echo Time | dvFD
(0018,9083) | Metabolite Map Code Sequence | dvSQ
(0018,9084) | Chemical Shift Sequence | dvSQ
(0018,9085) | Cardiac Signal Source | dvCS
(0018,9087) | Diffusion b-value | dvFD
(0018,9089) | Diffusion Gradient Orientation | dvFD
(0018,9090) | Velocity Encoding Direction | dvFD
(0018,9091) | Velocity Encoding Minimum Value | dvFD
(0018,9092) | Velocity Encoding Acquisition Sequence | dvSQ
(0018,9093) | Number of k-Space Trajectories | dvUS
(0018,9094) | Coverage of k-Space | dvCS
(0018,9095) | Spectroscopy Acquisition Phase Rows | dvUL
(0018,9096) | Parallel Reduction Factor In-plane (Retired) | dvFD
(0018,9098) | Transmitter Frequency | dvFD
(0018,9100) | Resonant Nucleus | dvCS
(0018,9101) | Frequency Correction | dvCS
(0018,9103) | MR Spectroscopy FOV/Geometry Sequence | dvSQ
(0018,9104) | Slab Thickness | dvFD
(0018,9105) | Slab Orientation | dvFD
(0018,9106) | Mid Slab Position | dvFD
(0018,9107) | MR Spatial Saturation Sequence | dvSQ
(0018,9112) | MR Timing and Related Parameters Sequence | dvSQ
(0018,9114) | MR Echo Sequence | dvSQ
(0018,9115) | MR Modifier Sequence | dvSQ
(0018,9117) | MR Diffusion Sequence | dvSQ
(0018,9118) | Cardiac Synchronization Sequence | dvSQ
(0018,9119) | MR Averages Sequence | dvSQ
(0018,9125) | MR FOV/Geometry Sequence | dvSQ
(0018,9126) | Volume Localization Sequence | dvSQ
(0018,9127) | Spectroscopy Acquisition Data Columns | dvUL
(0018,9147) | Diffusion Anisotropy Type | dvCS
(0018,9151) | Frame Reference Date/Time | dvDT
(0018,9152) | MR Metabolite Map Sequence | dvSQ
(0018,9155) | Parallel Reduction Factor out-of-plane | dvFD
(0018,9159) | Spectroscopy Acquisition Out-of-plane Phase Steps | dvUL
(0018,9166) | Bulk Motion Status | dvCS
(0018,9168) | Parallel Reduction Factor Second In-plane | dvFD
(0018,9169) | Cardiac Beat Rejection Technique | dvCS
(0018,9170) | Respiratory Motion Compensation Technique | dvCS
(0018,9171) | Respiratory Signal Source | dvCS
(0018,9172) | Bulk Motion Compensation Technique | dvCS
(0018,9173) | Bulk Motion Signal Source | dvCS
(0018,9174) | Applicable Safety Standard Agency | dvCS
(0018,9175) | Applicable Safety Standard Description | dvLO
(0018,9176) | Operating Mode Sequence | dvSQ
(0018,9177) | Operating Mode Type | dvCS
(0018,9178) | Operating Mode | dvCS
(0018,9179) | Specific Absorption Rate Definition | dvCS
(0018,9180) | Gradient Output Type | dvCS
(0018,9181) | Specific Absorption Rate Value | dvFD
(0018,9182) | Gradient Output | dvFD
(0018,9183) | Flow Compensation Direction | dvCS
(0018,9184) | Tagging Delay | dvFD
(0018,9185) | Respiratory Motion Compensation Technique Description | dvST
(0018,9186) | Respiratory Signal Source ID | dvSH
(0018,9195) | Chemical Shift Minimum Integration Limit in Hz | dvFD
(0018,9196) | Chemical Shift Maximum Integration Limit in Hz | dvFD
(0018,9197) | MR Velocity Encoding Sequence | dvSQ
(0018,9198) | First Order Phase Correction | dvCS
(0018,9199) | Water Referenced Phase Correction | dvCS
(0018,9200) | MR Spectroscopy Acquisition Type | dvCS
(0018,9214) | Respiratory Cycle Position | dvCS
(0018,9217) | Velocity Encoding Maximum Value | dvFD
(0018,9218) | Tag Spacing Second Dimension | dvFD
(0018,9219) | Tag Angle Second Axis | dvSS
(0018,9220) | Frame Acquisition Duration | dvFD
(0018,9226) | MR Image Frame Type Sequence | dvSQ
(0018,9227) | MR Spectroscopy Frame Type Sequence | dvSQ
(0018,9231) | MR Acquisition Phase Encoding Steps in-plane | dvUS
(0018,9232) | MR Acquisition Phase Encoding Steps out-of-plane | dvUS
(0018,9234) | Spectroscopy Acquisition Phase Columns | dvUL
(0018,9236) | Cardiac Cycle Position | dvCS
(0018,9239) | Specific Absorption Rate Sequence | dvSQ
(0018,9240) | RF Echo Train Length | dvUS
(0018,9241) | Gradient Echo Train Length | dvUS
(0018,9250) | Arterial Spin Labeling Contrast | dvCS
(0018,9251) | MR Arterial Spin Labeling Sequence | dvSQ
(0018,9252) | ASL Technique Description | dvLO
(0018,9253) | ASL Slab Number | dvUS
(0018,9254) | ASL Slab Thickness | dvFD
(0018,9255) | ASL Slab Orientation | dvFD
(0018,9256) | ASL Mid Slab Position | dvFD
(0018,9257) | ASL Context | dvCS
(0018,9258) | ASL Pulse Train Duration | dvUL
(0018,9259) | ASL Crusher Flag | dvCS
(0018,925A) | ASL Crusher Flow Limit | dvFD
(0018,925B) | ASL Crusher Description | dvLO
(0018,925C) | ASL Bolus Cut-off Flag | dvCS
(0018,925D) | ASL Bolus Cut-off Timing Sequence | dvSQ
(0018,925E) | ASL Bolus Cut-off Technique | dvLO
(0018,925F) | ASL Bolus Cut-off Delay Time | dvUL
(0018,9260) | ASL Slab Sequence | dvSQ
(0018,9295) | Chemical Shift Minimum Integration Limit in ppm | dvFD
(0018,9296) | Chemical Shift Maximum Integration Limit in ppm | dvFD
(0018,9297) | Water Reference Acquisition | dvCS
(0018,9298) | Echo Peak Position | dvIS
(0018,9301) | CT Acquisition Type Sequence | dvSQ
(0018,9302) | Acquisition Type | dvCS
(0018,9303) | Tube Angle | dvFD
(0018,9304) | CT Acquisition Details Sequence | dvSQ
(0018,9305) | Revolution Time | dvFD
(0018,9306) | Single Collimation Width | dvFD
(0018,9307) | Total Collimation Width | dvFD
(0018,9308) | CT Table Dynamics Sequence | dvSQ
(0018,9309) | Table Speed | dvFD
(0018,9310) | Table Feed per Rotation | dvFD
(0018,9311) | Spiral Pitch Factor | dvFD
(0018,9312) | CT Geometry Sequence | dvSQ
(0018,9313) | Data Collection Center (Patient) | dvFD
(0018,9314) | CT Reconstruction Sequence | dvSQ
(0018,9315) | Reconstruction Algorithm | dvCS
(0018,9316) | Convolution Kernel Group | dvCS
(0018,9317) | Reconstruction Field of View | dvFD
(0018,9318) | Reconstruction Target Center (Patient) | dvFD
(0018,9319) | Reconstruction Angle | dvFD
(0018,9320) | Image Filter | dvSH
(0018,9321) | CT Exposure Sequence | dvSQ
(0018,9322) | Reconstruction Pixel Spacing | dvFD
(0018,9323) | Exposure Modulation Type | dvCS
(0018,9324) | Estimated Dose Saving | dvFD
(0018,9325) | CT X-Ray Details Sequence | dvSQ
(0018,9326) | CT Position Sequence | dvSQ
(0018,9327) | Table Position | dvFD
(0018,9328) | Exposure Time in ms | dvFD
(0018,9329) | CT Image Frame Type Sequence | dvSQ
(0018,9330) | X-Ray Tube Current in mA | dvFD
(0018,9332) | Exposure in mAs | dvFD
(0018,9333) | Constant Volume Flag | dvCS
(0018,9334) | Fluoroscopy Flag | dvCS
(0018,9335) | Distance Source to Data Collection Center | dvFD
(0018,9337) | Contrast/Bolus Agent Number | dvUS
(0018,9338) | Contrast/Bolus Ingredient Code Sequence | dvSQ
(0018,9340) | Contrast Administration Profile Sequence | dvSQ
(0018,9341) | Contrast/Bolus Usage Sequence | dvSQ
(0018,9342) | Contrast/Bolus Agent Administered | dvCS
(0018,9343) | Contrast/Bolus Agent Detected | dvCS
(0018,9344) | Contrast/Bolus Agent Phase | dvCS
(0018,9345) | CTDIvol | dvFD
(0018,9346) | CTDI Phantom Type Code Sequence | dvSQ
(0018,9351) | Calcium Scoring Mass Factor Patient | dvFL
(0018,9352) | Calcium Scoring Mass Factor Device | dvFL
(0018,9353) | Energy Weighting Factor | dvFL
(0018,9360) | CT Additional X-Ray Source Sequence | dvSQ
(0018,9401) | Projection Pixel Calibration Sequence | dvSQ
(0018,9402) | Distance Source to Isocenter | dvFL
(0018,9403) | Distance Object to Table Top | dvFL
(0018,9404) | Object Pixel Spacing in Center of Beam | dvFL
(0018,9405) | Positioner Position Sequence | dvSQ
(0018,9406) | Table Position Sequence | dvSQ
(0018,9407) | Collimator Shape Sequence | dvSQ
(0018,9410) | Planes in Acquisition | dvCS
(0018,9412) | XA/XRF Frame Characteristics Sequence | dvSQ
(0018,9417) | Frame Acquisition Sequence | dvSQ
(0018,9420) | X-Ray Receptor Type | dvCS
(0018,9423) | Acquisition Protocol Name | dvLO
(0018,9424) | Acquisition Protocol Description | dvLT
(0018,9425) | Contrast/Bolus Ingredient Opaque | dvCS
(0018,9426) | Distance Receptor Plane to Detector Housing | dvFL
(0018,9427) | Intensifier Active Shape | dvCS
(0018,9428) | Intensifier Active Dimension(s) | dvFL
(0018,9429) | Physical Detector Size | dvFL
(0018,9430) | Position of Isocenter Projection | dvFL
(0018,9432) | Field of View Sequence | dvSQ
(0018,9433) | Field of View Description | dvLO
(0018,9434) | Exposure Control Sensing Regions Sequence | dvSQ
(0018,9435) | Exposure Control Sensing Region Shape | dvCS
(0018,9436) | Exposure Control Sensing Region Left Vertical Edge | dvSS
(0018,9437) | Exposure Control Sensing Region Right Vertical Edge | dvSS
(0018,9438) | Exposure Control Sensing Region Upper Horizontal Edge | dvSS
(0018,9439) | Exposure Control Sensing Region Lower Horizontal Edge | dvSS
(0018,9440) | Center of Circular Exposure Control Sensing Region | dvSS
(0018,9441) | Radius of Circular Exposure Control Sensing Region | dvUS
(0018,9442) | Vertices of the Polygonal Exposure Control Sensing Region | dvSS
(0018,9445) | Undocumented | dvUnknown
(0018,9447) | Column Angulation (Patient) | dvFL
(0018,9449) | Beam Angle | dvFL
(0018,9451) | Frame Detector Parameters Sequence | dvSQ
(0018,9452) | Calculated Anatomy Thickness | dvFL
(0018,9455) | Calibration Sequence | dvSQ
(0018,9456) | Object Thickness Sequence | dvSQ
(0018,9457) | Plane Identification | dvCS
(0018,9461) | Field of View Dimension(s) in Float | dvFL
(0018,9462) | Isocenter Reference System Sequence | dvSQ
(0018,9463) | Positioner Isocenter Primary Angle | dvFL
(0018,9464) | Positioner Isocenter Secondary Angle | dvFL
(0018,9465) | Positioner Isocenter Detector Rotation Angle | dvFL
(0018,9466) | Table X Position to Isocenter | dvFL
(0018,9467) | Table Y Position to Isocenter | dvFL
(0018,9468) | Table Z Position to Isocenter | dvFL
(0018,9469) | Table Horizontal Rotation Angle | dvFL
(0018,9470) | Table Head Tilt Angle | dvFL
(0018,9471) | Table Cradle Tilt Angle | dvFL
(0018,9472) | Frame Display Shutter Sequence | dvSQ
(0018,9473) | Acquired Image Area Dose Product | dvFL
(0018,9474) | C-arm Positioner Tabletop Relationship | dvCS
(0018,9476) | X-Ray Geometry Sequence | dvSQ
(0018,9477) | Irradiation Event Identification Sequence | dvSQ
(0018,9504) | X-Ray 3D Frame Type Sequence | dvSQ
(0018,9506) | Contributing Sources Sequence | dvSQ
(0018,9507) | X-Ray 3D Acquisition Sequence | dvSQ
(0018,9508) | Primary Positioner Scan Arc | dvFL
(0018,9509) | Secondary Positioner Scan Arc | dvFL
(0018,9510) | Primary Positioner Scan Start Angle | dvFL
(0018,9511) | Secondary Positioner Scan Start Angle | dvFL
(0018,9514) | Primary Positioner Increment | dvFL
(0018,9515) | Secondary Positioner Increment | dvFL
(0018,9516) | Start Acquisition Date/Time | dvDT
(0018,9517) | End Acquisition Date/Time | dvDT
(0018,9518) | Primary Positioner Increment Sign | dvSS
(0018,9519) | Secondary Positioner Increment Sign | dvSS
(0018,9524) | Application Name | dvLO
(0018,9525) | Application Version | dvLO
(0018,9526) | Application Manufacturer | dvLO
(0018,9527) | Algorithm Type | dvCS
(0018,9528) | Algorithm Description | dvLO
(0018,9530) | X-Ray 3D Reconstruction Sequence | dvSQ
(0018,9531) | Reconstruction Description | dvLO
(0018,9538) | Per Projection Acquisition Sequence | dvSQ
(0018,9541) | Detector Position Sequence | dvSQ
(0018,9542) | X-Ray Acquisition Dose Sequence | dvSQ
(0018,9543) | X-Ray Source Isocenter Primary Angle | dvFD
(0018,9544) | X-Ray Source Isocenter Secondary Angle | dvFD
(0018,9545) | Breast Support Isocenter Primary Angle | dvFD
(0018,9546) | Breast Support Isocenter Secondary Angle | dvFD
(0018,9547) | Breast Support X Position to Isocenter | dvFD
(0018,9548) | Breast Support Y Position to Isocenter | dvFD
(0018,9549) | Breast Support Z Position to Isocenter | dvFD
(0018,9550) | Detector Isocenter Primary Angle | dvFD
(0018,9551) | Detector Isocenter Secondary Angle | dvFD
(0018,9552) | Detector X Position to Isocenter | dvFD
(0018,9553) | Detector Y Position to Isocenter | dvFD
(0018,9554) | Detector Z Position to Isocenter | dvFD
(0018,9555) | X-Ray Grid Sequence | dvSQ
(0018,9556) | X-Ray Filter Sequence | dvSQ
(0018,9557) | Detector Active Area TLHC Position | dvFD
(0018,9558) | Detector Active Area Orientation | dvFD
(0018,9559) | Positioner Primary Angle Direction | dvCS
(0018,9601) | Diffusion b-matrix Sequence | dvSQ
(0018,9602) | Diffusion b-value XX | dvFD
(0018,9603) | Diffusion b-value XY | dvFD
(0018,9604) | Diffusion b-value XZ | dvFD
(0018,9605) | Diffusion b-value YY | dvFD
(0018,9606) | Diffusion b-value YZ | dvFD
(0018,9607) | Diffusion b-value ZZ | dvFD
(0018,9701) | Decay Correction Date/Time | dvDT
(0018,9715) | Start Density Threshold | dvFD
(0018,9716) | Start Relative Density Difference Threshold | dvFD
(0018,9717) | Start Cardiac Trigger Count Threshold | dvFD
(0018,9718) | Start Respiratory Trigger Count Threshold | dvFD
(0018,9719) | Termination Counts Threshold | dvFD
(0018,9720) | Termination Density Threshold | dvFD
(0018,9721) | Termination Relative Density Threshold | dvFD
(0018,9722) | Termination Time Threshold | dvFD
(0018,9723) | Termination Cardiac Trigger Count Threshold | dvFD
(0018,9724) | Termination Respiratory Trigger Count Threshold | dvFD
(0018,9725) | Detector Geometry | dvCS
(0018,9726) | Transverse Detector Separation | dvFD
(0018,9727) | Axial Detector Dimension | dvFD
(0018,9729) | Radiopharmaceutical Agent Number | dvUS
(0018,9732) | PET Frame Acquisition Sequence | dvSQ
(0018,9733) | PET Detector Motion Details Sequence | dvSQ
(0018,9734) | PET Table Dynamics Sequence | dvSQ
(0018,9735) | PET Position Sequence | dvSQ
(0018,9736) | PET Frame Correction Factors Sequence | dvSQ
(0018,9737) | Radiopharmaceutical Usage Sequence | dvSQ
(0018,9738) | Attenuation Correction Source | dvCS
(0018,9739) | Number of Iterations | dvUS
(0018,9740) | Number of Subsets | dvUS
(0018,9749) | PET Reconstruction Sequence | dvSQ
(0018,9751) | PET Frame Type Sequence | dvSQ
(0018,9755) | Time of Flight Information Used | dvCS
(0018,9756) | Reconstruction Type | dvCS
(0018,9758) | Decay Corrected | dvCS
(0018,9759) | Attenuation Corrected | dvCS
(0018,9760) | Scatter Corrected | dvCS
(0018,9761) | Dead Time Corrected | dvCS
(0018,9762) | Gantry Motion Corrected | dvCS
(0018,9763) | Patient Motion Corrected | dvCS
(0018,9764) | Count Loss Normalization Corrected | dvCS
(0018,9765) | Randoms Corrected | dvCS
(0018,9766) | Non-uniform Radial Sampling Corrected | dvCS
(0018,9767) | Sensitivity Calibrated | dvCS
(0018,9768) | Detector Normalization Correction | dvCS
(0018,9769) | Iterative Reconstruction Method | dvCS
(0018,9770) | Attenuation Correction Temporal Relationship | dvCS
(0018,9771) | Patient Physiological State Sequence | dvSQ
(0018,9772) | Patient Physiological State Code Sequence | dvSQ
(0018,9801) | Depth(s) of Focus | dvFD
(0018,9803) | Excluded Intervals Sequence | dvSQ
(0018,9804) | Exclusion Start Date/Time | dvDT
(0018,9805) | Exclusion Duration | dvFD
(0018,9806) | US Image Description Sequence | dvSQ
(0018,9807) | Image Data Type Sequence | dvSQ
(0018,9808) | Data Type | dvCS
(0018,9809) | Transducer Scan Pattern Code Sequence | dvSQ
(0018,980B) | Aliased Data Type | dvCS
(0018,980C) | Position Measuring Device Used | dvCS
(0018,980D) | Transducer Geometry Code Sequence | dvSQ
(0018,980E) | Transducer Beam Steering Code Sequence | dvSQ
(0018,980F) | Transducer Application Code Sequence | dvSQ
(0018,9810) | Zero Velocity Pixel Value | dvUSorSS
(0018,A001) | Contributing Equipment Sequence | dvSQ
(0018,A002) | Contribution Date/Time | dvDT
(0018,A003) | Contribution Description | dvST
(0019,0000) | Undocumented | dvUSorSS
(0019,0001) | Undocumented | dvUSorSS
(0019,0002) | Undocumented | dvUSorSS
(0019,0003) | Undocumented | dvUSorSS
(0019,0004) | Undocumented | dvUSorSS
(0019,0005) | Undocumented | dvUSorSS
(0019,0006) | Undocumented | dvUSorSS
(0019,0007) | Undocumented | dvUSorSS
(0019,0008) | Undocumented | dvUSorSS
(0019,0009) | Undocumented | dvUSorSS
(0019,000A) | Undocumented | dvUSorSS
(0019,000B) | Undocumented | dvDS
(0019,000C) | Undocumented | dvUS
(0019,000D) | Undocumented | dvTM
(0019,000E) | Undocumented | dvUSorSS
(0019,000F) | Undocumented | dvDS
(0019,0010) | Undocumented | dvUSorSS
(0019,0011) | Undocumented | dvUSorSS
(0019,0012) | Undocumented | dvUSorSS
(0019,0013) | Undocumented | dvUSorSS
(0019,0014) | Undocumented | dvUSorSS
(0019,0015) | Undocumented | dvUSorSS
(0019,0016) | Undocumented | dvUSorSS
(0019,0017) | Undocumented | dvUSorSS
(0019,0018) | Undocumented | dvUSorSS
(0019,0019) | Undocumented | dvUSorSS
(0019,001A) | Undocumented | dvUSorSS
(0019,001B) | Undocumented | dvUSorSS
(0019,001C) | Undocumented | dvCS
(0019,001D) | Undocumented | dvIS
(0019,001E) | Undocumented | dvUSorSS
(0019,001F) | Undocumented | dvDS
(0019,0020) | Undocumented | dvUSorSS
(0019,0021) | Undocumented | dvUSorSS
(0019,0022) | Undocumented | dvUSorSS
(0019,0023) | Undocumented | dvUSorSS
(0019,0024) | Undocumented | dvUSorSS
(0019,0025) | Undocumented | dvUSorSS
(0019,0026) | Undocumented | dvUSorSS
(0019,0027) | Undocumented | dvUSorSS
(0019,0028) | Undocumented | dvUSorSS
(0019,0029) | Undocumented | dvIS
(0019,002A) | Undocumented | dvUSorSS
(0019,002B) | Undocumented | dvDS
(0019,002C) | Undocumented | dvUSorSS
(0019,002D) | Undocumented | dvUS
(0019,002E) | Undocumented | dvUSorSS
(0019,002F) | Undocumented | dvDS
(0019,0030) | Undocumented | dvUSorSS
(0019,0031) | Undocumented | dvUSorSS
(0019,0032) | Undocumented | dvUSorSS
(0019,0033) | Undocumented | dvUN
(0019,0034) | Undocumented | dvUS
(0019,0036) | Undocumented | dvUS
(0019,0038) | Undocumented | dvUS
(0019,0039) | Undocumented | dvUSorSS
(0019,003A) | Undocumented | dvUSorSS
(0019,003B) | Undocumented | dvLT
(0019,003C) | Undocumented | dvUSorSS
(0019,003E) | Undocumented | dvUSorSS
(0019,003F) | Undocumented | dvUN
(0019,0040) | Undocumented | dvUSorSS
(0019,0041) | Undocumented | dvUSorSS
(0019,0042) | Undocumented | dvUSorSS
(0019,0043) | Undocumented | dvUSorSS
(0019,0044) | Undocumented | dvUSorSS
(0019,0045) | Undocumented | dvUSorSS
(0019,0046) | Undocumented | dvUSorSS
(0019,0047) | Undocumented | dvUSorSS
(0019,0048) | Undocumented | dvUSorSS
(0019,0049) | Undocumented | dvUS
(0019,004A) | Undocumented | dvUSorSS
(0019,004B) | Undocumented | dvSL
(0019,004C) | Undocumented | dvUS
(0019,004E) | Undocumented | dvUS
(0019,0050) | Undocumented | dvUSorSS
(0019,0051) | Undocumented | dvUSorSS
(0019,0052) | Undocumented | dvUSorSS
(0019,0053) | Undocumented | dvLT
(0019,0054) | Undocumented | dvUSorSS
(0019,0055) | Undocumented | dvDS
(0019,0056) | Undocumented | dvUSorSS
(0019,0057) | Undocumented | dvSS
(0019,0058) | Undocumented | dvUSorSS
(0019,005A) | Undocumented | dvUSorSS
(0019,005C) | Undocumented | dvUSorSS
(0019,005D) | Undocumented | dvUS
(0019,005E) | Undocumented | dvUSorSS
(0019,005F) | Undocumented | dvSL
(0019,0060) | Undocumented | dvUSorSS
(0019,0061) | Undocumented | dvUSorSS
(0019,0062) | Undocumented | dvUSorSS
(0019,0063) | Undocumented | dvUSorSS
(0019,0064) | Undocumented | dvUSorSS
(0019,0065) | Undocumented | dvUSorSS
(0019,0066) | Undocumented | dvUSorSS
(0019,0067) | Undocumented | dvUSorSS
(0019,0068) | Undocumented | dvUSorSS
(0019,0069) | Undocumented | dvUL
(0019,006A) | Undocumented | dvUSorSS
(0019,006B) | Undocumented | dvSS
(0019,006C) | Undocumented | dvUS
(0019,006E) | Undocumented | dvUS
(0019,0070) | Undocumented | dvUSorSS
(0019,0071) | Undocumented | dvUSorSS
(0019,0072) | Undocumented | dvUSorSS
(0019,0073) | Undocumented | dvUSorSS
(0019,0074) | Undocumented | dvUSorSS
(0019,0075) | Undocumented | dvUSorSS
(0019,0076) | Undocumented | dvUSorSS
(0019,0077) | Undocumented | dvUS
(0019,0078) | Undocumented | dvUS
(0019,007A) | Undocumented | dvUS
(0019,007C) | Undocumented | dvUS
(0019,007D) | Undocumented | dvDS
(0019,007E) | Undocumented | dvUSorSS
(0019,007F) | Undocumented | dvDS
(0019,0080) | Undocumented | dvUSorSS
(0019,0081) | Undocumented | dvUSorSS
(0019,0082) | Undocumented | dvUSorSS
(0019,0083) | Undocumented | dvUSorSS
(0019,0084) | Undocumented | dvUSorSS
(0019,0085) | Undocumented | dvUSorSS
(0019,0086) | Undocumented | dvUSorSS
(0019,0087) | Undocumented | dvUSorSS
(0019,0088) | Undocumented | dvUSorSS
(0019,008A) | Undocumented | dvUSorSS
(0019,008B) | Undocumented | dvSS
(0019,008C) | Undocumented | dvUS
(0019,008D) | Undocumented | dvDS
(0019,008E) | Undocumented | dvUS
(0019,008F) | Undocumented | dvSS
(0019,0090) | Undocumented | dvUSorSS
(0019,0091) | Undocumented | dvUSorSS
(0019,0092) | Undocumented | dvUSorSS
(0019,0093) | Undocumented | dvUSorSS
(0019,0094) | Undocumented | dvUSorSS
(0019,0095) | Undocumented | dvSS
(0019,0096) | Undocumented | dvUSorSS
(0019,0097) | Undocumented | dvUSorSS
(0019,0098) | Undocumented | dvUSorSS
(0019,0099) | Undocumented | dvUS
(0019,009A) | Undocumented | dvUS
(0019,009B) | Undocumented | dvSS
(0019,009C) | Undocumented | dvUSorSS
(0019,009D) | Undocumented | dvDT
(0019,009E) | Undocumented | dvUSorSS
(0019,009F) | Undocumented | dvUSorSS
(0019,00A0) | Undocumented | dvUSorSS
(0019,00A1) | Undocumented | dvUSorSS
(0019,00A2) | Undocumented | dvUSorSS
(0019,00A3) | Undocumented | dvUSorSS
(0019,00A4) | Undocumented | dvUSorSS
(0019,00A5) | Undocumented | dvUSorSS
(0019,00A6) | Undocumented | dvUSorSS
(0019,00A7) | Undocumented | dvUSorSS
(0019,00A8) | Undocumented | dvUSorSS
(0019,00A9) | Undocumented | dvUSorSS
(0019,00AA) | Undocumented | dvUSorSS
(0019,00AB) | Undocumented | dvUSorSS
(0019,00AC) | Undocumented | dvUSorSS
(0019,00AD) | Undocumented | dvUSorSS
(0019,00AE) | Undocumented | dvUSorSS
(0019,00AF) | Undocumented | dvUSorSS
(0019,00B0) | Undocumented | dvUSorSS
(0019,00B1) | Undocumented | dvUSorSS
(0019,00B2) | Undocumented | dvUSorSS
(0019,00B3) | Undocumented | dvUSorSS
(0019,00B4) | Undocumented | dvUSorSS
(0019,00B5) | Undocumented | dvUSorSS
(0019,00B6) | Undocumented | dvDS
(0019,00B7) | Undocumented | dvDS
(0019,00B8) | Undocumented | dvDS
(0019,00B9) | Undocumented | dvDS
(0019,00BA) | Undocumented | dvDS
(0019,00BB) | Undocumented | dvDS
(0019,00BC) | Undocumented | dvDS
(0019,00BD) | Undocumented | dvDS
(0019,00BE) | Undocumented | dvDS
(0019,00C0) | Undocumented | dvUSorSS
(0019,00C1) | Undocumented | dvUSorSS
(0019,00C2) | Undocumented | dvUSorSS
(0019,00C3) | Undocumented | dvUSorSS
(0019,00C4) | Undocumented | dvUSorSS
(0019,00C5) | Undocumented | dvUSorSS
(0019,00C6) | Undocumented | dvSS
(0019,00C7) | Undocumented | dvSS
(0019,00C8) | Undocumented | dvSS
(0019,00C9) | Undocumented | dvSS
(0019,00CA) | Undocumented | dvSS
(0019,00CB) | Undocumented | dvUSorSS
(0019,00CC) | Undocumented | dvUSorSS
(0019,00CD) | Undocumented | dvSS
(0019,00CE) | Undocumented | dvSS
(0019,00CF) | Undocumented | dvSS
(0019,00D0) | Undocumented | dvSH
(0019,00D1) | Undocumented | dvDS
(0019,00D2) | Undocumented | dvUSorSS
(0019,00D3) | Undocumented | dvUSorSS
(0019,00D4) | Undocumented | dvUSorSS
(0019,00D5) | Undocumented | dvUSorSS
(0019,00D6) | Undocumented | dvUSorSS
(0019,00D7) | Undocumented | dvUSorSS
(0019,00D8) | Undocumented | dvUSorSS
(0019,00D9) | Undocumented | dvUSorSS
(0019,00DA) | Undocumented | dvUSorSS
(0019,00DB) | Undocumented | dvDS
(0019,00DC) | Undocumented | dvSS
(0019,00DD) | Undocumented | dvSS
(0019,00DE) | Undocumented | dvDS
(0019,00DF) | Undocumented | dvDS
(0019,00E0) | Undocumented | dvDS
(0019,00E1) | Undocumented | dvUSorSS
(0019,00E2) | Undocumented | dvUSorSS
(0019,00E3) | Undocumented | dvUSorSS
(0019,00E4) | Undocumented | dvLT
(0019,00E5) | Undocumented | dvIS
(0019,00E6) | Undocumented | dvUS
(0019,00E8) | Undocumented | dvDS
(0019,00E9) | Undocumented | dvDS
(0019,00EB) | Undocumented | dvDS
(0019,00EC) | Undocumented | dvUS
(0019,00F0) | Undocumented | dvUSorSS
(0019,00F1) | Undocumented | dvUSorSS
(0019,00F2) | Undocumented | dvUSorSS
(0019,00F3) | Undocumented | dvUSorSS
(0019,00F4) | Undocumented | dvLT
(0019,00F9) | Undocumented | dvDS
(0019,1015) | Start Number for Enhanced Scans | dvUN
(0020,0000) | Image Group Length | dvUL
(0020,000D) | Study Instance UID | dvUI
(0020,000E) | Series Instance UID | dvUI
(0020,0010) | Study ID | dvSH
(0020,0011) | Series Number | dvIS
(0020,0012) | Acquisition Number | dvIS
(0020,0013) | Instance Number | dvIS
(0020,0014) | Isotope Number | dvIS
(0020,0015) | Phase Number | dvIS
(0020,0016) | Interval Number | dvIS
(0020,0017) | Time Slot Number | dvIS
(0020,0018) | Angle Number | dvIS
(0020,0019) | Item Number | dvIS
(0020,0020) | Patient Orientation | dvCS
(0020,0022) | Overlay Number | dvIS
(0020,0024) | Curve Number | dvIS
(0020,0026) | LUT Number | dvIS
(0020,0030) | Image Position | dvDS
(0020,0032) | Image Position (Patient) | dvDS
(0020,0035) | Image Orientation | dvDS
(0020,0037) | Image Orientation (Patient) | dvDS
(0020,0050) | Location | dvDS
(0020,0052) | Frame of Reference UID | dvUI
(0020,0060) | Laterality | dvCS
(0020,0062) | Image Laterality | dvCS
(0020,0070) | Image Geometry Type | dvLO
(0020,0080) | Masking Image | dvCS
(0020,00AA) | Report Number | dvIS
(0020,0100) | Temporal Position Identifier | dvIS
(0020,0105) | Number of Temporal Positions | dvIS
(0020,0110) | Temporal Resolution | dvDS
(0020,0200) | Synchronization Frame of Reference UID | dvUI
(0020,0242) | SOP Instance UID of Concatenation Source | dvUI
(0020,1000) | Series in Study | dvIS
(0020,1001) | Acquisitions in Series | dvIS
(0020,1002) | Images in Acquisition | dvIS
(0020,1003) | Images in Series | dvIS
(0020,1004) | Acquisitions in Study | dvIS
(0020,1005) | Images in Study | dvIS
(0020,1020) | Reference | dvLO
(0020,1040) | Position Reference Indicator | dvLO
(0020,1041) | Slice Location | dvDS
(0020,1070) | Other Study Numbers | dvIS
(0020,1200) | Number of Patient Related Studies | dvIS
(0020,1202) | Number of Patient Related Series | dvIS
(0020,1204) | Number of Patient Related Instances | dvIS
(0020,1206) | Number of Study Related Series | dvIS
(0020,1208) | Number of Study Related Instances | dvIS
(0020,1209) | Number of Series Related Instances | dvIS
(0020,3100) | Source Image IDs | dvCS
(0020,3401) | Modifying Device ID | dvCS
(0020,3402) | Modified Image ID | dvCS
(0020,3403) | Modified Image Date | dvDA
(0020,3404) | Modifying Device Manufacturer | dvLO
(0020,3405) | Modified Image Time | dvTM
(0020,3406) | Modified Image Description | dvLO
(0020,4000) | Image Comments | dvLT
(0020,5000) | Original Image Identification | dvAT
(0020,5002) | Original Image Identification Nomenclature | dvLO
(0020,9056) | Stack ID | dvSH
(0020,9057) | In-Stack Position Number | dvUL
(0020,9071) | Frame Anatomy Sequence | dvSQ
(0020,9072) | Frame Laterality | dvCS
(0020,9110) | Undocumented | dvSQ
(0020,9111) | Frame Content Sequence | dvSQ
(0020,9113) | Plane Position Sequence | dvSQ
(0020,9116) | Plane Orientation Sequence | dvSQ
(0020,9128) | Temporal Position Index | dvUL
(0020,9153) | Nominal Cardiac Trigger Delay Time | dvFD
(0020,9154) | Nominal Cardiac Trigger Time Prior to R-Peak | dvFL
(0020,9155) | Actual Cardiac Trigger Time Prior to R-Peak | dvFL
(0020,9156) | Frame Acquisition Number | dvUS
(0020,9157) | Dimension Index Values | dvUL
(0020,9158) | Frame Comments | dvLT
(0020,9161) | Concatenation UID | dvUI
(0020,9162) | In-concatenation Number | dvUS
(0020,9163) | In-concatenation Total Number | dvUS
(0020,9164) | Dimension Organization UID | dvUI
(0020,9165) | Dimension Index Pointer | dvAT
(0020,9167) | Functional Group Pointer | dvAT
(0020,9170) | Unassigned Shared Converted Attributes Sequence | dvSQ
(0020,9171) | Unassigned Per-Frame Converted Attributes Sequence | dvSQ
(0020,9172) | Conversion Source Attributes Sequence | dvSQ
(0020,9213) | Dimension Index Private Creator | dvLO
(0020,9221) | Dimension Organization Sequence | dvSQ
(0020,9222) | Dimension Index Sequence | dvSQ
(0020,9228) | Concatenation Frame Offset Number | dvUL
(0020,9238) | Functional Group Private Creator | dvLO
(0020,9241) | Nominal Percentage of Cardiac Phase | dvFL
(0020,9245) | Nominal Percentage of Respiratory Phase | dvFL
(0020,9246) | Starting Respiratory Amplitude | dvFL
(0020,9247) | Starting Respiratory Phase | dvCS
(0020,9248) | Ending Respiratory Amplitude | dvFL
(0020,9249) | Ending Respiratory Phase | dvCS
(0020,9250) | Respiratory Trigger Type | dvCS
(0020,9251) | R-R Interval Time Nominal | dvFD
(0020,9252) | Actual Cardiac Trigger Delay Time | dvFD
(0020,9253) | Respiratory Synchronization Sequence | dvSQ
(0020,9254) | Respiratory Interval Time | dvFD
(0020,9255) | Nominal Respiratory Trigger Delay Time | dvFD
(0020,9256) | Respiratory Trigger Delay Threshold | dvFD
(0020,9257) | Actual Respiratory Trigger Delay Time | dvFD
(0020,9301) | Image Position (Volume) | dvFD
(0020,9302) | Image Orientation (Volume) | dvFD
(0020,9307) | Ultrasound Acquisition Geometry | dvCS
(0020,9308) | Apex Position | dvFD
(0020,9309) | Volume to Transducer Mapping Matrix | dvFD
(0020,930A) | Volume to Table Mapping Matrix | dvFD
(0020,930B) | Volume to Transducer Relationship | dvCS
(0020,930C) | Patient Frame of Reference Source | dvCS
(0020,930D) | Temporal Position Time Offset | dvFD
(0020,930E) | Plane Position (Volume) Sequence | dvSQ
(0020,930F) | Plane Orientation (Volume) Sequence | dvSQ
(0020,9310) | Temporal Position Sequence | dvSQ
(0020,9311) | Dimension Organization Type | dvCS
(0020,9312) | Volume Frame of Reference UID | dvUI
(0020,9313) | Table Frame of Reference UID | dvUI
(0020,9421) | Dimension Description Label | dvLO
(0020,9450) | Patient Orientation in Frame Sequence | dvSQ
(0020,9453) | Frame Label | dvLO
(0020,9518) | Acquisition Index | dvUS
(0020,9529) | Contributing SOP Instances Reference Sequence | dvSQ
(0020,9536) | Reconstruction Index | dvUS
(0021,0000) | Undocumented | dvUSorSS
(0021,0001) | Undocumented | dvUSorSS
(0021,0002) | Undocumented | dvUSorSS
(0021,0003) | Undocumented | dvUSorSS
(0021,0004) | Undocumented | dvDS
(0021,0005) | Undocumented | dvUSorSS
(0021,0006) | Undocumented | dvIS
(0021,0007) | Undocumented | dvUSorSS
(0021,0008) | Undocumented | dvDS
(0021,0009) | Undocumented | dvDS
(0021,0010) | Undocumented | dvUSorSS
(0021,0011) | Undocumented | dvUSorSS
(0021,0012) | Undocumented | dvUSorSS
(0021,0013) | Undocumented | dvUSorSS
(0021,0014) | Undocumented | dvUSorSS
(0021,0015) | Undocumented | dvUSorSS
(0021,0016) | Undocumented | dvUSorSS
(0021,0017) | Undocumented | dvDS
(0021,0018) | Undocumented | dvUSorSS
(0021,0019) | Undocumented | dvUSorSS
(0021,0020) | Undocumented | dvUSorSS
(0021,0021) | Undocumented | dvUSorSS
(0021,0022) | Undocumented | dvUSorSS
(0021,0024) | Undocumented | dvUSorSS
(0021,0025) | Undocumented | dvUS
(0021,0026) | Undocumented | dvIS
(0021,0030) | Undocumented | dvUSorSS
(0021,0031) | Undocumented | dvUSorSS
(0021,0032) | Undocumented | dvUSorSS
(0021,0034) | Undocumented | dvUSorSS
(0021,0035) | Undocumented | dvSS
(0021,0036) | Undocumented | dvUSorSS
(0021,0037) | Undocumented | dvSS
(0021,0039) | Undocumented | dvDS
(0021,0040) | Undocumented | dvUSorSS
(0021,0041) | Undocumented | dvUSorSS
(0021,0042) | Undocumented | dvUSorSS
(0021,0043) | Undocumented | dvUSorSS
(0021,0044) | Undocumented | dvUSorSS
(0021,0045) | Undocumented | dvUSorSS
(0021,0046) | Undocumented | dvUSorSS
(0021,0047) | Undocumented | dvUSorSS
(0021,0048) | Undocumented | dvUSorSS
(0021,0049) | Undocumented | dvUSorSS
(0021,004A) | Undocumented | dvUSorSS
(0021,004E) | Undocumented | dvUS
(0021,004F) | Undocumented | dvUSorSS
(0021,0050) | Undocumented | dvUSorSS
(0021,0051) | Undocumented | dvUSorSS
(0021,0052) | Undocumented | dvUSorSS
(0021,0053) | Undocumented | dvUSorSS
(0021,0054) | Undocumented | dvUSorSS
(0021,0055) | Undocumented | dvUSorSS
(0021,0056) | Undocumented | dvUSorSS
(0021,0057) | Undocumented | dvUSorSS
(0021,0058) | Undocumented | dvUSorSS
(0021,0059) | Undocumented | dvUSorSS
(0021,005A) | Undocumented | dvSL
(0021,005B) | Undocumented | dvDS
(0021,005C) | Undocumented | dvDS
(0021,005D) | Undocumented | dvDS
(0021,005E) | Undocumented | dvDS
(0021,005F) | Undocumented | dvDS
(0021,0060) | Undocumented | dvUSorSS
(0021,0061) | Undocumented | dvDS
(0021,0062) | Undocumented | dvIS
(0021,0063) | Undocumented | dvDS
(0021,0065) | Undocumented | dvUS
(0021,006A) | Undocumented | dvDS
(0021,006B) | Undocumented | dvDS
(0021,0070) | Undocumented | dvUSorSS
(0021,0071) | Undocumented | dvUSorSS
(0021,0072) | Undocumented | dvUSorSS
(0021,0073) | Undocumented | dvDS
(0021,0075) | Undocumented | dvDS
(0021,0076) | Undocumented | dvDS
(0021,007A) | Undocumented | dvIS
(0021,007B) | Undocumented | dvIS
(0021,007C) | Undocumented | dvIS
(0021,0080) | Undocumented | dvUSorSS
(0021,0081) | Undocumented | dvDS
(0021,0082) | Undocumented | dvUSorSS
(0021,0083) | Undocumented | dvDS
(0021,0084) | Undocumented | dvDS
(0021,0090) | Undocumented | dvUSorSS
(0021,0091) | Undocumented | dvUSorSS
(0021,0092) | Undocumented | dvUSorSS
(0021,0093) | Undocumented | dvUSorSS
(0021,0094) | Undocumented | dvDS
(0021,0095) | Undocumented | dvDS
(0021,0096) | Undocumented | dvDS
(0021,00A0) | Undocumented | dvUSorSS
(0021,00A1) | Undocumented | dvDS
(0021,00A2) | Undocumented | dvUSorSS
(0021,00A3) | Undocumented | dvLT
(0021,00A4) | Undocumented | dvLT
(0021,00A7) | Undocumented | dvLT
(0021,00B0) | Undocumented | dvIS
(0021,00C0) | Undocumented | dvIS
(0022,0001) | Light Path Filter Pass-Through Wavelength | dvUS
(0022,0002) | Light Path Filter Pass Band | dvUS
(0022,0003) | Image Path Filter Pass-Through Wavelength | dvUS
(0022,0004) | Image Path Filter Pass Band | dvUS
(0022,0005) | Patient Eye Movement Commanded | dvCS
(0022,0006) | Patient Eye Movement Command Code Sequence | dvSQ
(0022,0007) | Spherical Lens Power | dvFL
(0022,0008) | Cylinder Lens Power | dvFL
(0022,0009) | Cylinder Axis | dvFL
(0022,000A) | Emmetropic Magnification | dvFL
(0022,000B) | Intra Ocular Pressure | dvFL
(0022,000C) | Horizontal Field of View | dvFL
(0022,000D) | Pupil Dilated | dvCS
(0022,000E) | Degree of Dilation | dvFL
(0022,0010) | Stereo Baseline Angle | dvFL
(0022,0011) | Stereo Baseline Displacement | dvFL
(0022,0012) | Stereo Horizontal Pixel Offset | dvFL
(0022,0013) | Stereo Vertical Pixel Offset | dvFL
(0022,0014) | Stereo Rotation | dvFL
(0022,0015) | Acquisition Device Type Code Sequence | dvSQ
(0022,0016) | Illumination Type Code Sequence | dvSQ
(0022,0017) | Light Path Filter Type Stack Code Sequence | dvSQ
(0022,0018) | Image Path Filter Type Stack Code Sequence | dvSQ
(0022,0019) | Lenses Code Sequence | dvSQ
(0022,001A) | Channel Description Code Sequence | dvSQ
(0022,001B) | Refractive State Sequence | dvSQ
(0022,001C) | Mydriatic Agent Code Sequence | dvSQ
(0022,001D) | Relative Image Position Code Sequence | dvSQ
(0022,001E) | Camera Angle of View | dvFL
(0022,0020) | Stereo Pairs Sequence | dvSQ
(0022,0021) | Left Image Sequence | dvSQ
(0022,0022) | Right Image Sequence | dvSQ
(0022,0030) | Axial Length of the Eye | dvFL
(0022,0031) | Ophthalmic Frame Location Sequence | dvSQ
(0022,0032) | Reference Coordinates | dvFL
(0022,0035) | Depth Spatial Resolution | dvFL
(0022,0036) | Maximum Depth Distortion | dvFL
(0022,0037) | Along-scan Spatial Resolution | dvFL
(0022,0038) | Maximum Along-scan Distortion | dvFL
(0022,0039) | Ophthalmic Image Orientation | dvCS
(0022,0041) | Depth of Transverse Image | dvFL
(0022,0042) | Mydriatic Agent Concentration Units Sequence | dvSQ
(0022,0048) | Across-scan Spatial Resolution | dvFL
(0022,0049) | Maximum Across-scan Distortion | dvFL
(0022,004E) | Mydriatic Agent Concentration | dvDS
(0022,0055) | Illumination Wave Length | dvFL
(0022,0056) | Illumination Power | dvFL
(0022,0057) | Illumination Bandwidth | dvFL
(0022,0058) | Mydriatic Agent Sequence | dvSQ
(0022,1007) | Ophthalmic Axial Measurements Right Eye Sequence | dvSQ
(0022,1008) | Ophthalmic Axial Measurements Left Eye Sequence | dvSQ
(0022,1009) | Ophthalmic Axial Measurements Device Type | dvCS
(0022,1010) | Ophthalmic Axial Length Measurements Type | dvCS
(0022,1012) | Ophthalmic Axial Length Sequence | dvSQ
(0022,1019) | Ophthalmic Axial Length | dvFL
(0022,1024) | Lens Status Code Sequence | dvSQ
(0022,1025) | Vitreous Status Code Sequence | dvSQ
(0022,1028) | IOL Formula Code Sequence | dvSQ
(0022,1029) | IOL Formula Detail | dvLO
(0022,1033) | Keratometer Index | dvFL
(0022,1035) | Source of Ophthalmic Axial Length Code Sequence | dvSQ
(0022,1037) | Target Refraction | dvFL
(0022,1039) | Refractive Procedure Occurred | dvCS
(0022,1040) | Refractive Surgery Type Code Sequence | dvSQ
(0022,1044) | Ophthalmic Ultrasound Method Code Sequence | dvSQ
(0022,1050) | Ophthalmic Axial Length Measurements Sequence | dvSQ
(0022,1053) | IOL Power | dvFL
(0022,1054) | Predicted Refractive Error | dvFL
(0022,1059) | Ophthalmic Axial Length Velocity | dvFL
(0022,1065) | Lens Status Description | dvLO
(0022,1066) | Vitreous Status Description | dvLO
(0022,1090) | IOL Power Sequence | dvSQ
(0022,1092) | Lens Constant Sequence | dvSQ
(0022,1093) | IOL Manufacturer | dvLO
(0022,1094) | Lens Constant Description | dvLO
(0022,1095) | Implant Name | dvLO
(0022,1096) | Keratometry Measurement Type Code Sequence | dvSQ
(0022,1097) | Implant Part Number | dvLO
(0022,1100) | Referenced Ophthalmic Axial Measurements Sequence | dvSQ
(0022,1101) | Ophthalmic Axial Length Measurements Segment Name Code Sequence | dvSQ
(0022,1103) | Refractive Error Before Refractive Surgery Code Sequence | dvSQ
(0022,1121) | IOL Power for Exact Emmetropia | dvFL
(0022,1122) | IOL Power for Exact Target Refraction | dvFL
(0022,1125) | Anterior Chamber Depth Definition Code Sequence | dvSQ
(0022,1127) | Lens Thickness Sequence | dvSQ
(0022,1128) | Anterior Chamber Depth Sequence | dvSQ
(0022,1130) | Lens Thickness | dvFL
(0022,1131) | Anterior Chamber Depth | dvFL
(0022,1132) | Source of Lens Thickness Data Code Sequence | dvSQ
(0022,1133) | Source of Anterior Chamber Depth Data Code Sequence | dvSQ
(0022,1134) | Source of Refractive Measurements Sequence | dvSQ
(0022,1135) | Source of Refractive Measurements Code Sequence | dvSQ
(0022,1140) | Ophthalmic Axial Length Measurement Modified | dvCS
(0022,1150) | Ophthalmic Axial Length Data Source Code Sequence | dvSQ
(0022,1153) | Ophthalmic Axial Length Acquisition Method Code Sequence | dvSQ
(0022,1155) | Signal to Noise Ratio | dvFL
(0022,1159) | Ophthalmic Axial Length Data Source Description | dvLO
(0022,1210) | Ophthalmic Axial Length Measurements Total Length Sequence | dvSQ
(0022,1211) | Ophthalmic Axial Length Measurements Segmental Length Sequence | dvSQ
(0022,1212) | Ophthalmic Axial Length Measurements Length Summation Sequence | dvSQ
(0022,1220) | Ultrasound Ophthalmic Axial Length Measurements Sequence | dvSQ
(0022,1225) | Optical Ophthalmic Axial Length Measurements Sequence | dvSQ
(0022,1230) | Ultrasound Selected Ophthalmic Axial Length Sequence | dvSQ
(0022,1250) | Ophthalmic Axial Length Selection Method Code Sequence | dvSQ
(0022,1255) | Optical Selected Ophthalmic Axial Length Sequence | dvSQ
(0022,1257) | Selected Segmental Ophthalmic Axial Length Sequence | dvSQ
(0022,1260) | Selected Total Ophthalmic Axial Length Sequence | dvSQ
(0022,1262) | Ophthalmic Axial Length Quality Metric Sequence | dvSQ
(0022,1265) | Ophthalmic Axial Length Quality Metric Type Code Sequence | dvSQ
(0022,1273) | Ophthalmic Axial Length Quality Metric Type Description | dvLO
(0022,1300) | Intraocular Lens Calculations Right Eye Sequence | dvSQ
(0022,1310) | Intraocular Lens Calculations Left Eye Sequence | dvSQ
(0022,1330) | Referenced Ophthalmic Axial Length Measurement QC Image Sequence | dvSQ
(0022,1415) | Ophthalmic Mapping Device Type | dvCS
(0022,1420) | Acquisition Method Code Sequence | dvSQ
(0022,1423) | Acquisition Method Algorithm Sequence | dvSQ
(0022,1436) | Ophthalmic Thickness Map Type Code Sequence | dvSQ
(0022,1443) | Ophthalmic Thickness Mapping Normals Sequence | dvSQ
(0022,1445) | Retinal Thickness Definition Code Sequence | dvSQ
(0022,1450) | Pixel Value Mapping to Coded Concept Sequence | dvSQ
(0022,1452) | Mapped Pixel Value | dvUSorSS
(0022,1454) | Pixel Value Mapping Explanation | dvLO
(0022,1458) | Ophthalmic Thickness Map Quality Threshold Sequence | dvSQ
(0022,1460) | Ophthalmic Thickness Map Threshold Quality Rating | dvFL
(0022,1463) | Anatomic Structure Reference Point | dvFL
(0022,1465) | Registration to Localizer Sequence | dvSQ
(0022,1466) | Registered Localizer Units | dvCS
(0022,1467) | Registered Localizer Top Left Hand Corner | dvFL
(0022,1468) | Registered Localizer Bottom Right Hand Corner | dvFL
(0022,1470) | Ophthalmic Thickness Map Quality Rating Sequence | dvSQ
(0022,1472) | Relevant OPT Attributes Sequence | dvSQ
(0023,0000) | Undocumented | dvUSorSS
(0023,0001) | Undocumented | dvSL
(0023,0002) | Undocumented | dvSL
(0023,0010) | Undocumented | dvUSorSS
(0023,0020) | Undocumented | dvUSorSS
(0023,0030) | Undocumented | dvUSorSS
(0023,0040) | Undocumented | dvUSorSS
(0023,0050) | Undocumented | dvUSorSS
(0023,0060) | Undocumented | dvUSorSS
(0023,0070) | Undocumented | dvUSorSS
(0023,0074) | Undocumented | dvSL
(0023,007D) | Undocumented | dvSS
(0023,0080) | Undocumented | dvUSorSS
(0023,0090) | Undocumented | dvUSorSS
(0023,00FF) | Undocumented | dvUS
(0024,0010) | Visual Field Horizontal Extent | dvFL
(0024,0011) | Visual Field Vertical Extent | dvFL
(0024,0012) | Visual Field Shape | dvCS
(0024,0016) | Screening Test Mode Code Sequence | dvSQ
(0024,0018) | Maximum Stimulus Luminance | dvFL
(0024,0020) | Background Luminance | dvFL
(0024,0021) | Stimulus Color Code Sequence | dvSQ
(0024,0024) | Background Illumination Color Code Sequence | dvSQ
(0024,0025) | Stimulus Area | dvFL
(0024,0028) | Stimulus Presentation Time | dvFL
(0024,0032) | Fixation Sequence | dvSQ
(0024,0033) | Fixation Monitoring Code Sequence | dvSQ
(0024,0034) | Visual Field Catch Trial Sequence | dvSQ
(0024,0035) | Fixation Checked Quantity | dvUS
(0024,0036) | Patient Not Properly Fixated Quantity | dvUS
(0024,0037) | Presented Visual Stimuli Data Flag | dvCS
(0024,0038) | Number of Visual Stimuli | dvUS
(0024,0039) | Excessive Fixation Losses Data Flag | dvCS
(0024,0040) | Excessive Fixation Losses | dvCS
(0024,0042) | Stimuli Retesting Quantity | dvUS
(0024,0044) | Comments on Patient's Performance of Visual Field | dvLT
(0024,0045) | False Negatives Estimate Flag | dvCS
(0024,0046) | False Negatives Estimate | dvFL
(0024,0048) | Negative Catch Trials Quantity | dvUS
(0024,0050) | False Negatives Quantity | dvUS
(0024,0051) | Excessive False Negatives Data Flag | dvCS
(0024,0052) | Excessive False Negatives | dvCS
(0024,0053) | False Positives Estimate Flag | dvCS
(0024,0054) | False Positives Estimate | dvFL
(0024,0055) | Catch Trials Data Flag | dvCS
(0024,0056) | Positive Catch Trials Quantity | dvUS
(0024,0057) | Test Point Normals Data Flag | dvCS
(0024,0058) | Test Point Normals Sequence | dvSQ
(0024,0059) | Global Deviation Probability Normals Flag | dvCS
(0024,0060) | False Positives Quantity | dvUS
(0024,0061) | Excessive False Positives Data Flag | dvCS
(0024,0062) | Excessive False Positives | dvCS
(0024,0063) | Visual Field Test Normals Flag | dvCS
(0024,0064) | Results Normals Sequence | dvSQ
(0024,0065) | Age Corrected Sensitivity Deviation Algorithm Sequence | dvSQ
(0024,0066) | Global Deviation From Normal | dvFL
(0024,0067) | Generalized Defect Sensitivity Deviation Algorithm Sequence | dvSQ
(0024,0068) | Localized Deviation From Normal | dvFL
(0024,0069) | Patient Reliability Indicator | dvLO
(0024,0070) | Visual Field Mean Sensitivity | dvFL
(0024,0071) | Global Deviation Probability | dvFL
(0024,0072) | Local Deviation Probability Normals Flag | dvCS
(0024,0073) | Localized Deviation Probability | dvFL
(0024,0074) | Short Term Fluctuation Calculated | dvCS
(0024,0075) | Short Term Fluctuation | dvFL
(0024,0076) | Short Term Fluctuation Probability Calculated | dvCS
(0024,0077) | Short Term Fluctuation Probability | dvFL
(0024,0078) | Corrected Localized Deviation From Normal Calculated | dvCS
(0024,0079) | Corrected Localized Deviation From Normal | dvFL
(0024,0080) | Corrected Localized Deviation From Normal Probability Calculated | dvCS
(0024,0081) | Corrected Localized Deviation From Normal Probability | dvFL
(0024,0083) | Global Deviation Probability Sequence | dvSQ
(0024,0085) | Localized Deviation Probability Sequence | dvSQ
(0024,0086) | Foveal Sensitivity Measured | dvCS
(0024,0087) | Foveal Sensitivity | dvFL
(0024,0088) | Visual Field Test Duration | dvFL
(0024,0089) | Visual Field Test Point Sequence | dvSQ
(0024,0090) | Visual Field Test Point X-Coordinate | dvFL
(0024,0091) | Visual Field Test Point Y-Coordinate | dvFL
(0024,0092) | Age Corrected Sensitivity Deviation Value | dvFL
(0024,0093) | Stimulus Results | dvCS
(0024,0094) | Sensitivity Value | dvFL
(0024,0095) | Retest Stimulus Seen | dvCS
(0024,0096) | Retest Sensitivity Value | dvFL
(0024,0097) | Visual Field Test Point Normals Sequence | dvSQ
(0024,0098) | Quantified Defect | dvFL
(0024,0100) | Age Corrected Sensitivity Deviation Probability Value | dvFL
(0024,0102) | Generalized Defect Corrected Sensitivity Deviation Flag | dvCS
(0024,0103) | Generalized Defect Corrected Sensitivity Deviation Value | dvFL
(0024,0104) | Generalized Defect Corrected Sensitivity Deviation Probability Value | dvFL
(0024,0105) | Minimum Sensitivity Value | dvFL
(0024,0106) | Blind Spot Localized | dvCS
(0024,0107) | Blind Spot X-Coordinate | dvFL
(0024,0108) | Blind Spot Y-Coordinate | dvFL
(0024,0110) | Visual Acuity Measurement Sequence | dvSQ
(0024,0112) | Refractive Parameters Used on Patient Sequence | dvSQ
(0024,0113) | Measurement Laterality | dvCS
(0024,0114) | Ophthalmic Patient Clinical Information Left Eye Sequence | dvSQ
(0024,0115) | Ophthalmic Patient Clinical Information Right Eye Sequence | dvSQ
(0024,0117) | Foveal Point Normative Data Flag | dvCS
(0024,0118) | Foveal Point Probability Value | dvFL
(0024,0120) | Screening Baseline Measured | dvCS
(0024,0122) | Screening Baseline Measured Sequence | dvSQ
(0024,0124) | Screening Baseline Type | dvCS
(0024,0126) | Screening Baseline Value | dvFL
(0024,0202) | Algorithm Source | dvLO
(0024,0306) | Data Set Name | dvLO
(0024,0307) | Data Set Version | dvLO
(0024,0308) | Data Set Source | dvLO
(0024,0309) | Data Set Description | dvLO
(0024,0317) | Visual Field Test Reliability Global Index Sequence | dvSQ
(0024,0320) | Visual Field Global Results Index Sequence | dvSQ
(0024,0325) | Data Observation Sequence | dvSQ
(0024,0338) | Index Normals Flag | dvCS
(0024,0341) | Index Probability | dvFL
(0024,0344) | Index Probability Sequence | dvSQ
(0025,0000) | Undocumented | dvUL
(0025,0006) | Undocumented | dvSS
(0025,0007) | Undocumented | dvSL
(0025,0010) | Undocumented | dvSS
(0025,0011) | Undocumented | dvSS
(0025,0014) | Undocumented | dvSL
(0025,0017) | Undocumented | dvSL
(0025,0018) | Undocumented | dvSL
(0025,0019) | Undocumented | dvSL
(0025,001A) | Undocumented | dvSH
(0027,0000) | Undocumented | dvUS
(0027,0006) | Undocumented | dvSL
(0027,0010) | Undocumented | dvSS
(0027,0011) | Undocumented | dvUN
(0027,0012) | Undocumented | dvIS
(0027,0013) | Undocumented | dvIS
(0027,0014) | Undocumented | dvIS
(0027,0015) | Undocumented | dvIS
(0027,0016) | Undocumented | dvLT
(0027,001C) | Undocumented | dvSL
(0027,001D) | Undocumented | dvSS
(0027,001E) | Undocumented | dvSL
(0027,001F) | Undocumented | dvSL
(0027,0020) | Undocumented | dvSS
(0027,0030) | Undocumented | dvSH
(0027,0031) | Undocumented | dvSS
(0027,0032) | Undocumented | dvSS
(0027,0033) | Undocumented | dvSL
(0027,0035) | Undocumented | dvSS
(0027,0036) | Undocumented | dvSL
(0027,0040) | Undocumented | dvSH
(0027,0041) | Undocumented | dvFL
(0027,0042) | Undocumented | dvFL
(0027,0043) | Undocumented | dvFL
(0027,0044) | Undocumented | dvFL
(0027,0045) | Undocumented | dvFL
(0027,0046) | Undocumented | dvFL
(0027,0047) | Undocumented | dvFL
(0027,0048) | Undocumented | dvFL
(0027,0049) | Undocumented | dvFL
(0027,004A) | Undocumented | dvFL
(0027,004B) | Undocumented | dvFL
(0027,004C) | Undocumented | dvFL
(0027,004D) | Undocumented | dvFL
(0027,0050) | Undocumented | dvFL
(0027,0051) | Undocumented | dvFL
(0027,0052) | Undocumented | dvSH
(0027,0053) | Undocumented | dvSH
(0027,0054) | Undocumented | dvSH
(0027,0055) | Undocumented | dvSH
(0027,0060) | Undocumented | dvFL
(0027,0061) | Undocumented | dvFL
(0027,0062) | Undocumented | dvFL
(0028,0000) | Image Presentation Group Length | dvUL
(0028,0002) | Samples per Pixel | dvUS
(0028,0003) | Samples per Pixel Used | dvUS
(0028,0004) | Photometric Interpretation | dvCS
(0028,0005) | Image Dimensions | dvUS
(0028,0006) | Planar Configuration | dvUS
(0028,0008) | Number of Frames | dvIS
(0028,0009) | Frame Increment Pointer | dvAT
(0028,000A) | Frame Dimension Pointer | dvAT
(0028,0010) | Rows | dvUS
(0028,0011) | Columns | dvUS
(0028,0012) | Planes | dvUS
(0028,0014) | Ultrasound Color Data Present | dvUS
(0028,0020) | Undocumented | dvUN
(0028,0030) | Pixel Spacing | dvDS
(0028,0031) | Zoom Factor | dvDS
(0028,0032) | Zoom Center | dvDS
(0028,0034) | Pixel Aspect Ratio | dvIS
(0028,0040) | Image Format | dvCS
(0028,0050) | Manipulated Image | dvLO
(0028,0051) | Corrected Image | dvCS
(0028,005F) | Compression Recognition Code | dvLO
(0028,0060) | Compression Code | dvCS
(0028,0061) | Compression Originator | dvSH
(0028,0062) | Compression Label | dvLO
(0028,0063) | Compression Description | dvSH
(0028,0065) | Compression Sequence | dvCS
(0028,0066) | Compression Step Pointers | dvAT
(0028,0068) | Repeat Interval | dvUS
(0028,0069) | Bits Grouped | dvUS
(0028,0070) | Perimeter Table | dvUS
(0028,0071) | Perimeter Value | dvUSorSS
(0028,0080) | Predictor Rows | dvUS
(0028,0081) | Predictor Columns | dvUS
(0028,0082) | Predictor Constants | dvUS
(0028,0090) | Blocked Pixels | dvCS
(0028,0091) | Block Rows | dvUS
(0028,0092) | Block Columns | dvUS
(0028,0093) | Row Overlap | dvUS
(0028,0094) | Column Overlap | dvUS
(0028,0100) | Bits Allocated | dvUS
(0028,0101) | Bits Stored | dvUS
(0028,0102) | High Bit | dvUS
(0028,0103) | Pixel Representation | dvUS
(0028,0104) | Smallest Valid Pixel Value | dvUSorSS
(0028,0105) | Largest Valid Pixel Value | dvUSorSS
(0028,0106) | Smallest Image Pixel Value | dvUSorSS
(0028,0107) | Largest Image Pixel Value | dvUSorSS
(0028,0108) | Smallest Pixel Value in Series | dvUSorSS
(0028,0109) | Largest Pixel Value in Series | dvUSorSS
(0028,0110) | Smallest Image Pixel Value in Plane | dvUSorSS
(0028,0111) | Largest Image Pixel Value in Plane | dvUSorSS
(0028,0120) | Pixel Padding Value | dvUSorSS
(0028,0121) | Pixel Padding Range Limit | dvUSorSS
(0028,0200) | Image Location | dvUS
(0028,0300) | Quality Control Image | dvCS
(0028,0301) | Burned in Annotation | dvCS
(0028,0302) | Recognizable Visual Features | dvCS
(0028,0303) | Longitudinal Temporal Information Modified | dvCS
(0028,0304) | Referenced Color Palette Instance UID | dvUI
(0028,0400) | Transform Label | dvLO
(0028,0401) | Transform Version Number | dvLO
(0028,0402) | Number of Transform Steps | dvUS
(0028,0403) | Sequence of Compressed Data | dvLO
(0028,0404) | Details of Coefficients | dvAT
(0028,0410) | Rows for Nth Order Coefficients | dvUS
(0028,0411) | Columns for Nth Order Coefficients | dvUS
(0028,0412) | Coefficient Coding | dvCS
(0028,0413) | Coefficient Coding Pointers | dvAT
(0028,0700) | DCT Label | dvLO
(0028,0701) | Data Block Description | dvCS
(0028,0702) | Data Block | dvAT
(0028,0710) | Normalization Factor Format | dvUS
(0028,0720) | Zonal Map Number Format | dvUS
(0028,0721) | Zonal Map Location | dvAT
(0028,0722) | Zonal Map Format | dvUS
(0028,0730) | Adaptive Map Format | dvUS
(0028,0740) | Code Number Format | dvUS
(0028,0800) | Code Label | dvLO
(0028,0802) | Number of Table | dvUS
(0028,0803) | Code Table Location | dvAT
(0028,0804) | Bits for Code Word | dvUS
(0028,0808) | Image Data Location | dvAT
(0028,0A02) | Pixel Spacing Calibration Type | dvCS
(0028,0A04) | Pixel Spacing Calibration Description | dvLO
(0028,1040) | Pixel Intensity Relationship | dvCS
(0028,1041) | Pixel Intensity Relationship Sign | dvSS
(0028,1050) | Window Center | dvDS
(0028,1051) | Window Width | dvDS
(0028,1052) | Rescale Intercept | dvDS
(0028,1053) | Rescale Slope | dvDS
(0028,1054) | Rescale Type | dvLO
(0028,1055) | Window Center & Width Explanation | dvLO
(0028,1056) | VOI LUT Function | dvCS
(0028,1080) | Gray Scale | dvCS
(0028,1090) | Recommended Viewing Mode | dvCS
(0028,1100) | Gray Lookup Table Descriptor | dvUSorSS
(0028,1101) | Red Palette Color Lookup Table Descriptor | dvUSorSS
(0028,1102) | Green Palette Color Lookup Table Descriptor | dvUSorSS
(0028,1103) | Blue Palette Color Lookup Table Descriptor | dvUSorSS
(0028,1104) | Alpha Palette Color Lookup Table Descriptor | dvUS
(0028,1111) | Large Red Palette Color Lookup Table Descriptor | dvUSorSS
(0028,1112) | Large Green Palette Color Lookup Table Descriptor | dvUSorSS
(0028,1113) | Large Blue Palette Color Lookup Table Descriptor | dvUSorSS
(0028,1199) | Palette Color Lookup Table UID | dvUI
(0028,1200) | Gray Lookup Table Data | dvOW
(0028,1201) | Red Palette Color Lookup Table Data | dvOW
(0028,1202) | Green Palette Color Lookup Table Data | dvOW
(0028,1203) | Blue Palette Color Lookup Table Data | dvOW
(0028,1204) | Alpha Palette Color Lookup Table Data | dvOW
(0028,1211) | Large Red Palette Color Lookup Table Data | dvOW
(0028,1212) | Large Green Palette Color Lookup Table Data | dvOW
(0028,1213) | Large Blue Palette Color Lookup Table Data | dvOW
(0028,1214) | Large Palette Color Lookup Table UID | dvUI
(0028,1221) | Segmented Red Palette Color Lookup Table Data | dvOW
(0028,1222) | Segmented Green Palette Color Lookup Table Data | dvOW
(0028,1223) | Segmented Blue Palette Color Lookup Table Data | dvOW
(0028,1300) | Breast Implant Present | dvCS
(0028,1350) | Partial View | dvCS
(0028,1351) | Partial View Description | dvST
(0028,1352) | Partial View Code Sequence | dvSQ
(0028,135A) | Spatial Locations Preserved | dvCS
(0028,1401) | Data Frame Assignment Sequence | dvSQ
(0028,1402) | Data Path Assignment | dvCS
(0028,1403) | Bits Mapped to Color Lookup Table | dvUS
(0028,1404) | Blending LUT 1 Sequence | dvSQ
(0028,1405) | Blending LUT 1 Transfer Function | dvCS
(0028,1406) | Blending Weight Constant | dvFD
(0028,1407) | Blending Lookup Table Descriptor | dvUS
(0028,1408) | Blending Lookup Table Data | dvOW
(0028,140B) | Enhanced Palette Color Lookup Table Sequence | dvSQ
(0028,140C) | Blending LUT 2 Sequence | dvSQ
(0028,140D) | Blending LUT 2 Transfer Function | dvCS
(0028,140E) | Data Path ID | dvCS
(0028,140F) | RGB LUT Transfer Function | dvCS
(0028,1410) | Alpha LUT Transfer Function | dvCS
(0028,2000) | ICC Profile | dvOB
(0028,2110) | Lossy Image Compression | dvCS
(0028,2112) | Lossy Image Compression Ratio | dvDS
(0028,2114) | Lossy Image Compression Method | dvCS
(0028,3000) | Modality LUT Sequence | dvSQ
(0028,3002) | LUT Descriptor | dvUSorSS
(0028,3003) | LUT Explanation | dvLO
(0028,3004) | Modality LUT Type | dvLO
(0028,3006) | LUT Data | dvOW
(0028,3010) | VOI LUT Sequence | dvSQ
(0028,3110) | Softcopy VOI LUT Sequence | dvSQ
(0028,4000) | Image Presentation Comments | dvLT
(0028,5000) | Bi-Plane Acquisition Sequence | dvSQ
(0028,6010) | Representative Frame Number | dvUS
(0028,6020) | Frame Numbers of Interest (FOI) | dvUS
(0028,6022) | Frame of Interest Description | dvLO
(0028,6023) | Frame of Interest Type | dvCS
(0028,6030) | Mask Pointer(s) | dvUS
(0028,6040) | R Wave Pointer | dvUS
(0028,6100) | Mask Subtraction Sequence | dvSQ
(0028,6101) | Mask Operation | dvCS
(0028,6102) | Applicable Frame Range | dvUS
(0028,6110) | Mask Frame Numbers | dvUS
(0028,6112) | Contrast Frame Averaging | dvUS
(0028,6114) | Mask Sub-pixel Shift | dvFL
(0028,6120) | TID Offset | dvSS
(0028,6190) | Mask Operation Explanation | dvST
(0028,7000) | Equipment Administrator Sequence | dvSQ
(0028,7001) | Number of Display Subsystems | dvUS
(0028,7002) | Current Configuration ID | dvUS
(0028,7003) | Display Subsystem ID | dvUS
(0028,7004) | Display Subsystem Name | dvSH
(0028,7005) | Display Subsystem Description | dvLO
(0028,7006) | System Status | dvCS
(0028,7007) | System Status Comment | dvLO
(0028,7008) | Target Luminance Characteristics Sequence | dvSQ
(0028,7009) | Luminance Characteristics ID | dvUS
(0028,700A) | Display Subsystem Configuration Sequence | dvSQ
(0028,700B) | Configuration ID | dvUS
(0028,700C) | Configuration Name | dvSH
(0028,700D) | Configuration Description | dvLO
(0028,700E) | Referenced Target Luminance Characteristics ID | dvUS
(0028,700F) | QA Results Sequence | dvSQ
(0028,7010) | Display Subsystem QA Results Sequence | dvSQ
(0028,7011) | Configuration QA Results Sequence | dvSQ
(0028,7012) | Measurement Equipment Sequence | dvSQ
(0028,7013) | Measurement Functions | dvCS
(0028,7014) | Measurement Equipment Type | dvCS
(0028,7015) | Visual Evaluation Result Sequence | dvSQ
(0028,7016) | Display Calibration Result Sequence | dvSQ
(0028,7017) | DDL Value | dvUS
(0028,7018) | CIExy White Point | dvFL
(0028,7019) | Display Function Type | dvCS
(0028,701A) | Gamma Value | dvFL
(0028,701B) | Number of Luminance Points | dvUS
(0028,701C) | Luminance Response Sequence | dvSQ
(0028,701D) | Target Minimum Luminance | dvFL
(0028,701E) | Target Maximum Luminance | dvFL
(0028,701F) | Luminance Value | dvFL
(0028,7020) | Luminance Response Description | dvLO
(0028,7021) | White Point Flag | dvCS
(0028,7022) | Display Device Type Code Sequence | dvSQ
(0028,7023) | Display Subsystem Sequence | dvSQ
(0028,7024) | Luminance Result Sequence | dvSQ
(0028,7025) | Ambient Light Value Source | dvCS
(0028,7026) | Measured Characteristics | dvCS
(0028,7027) | Luminance Uniformity Result Sequence | dvSQ
(0028,7028) | Visual Evaluation Test Sequence | dvSQ
(0028,7029) | Test Result | dvCS
(0028,702A) | Test Result Comment | dvLO
(0028,702B) | Test Image Validation | dvCS
(0028,702C) | Test Pattern Code Sequence | dvSQ
(0028,702D) | Measurement Pattern Code Sequence | dvSQ
(0028,702E) | Visual Evaluation Method Code Sequence | dvSQ
(0028,7FE0) | Pixel Data Provider URL | dvUR
(0028,9001) | Data Point Rows | dvUL
(0028,9002) | Data Point Columns | dvUL
(0028,9003) | Signal Domain Columns | dvCS
(0028,9099) | Largest Monochrome Pixel Value | dvUS
(0028,9108) | Data Representation | dvCS
(0028,9110) | Pixel Measures Sequence | dvSQ
(0028,9132) | Frame VOI LUT Sequence | dvSQ
(0028,9145) | Pixel Value Transformation Sequence | dvSQ
(0028,9235) | Signal Domain Rows | dvCS
(0028,9411) | Display Filter Percentage | dvFL
(0028,9415) | Frame Pixel Shift Sequence | dvSQ
(0028,9416) | Subtraction Item ID | dvUS
(0028,9422) | Pixel Intensity Relationship LUT Sequence | dvSQ
(0028,9443) | Frame Pixel Data Properties Sequence | dvSQ
(0028,9444) | Geometrical Properties | dvCS
(0028,9445) | Geometric Maximum Distortion | dvFL
(0028,9446) | Image Processing Applied | dvCS
(0028,9454) | Mask Selection Mode | dvCS
(0028,9474) | LUT Function | dvCS
(0028,9478) | Mask Visibility Percentage | dvFL
(0028,9501) | Pixel Shift Sequence | dvSQ
(0028,9502) | Region Pixel Shift Sequence | dvSQ
(0028,9503) | Vertices of the Region | dvSS
(0028,9505) | Multi-frame Presentation Sequence | dvSQ
(0028,9506) | Pixel Shift Frame Range | dvUS
(0028,9507) | LUT Frame Range | dvUS
(0028,9520) | Image to Equipment Mapping Matrix | dvDS
(0028,9537) | Equipment Coordinate System Identification | dvCS
(0029,0000) | Undocumented | dvUSorSS
(0029,0001) | Undocumented | dvUSorSS
(0029,0002) | Undocumented | dvUSorSS
(0029,0003) | Undocumented | dvUSorSS
(0029,0004) | Undocumented | dvUSorSS
(0029,0005) | Undocumented | dvUSorSS
(0029,0006) | Undocumented | dvUSorSS
(0029,0007) | Undocumented | dvSL
(0029,0008) | Undocumented | dvSH
(0029,0009) | Undocumented | dvSH
(0029,000A) | Undocumented | dvSS
(0029,000C) | Undocumented | dvUSorSS
(0029,000E) | Undocumented | dvCS
(0029,000F) | Undocumented | dvCS
(0029,0010) | Undocumented | dvUSorSS
(0029,0011) | Undocumented | dvUSorSS
(0029,0013) | Undocumented | dvLT
(0029,0015) | Undocumented | dvUSorSS
(0029,0016) | Undocumented | dvSL
(0029,0017) | Undocumented | dvSL
(0029,0018) | Undocumented | dvSL
(0029,001A) | Undocumented | dvSL
(0029,001E) | Undocumented | dvUSorSS
(0029,001F) | Undocumented | dvUSorSS
(0029,0020) | Undocumented | dvUSorSS
(0029,0022) | Undocumented | dvIS
(0029,0025) | Undocumented | dvLT
(0029,0026) | Undocumented | dvSS
(0029,0030) | Undocumented | dvUSorSS
(0029,0031) | Undocumented | dvUSorSS
(0029,0032) | Undocumented | dvUSorSS
(0029,0033) | Undocumented | dvUSorSS
(0029,0034) | Undocumented | dvUSorSS
(0029,0035) | Undocumented | dvSL
(0029,0038) | Undocumented | dvUS
(0029,0040) | Undocumented | dvUSorSS
(0029,0041) | Undocumented | dvDS
(0029,0043) | Undocumented | dvDS
(0029,0044) | Undocumented | dvUS
(0029,004E) | Undocumented | dvCS
(0029,004F) | Undocumented | dvCS
(0029,0050) | Undocumented | dvUSorSS
(0029,0051) | Undocumented | dvLT
(0029,0052) | Undocumented | dvLT
(0029,0053) | Undocumented | dvLT
(0029,0060) | Undocumented | dvUSorSS
(0029,0061) | Undocumented | dvUSorSS
(0029,0067) | Undocumented | dvLT
(0029,0070) | Undocumented | dvUSorSS
(0029,0071) | Undocumented | dvUSorSS
(0029,0072) | Undocumented | dvUSorSS
(0029,0077) | Undocumented | dvCS
(0029,0078) | Undocumented | dvLT
(0029,0079) | Undocumented | dvCS
(0029,007E) | Undocumented | dvCS
(0029,007F) | Undocumented | dvCS
(0029,0080) | Undocumented | dvUSorSS
(0029,0081) | Undocumented | dvUSorSS
(0029,0082) | Undocumented | dvIS
(0029,0083) | Undocumented | dvIS
(0029,008E) | Undocumented | dvCS
(0029,008F) | Undocumented | dvCS
(0029,0090) | Undocumented | dvIS
(0029,0099) | Undocumented | dvLT
(0029,00A0) | Undocumented | dvUS
(0029,00A1) | Undocumented | dvUS
(0029,00A2) | Undocumented | dvUS
(0029,00B0) | Undocumented | dvUS
(0029,00B2) | Undocumented | dvUS
(0029,00C0) | Undocumented | dvLT
(0029,00C1) | Undocumented | dvUSorSS
(0029,00C3) | Undocumented | dvIS
(0029,00C4) | Undocumented | dvIS
(0029,00C5) | Undocumented | dvLT
(0029,00CE) | Undocumented | dvCS
(0029,00CF) | Undocumented | dvCS
(0029,00D0) | Undocumented | dvIS
(0029,00D1) | Undocumented | dvIS
(0029,00D5) | Undocumented | dvLT
(0031,0010) | Undocumented | dvLT
(0031,0012) | Undocumented | dvLT
(0031,0030) | Undocumented | dvDA
(0031,0032) | Undocumented | dvTM
(0031,0033) | Undocumented | dvTM
(0031,0045) | Undocumented | dvLT
(0031,004A) | Undocumented | dvTM
(0031,0050) | Undocumented | dvLT
(0031,0080) | Undocumented | dvLT
(0032,0000) | Study Group Length | dvUL
(0032,000A) | Study Status ID | dvCS
(0032,000C) | Study Priority ID | dvCS
(0032,0012) | Study ID Issuer | dvLO
(0032,0032) | Study Verified Date | dvDA
(0032,0033) | Study Verified Time | dvTM
(0032,0034) | Study Read Date | dvDA
(0032,0035) | Study Read Time | dvTM
(0032,1000) | Scheduled Study Start Date | dvDA
(0032,1001) | Scheduled Study Start Time | dvTM
(0032,1010) | Scheduled Study Stop Date | dvDA
(0032,1011) | Scheduled Study Stop Time | dvTM
(0032,1020) | Scheduled Study Location | dvLO
(0032,1021) | Scheduled Study Location AE Title | dvAE
(0032,1030) | Reason for Study | dvLO
(0032,1031) | Requesting Physician Identification Sequence | dvSQ
(0032,1032) | Requesting Physician | dvPN
(0032,1033) | Requesting Service | dvLO
(0032,1034) | Requesting Service Code Sequence | dvSQ
(0032,1040) | Study Arrival Date | dvDA
(0032,1041) | Study Arrival Time | dvTM
(0032,1050) | Study Completion Date | dvDA
(0032,1051) | Study Completion Time | dvTM
(0032,1055) | Study Component Status ID | dvCS
(0032,1060) | Requested Procedure Description | dvLO
(0032,1064) | Requested Procedure Code Sequence | dvSQ
(0032,1070) | Requested Contrast Agent | dvLO
(0032,4000) | Study Comments | dvLT
(0033,0001) | Undocumented | dvUN
(0033,0002) | Undocumented | dvUN
(0033,0005) | Undocumented | dvUN
(0033,0006) | Undocumented | dvUN
(0033,0010) | Undocumented | dvLT
(0037,0010) | Undocumented | dvLO
(0037,0020) | Undocumented | dvUS
(0037,0040) | Undocumented | dvSH
(0037,0042) | Undocumented | dvSH
(0037,0050) | Undocumented | dvCS
(0037,0060) | Undocumented | dvUS
(0038,0000) | Visit Group Length | dvUL
(0038,0004) | Referenced Patient Alias Sequence | dvSQ
(0038,0008) | Visit Status ID | dvCS
(0038,0010) | Admission ID | dvLO
(0038,0011) | Issuer of Admission ID | dvLO
(0038,0014) | Issuer of Admission ID Sequence | dvSQ
(0038,0016) | Route of Admissions | dvLO
(0038,001A) | Scheduled Admission Date | dvDA
(0038,001B) | Scheduled Admission Time | dvTM
(0038,001C) | Scheduled Discharge Date | dvDA
(0038,001D) | Scheduled Discharge Time | dvTM
(0038,001E) | Scheduled Patient Institution Residence | dvLO
(0038,0020) | Admitting Date | dvDA
(0038,0021) | Admitting Time | dvTM
(0038,0030) | Discharge Date | dvDA
(0038,0032) | Discharge Time | dvTM
(0038,0040) | Discharge Diagnosis Description | dvLO
(0038,0044) | Discharge Diagnosis Code Sequence | dvSQ
(0038,0050) | Special Needs | dvLO
(0038,0060) | Service Episode ID | dvLO
(0038,0061) | Issuer of Service Episode ID | dvLO
(0038,0062) | Service Episode Description | dvLO
(0038,0064) | Issuer of Service Episode ID Sequence | dvSQ
(0038,0100) | Pertinent Documents Sequence | dvSQ
(0038,0300) | Current Patient Location | dvLO
(0038,0400) | Patient's Institution Residence | dvLO
(0038,0500) | Patient State | dvLO
(0038,0502) | Patient Clinical Trial Participation Sequence | dvSQ
(0038,4000) | Visit Comments | dvLT
(0039,0080) | Undocumented | dvIS
(0039,0085) | Undocumented | dvDA
(0039,0090) | Undocumented | dvTM
(0039,0095) | Undocumented | dvLO
(0039,00AA) | Undocumented | dvCS
(003A,0002) | Undocumented | dvSQ
(003A,0004) | Waveform Originality | dvCS
(003A,0005) | Number of Waveform Channels | dvUS
(003A,0010) | Number of Waveform Samples | dvUL
(003A,001A) | Sampling Frequency | dvDS
(003A,0020) | Multiplex Group Label | dvSH
(003A,0103) | Undocumented | dvCS
(003A,0122) | Undocumented | dvOB
(003A,0200) | Channel Definition Sequence | dvSQ
(003A,0202) | Waveform Channel Number | dvIS
(003A,0203) | Channel Label | dvSH
(003A,0205) | Channel Status | dvCS
(003A,0208) | Channel Source Sequence | dvSQ
(003A,0209) | Channel Source Modifiers Sequence | dvSQ
(003A,020A) | Source Waveform Sequence | dvSQ
(003A,020B) | Undocumented | dvSQ
(003A,020C) | Channel Derivation Description | dvLO
(003A,0210) | Channel Sensitivity | dvDS
(003A,0211) | Channel Sensitivity Units Sequence | dvSQ
(003A,0212) | Channel Sensitivity Correction Factor | dvDS
(003A,0213) | Channel Baseline | dvDS
(003A,0214) | Channel Time Skew | dvDS
(003A,0215) | Channel Sample Skew | dvDS
(003A,0216) | Undocumented | dvOB
(003A,0217) | Undocumented | dvOB
(003A,0218) | Channel Offset | dvDS
(003A,021A) | Waveform Bits Stored | dvUS
(003A,0220) | Filter Low Frequency | dvDS
(003A,0221) | Filter High Frequency | dvDS
(003A,0222) | Notch Filter Frequency | dvDS
(003A,0223) | Notch Filter Bandwidth | dvDS
(003A,0230) | Waveform Data Display Scale | dvFL
(003A,0231) | Waveform Display Background CIELab Value | dvUS
(003A,0240) | Waveform Presentation Group Sequence | dvSQ
(003A,0241) | Presentation Group Number | dvUS
(003A,0242) | Channel Display Sequence | dvSQ
(003A,0244) | Channel Recommended Display CIELab Value | dvUS
(003A,0245) | Channel Position | dvFL
(003A,0246) | Display Shading Flag | dvCS
(003A,0247) | Fractional Channel Display Scale | dvFL
(003A,0248) | Absolute Channel Display Scale | dvFL
(003A,0300) | Multiplexed Audio Channels Description Code Sequence | dvSQ
(003A,0301) | Channel Identification Code | dvIS
(003A,0302) | Channel Mode | dvCS
(003A,1000) | Undocumented | dvOB
(0040,0000) | Modality Worklist Group Length | dvUL
(0040,0001) | Scheduled Station AE Title | dvAE
(0040,0002) | Scheduled Procedure Step Start Date | dvDA
(0040,0003) | Scheduled Procedure Step Start Time | dvTM
(0040,0004) | Scheduled Procedure Step End Date | dvDA
(0040,0005) | Scheduled Procedure Step End Time | dvTM
(0040,0006) | Scheduled Performing Physician's Name | dvPN
(0040,0007) | Scheduled Procedure Step Description | dvLO
(0040,0008) | Scheduled Protocol Code Sequence | dvSQ
(0040,0009) | Scheduled Procedure Step ID | dvSH
(0040,000A) | Stage Code Sequence | dvSQ
(0040,000B) | Scheduled Performing Physician Identification Sequence | dvSQ
(0040,0010) | Scheduled Station Name | dvSH
(0040,0011) | Scheduled Procedure Step Location | dvSH
(0040,0012) | Pre-Medication | dvLO
(0040,0020) | Scheduled Procedure Step Status | dvCS
(0040,0026) | Order Placer Identifier Sequence | dvSQ
(0040,0027) | Order Filler Identifier Sequence | dvSQ
(0040,0031) | Local Namespace Entity ID | dvUT
(0040,0032) | Universal Entity ID | dvUT
(0040,0033) | Universal Entity ID Type | dvCS
(0040,0035) | Identifier Type Code | dvCS
(0040,0036) | Assigning Facility Sequence | dvSQ
(0040,0039) | Assigning Jurisdiction Code Sequence | dvSQ
(0040,003A) | Assigning Agency or Department Code Sequence | dvSQ
(0040,0100) | Scheduled Procedure Step Sequence | dvSQ
(0040,0220) | Referenced Non-Image Composite SOP Instance Sequence | dvSQ
(0040,0241) | Performed Station AE Title | dvAE
(0040,0242) | Performed Station Name | dvSH
(0040,0243) | Performed Location | dvSH
(0040,0244) | Performed Procedure Step Start Date | dvDA
(0040,0245) | Performed Procedure Step Start Time | dvTM
(0040,0250) | Performed Procedure Step End Date | dvDA
(0040,0251) | Performed Procedure Step End Time | dvTM
(0040,0252) | Performed Procedure Step Status | dvCS
(0040,0253) | Performed Procedure Step ID | dvSH
(0040,0254) | Performed Procedure Step Description | dvLO
(0040,0255) | Performed Procedure Type Description | dvLO
(0040,0260) | Performed Protocol Code Sequence | dvSQ
(0040,0261) | Performed Protocol Type | dvCS
(0040,0270) | Scheduled Step Attributes Sequence | dvSQ
(0040,0275) | Request Attributes Sequence | dvSQ
(0040,0280) | Comments on the Performed Procedure Step | dvST
(0040,0281) | Performed Procedure Step Discontinuation Reason Code Sequence | dvSQ
(0040,0293) | Quantity Sequence | dvSQ
(0040,0294) | Quantity | dvDS
(0040,0295) | Measuring Units Sequence | dvSQ
(0040,0296) | Billing Item Sequence | dvSQ
(0040,0300) | Total Time of Fluoroscopy | dvUS
(0040,0301) | Total Number of Exposures | dvUS
(0040,0302) | Entrance Dose | dvUS
(0040,0303) | Exposed Area | dvUS
(0040,0306) | Distance Source to Entrance | dvDS
(0040,0307) | Distance Source to Support | dvDS
(0040,030E) | Exposure Dose Sequence | dvSQ
(0040,0310) | Comments on Radiation Dose | dvST
(0040,0312) | X-Ray Output | dvDS
(0040,0314) | Half Value Layer | dvDS
(0040,0316) | Organ Dose | dvDS
(0040,0318) | Organ Exposed | dvCS
(0040,0320) | Billing Procedure Step Sequence | dvSQ
(0040,0321) | Film Consumption Sequence | dvSQ
(0040,0324) | Billing Supplies and Devices Sequence | dvSQ
(0040,0330) | Referenced Procedure Step Sequence | dvSQ
(0040,0340) | Performed Series Sequence | dvSQ
(0040,0400) | Comments on the Scheduled Procedure Step | dvLT
(0040,0440) | Protocol Context Sequence | dvSQ
(0040,0441) | Content Item Modifier Sequence | dvSQ
(0040,0500) | Scheduled Specimen Sequence | dvSQ
(0040,050A) | Specimen Accession Number | dvLO
(0040,0512) | Container Identifier | dvLO
(0040,0513) | Issuer of the Container Identifier Sequence | dvSQ
(0040,0515) | Alternate Container Identifier Sequence | dvSQ
(0040,0518) | Container Type Code Sequence | dvSQ
(0040,051A) | Container Description | dvLO
(0040,0520) | Container Component Sequence | dvSQ
(0040,0550) | Specimen Sequence | dvSQ
(0040,0551) | Specimen Identifier | dvLO
(0040,0552) | Specimen Description Sequence (Trial) | dvSQ
(0040,0553) | Specimen Description (Trial) | dvST
(0040,0554) | Specimen UID | dvUI
(0040,0555) | Acquisition Context Sequence | dvSQ
(0040,0556) | Acquisition Context Description | dvST
(0040,0560) | Specimen Description Sequence | dvSQ
(0040,0562) | Issuer of the Specimen Identifier Sequence | dvSQ
(0040,059A) | Specimen Type Code Sequence | dvSQ
(0040,0600) | Specimen Short Description | dvLO
(0040,0602) | Specimen Detailed Description | dvUT
(0040,0610) | Specimen Preparation Sequence | dvSQ
(0040,0612) | Specimen Preparation Step Content Item Sequence | dvSQ
(0040,0620) | Specimen Localization Content Item Sequence | dvSQ
(0040,06FA) | Slide Identifier | dvLO
(0040,071A) | Image Center Point Coordinates Sequence | dvSQ
(0040,072A) | X Offset in Slide Coordinate System | dvDS
(0040,073A) | Y Offset in Slide Coordinate System | dvDS
(0040,074A) | Z Offset in Slide Coordinate System | dvDS
(0040,08D8) | Pixel Spacing Sequence | dvSQ
(0040,08DA) | Coordinate System Axis Code Sequence | dvSQ
(0040,08EA) | Measurement Units Code Sequence | dvSQ
(0040,09F8) | Vital Stain Code Sequence (Trial) | dvSQ
(0040,1001) | Requested Procedure ID | dvSH
(0040,1002) | Reason for the Requested Procedure | dvLO
(0040,1003) | Requested Procedure Priority | dvSH
(0040,1004) | Patient Transport Arrangements | dvLO
(0040,1005) | Requested Procedure Location | dvLO
(0040,1006) | Placer Order Number / Procedure | dvSH
(0040,1007) | Filler Order Number / Procedure | dvSH
(0040,1008) | Confidentiality Code | dvLO
(0040,1009) | Reporting Priority | dvSH
(0040,100A) | Reason for Requested Procedure Code Sequence | dvSQ
(0040,1010) | Names of Intended Recipients of Results | dvPN
(0040,1011) | Intended Recipients of Results Identification Sequence | dvSQ
(0040,1012) | Reason for Performed Procedure Code Sequence | dvSQ
(0040,1060) | Requested Procedure Description (Trial) | dvLO
(0040,1101) | Person Identification Code Sequence | dvSQ
(0040,1102) | Person's Address | dvST
(0040,1103) | Person's Telephone Numbers | dvLO
(0040,1400) | Requested Procedure Comments | dvLT
(0040,2001) | Reason for the Imaging Service Request | dvLO
(0040,2004) | Issue Date of Imaging Service Request | dvDA
(0040,2005) | Issue Time of Imaging Service Request | dvTM
(0040,2006) | Placer Order Number / Imaging Service Request (Retired) | dvSH
(0040,2007) | Filler Order Number / Imaging Service Request (Retired) | dvSH
(0040,2008) | Order Entered By | dvPN
(0040,2009) | Order Enterer's Location | dvSH
(0040,2010) | Order Callback Phone Number | dvSH
(0040,2016) | Placer Order Number / Imaging Service Request | dvLO
(0040,2017) | Filler Order Number / Imaging Service Request | dvLO
(0040,2400) | Imaging Service Request Comments | dvLT
(0040,3001) | Confidentiality Constraint on Patient Data Description | dvLO
(0040,4001) | General Purpose Scheduled Procedure Step Status | dvCS
(0040,4002) | General Purpose Performed Procedure Step Status | dvCS
(0040,4003) | General Purpose Scheduled Procedure Step Priority | dvCS
(0040,4004) | Scheduled Processing Applications Code Sequence | dvSQ
(0040,4005) | Scheduled Procedure Step Start Date/Time | dvDT
(0040,4006) | Multiple Copies Flag | dvCS
(0040,4007) | Performed Processing Applications Code Sequence | dvSQ
(0040,4009) | Human Performer Code Sequence | dvSQ
(0040,4010) | Scheduled Procedure Step Modification Date/Time | dvDT
(0040,4011) | Expected Completion Date/Time | dvDT
(0040,4015) | Resulting General Purpose Performed Procedure Steps Sequence | dvSQ
(0040,4016) | Referenced General Purpose Scheduled Procedure Step Sequence | dvSQ
(0040,4018) | Scheduled Workitem Code Sequence | dvSQ
(0040,4019) | Performed Workitem Code Sequence | dvSQ
(0040,4020) | Input Availability Flag | dvCS
(0040,4021) | Input Information Sequence | dvSQ
(0040,4022) | Relevant Information Sequence | dvSQ
(0040,4023) | Referenced General Purpose Scheduled Procedure Step Transaction UID | dvUI
(0040,4025) | Scheduled Station Name Code Sequence | dvSQ
(0040,4026) | Scheduled Station Class Code Sequence | dvSQ
(0040,4027) | Scheduled Station Geographic Location Code Sequence | dvSQ
(0040,4028) | Performed Station Name Code Sequence | dvSQ
(0040,4029) | Performed Station Class Code Sequence | dvSQ
(0040,4030) | Performed Station Geographic Location Code Sequence | dvSQ
(0040,4031) | Requested Subsequent Workitem Code Sequence | dvSQ
(0040,4032) | Non-DICOM Output Code Sequence | dvSQ
(0040,4033) | Output Information Sequence | dvSQ
(0040,4034) | Scheduled Human Performers Sequence | dvSQ
(0040,4035) | Actual Human Performers Sequence | dvSQ
(0040,4036) | Human Performer's Organization | dvLO
(0040,4037) | Human Performer's Name | dvPN
(0040,4040) | Raw Data Handling | dvCS
(0040,4041) | Input Readiness State | dvCS
(0040,4050) | Performed Procedure Step Start Date/Time | dvDT
(0040,4051) | Performed Procedure Step End Date/Time | dvDT
(0040,4052) | Procedure Step Cancellation Date/Time | dvDT
(0040,8302) | Entrance Dose in mGy | dvDS
(0040,9094) | Referenced Image Real World Value Mapping Sequence | dvSQ
(0040,9096) | Real World Value Mapping Sequence | dvSQ
(0040,9098) | Pixel Value Mapping Code Sequence | dvSQ
(0040,9210) | LUT Label | dvSH
(0040,9211) | Real World Value Last Value Mapped | dvUSorSS
(0040,9212) | Real World Value LUT Data | dvFD
(0040,9216) | Real World Value First Value Mapped | dvUSorSS
(0040,9224) | Real World Value Intercept | dvFD
(0040,9225) | Real World Value Slope | dvFD
(0040,A007) | Findings Flag (Trial) | dvCS
(0040,A010) | Relationship Type | dvCS
(0040,A020) | Findings Sequence (Trial) | dvSQ
(0040,A021) | Findings Group UID (Trial) | dvUI
(0040,A022) | Referenced Findings Group UID (Trial) | dvUI
(0040,A023) | Findings Group Recording Date (Trial) | dvDA
(0040,A024) | Findings Group Recording Time (Trial) | dvTM
(0040,A026) | Findings Source Category Code Sequence (Trial) | dvSQ
(0040,A027) | Verifying Organization | dvLO
(0040,A028) | Documenting Organization Identifier Code Sequence (Trial) | dvSQ
(0040,A030) | Verification Date/Time | dvDT
(0040,A032) | Observation Date/Time | dvDT
(0040,A040) | Value Type | dvCS
(0040,A043) | Concept Name Code Sequence | dvSQ
(0040,A047) | Measurement Precision Description (Trial) | dvLO
(0040,A050) | Continuity of Content | dvCS
(0040,A057) | Urgency or Priority Alerts (Trial) | dvCS
(0040,A060) | Sequencing Indicator (Trial) | dvLO
(0040,A066) | Document Identifier Code Sequence (Trial) | dvSQ
(0040,A067) | Document Author (Trial) | dvPN
(0040,A068) | Document Author Identifier Code Sequence (Trial) | dvSQ
(0040,A070) | Identifier Code Sequence (Trial) | dvSQ
(0040,A073) | Verifying Observer Sequence | dvSQ
(0040,A074) | Object Binary Identifier (Trial) | dvOB
(0040,A075) | Verifying Observer Name | dvPN
(0040,A076) | Documenting Observer Identifier Code Sequence (Trial) | dvSQ
(0040,A078) | Author Observer Sequence | dvSQ
(0040,A07A) | Participant Sequence | dvSQ
(0040,A07C) | Custodial Organization Sequence | dvSQ
(0040,A080) | Participation Type | dvCS
(0040,A082) | Participation Date/Time | dvDT
(0040,A084) | Observer Type | dvCS
(0040,A085) | Procedure Identifier Code Sequence (Trial) | dvSQ
(0040,A088) | Verifying Observer Identification Code Sequence | dvSQ
(0040,A089) | Object Directory Binary Identifier (Trial) | dvOB
(0040,A090) | Equivalent CDA Document Sequence | dvSQ
(0040,A0A0) | Undocumented | dvCS
(0040,A0B0) | Referenced Waveform Channels | dvUS
(0040,A110) | Date of Document or Verbal Transaction (Trial) | dvDA
(0040,A112) | Time of Document Creation or Verbal Transaction (Trial) | dvTM
(0040,A120) | Date/Time | dvDT
(0040,A121) | Date | dvDA
(0040,A122) | Time | dvTM
(0040,A123) | Person Name | dvPN
(0040,A124) | UID | dvUI
(0040,A125) | Report Status ID (Trial) | dvCS
(0040,A130) | Temporal Range Type | dvCS
(0040,A132) | Referenced Sample Positions | dvUL
(0040,A136) | Referenced Frame Numbers | dvUS
(0040,A138) | Referenced Time Offsets | dvDS
(0040,A13A) | Referenced Date/Time | dvDT
(0040,A160) | Text Value | dvUT
(0040,A161) | Floating Point Value | dvFD
(0040,A162) | Rational Numerator Value | dvSL
(0040,A163) | Rational Denominator Value | dvUL
(0040,A167) | Observation Category Code Sequence (Trial) | dvSQ
(0040,A168) | Concept Code Sequence | dvSQ
(0040,A16A) | Bibliographic Citation (Trial) | dvST
(0040,A170) | Purpose of Reference Code Sequence | dvSQ
(0040,A171) | Observation UID | dvUI
(0040,A172) | Referenced Observation UID (Trial) | dvUI
(0040,A173) | Referenced Observation Class (Trial) | dvCS
(0040,A174) | Referenced Object Observation Class (Trial) | dvCS
(0040,A180) | Annotation Group Number | dvUS
(0040,A192) | Observation Date (Trial) | dvDA
(0040,A193) | Observation Time (Trial) | dvTM
(0040,A194) | Measurement Automation (Trial) | dvCS
(0040,A195) | Modifier Code Sequence | dvSQ
(0040,A224) | Identification Description (Trial) | dvST
(0040,A290) | Coordinates Set Geometric Type (Trial) | dvCS
(0040,A296) | Algorithm Code Sequence (Trial) | dvSQ
(0040,A297) | Algorithm Description (Trial) | dvST
(0040,A29A) | Pixel Coordinates Set (Trial) | dvSL
(0040,A300) | Measured Value Sequence | dvSQ
(0040,A301) | Numeric Value Qualifier Code Sequence | dvSQ
(0040,A307) | Current Observer (Trial) | dvPN
(0040,A30A) | Numeric Value | dvDS
(0040,A313) | Referenced Accession Sequence (Trial) | dvSQ
(0040,A33A) | Report Status Comment (Trial) | dvST
(0040,A340) | Procedure Context Sequence (Trial) | dvSQ
(0040,A352) | Verbal Source (Trial) | dvPN
(0040,A353) | Address (Trial) | dvST
(0040,A354) | Telephone Number (Trial) | dvLO
(0040,A358) | Verbal Source Identifier Code Sequence (Trial) | dvSQ
(0040,A360) | Predecessor Documents Sequence | dvSQ
(0040,A370) | Referenced Request Sequence | dvSQ
(0040,A372) | Performed Procedure Code Sequence | dvSQ
(0040,A375) | Current Requested Procedure Evidence Sequence | dvSQ
(0040,A380) | Report Detail Sequence (Trial) | dvSQ
(0040,A385) | Pertinent Other Evidence Sequence | dvSQ
(0040,A390) | HL7 Structured Document Reference Sequence | dvSQ
(0040,A402) | Observation Subject UID (Trial) | dvUI
(0040,A403) | Observation Subject Class (Trial) | dvCS
(0040,A404) | Observation Subject Type Code Sequence (Trial) | dvSQ
(0040,A491) | Completion Flag | dvCS
(0040,A492) | Completion Flag Description | dvLO
(0040,A493) | Verification Flag | dvCS
(0040,A494) | Archive Requested | dvCS
(0040,A496) | Preliminary Flag | dvCS
(0040,A504) | Content Template Sequence | dvSQ
(0040,A525) | Identical Documents Sequence | dvSQ
(0040,A600) | Observation Subject Context Flag (Trial) | dvCS
(0040,A601) | Observer Context Flag (Trial) | dvCS
(0040,A603) | Procedure Context Flag (Trial) | dvCS
(0040,A730) | Content Sequence | dvSQ
(0040,A731) | Relationship Sequence (Trial) | dvSQ
(0040,A732) | Relationship Type Code Sequence (Trial) | dvSQ
(0040,A744) | Language Code Sequence (Trial) | dvSQ
(0040,A992) | Uniform Resource Locator (Trial) | dvST
(0040,B020) | Waveform Annotation Sequence | dvSQ
(0040,DB00) | Template Identifier | dvCS
(0040,DB06) | Template Version | dvDT
(0040,DB07) | Template Local Version | dvDT
(0040,DB0B) | Template Extension Flag | dvCS
(0040,DB0C) | Template Extension Organization UID | dvUI
(0040,DB0D) | Template Extension Creator UID | dvUI
(0040,DB73) | Referenced Content Item Identifier | dvUL
(0040,E001) | HL7 Instance Identifier | dvST
(0040,E004) | HL7 Document Effective Time | dvDT
(0040,E006) | HL7 Document Type Code Sequence | dvSQ
(0040,E008) | Document Class Code Sequence | dvSQ
(0040,E010) | Retrieve URI | dvUR
(0040,E011) | Retrieve Location UID | dvUI
(0040,E020) | Type of Instances | dvCS
(0040,E021) | DICOM Retrieval Sequence | dvSQ
(0040,E022) | DICOM Media Retrieval Sequence | dvSQ
(0040,E023) | WADO Retrieval Sequence | dvSQ
(0040,E024) | XDS Retrieval Sequence | dvSQ
(0040,E030) | Repository Unique ID | dvUI
(0040,E031) | Home Community ID | dvUI
(0041,0000) | Undocumented | dvLT
(0041,0010) | Undocumented | dvUSorSS
(0041,0011) | Undocumented | dvUSorSS
(0041,0012) | Undocumented | dvUL
(0041,0013) | Undocumented | dvSQ
(0041,0014) | Undocumented | dvSQ
(0041,0015) | Undocumented | dvUS
(0041,0020) | Undocumented | dvUSorSS
(0041,0021) | Undocumented | dvUI
(0041,0022) | Undocumented | dvUI
(0041,0030) | Undocumented | dvUSorSS
(0041,0031) | Undocumented | dvUSorSS
(0041,0032) | Undocumented | dvUSorSS
(0041,0034) | Undocumented | dvDA
(0041,0036) | Undocumented | dvTM
(0041,0040) | Undocumented | dvLT
(0041,0041) | Undocumented | dvUI
(0041,0042) | Undocumented | dvUI
(0041,0050) | Undocumented | dvUSorSS
(0041,0060) | Undocumented | dvUL
(0041,0062) | Undocumented | dvUL
(0041,00A0) | Undocumented | dvLT
(0041,00A1) | Undocumented | dvUS
(0041,00A2) | Undocumented | dvLT
(0041,00A3) | Undocumented | dvUL
(0041,00B0) | Undocumented | dvLT
(0041,00B1) | Undocumented | dvUS
(0041,00B2) | Undocumented | dvUL
(0041,00B3) | Undocumented | dvUL
(0042,0010) | Document Title | dvST
(0042,0011) | Encapsulated Document | dvOB
(0042,0012) | MIME Type of Encapsulated Document | dvLO
(0042,0013) | Source Instance Sequence | dvSQ
(0042,0014) | List of MIME Types | dvLO
(0043,0001) | Undocumented | dvSS
(0043,0002) | Undocumented | dvSS
(0043,0003) | Undocumented | dvSS
(0043,0004) | Undocumented | dvSS
(0043,0005) | Undocumented | dvSS
(0043,0006) | Undocumented | dvSS
(0043,0007) | Undocumented | dvSS
(0043,0008) | Undocumented | dvSS
(0043,0009) | Undocumented | dvSS
(0043,000A) | Undocumented | dvSS
(0043,000B) | Undocumented | dvDS
(0043,000C) | Undocumented | dvDS
(0043,000D) | Undocumented | dvDS
(0043,000E) | Undocumented | dvDS
(0043,000F) | Undocumented | dvDS
(0043,0010) | Undocumented | dvUS
(0043,0011) | Undocumented | dvUS
(0043,0012) | Undocumented | dvSS
(0043,0013) | Undocumented | dvSS
(0043,0014) | Undocumented | dvSS
(0043,0015) | Undocumented | dvSS
(0043,0016) | Undocumented | dvSS
(0043,0017) | Undocumented | dvDS
(0043,0018) | Undocumented | dvDS
(0043,0019) | Undocumented | dvSS
(0043,001A) | Undocumented | dvSL
(0043,001B) | Undocumented | dvSS
(0043,001C) | Undocumented | dvSS
(0043,001D) | Undocumented | dvSS
(0043,001E) | Undocumented | dvUSorSS
(0043,001F) | Undocumented | dvSL
(0043,0020) | Undocumented | dvDS
(0043,0021) | Undocumented | dvSS
(0043,0025) | Undocumented | dvSS
(0043,0026) | Undocumented | dvUS
(0043,0027) | Undocumented | dvUSorSS
(0043,0028) | Undocumented | dvOB
(0043,0029) | Undocumented | dvOB
(0043,002A) | Undocumented | dvOB
(0043,002B) | Undocumented | dvSS
(0043,002C) | Undocumented | dvSS
(0043,002D) | Undocumented | dvSH
(0043,002E) | Undocumented | dvSH
(0043,002F) | Undocumented | dvSS
(0043,0030) | Undocumented | dvSS
(0043,0031) | Undocumented | dvDS
(0043,0032) | Undocumented | dvSS
(0043,0033) | Undocumented | dvFL
(0043,0034) | Undocumented | dvIS
(0043,0035) | Undocumented | dvUL
(0043,0036) | Undocumented | dvUL
(0043,0037) | Undocumented | dvUL
(0043,0038) | Undocumented | dvFL
(0043,0039) | Undocumented | dvIS
(0043,0040) | Undocumented | dvFL
(0043,0041) | Undocumented | dvFL
(0043,0042) | Undocumented | dvSL
(0043,0043) | Undocumented | dvSL
(0043,0044) | Undocumented | dvSL
(0043,0045) | Undocumented | dvSL
(0043,0046) | Undocumented | dvSL
(0043,0047) | Undocumented | dvSL
(0043,0048) | Undocumented | dvSL
(0043,0049) | Undocumented | dvSL
(0043,004A) | Undocumented | dvSS
(0043,004B) | Undocumented | dvSL
(0043,004C) | Undocumented | dvSS
(0043,004D) | Undocumented | dvFL
(0043,004E) | Undocumented | dvFL
(0043,1000) | Undocumented | dvLO
(0043,1001) | Bitmap of Prescan Options | dvLO
(0044,0000) | Undocumented | dvUI
(0044,0001) | Product Package Identifier | dvST
(0044,0002) | Substance Administration Approval | dvCS
(0044,0003) | Approval Status Further Description | dvLT
(0044,0004) | Approval Status Date/Time | dvDT
(0044,0007) | Product Type Code Sequence | dvSQ
(0044,0008) | Product Name | dvLO
(0044,0009) | Product Description | dvLT
(0044,000A) | Product Lot Identifier | dvLO
(0044,000B) | Product Expiration Date/Time | dvDT
(0044,0010) | Substance Administration Date/Time | dvDT
(0044,0011) | Substance Administration Notes | dvLO
(0044,0012) | Substance Administration Device ID | dvLO
(0044,0013) | Product Parameter Sequence | dvSQ
(0044,0019) | Substance Administration Parameter Sequence | dvSQ
(0045,0004) | Undocumented | dvCS
(0045,0006) | Undocumented | dvDS
(0045,0009) | Undocumented | dvDS
(0045,000B) | Undocumented | dvCS
(0045,000C) | Undocumented | dvDS
(0045,000D) | Undocumented | dvDS
(0045,0011) | Undocumented | dvDS
(0045,0012) | Undocumented | dvIS
(0045,0013) | Undocumented | dvST
(0045,0014) | Undocumented | dvDS
(0045,0015) | Undocumented | dvIS
(0045,0016) | Undocumented | dvIS
(0045,001B) | Undocumented | dvCS
(0045,001D) | Undocumented | dvDS
(0045,001E) | Undocumented | dvDS
(0045,001F) | Undocumented | dvDS
(0045,0020) | Undocumented | dvDS
(0045,0021) | Undocumented | dvDS
(0045,0022) | Undocumented | dvDS
(0045,0023) | Undocumented | dvDS
(0045,0024) | Undocumented | dvDS
(0045,0025) | Undocumented | dvDS
(0045,0026) | Undocumented | dvOB
(0045,0027) | Undocumented | dvIS
(0045,0028) | Undocumented | dvCS
(0045,0029) | Undocumented | dvDS
(0045,002A) | Undocumented | dvIS
(0045,002B) | Undocumented | dvIS
(0045,0039) | Undocumented | dvUS
(0045,003A) | Undocumented | dvUS
(0045,003B) | Undocumented | dvUS
(0045,003C) | Undocumented | dvUS
(0045,003D) | Undocumented | dvUS
(0045,003E) | Undocumented | dvUS
(0045,003F) | Undocumented | dvOB
(0046,0012) | Lens Description | dvLO
(0046,0014) | Right Lens Sequence | dvSQ
(0046,0015) | Left Lens Sequence | dvSQ
(0046,0016) | Unspecified Laterality Lens Sequence | dvSQ
(0046,0018) | Cylinder Sequence | dvSQ
(0046,0028) | Prism Sequence | dvSQ
(0046,0030) | Horizontal Prism Power | dvFD
(0046,0032) | Horizontal Prism Base | dvCS
(0046,0034) | Vertical Prism Power | dvFD
(0046,0036) | Vertical Prism Base | dvCS
(0046,0038) | Lens Segment Type | dvCS
(0046,0040) | Optical Transmittance | dvFD
(0046,0042) | Channel Width | dvFD
(0046,0044) | Pupil Size | dvFD
(0046,0046) | Corneal Size | dvFD
(0046,0050) | Autorefraction Right Eye Sequence | dvSQ
(0046,0052) | Autorefraction Left Eye Sequence | dvSQ
(0046,0060) | Distance Pupillary Distance | dvFD
(0046,0062) | Near Pupillary Distance | dvFD
(0046,0063) | Intermediate Pupillary Distance | dvFD
(0046,0064) | Other Pupillary Distance | dvFD
(0046,0070) | Keratometry Right Eye Sequence | dvSQ
(0046,0071) | Keratometry Left Eye Sequence | dvSQ
(0046,0074) | Steep Keratometric Axis Sequence | dvSQ
(0046,0075) | Radius of Curvature | dvFD
(0046,0076) | Keratometric Power | dvFD
(0046,0077) | Keratometric Axis | dvFD
(0046,0080) | Flat Keratometric Axis Sequence | dvSQ
(0046,0092) | Background Color | dvCS
(0046,0094) | Optotype | dvCS
(0046,0095) | Optotype Presentation | dvCS
(0046,0097) | Subjective Refraction Right Eye Sequence | dvSQ
(0046,0098) | Subjective Refraction Left Eye Sequence | dvSQ
(0046,0100) | Add Near Sequence | dvSQ
(0046,0101) | Add Intermediate Sequence | dvSQ
(0046,0102) | Add Other Sequence | dvSQ
(0046,0104) | Add Power | dvFD
(0046,0106) | Viewing Distance | dvFD
(0046,0121) | Visual Acuity Type Code Sequence | dvSQ
(0046,0122) | Visual Acuity Right Eye Sequence | dvSQ
(0046,0123) | Visual Acuity Left Eye Sequence | dvSQ
(0046,0124) | Visual Acuity Both Eyes Open Sequence | dvSQ
(0046,0125) | Viewing Distance Type | dvCS
(0046,0135) | Visual Acuity Modifiers | dvSS
(0046,0137) | Decimal Visual Acuity | dvFD
(0046,0139) | Optotype Detailed Definition | dvLO
(0046,0145) | Referenced Refractive Measurements Sequence | dvSQ
(0046,0146) | Sphere Power | dvFD
(0046,0147) | Cylinder Power | dvFD
(0046,0201) | Corneal Topography Surface | dvCS
(0046,0202) | Corneal Vertex Location | dvFL
(0046,0203) | Pupil Centroid X-Coordinate | dvFL
(0046,0204) | Pupil Centroid Y-Coordinate | dvFL
(0046,0205) | Equivalent Pupil Radius | dvFL
(0046,0207) | Corneal Topography Map Type Code Sequence | dvSQ
(0046,0208) | Vertices of the Outline of Pupil | dvIS
(0046,0210) | Corneal Topography Mapping Normals Sequence | dvSQ
(0046,0211) | Maximum Corneal Curvature Sequence | dvSQ
(0046,0212) | Maximum Corneal Curvature | dvFL
(0046,0213) | Maximum Corneal Curvature Location | dvFL
(0046,0215) | Minimum Keratometric Sequence | dvSQ
(0046,0218) | Simulated Keratometric Cylinder Sequence | dvSQ
(0046,0220) | Average Corneal Power | dvFL
(0046,0224) | Corneal I-S Value | dvFL
(0046,0227) | Analyzed Area | dvFL
(0046,0230) | Surface Regularity Index | dvFL
(0046,0232) | Surface Asymmetry Index | dvFL
(0046,0234) | Corneal Eccentricity Index | dvFL
(0046,0236) | Keratoconus Prediction Index | dvFL
(0046,0238) | Decimal Potential Visual Acuity | dvFL
(0046,0242) | Corneal Topography Map Quality Evaluation | dvCS
(0046,0244) | Source Image Corneal Processed Data Sequence | dvSQ
(0046,0247) | Corneal Point Location | dvFL
(0046,0248) | Corneal Point Estimated | dvCS
(0046,0249) | Axial Power | dvFL
(0046,0250) | Tangential Power | dvFL
(0046,0251) | Refractive Power | dvFL
(0046,0252) | Relative Elevation | dvFL
(0046,0253) | Corneal Wavefront | dvFL
(0047,0001) | Undocumented | dvSQ
(0047,0050) | Undocumented | dvUL
(0047,0051) | Undocumented | dvUL
(0047,0053) | Undocumented | dvUS
(0047,0054) | Undocumented | dvUS
(0047,0055) | Undocumented | dvSL
(0047,0057) | Undocumented | dvDS
(0047,0058) | Undocumented | dvDS
(0047,0059) | Undocumented | dvUS
(0047,0060) | Undocumented | dvDS
(0047,0061) | Undocumented | dvDS
(0047,0063) | Undocumented | dvSL
(0047,0064) | Undocumented | dvDS
(0047,0065) | Undocumented | dvDS
(0047,0070) | Undocumented | dvDS
(0047,0071) | Undocumented | dvIS
(0047,0072) | Undocumented | dvIS
(0047,0080) | Undocumented | dvLO
(0047,0085) | Undocumented | dvSQ
(0047,0089) | Undocumented | dvDS
(0047,008A) | Undocumented | dvUS
(0047,008B) | Undocumented | dvUS
(0047,0091) | Undocumented | dvLO
(0047,0092) | Undocumented | dvCS
(0047,0093) | Undocumented | dvDA
(0047,0094) | Undocumented | dvTM
(0047,0095) | Undocumented | dvCS
(0047,0096) | Undocumented | dvIS
(0047,0098) | Undocumented | dvUS
(0047,0099) | Undocumented | dvSQ
(0047,009A) | Undocumented | dvDS
(0047,009B) | Undocumented | dvDS
(0047,009C) | Undocumented | dvLO
(0047,00B0) | Undocumented | dvSQ
(0047,00B1) | Undocumented | dvUS
(0047,00B2) | Undocumented | dvUS
(0047,00B5) | Undocumented | dvLO
(0047,00B6) | Undocumented | dvLO
(0047,00B7) | Undocumented | dvLO
(0047,00B8) | Undocumented | dvSL
(0047,00B9) | Undocumented | dvSL
(0047,00BA) | Undocumented | dvSL
(0047,00BB) | Undocumented | dvSQ
(0047,00BC) | Undocumented | dvDS
(0047,00C0) | Undocumented | dvDS
(0047,00C1) | Undocumented | dvDS
(0047,00C2) | Undocumented | dvDS
(0047,00D1) | Undocumented | dvOB
(0047,00D2) | Undocumented | dvOB
(0047,00D3) | Undocumented | dvOB
(0047,00D4) | Undocumented | dvOB
(0047,00D5) | Undocumented | dvOB
(0048,0001) | Imaged Volume Width | dvFL
(0048,0002) | Imaged Volume Height | dvFL
(0048,0003) | Imaged Volume Depth | dvFL
(0048,0006) | Total Pixel Matrix Columns | dvUL
(0048,0007) | Total Pixel Matrix Rows | dvUL
(0048,0008) | Total Pixel Matrix Origin Sequence | dvSQ
(0048,0010) | Specimen Label in Image | dvCS
(0048,0011) | Focus Method | dvCS
(0048,0012) | Extended Depth of Field | dvCS
(0048,0013) | Number of Focal Planes | dvUS
(0048,0014) | Distance Between Focal Planes | dvFL
(0048,0015) | Recommended Absent Pixel CIELab Value | dvUS
(0048,0100) | Illuminator Type Code Sequence | dvSQ
(0048,0102) | Image Orientation (Slide) | dvDS
(0048,0105) | Optical Path Sequence | dvSQ
(0048,0106) | Optical Path Identifier | dvSH
(0048,0107) | Optical Path Description | dvST
(0048,0108) | Illumination Color Code Sequence | dvSQ
(0048,0110) | Specimen Reference Sequence | dvSQ
(0048,0111) | Condenser Lens Power | dvDS
(0048,0112) | Objective Lens Power | dvDS
(0048,0113) | Objective Lens Numerical Aperture | dvDS
(0048,0120) | Palette Color Lookup Table Sequence | dvSQ
(0048,0200) | Referenced Image Navigation Sequence | dvSQ
(0048,0201) | Top Left Hand Corner of Localizer Area | dvUS
(0048,0202) | Bottom Right Hand Corner of Localizer Area | dvUS
(0048,0207) | Optical Path Identification Sequence | dvSQ
(0048,021A) | Plane Position (Slide) Sequence | dvSQ
(0048,021E) | Column Position in Total Image Pixel Matrix | dvSL
(0048,021F) | Row Position in Total Image Pixel Matrix | dvSL
(0048,0301) | Pixel Origin Interpretation | dvCS
(0050,0000) | X-Ray Angio Device Group Length | dvUL
(0050,0004) | Calibration Image | dvCS
(0050,0010) | Device Sequence | dvSQ
(0050,0012) | Container Component Type Code Sequence | dvSQ
(0050,0013) | Container Component Thickness | dvFD
(0050,0014) | Device Length | dvDS
(0050,0015) | Container Component Width | dvFD
(0050,0016) | Device Diameter | dvDS
(0050,0017) | Device Diameter Units | dvCS
(0050,0018) | Device Volume | dvDS
(0050,0019) | Inter-Marker Distance | dvDS
(0050,001A) | Container Component Material | dvCS
(0050,001B) | Container Component ID | dvLO
(0050,001C) | Container Component Length | dvFD
(0050,001D) | Container Component Diameter | dvFD
(0050,001E) | Container Component Description | dvLO
(0050,0020) | Device Description | dvLO
(0050,0030) | Undocumented | dvSQ
(0051,0010) | Undocumented | dvUSorSS
(0052,0001) | Contrast/Bolus Ingredient Percent by Volume | dvFL
(0052,0002) | OCT Focal Distance | dvFD
(0052,0003) | Beam Spot Size | dvFD
(0052,0004) | Effective Refractive Index | dvFD
(0052,0006) | OCT Acquisition Domain | dvCS
(0052,0007) | OCT Optical Center Wavelength | dvFD
(0052,0008) | Axial Resolution | dvFD
(0052,0009) | Ranging Depth | dvFD
(0052,0011) | A-line Rate | dvFD
(0052,0012) | A-lines per Frame | dvUS
(0052,0013) | Catheter Rotational Rate | dvFD
(0052,0014) | A-line Pixel Spacing | dvFD
(0052,0016) | Mode of Percutaneous Access Sequence | dvSQ
(0052,0025) | Intravascular OCT Frame Type Sequence | dvSQ
(0052,0026) | OCT Z Offset Applied | dvCS
(0052,0027) | Intravascular Frame Content Sequence | dvSQ
(0052,0028) | Intravascular Longitudinal Distance | dvFD
(0052,0029) | Intravascular OCT Frame Content Sequence | dvSQ
(0052,0030) | OCT Z Offset Correction | dvSS
(0052,0031) | Catheter Direction of Rotation | dvCS
(0052,0033) | Seam Line Location | dvFD
(0052,0034) | First A-line Location | dvFD
(0052,0036) | Seam Line Index | dvUS
(0052,0038) | Number of Padded A-lines | dvUS
(0052,0039) | Interpolation Type | dvCS
(0052,003A) | Refractive Index Applied | dvCS
(0054,0000) | Nuclear Medicine Group Length | dvUL
(0054,0010) | Energy Window Vector | dvUS
(0054,0011) | Number of Energy Windows | dvUS
(0054,0012) | Energy Window Information Sequence | dvSQ
(0054,0013) | Energy Window Range Sequence | dvSQ
(0054,0014) | Energy Window Lower Limit | dvDS
(0054,0015) | Energy Window Upper Limit | dvDS
(0054,0016) | Radiopharmaceutical Information Sequence | dvSQ
(0054,0017) | Residual Syringe Counts | dvIS
(0054,0018) | Energy Window Name | dvSH
(0054,0020) | Detector Vector | dvUS
(0054,0021) | Number of Detectors | dvUS
(0054,0022) | Detector Information Sequence | dvSQ
(0054,0030) | Phase Vector | dvUS
(0054,0031) | Number of Phases | dvUS
(0054,0032) | Phase Information Sequence | dvSQ
(0054,0033) | Number of Frames in Phase | dvUS
(0054,0036) | Phase Delay | dvIS
(0054,0038) | Pause Between Frames | dvIS
(0054,0039) | Phase Description | dvCS
(0054,0050) | Rotation Vector | dvUS
(0054,0051) | Number of Rotations | dvUS
(0054,0052) | Rotation Information Sequence | dvSQ
(0054,0053) | Number of Frames in Rotation | dvUS
(0054,0060) | R-R Interval Vector | dvUS
(0054,0061) | Number of R-R Intervals | dvUS
(0054,0062) | Gated Information Sequence | dvSQ
(0054,0063) | Data Information Sequence | dvSQ
(0054,0070) | Time Slot Vector | dvUS
(0054,0071) | Number of Time Slots | dvUS
(0054,0072) | Time Slot Information Sequence | dvSQ
(0054,0073) | Time Slot Time | dvDS
(0054,0080) | Slice Vector | dvUS
(0054,0081) | Number of Slices | dvUS
(0054,0090) | Angular View Vector | dvUS
(0054,0100) | Time Slice Vector | dvUS
(0054,0101) | Number of Time Slices | dvUS
(0054,0200) | Start Angle | dvDS
(0054,0202) | Type of Detector Motion | dvCS
(0054,0210) | Trigger Vector | dvIS
(0054,0211) | Number of Triggers in Phase | dvUS
(0054,0220) | View Code Sequence | dvSQ
(0054,0222) | View Modifier Code Sequence | dvSQ
(0054,0300) | Radionuclide Code Sequence | dvSQ
(0054,0302) | Administration Route Code Sequence | dvSQ
(0054,0304) | Radiopharmaceutical Code Sequence | dvSQ
(0054,0306) | Calibration Data Sequence | dvSQ
(0054,0308) | Energy Window Number | dvUS
(0054,0400) | Image ID | dvSH
(0054,0410) | Patient Orientation Code Sequence | dvSQ
(0054,0412) | Patient Orientation Modifier Code Sequence | dvSQ
(0054,0414) | Patient Gantry Relationship Code Sequence | dvSQ
(0054,0500) | Slice Progression Direction | dvCS
(0054,0501) | Scan Progression Direction | dvCS
(0054,1000) | Series Type | dvCS
(0054,1001) | Units | dvCS
(0054,1002) | Counts Source | dvCS
(0054,1004) | Reprojection Method | dvCS
(0054,1006) | SUV Type | dvCS
(0054,1100) | Randoms Correction Method | dvCS
(0054,1101) | Attenuation Correction Method | dvLO
(0054,1102) | Decay Correction | dvCS
(0054,1103) | Reconstruction Method | dvLO
(0054,1104) | Detector Lines of Response Used | dvLO
(0054,1105) | Scatter Correction Method | dvLO
(0054,1200) | Axial Acceptance | dvDS
(0054,1201) | Axial Mash | dvIS
(0054,1202) | Transverse Mash | dvIS
(0054,1203) | Detector Element Size | dvDS
(0054,1210) | Coincidence Window Width | dvDS
(0054,1220) | Secondary Counts Type | dvCS
(0054,1300) | Frame Reference Time | dvDS
(0054,1310) | Primary (Prompts) Counts Accumulated | dvIS
(0054,1311) | Secondary Counts Accumulated | dvIS
(0054,1320) | Slice Sensitivity Factor | dvDS
(0054,1321) | Decay Factor | dvDS
(0054,1322) | Dose Calibration Factor | dvDS
(0054,1323) | Scatter Fraction Factor | dvDS
(0054,1324) | Dead Time Factor | dvDS
(0054,1330) | Image Index | dvUS
(0054,1400) | Counts Included | dvCS
(0054,1401) | Dead Time Correction Flag | dvCS
(0055,0046) | Undocumented | dvLT
(0058,0000) | Undocumented | dvSQ
(0060,0000) | Histogram Group Length | dvUL
(0060,3000) | Histogram Sequence | dvSQ
(0060,3002) | Histogram Number of Bins | dvUS
(0060,3004) | Histogram First Bin Value | dvUSorSS
(0060,3006) | Histogram Last Bin Value | dvUSorSS
(0060,3008) | Histogram Bin Width | dvUS
(0060,3010) | Histogram Explanation | dvLO
(0060,3020) | Histogram Data | dvUL
(0062,0001) | Segmentation Type | dvCS
(0062,0002) | Segment Sequence | dvSQ
(0062,0003) | Segmented Property Category Code Sequence | dvSQ
(0062,0004) | Segment Number | dvUS
(0062,0005) | Segment Label | dvLO
(0062,0006) | Segment Description | dvST
(0062,0008) | Segment Algorithm Type | dvCS
(0062,0009) | Segment Algorithm Name | dvLO
(0062,000A) | Segment Identification Sequence | dvSQ
(0062,000B) | Referenced Segment Number | dvUS
(0062,000C) | Recommended Display Grayscale Value | dvUS
(0062,000D) | Recommended Display CIELab Value | dvUS
(0062,000E) | Maximum Fractional Value | dvUS
(0062,000F) | Segmented Property Type Code Sequence | dvSQ
(0062,0010) | Segmentation Fractional Type | dvCS
(0062,0011) | Segmented Property Type Modifier Code Sequence | dvSQ
(0062,0012) | Used Segments Sequence | dvSQ
(0064,0002) | Deformable Registration Sequence | dvSQ
(0064,0003) | Source Frame of Reference UID | dvUI
(0064,0005) | Deformable Registration Grid Sequence | dvSQ
(0064,0007) | Grid Dimensions | dvUL
(0064,0008) | Grid Resolution | dvFD
(0064,0009) | Vector Grid Data | dvOF
(0064,000F) | Pre Deformation Matrix Registration Sequence | dvSQ
(0064,0010) | Post Deformation Matrix Registration Sequence | dvSQ
(0066,0001) | Number of Surfaces | dvUL
(0066,0002) | Surface Sequence | dvSQ
(0066,0003) | Surface Number | dvUL
(0066,0004) | Surface Comments | dvLT
(0066,0009) | Surface Processing | dvCS
(0066,000A) | Surface Processing Ratio | dvFL
(0066,000B) | Surface Processing Description | dvLO
(0066,000C) | Recommended Presentation Opacity | dvFL
(0066,000D) | Recommended Presentation Type | dvCS
(0066,000E) | Finite Volume | dvCS
(0066,0010) | Manifold | dvCS
(0066,0011) | Surface Points Sequence | dvSQ
(0066,0012) | Surface Points Normals Sequence | dvSQ
(0066,0013) | Surface Mesh Primitives Sequence | dvSQ
(0066,0015) | Number of Surface Points | dvUL
(0066,0016) | Point Coordinates Data | dvOF
(0066,0017) | Point Position Accuracy | dvFL
(0066,0018) | Mean Point Distance | dvFL
(0066,0019) | Maximum Point Distance | dvFL
(0066,001A) | Points Bounding Box Coordinates | dvFL
(0066,001B) | Axis of Rotation | dvFL
(0066,001C) | Center of Rotation | dvFL
(0066,001E) | Number of Vectors | dvUL
(0066,001F) | Vector Dimensionality | dvUS
(0066,0020) | Vector Accuracy | dvFL
(0066,0021) | Vector Coordinate Data | dvOF
(0066,0023) | Triangle Point Index List | dvOW
(0066,0024) | Edge Point Index List | dvOW
(0066,0025) | Vertex Point Index List | dvOW
(0066,0026) | Triangle Strip Sequence | dvSQ
(0066,0027) | Triangle Fan Sequence | dvSQ
(0066,0028) | Line Sequence | dvSQ
(0066,0029) | Primitive Point Index List | dvOW
(0066,002A) | Surface Count | dvUL
(0066,002B) | Referenced Surface Sequence | dvSQ
(0066,002C) | Referenced Surface Number | dvUL
(0066,002D) | Segment Surface Generation Algorithm Identification Sequence | dvSQ
(0066,002E) | Segment Surface Source Instance Sequence | dvSQ
(0066,002F) | Algorithm Family Code Sequence | dvSQ
(0066,0030) | Algorithm Name Code Sequence | dvSQ
(0066,0031) | Algorithm Version | dvLO
(0066,0032) | Algorithm Parameters | dvLT
(0066,0034) | Facet Sequence | dvSQ
(0066,0035) | Surface Processing Algorithm Identification Sequence | dvSQ
(0066,0036) | Algorithm Name | dvLO
(0066,0037) | Recommended Point Radius | dvFL
(0066,0038) | Recommended Line Thickness | dvFL
(0066,0040) | Long Primitive Point Index List | dvUL
(0066,0041) | Long Triangle Point Index List | dvUL
(0066,0042) | Long Edge Point Index List | dvUL
(0066,0043) | Long Vertex Point Index List | dvUL
(0068,6210) | Implant Size | dvLO
(0068,6221) | Implant Template Version | dvLO
(0068,6222) | Replaced Implant Template Sequence | dvSQ
(0068,6223) | Implant Type | dvCS
(0068,6224) | Derivation Implant Template Sequence | dvSQ
(0068,6225) | Original Implant Template Sequence | dvSQ
(0068,6226) | Effective Date/Time | dvDT
(0068,6230) | Implant Target Anatomy Sequence | dvSQ
(0068,6260) | Information From Manufacturer Sequence | dvSQ
(0068,6265) | Notification From Manufacturer Sequence | dvSQ
(0068,6270) | Information Issue Date/Time | dvDT
(0068,6280) | Information Summary | dvST
(0068,62A0) | Implant Regulatory Disapproval Code Sequence | dvSQ
(0068,62A5) | Overall Template Spatial Tolerance | dvFD
(0068,62C0) | HPGL Document Sequence | dvSQ
(0068,62D0) | HPGL Document ID | dvUS
(0068,62D5) | HPGL Document Label | dvLO
(0068,62E0) | View Orientation Code Sequence | dvSQ
(0068,62F0) | View Orientation Modifier | dvFD
(0068,62F2) | HPGL Document Scaling | dvFD
(0068,6300) | HPGL Document | dvOB
(0068,6310) | HPGL Contour Pen Number | dvUS
(0068,6320) | HPGL Pen Sequence | dvSQ
(0068,6330) | HPGL Pen Number | dvUS
(0068,6340) | HPGL Pen Label | dvLO
(0068,6345) | HPGL Pen Description | dvST
(0068,6346) | Recommended Rotation Point | dvFD
(0068,6347) | Bounding Rectangle | dvFD
(0068,6350) | Implant Template 3D Model Surface Number | dvUS
(0068,6360) | Surface Model Description Sequence | dvSQ
(0068,6380) | Surface Model Label | dvLO
(0068,6390) | Surface Model Scaling Factor | dvFD
(0068,63A0) | Materials Code Sequence | dvSQ
(0068,63A4) | Coating Materials Code Sequence | dvSQ
(0068,63A8) | Implant Type Code Sequence | dvSQ
(0068,63AC) | Fixation Method Code Sequence | dvSQ
(0068,63B0) | Mating Feature Sets Sequence | dvSQ
(0068,63C0) | Mating Feature Set ID | dvUS
(0068,63D0) | Mating Feature Set Label | dvLO
(0068,63E0) | Mating Feature Sequence | dvSQ
(0068,63F0) | Mating Feature ID | dvUS
(0068,6400) | Mating Feature Degree of Freedom Sequence | dvSQ
(0068,6410) | Degree of Freedom ID | dvUS
(0068,6420) | Degree of Freedom Type | dvCS
(0068,6430) | 2D Mating Feature Coordinates Sequence | dvSQ
(0068,6440) | Referenced HPGL Document ID | dvUS
(0068,6450) | 2D Mating Point | dvFD
(0068,6460) | 2D Mating Axes | dvFD
(0068,6470) | 2D Degree of Freedom Sequence | dvSQ
(0068,6490) | 3D Degree of Freedom Axis | dvFD
(0068,64A0) | Range of Freedom | dvFD
(0068,64C0) | 3D Mating Point | dvFD
(0068,64D0) | 3D Mating Axes | dvFD
(0068,64F0) | 2D Degree of Freedom Axis | dvFD
(0068,6500) | Planning Landmark Point Sequence | dvSQ
(0068,6510) | Planning Landmark Line Sequence | dvSQ
(0068,6520) | Planning Landmark Plane Sequence | dvSQ
(0068,6530) | Planning Landmark ID | dvUS
(0068,6540) | Planning Landmark Description | dvLO
(0068,6545) | Planning Landmark Identification Code Sequence | dvSQ
(0068,6550) | 2D Point Coordinates Sequence | dvSQ
(0068,6560) | 2D Point Coordinates | dvFD
(0068,6590) | 3D Point Coordinates | dvFD
(0068,65A0) | 2D Line Coordinates Sequence | dvSQ
(0068,65B0) | 2D Line Coordinates | dvFD
(0068,65D0) | 3D Line Coordinates | dvFD
(0068,65E0) | 2D Plane Coordinates Sequence | dvSQ
(0068,65F0) | 2D Plane Intersection | dvFD
(0068,6610) | 3D Plane Origin | dvFD
(0068,6620) | 3D Plane Normal | dvFD
(0070,0000) | Presentation State Group Length | dvUL
(0070,0001) | Graphic Annotation Sequence | dvSQ
(0070,0002) | Graphic Layer | dvCS
(0070,0003) | Bounding Box Annotation Units | dvCS
(0070,0004) | Anchor Point Annotation Units | dvCS
(0070,0005) | Graphic Annotation Units | dvCS
(0070,0006) | Unformatted Text Value | dvST
(0070,0008) | Text Object Sequence | dvSQ
(0070,0009) | Graphic Object Sequence | dvSQ
(0070,0010) | Bounding Box Top Left Hand Corner | dvFL
(0070,0011) | Bounding Box Bottom Right Hand Corner | dvFL
(0070,0012) | Bounding Box Text Horizontal Justification | dvCS
(0070,0014) | Anchor Point | dvFL
(0070,0015) | Anchor Point Visibility | dvCS
(0070,0020) | Graphic Dimensions | dvUS
(0070,0021) | Number of Graphic Points | dvUS
(0070,0022) | Graphic Data | dvFL
(0070,0023) | Graphic Type | dvCS
(0070,0024) | Graphic Filled | dvCS
(0070,0040) | Image Rotation (Retired) | dvIS
(0070,0041) | Image Horizontal Flip | dvCS
(0070,0042) | Image Rotation | dvUS
(0070,0050) | Displayed Area Top Left Hand Corner (Trial) | dvUS
(0070,0051) | Displayed Area Bottom Right Hand Corner (Trial) | dvUS
(0070,0052) | Displayed Area Top Left Hand Corner | dvSL
(0070,0053) | Displayed Area Bottom Right Hand Corner | dvSL
(0070,005A) | Displayed Area Selection Sequence | dvSQ
(0070,0060) | Graphic Layer Sequence | dvSQ
(0070,0062) | Graphic Layer Order | dvIS
(0070,0066) | Graphic Layer Recommended Display Grayscale Value | dvUS
(0070,0067) | Graphic Layer Recommended Display RGB Value | dvUS
(0070,0068) | Graphic Layer Description | dvLO
(0070,0080) | Content Label | dvCS
(0070,0081) | Content Description | dvLO
(0070,0082) | Presentation Creation Date | dvDA
(0070,0083) | Presentation Creation Time | dvTM
(0070,0084) | Content Creator's Name | dvPN
(0070,0086) | Content Creator's Identification Code Sequence | dvSQ
(0070,0087) | Alternate Content Description Sequence | dvSQ
(0070,0100) | Presentation Size Mode | dvCS
(0070,0101) | Presentation Pixel Spacing | dvDS
(0070,0102) | Presentation Pixel Aspect Ratio | dvIS
(0070,0103) | Presentation Pixel Magnification Ratio | dvFL
(0070,0207) | Graphic Group Label | dvLO
(0070,0208) | Graphic Group Description | dvST
(0070,0209) | Compound Graphic Sequence | dvSQ
(0070,0226) | Compound Graphic Instance ID | dvUL
(0070,0227) | Font Name | dvLO
(0070,0228) | Font Name Type | dvCS
(0070,0229) | CSS Font Name | dvLO
(0070,0230) | Rotation Angle | dvFD
(0070,0231) | Text Style Sequence | dvSQ
(0070,0232) | Line Style Sequence | dvSQ
(0070,0233) | Fill Style Sequence | dvSQ
(0070,0234) | Graphic Group Sequence | dvSQ
(0070,0241) | Text Color CIELab Value | dvUS
(0070,0242) | Horizontal Alignment | dvCS
(0070,0243) | Vertical Alignment | dvCS
(0070,0244) | Shadow Style | dvCS
(0070,0245) | Shadow Offset X | dvFL
(0070,0246) | Shadow Offset Y | dvFL
(0070,0247) | Shadow Color CIELab Value | dvUS
(0070,0248) | Underlined | dvCS
(0070,0249) | Bold | dvCS
(0070,0250) | Italic | dvCS
(0070,0251) | Pattern on Color CIELab Value | dvUS
(0070,0252) | Pattern Off Color CIELab Value | dvUS
(0070,0253) | Line Thickness | dvFL
(0070,0254) | Line Dashing Style | dvCS
(0070,0255) | Line Pattern | dvUL
(0070,0256) | Fill Pattern | dvOB
(0070,0257) | Fill Mode | dvCS
(0070,0258) | Shadow Opacity | dvFL
(0070,0261) | Gap Length | dvFL
(0070,0262) | Diameter of Visibility | dvFL
(0070,0273) | Rotation Point | dvFL
(0070,0274) | Tick Alignment | dvCS
(0070,0278) | Show Tick Label | dvCS
(0070,0279) | Tick Label Alignment | dvCS
(0070,0282) | Compound Graphic Units | dvCS
(0070,0284) | Pattern on Opacity | dvFL
(0070,0285) | Pattern Off Opacity | dvFL
(0070,0287) | Major Ticks Sequence | dvSQ
(0070,0288) | Tick Position | dvFL
(0070,0289) | Tick Label | dvSH
(0070,0294) | Compound Graphic Type | dvCS
(0070,0295) | Graphic Group ID | dvUL
(0070,0306) | Shape Type | dvCS
(0070,0308) | Registration Sequence | dvSQ
(0070,0309) | Matrix Registration Sequence | dvSQ
(0070,030A) | Matrix Sequence | dvSQ
(0070,030C) | Frame of Reference Transformation Matrix Type | dvCS
(0070,030D) | Registration Type Code Sequence | dvSQ
(0070,030F) | Fiducial Description | dvST
(0070,0310) | Fiducial Identifier | dvSH
(0070,0311) | Fiducial Identifier Code Sequence | dvSQ
(0070,0312) | Contour Uncertainty Radius | dvFD
(0070,0314) | Used Fiducials Sequence | dvSQ
(0070,0318) | Graphic Coordinates Data Sequence | dvSQ
(0070,031A) | Fiducial UID | dvUI
(0070,031C) | Fiducial Set Sequence | dvSQ
(0070,031E) | Fiducial Sequence | dvSQ
(0070,0401) | Graphic Layer Recommended Display CIELab Value | dvUS
(0070,0402) | Blending Sequence | dvSQ
(0070,0403) | Relative Opacity | dvFL
(0070,0404) | Referenced Spatial Registration Sequence | dvSQ
(0070,0405) | Blending Position | dvCS
(0071,0011) | ROI | dvOB
(0071,0013) | 3 DReconstruction Data | dvOB
(0072,0002) | Hanging Protocol Name | dvSH
(0072,0004) | Hanging Protocol Description | dvLO
(0072,0006) | Hanging Protocol Level | dvCS
(0072,0008) | Hanging Protocol Creator | dvLO
(0072,000A) | Hanging Protocol Creation Date/Time | dvDT
(0072,000C) | Hanging Protocol Definition Sequence | dvSQ
(0072,000E) | Hanging Protocol User Identification Code Sequence | dvSQ
(0072,0010) | Hanging Protocol User Group Name | dvLO
(0072,0012) | Source Hanging Protocol Sequence | dvSQ
(0072,0014) | Number of Priors Referenced | dvUS
(0072,0020) | Image Sets Sequence | dvSQ
(0072,0022) | Image Set Selector Sequence | dvSQ
(0072,0024) | Image Set Selector Usage Flag | dvCS
(0072,0026) | Selector Attribute | dvAT
(0072,0028) | Selector Value Number | dvUS
(0072,0030) | Time Based Image Sets Sequence | dvSQ
(0072,0032) | Image Set Number | dvUS
(0072,0034) | Image Set Selector Category | dvCS
(0072,0038) | Relative Time | dvUS
(0072,003A) | Relative Time Units | dvCS
(0072,003C) | Abstract Prior Value | dvSS
(0072,003E) | Abstract Prior Code Sequence | dvSQ
(0072,0040) | Image Set Label | dvLO
(0072,0050) | Selector Attribute VR | dvCS
(0072,0052) | Selector Sequence Pointer | dvAT
(0072,0054) | Selector Sequence Pointer Private Creator | dvLO
(0072,0056) | Selector Attribute Private Creator | dvLO
(0072,0060) | Selector AT Value | dvAT
(0072,0062) | Selector CS Value | dvCS
(0072,0064) | Selector IS Value | dvIS
(0072,0066) | Selector LO Value | dvLO
(0072,0068) | Selector LT Value | dvLT
(0072,006A) | Selector PN Value | dvPN
(0072,006C) | Selector SH Value | dvSH
(0072,006E) | Selector ST Value | dvST
(0072,0070) | Selector UT Value | dvUT
(0072,0072) | Selector DS Value | dvDS
(0072,0074) | Selector FD Value | dvFD
(0072,0076) | Selector FL Value | dvFL
(0072,0078) | Selector UL Value | dvUL
(0072,007A) | Selector US Value | dvUS
(0072,007C) | Selector SL Value | dvSL
(0072,007E) | Selector SS Value | dvSS
(0072,0080) | Selector Code Sequence Value | dvSQ
(0072,0100) | Number of Screens | dvUS
(0072,0102) | Nominal Screen Definition Sequence | dvSQ
(0072,0104) | Number of Vertical Pixels | dvUS
(0072,0106) | Number of Horizontal Pixels | dvUS
(0072,0108) | Display Environment Spatial Position | dvFD
(0072,010A) | Screen Minimum Grayscale Bit Depth | dvUS
(0072,010C) | Screen Minimum Color Bit Depth | dvUS
(0072,010E) | Application Maximum Repaint Time | dvUS
(0072,0200) | Display Sets Sequence | dvSQ
(0072,0202) | Display Set Number | dvUS
(0072,0203) | Display Set Label | dvLO
(0072,0204) | Display Set Presentation Group | dvUS
(0072,0206) | Display Set Presentation Group Description | dvLO
(0072,0208) | Partial Data Display Handling | dvCS
(0072,0210) | Synchronized Scrolling Sequence | dvSQ
(0072,0212) | Display Set Scrolling Group | dvUS
(0072,0214) | Navigation Indicator Sequence | dvSQ
(0072,0216) | Navigation Display Set | dvUS
(0072,0218) | Reference Display Sets | dvUS
(0072,0300) | Image Boxes Sequence | dvSQ
(0072,0302) | Image Box Number | dvUS
(0072,0304) | Image Box Layout Type | dvCS
(0072,0306) | Image Box Tile Horizontal Dimension | dvUS
(0072,0308) | Image Box Tile Vertical Dimension | dvUS
(0072,0310) | Image Box Scroll Direction | dvCS
(0072,0312) | Image Box Small Scroll Type | dvCS
(0072,0314) | Image Box Small Scroll Amount | dvUS
(0072,0316) | Image Box Large Scroll Type | dvCS
(0072,0318) | Image Box Large Scroll Amount | dvUS
(0072,0320) | Image Box Overlap Priority | dvUS
(0072,0330) | Cine Relative to Real-Time | dvFD
(0072,0400) | Filter Operations Sequence | dvSQ
(0072,0402) | Filter-by Category | dvCS
(0072,0404) | Filter-by Attribute Presence | dvCS
(0072,0406) | Filter-by Operator | dvCS
(0072,0420) | Structured Display Background CIELab Value | dvUS
(0072,0421) | Empty Image Box CIELab Value | dvUS
(0072,0422) | Structured Display Image Box Sequence | dvSQ
(0072,0424) | Structured Display Text Box Sequence | dvSQ
(0072,0427) | Referenced First Frame Sequence | dvSQ
(0072,0430) | Image Box Synchronization Sequence | dvSQ
(0072,0432) | Synchronized Image Box List | dvUS
(0072,0434) | Type of Synchronization | dvCS
(0072,0500) | Blending Operation Type | dvCS
(0072,0510) | Reformatting Operation Type | dvCS
(0072,0512) | Reformatting Thickness | dvFD
(0072,0514) | Reformatting Interval | dvFD
(0072,0516) | Reformatting Operation Initial View Direction | dvCS
(0072,0520) | 3D Rendering Type | dvCS
(0072,0600) | Sorting Operations Sequence | dvSQ
(0072,0602) | Sort-by Category | dvCS
(0072,0604) | Sorting Direction | dvCS
(0072,0700) | Display Set Patient Orientation | dvCS
(0072,0702) | VOI Type | dvCS
(0072,0704) | Pseudo-Color Type | dvCS
(0072,0705) | Pseudo-Color Palette Instance Reference Sequence | dvSQ
(0072,0706) | Show Grayscale Inverted | dvCS
(0072,0710) | Show Image True Size Flag | dvCS
(0072,0712) | Show Graphic Annotation Flag | dvCS
(0072,0714) | Show Patient Demographics Flag | dvCS
(0072,0716) | Show Acquisition Techniques Flag | dvCS
(0072,0717) | Display Set Horizontal Justification | dvCS
(0072,0718) | Display Set Vertical Justification | dvCS
(0074,0120) | Continuation Start Meterset | dvFD
(0074,0121) | Continuation End Meterset | dvFD
(0074,1000) | Procedure Step State | dvCS
(0074,1002) | Procedure Step Progress Information Sequence | dvSQ
(0074,1004) | Procedure Step Progress | dvDS
(0074,1006) | Procedure Step Progress Description | dvST
(0074,1008) | Procedure Step Communications URI Sequence | dvSQ
(0074,100A) | Contact URI | dvUR
(0074,100C) | Contact Display Name | dvLO
(0074,100E) | Procedure Step Discontinuation Reason Code Sequence | dvSQ
(0074,1020) | Beam Task Sequence | dvSQ
(0074,1022) | Beam Task Type | dvCS
(0074,1024) | Beam Order Index (Trial) | dvIS
(0074,1025) | Autosequence Flag | dvCS
(0074,1026) | Table Top Vertical Adjusted Position | dvFD
(0074,1027) | Table Top Longitudinal Adjusted Position | dvFD
(0074,1028) | Table Top Lateral Adjusted Position | dvFD
(0074,102A) | Patient Support Adjusted Angle | dvFD
(0074,102B) | Table Top Eccentric Adjusted Angle | dvFD
(0074,102C) | Table Top Pitch Adjusted Angle | dvFD
(0074,102D) | Table Top Roll Adjusted Angle | dvFD
(0074,1030) | Delivery Verification Image Sequence | dvSQ
(0074,1032) | Verification Image Timing | dvCS
(0074,1034) | Double Exposure Flag | dvCS
(0074,1036) | Double Exposure Ordering | dvCS
(0074,1038) | Double Exposure Meterset (Trial) | dvDS
(0074,103A) | Double Exposure Field Delta (Trial) | dvDS
(0074,1040) | Related Reference RT Image Sequence | dvSQ
(0074,1042) | General Machine Verification Sequence | dvSQ
(0074,1044) | Conventional Machine Verification Sequence | dvSQ
(0074,1046) | Ion Machine Verification Sequence | dvSQ
(0074,1048) | Failed Attributes Sequence | dvSQ
(0074,104A) | Overridden Attributes Sequence | dvSQ
(0074,104C) | Conventional Control Point Verification Sequence | dvSQ
(0074,104E) | Ion Control Point Verification Sequence | dvSQ
(0074,1050) | Attribute Occurrence Sequence | dvSQ
(0074,1052) | Attribute Occurrence Pointer | dvAT
(0074,1054) | Attribute Item Selector | dvUL
(0074,1056) | Attribute Occurrence Private Creator | dvLO
(0074,1057) | Selector Sequence Pointer Items | dvIS
(0074,1200) | Scheduled Procedure Step Priority | dvCS
(0074,1202) | Worklist Label | dvLO
(0074,1204) | Procedure Step Label | dvLO
(0074,1210) | Scheduled Processing Parameters Sequence | dvSQ
(0074,1212) | Performed Processing Parameters Sequence | dvSQ
(0074,1216) | Unified Procedure Step Performed Procedure Sequence | dvSQ
(0074,1220) | Related Procedure Step Sequence | dvSQ
(0074,1222) | Procedure Step Relationship Type | dvLO
(0074,1224) | Replaced Procedure Step Sequence | dvSQ
(0074,1230) | Deletion Lock | dvLO
(0074,1234) | Receiving AE | dvAE
(0074,1236) | Requesting AE | dvAE
(0074,1238) | Reason for Cancellation | dvLT
(0074,1242) | SCP Status | dvCS
(0074,1244) | Subscription List Status | dvCS
(0074,1246) | Unified Procedure Step List Status | dvCS
(0074,1324) | Beam Order Index | dvUL
(0074,1338) | Double Exposure Meterset | dvFD
(0074,133A) | Double Exposure Field Delta | dvFD
(0076,0001) | Implant Assembly Template Name | dvLO
(0076,0003) | Implant Assembly Template Issuer | dvLO
(0076,0006) | Implant Assembly Template Version | dvLO
(0076,0008) | Replaced Implant Assembly Template Sequence | dvSQ
(0076,000A) | Implant Assembly Template Type | dvCS
(0076,000C) | Original Implant Assembly Template Sequence | dvSQ
(0076,000E) | Derivation Implant Assembly Template Sequence | dvSQ
(0076,0010) | Implant Assembly Template Target Anatomy Sequence | dvSQ
(0076,0020) | Procedure Type Code Sequence | dvSQ
(0076,0030) | Surgical Technique | dvLO
(0076,0032) | Component Types Sequence | dvSQ
(0076,0034) | Component Type Code Sequence | dvCS
(0076,0036) | Exclusive Component Type | dvCS
(0076,0038) | Mandatory Component Type | dvCS
(0076,0040) | Component Sequence | dvSQ
(0076,0055) | Component ID | dvUS
(0076,0060) | Component Assembly Sequence | dvSQ
(0076,0070) | Component 1 Referenced ID | dvUS
(0076,0080) | Component 1 Referenced Mating Feature Set ID | dvUS
(0076,0090) | Component 1 Referenced Mating Feature ID | dvUS
(0076,00A0) | Component 2 Referenced ID | dvUS
(0076,00B0) | Component 2 Referenced Mating Feature Set ID | dvUS
(0076,00C0) | Component 2 Referenced Mating Feature ID | dvUS
(0078,0001) | Implant Template Group Name | dvLO
(0078,0010) | Implant Template Group Description | dvST
(0078,0020) | Implant Template Group Issuer | dvLO
(0078,0024) | Implant Template Group Version | dvLO
(0078,0026) | Replaced Implant Template Group Sequence | dvSQ
(0078,0028) | Implant Template Group Target Anatomy Sequence | dvSQ
(0078,002A) | Implant Template Group Members Sequence | dvSQ
(0078,002E) | Implant Template Group Member ID | dvUS
(0078,0050) | 3D Implant Template Group Member Matching Point | dvFD
(0078,0060) | 3D Implant Template Group Member Matching Axes | dvFD
(0078,0070) | Implant Template Group Member Matching 2D Coordinates Sequence | dvSQ
(0078,0090) | 2D Implant Template Group Member Matching Point | dvFD
(0078,00A0) | 2D Implant Template Group Member Matching Axes | dvFD
(0078,00B0) | Implant Template Group Variation Dimension Sequence | dvSQ
(0078,00B2) | Implant Template Group Variation Dimension Name | dvLO
(0078,00B4) | Implant Template Group Variation Dimension Rank Sequence | dvSQ
(0078,00B6) | Referenced Implant Template Group Member ID | dvUS
(0078,00B8) | Implant Template Group Variation Dimension Rank | dvUS
(0080,0001) | Surface Scan Acquisition Type Code Sequence | dvSQ
(0080,0002) | Surface Scan Mode Code Sequence | dvSQ
(0080,0003) | Registration Method Code Sequence | dvSQ
(0080,0004) | Shot Duration Time | dvFD
(0080,0005) | Shot Offset Time | dvFD
(0080,0006) | Surface Point Presentation Value Data | dvUS
(0080,0007) | Surface Point Color CIELab Value Data | dvUS
(0080,0008) | UV Mapping Sequence | dvSQ
(0080,0009) | Texture Label | dvSH
(0080,0010) | U Value Data | dvOF
(0080,0011) | V Value Data | dvOF
(0080,0012) | Referenced Texture Sequence | dvSQ
(0080,0013) | Referenced Surface Data Sequence | dvSQ
(0087,0010) | Undocumented | dvCS
(0087,0020) | Undocumented | dvCS
(0087,0050) | Undocumented | dvIS
(0088,0000) | Storage Group Length | dvUL
(0088,0130) | Storage Media File-set ID | dvSH
(0088,0140) | Storage Media File-set UID | dvUI
(0088,0200) | Icon Image Sequence | dvSQ
(0088,0904) | Topic Title | dvLO
(0088,0906) | Topic Subject | dvST
(0088,0910) | Topic Author | dvLO
(0088,0912) | Topic Keywords | dvLO
(0095,0001) | Undocumented | dvLT
(0095,0004) | Undocumented | dvUL
(0095,0005) | Undocumented | dvLT
(0095,0007) | Undocumented | dvLT
(0099,0002) | Undocumented | dvUL
(00E1,0001) | Undocumented | dvUS
(00E1,0014) | Undocumented | dvLT
(00E1,0022) | Undocumented | dvDS
(00E1,0023) | Undocumented | dvDS
(00E1,0024) | Undocumented | dvLT
(00E1,0025) | Undocumented | dvLT
(00E1,0040) | Undocumented | dvSH
(0100,0410) | SOP Instance Status | dvCS
(0100,0420) | SOP Authorization Date/Time | dvDT
(0100,0424) | SOP Authorization Comment | dvLT
(0100,0426) | Authorization Equipment Certification Number | dvLO
(0193,0002) | Undocumented | dvDS
(0307,0001) | Undocumented | dvUN
(0309,0001) | Undocumented | dvUN
(0400,0005) | MAC ID Number | dvUS
(0400,0010) | MAC Calculation Transfer Syntax UID | dvUI
(0400,0015) | MAC Algorithm | dvCS
(0400,0020) | Data Elements Signed | dvAT
(0400,0100) | Digital Signature UID | dvUI
(0400,0105) | Digital Signature Date/Time | dvDT
(0400,0110) | Certificate Type | dvCS
(0400,0115) | Certificate of Signer | dvOB
(0400,0120) | Signature | dvOB
(0400,0305) | Certified Timestamp Type | dvCS
(0400,0310) | Certified Timestamp | dvOB
(0400,0401) | Digital Signature Purpose Code Sequence | dvSQ
(0400,0402) | Referenced Digital Signature Sequence | dvSQ
(0400,0403) | Referenced SOP Instance MAC Sequence | dvSQ
(0400,0404) | MAC | dvOB
(0400,0500) | Encrypted Attributes Sequence | dvSQ
(0400,0510) | Encrypted Content Transfer Syntax UID | dvUI
(0400,0520) | Encrypted Content | dvOB
(0400,0550) | Modified Attributes Sequence | dvSQ
(0400,0561) | Original Attributes Sequence | dvSQ
(0400,0562) | Attribute Modification Date/Time | dvDT
(0400,0563) | Modifying System | dvLO
(0400,0564) | Source of Previous Values | dvLO
(0400,0565) | Reason for the Attribute Modification | dvCS
(0601,0000) | Undocumented | dvSH
(0601,0020) | Undocumented | dvDS
(0601,0021) | Undocumented | dvDS
(0601,0030) | Undocumented | dvSH
(0601,0031) | Undocumented | dvDS
(0601,0050) | Undocumented | dvSH
(0601,0070) | Undocumented | dvDS
(0601,0071) | Undocumented | dvDS
(0601,0072) | Undocumented | dvDS
(1000,0000) | Escape Triplet | dvUS
(1000,0001) | Run Length Triplet | dvUS
(1000,0002) | Huffman Table Size | dvUS
(1000,0003) | Huffman Table Triplet | dvUS
(1000,0004) | Shift Table Size | dvUS
(1000,0005) | Shift Table Triplet | dvUS
(1000,0010) | Escape Triplet | dvUS
(1000,0011) | Run Length Triplet | dvUS
(1000,0012) | Huffman Table Size | dvUS
(1000,0013) | Huffman Table Triplet | dvUS
(1000,0014) | Shift Table Size | dvUS
(1000,0015) | Shift Table Triplet | dvUS
(1010,0000) | Zonal Map | dvUS
(1010,0004) | Zonal Map | dvUS
(1369,0000) | Undocumented | dvUS
(2000,0000) | Film Session Group Length | dvUL
(2000,0010) | Number of Copies | dvIS
(2000,001E) | Printer Configuration Sequence | dvSQ
(2000,0020) | Print Priority | dvCS
(2000,0030) | Medium Type | dvCS
(2000,0040) | Film Destination | dvCS
(2000,0050) | Film Session Label | dvLO
(2000,0060) | Memory Allocation | dvIS
(2000,0061) | Maximum Memory Allocation | dvIS
(2000,0062) | Color Image Printing Flag | dvCS
(2000,0063) | Collation Flag | dvCS
(2000,0065) | Annotation Flag | dvCS
(2000,0067) | Image Overlay Flag | dvCS
(2000,0069) | Presentation LUT Flag | dvCS
(2000,006A) | Image Box Presentation LUT Flag | dvCS
(2000,00A0) | Memory Bit Depth | dvUS
(2000,00A1) | Printing Bit Depth | dvUS
(2000,00A2) | Media Installed Sequence | dvSQ
(2000,00A4) | Other Media Available Sequence | dvSQ
(2000,00A8) | Supported Image Display Formats Sequence | dvSQ
(2000,0500) | Referenced Film Box Sequence | dvSQ
(2000,0510) | Referenced Stored Print Sequence | dvSQ
(2010,0000) | Film Box Group Length | dvUL
(2010,0010) | Image Display Format | dvST
(2010,0030) | Annotation Display Format ID | dvCS
(2010,0040) | Film Orientation | dvCS
(2010,0050) | Film Size ID | dvCS
(2010,0052) | Printer Resolution ID | dvCS
(2010,0054) | Default Printer Resolution ID | dvCS
(2010,0060) | Magnification Type | dvCS
(2010,0080) | Smoothing Type | dvCS
(2010,00A6) | Default Magnification Type | dvCS
(2010,00A7) | Other Magnification Types Available | dvCS
(2010,00A8) | Default Smoothing Type | dvCS
(2010,00A9) | Other Smoothing Types Available | dvCS
(2010,0100) | Border Density | dvCS
(2010,0110) | Empty Image Density | dvCS
(2010,0120) | Min Density | dvUS
(2010,0130) | Max Density | dvUS
(2010,0140) | Trim | dvCS
(2010,0150) | Configuration Information | dvST
(2010,0152) | Configuration Information Description | dvLT
(2010,0154) | Maximum Collated Films | dvIS
(2010,015E) | Illumination | dvUS
(2010,0160) | Reflected Ambient Light | dvUS
(2010,0376) | Printer Pixel Spacing | dvDS
(2010,0500) | Referenced Film Session Sequence | dvSQ
(2010,0510) | Referenced Image Box Sequence | dvSQ
(2010,0520) | Referenced Basic Annotation Box Sequence | dvSQ
(2020,0000) | Image Box Group Length | dvUL
(2020,0010) | Image Box Position | dvUS
(2020,0020) | Polarity | dvCS
(2020,0030) | Requested Image Size | dvDS
(2020,0040) | Requested Decimate/Crop Behavior | dvCS
(2020,0050) | Requested Resolution ID | dvCS
(2020,00A0) | Requested Image Size Flag | dvCS
(2020,00A2) | Decimate/Crop Result | dvCS
(2020,0110) | Basic Grayscale Image Sequence | dvSQ
(2020,0111) | Basic Color Image Sequence | dvSQ
(2020,0130) | Referenced Image Overlay Box Sequence | dvSQ
(2020,0140) | Referenced VOI LUT Box Sequence | dvSQ
(2030,0000) | Annotation Group Length | dvUL
(2030,0010) | Annotation Position | dvUS
(2030,0020) | Text String | dvLO
(2040,0000) | Overlay Box Group Length | dvUL
(2040,0010) | Referenced Overlay Plane Sequence | dvSQ
(2040,0011) | Referenced Overlay Plane Groups | dvUS
(2040,0020) | Overlay Pixel Data Sequence | dvSQ
(2040,0060) | Overlay Magnification Type | dvCS
(2040,0070) | Overlay Smoothing Type | dvCS
(2040,0072) | Overlay or Image Magnification | dvCS
(2040,0074) | Magnify to Number of Columns | dvUS
(2040,0080) | Overlay Foreground Density | dvCS
(2040,0082) | Overlay Background Density | dvCS
(2040,0090) | Overlay Mode | dvCS
(2040,0100) | Threshold Density | dvCS
(2040,0500) | Referenced Image Box Sequence (Retired) | dvSQ
(2050,0000) | Presentation LUT Group Length | dvUL
(2050,0010) | Presentation LUT Sequence | dvSQ
(2050,0020) | Presentation LUT Shape | dvCS
(2050,0500) | Referenced Presentation LUT Sequence | dvSQ
(2100,0000) | Print Job Group Length | dvUL
(2100,0010) | Print Job ID | dvSH
(2100,0020) | Execution Status | dvCS
(2100,0030) | Execution Status Info | dvCS
(2100,0040) | Creation Date | dvDA
(2100,0050) | Creation Time | dvTM
(2100,0070) | Originator | dvAE
(2100,0140) | Destination AE | dvAE
(2100,0160) | Owner ID | dvSH
(2100,0170) | Number of Films | dvIS
(2100,0500) | Referenced Print Job Sequence (Pull Stored Print) | dvSQ
(2110,0000) | Printer Group Length | dvUL
(2110,0010) | Printer Status | dvCS
(2110,0020) | Printer Status Info | dvCS
(2110,0030) | Printer Name | dvLO
(2110,0099) | Print Queue ID | dvSH
(2120,0000) | Queue Group Length | dvUL
(2120,0010) | Queue Status | dvCS
(2120,0050) | Print Job Description Sequence | dvSQ
(2120,0070) | Referenced Print Job Sequence | dvSQ
(2130,0000) | Print Content Group Length | dvUL
(2130,0010) | Print Management Capabilities Sequence | dvSQ
(2130,0015) | Printer Characteristics Sequence | dvSQ
(2130,0030) | Film Box Content Sequence | dvSQ
(2130,0040) | Image Box Content Sequence | dvSQ
(2130,0050) | Annotation Content Sequence | dvSQ
(2130,0060) | Image Overlay Box Content Sequence | dvSQ
(2130,0080) | Presentation LUT Content Sequence | dvSQ
(2130,00A0) | Proposed Study Sequence | dvSQ
(2130,00C0) | Original Image Sequence | dvSQ
(2200,0001) | Label Using Information Extracted From Instances | dvCS
(2200,0002) | Label Text | dvUT
(2200,0003) | Label Style Selection | dvCS
(2200,0004) | Media Disposition | dvLT
(2200,0005) | Barcode Value | dvLT
(2200,0006) | Barcode Symbology | dvCS
(2200,0007) | Allow Media Splitting | dvCS
(2200,0008) | Include Non-DICOM Objects | dvCS
(2200,0009) | Include Display Application | dvCS
(2200,000A) | Preserve Composite Instances After Media Creation | dvCS
(2200,000B) | Total Number of Pieces of Media Created | dvUS
(2200,000C) | Requested Media Application Profile | dvLO
(2200,000D) | Referenced Storage Media Sequence | dvSQ
(2200,000E) | Failure Attributes | dvAT
(2200,000F) | Allow Lossy Compression | dvCS
(2200,0020) | Request Priority | dvCS
(3002,0000) | RT Image Group Length | dvUL
(3002,0002) | RT Image Label | dvSH
(3002,0003) | RT Image Name | dvLO
(3002,0004) | RT Image Description | dvST
(3002,000A) | Reported Values Origin | dvCS
(3002,000C) | RT Image Plane | dvCS
(3002,000D) | X-Ray Image Receptor Translation | dvDS
(3002,000E) | X-Ray Image Receptor Angle | dvDS
(3002,0010) | RT Image Orientation | dvDS
(3002,0011) | Image Plane Pixel Spacing | dvDS
(3002,0012) | RT Image Position | dvDS
(3002,0020) | Radiation Machine Name | dvSH
(3002,0022) | Radiation Machine SAD | dvDS
(3002,0024) | Radiation Machine SSD | dvDS
(3002,0026) | RT Image SID | dvDS
(3002,0028) | Source to Reference Object Distance | dvDS
(3002,0029) | Fraction Number | dvIS
(3002,0030) | Exposure Sequence | dvSQ
(3002,0032) | Meterset Exposure | dvDS
(3002,0034) | Diaphragm Position | dvDS
(3002,0040) | Fluence Map Sequence | dvSQ
(3002,0041) | Fluence Data Source | dvCS
(3002,0042) | Fluence Data Scale | dvDS
(3002,0050) | Primary Fluence Mode Sequence | dvSQ
(3002,0051) | Fluence Mode | dvCS
(3002,0052) | Fluence Mode ID | dvSH
(3004,0000) | Dose Group Length | dvUL
(3004,0001) | DVH Type | dvCS
(3004,0002) | Dose Units | dvCS
(3004,0004) | Dose Type | dvCS
(3004,0005) | Spatial Transform of Dose | dvCS
(3004,0006) | Dose Comment | dvLO
(3004,0008) | Normalization Point | dvDS
(3004,000A) | Dose Summation Type | dvCS
(3004,000C) | Grid Frame Offset Vector | dvDS
(3004,000E) | Dose Grid Scaling | dvDS
(3004,0010) | RT Dose ROI Sequence | dvSQ
(3004,0012) | Dose Value | dvDS
(3004,0014) | Tissue Heterogeneity Correction | dvCS
(3004,0040) | DVH Normalization Point | dvDS
(3004,0042) | DVH Normalization Dose Value | dvDS
(3004,0050) | DVH Sequence | dvSQ
(3004,0052) | DVH Dose Scaling | dvDS
(3004,0054) | DVH Volume Units | dvCS
(3004,0056) | DVH Number of Bins | dvIS
(3004,0058) | DVH Data | dvDS
(3004,0060) | DVH Referenced ROI Sequence | dvSQ
(3004,0062) | DVH ROI Contribution Type | dvCS
(3004,0070) | DVH Minimum Dose | dvDS
(3004,0072) | DVH Maximum Dose | dvDS
(3004,0074) | DVH Mean Dose | dvDS
(3006,0000) | Structure Set Group Length | dvUL
(3006,0002) | Structure Set Label | dvSH
(3006,0004) | Structure Set Name | dvLO
(3006,0006) | Structure Set Description | dvST
(3006,0008) | Structure Set Date | dvDA
(3006,0009) | Structure Set Time | dvTM
(3006,0010) | Referenced Frame of Reference Sequence | dvSQ
(3006,0012) | RT Referenced Study Sequence | dvSQ
(3006,0014) | RT Referenced Series Sequence | dvSQ
(3006,0016) | Contour Image Sequence | dvSQ
(3006,0018) | Predecessor Structure Set Sequence | dvSQ
(3006,0020) | Structure Set ROI Sequence | dvSQ
(3006,0022) | ROI Number | dvIS
(3006,0024) | Referenced Frame of Reference UID | dvUI
(3006,0026) | ROI Name | dvLO
(3006,0028) | ROI Description | dvST
(3006,002A) | ROI Display Color | dvIS
(3006,002C) | ROI Volume | dvDS
(3006,0030) | RT Related ROI Sequence | dvSQ
(3006,0033) | RT ROI Relationship | dvCS
(3006,0036) | ROI Generation Algorithm | dvCS
(3006,0038) | ROI Generation Description | dvLO
(3006,0039) | ROI Contour Sequence | dvSQ
(3006,0040) | Contour Sequence | dvSQ
(3006,0042) | Contour Geometric Type | dvCS
(3006,0044) | Contour Slab Thickness | dvDS
(3006,0045) | Contour Offset Vector | dvDS
(3006,0046) | Number of Contour Points | dvIS
(3006,0048) | Contour Number | dvIS
(3006,0049) | Attached Contours | dvIS
(3006,0050) | Contour Data | dvDS
(3006,0080) | RT ROI Observations Sequence | dvSQ
(3006,0082) | Observation Number | dvIS
(3006,0084) | Referenced ROI Number | dvIS
(3006,0085) | ROI Observation Label | dvSH
(3006,0086) | RT ROI Identification Code Sequence | dvSQ
(3006,0088) | ROI Observation Description | dvST
(3006,00A0) | Related RT ROI Observations Sequence | dvSQ
(3006,00A4) | RT ROI Interpreted Type | dvCS
(3006,00A6) | ROI Interpreter | dvPN
(3006,00B0) | ROI Physical Properties Sequence | dvSQ
(3006,00B2) | ROI Physical Property | dvCS
(3006,00B4) | ROI Physical Property Value | dvDS
(3006,00B6) | ROI Elemental Composition Sequence | dvSQ
(3006,00B7) | ROI Elemental Composition Atomic Number | dvUS
(3006,00B8) | ROI Elemental Composition Atomic Mass Fraction | dvFL
(3006,00B9) | Additional RT ROI Identification Code Sequence | dvSQ
(3006,00C0) | Frame of Reference Relationship Sequence | dvSQ
(3006,00C2) | Related Frame of Reference UID | dvUI
(3006,00C4) | Frame of Reference Transformation Type | dvCS
(3006,00C6) | Frame of Reference Transformation Matrix | dvDS
(3006,00C8) | Frame of Reference Transformation Comment | dvLO
(3008,0010) | Measured Dose Reference Sequence | dvSQ
(3008,0012) | Measured Dose Description | dvST
(3008,0014) | Measured Dose Type | dvCS
(3008,0016) | Measured Dose Value | dvDS
(3008,0020) | Treatment Session Beam Sequence | dvSQ
(3008,0021) | Treatment Session Ion Beam Sequence | dvSQ
(3008,0022) | Current Fraction Number | dvIS
(3008,0024) | Treatment Control Point Date | dvDA
(3008,0025) | Treatment Control Point Time | dvTM
(3008,002A) | Treatment Termination Status | dvCS
(3008,002B) | Treatment Termination Code | dvSH
(3008,002C) | Treatment Verification Status | dvCS
(3008,0030) | Referenced Treatment Record Sequence | dvSQ
(3008,0032) | Specified Primary Meterset | dvDS
(3008,0033) | Specified Secondary Meterset | dvDS
(3008,0036) | Delivered Primary Meterset | dvDS
(3008,0037) | Delivered Secondary Meterset | dvDS
(3008,003A) | Specified Treatment Time | dvDS
(3008,003B) | Delivered Treatment Time | dvDS
(3008,0040) | Control Point Delivery Sequence | dvSQ
(3008,0041) | Ion Control Point Delivery Sequence | dvSQ
(3008,0042) | Specified Meterset | dvDS
(3008,0044) | Delivered Meterset | dvDS
(3008,0045) | Meterset Rate Set | dvFL
(3008,0046) | Meterset Rate Delivered | dvFL
(3008,0047) | Scan Spot Metersets Delivered | dvFL
(3008,0048) | Dose Rate Delivered | dvDS
(3008,0050) | Treatment Summary Calculated Dose Reference Sequence | dvSQ
(3008,0052) | Cumulative Dose to Dose Reference | dvDS
(3008,0054) | First Treatment Date | dvDA
(3008,0056) | Most Recent Treatment Date | dvDA
(3008,005A) | Number of Fractions Delivered | dvIS
(3008,0060) | Override Sequence | dvSQ
(3008,0061) | Parameter Sequence Pointer | dvAT
(3008,0062) | Override Parameter Pointer | dvAT
(3008,0063) | Parameter Item Index | dvIS
(3008,0064) | Measured Dose Reference Number | dvIS
(3008,0065) | Parameter Pointer | dvAT
(3008,0066) | Override Reason | dvST
(3008,0068) | Corrected Parameter Sequence | dvSQ
(3008,006A) | Correction Value | dvFL
(3008,0070) | Calculated Dose Reference Sequence | dvSQ
(3008,0072) | Calculated Dose Reference Number | dvIS
(3008,0074) | Calculated Dose Reference Description | dvST
(3008,0076) | Calculated Dose Reference Dose Value | dvDS
(3008,0078) | Start Meterset | dvDS
(3008,007A) | End Meterset | dvDS
(3008,0080) | Referenced Measured Dose Reference Sequence | dvSQ
(3008,0082) | Referenced Measured Dose Reference Number | dvIS
(3008,0090) | Referenced Calculated Dose Reference Sequence | dvSQ
(3008,0092) | Referenced Calculated Dose Reference Number | dvIS
(3008,00A0) | Beam Limiting Device Leaf Pairs Sequence | dvSQ
(3008,00B0) | Recorded Wedge Sequence | dvSQ
(3008,00C0) | Recorded Compensator Sequence | dvSQ
(3008,00D0) | Recorded Block Sequence | dvSQ
(3008,00E0) | Treatment Summary Measured Dose Reference Sequence | dvSQ
(3008,00F0) | Recorded Snout Sequence | dvSQ
(3008,00F2) | Recorded Range Shifter Sequence | dvSQ
(3008,00F4) | Recorded Lateral Spreading Device Sequence | dvSQ
(3008,00F6) | Recorded Range Modulator Sequence | dvSQ
(3008,0100) | Recorded Source Sequence | dvSQ
(3008,0105) | Source Serial Number | dvLO
(3008,0110) | Treatment Session Application Setup Sequence | dvSQ
(3008,0116) | Application Setup Check | dvCS
(3008,0120) | Recorded Brachy Accessory Device Sequence | dvSQ
(3008,0122) | Referenced Brachy Accessory Device Number | dvIS
(3008,0130) | Recorded Channel Sequence | dvSQ
(3008,0132) | Specified Channel Total Time | dvDS
(3008,0134) | Delivered Channel Total Time | dvDS
(3008,0136) | Specified Number of Pulses | dvIS
(3008,0138) | Delivered Number of Pulses | dvIS
(3008,013A) | Specified Pulse Repetition Interval | dvDS
(3008,013C) | Delivered Pulse Repetition Interval | dvDS
(3008,0140) | Recorded Source Applicator Sequence | dvSQ
(3008,0142) | Referenced Source Applicator Number | dvIS
(3008,0150) | Recorded Channel Shield Sequence | dvSQ
(3008,0152) | Referenced Channel Shield Number | dvIS
(3008,0160) | Brachy Control Point Delivered Sequence | dvSQ
(3008,0162) | Safe Position Exit Date | dvDA
(3008,0164) | Safe Position Exit Time | dvTM
(3008,0166) | Safe Position Return Date | dvDA
(3008,0168) | Safe Position Return Time | dvTM
(3008,0171) | Pulse Specific Brachy Control Point Delivered Sequence | dvSQ
(3008,0172) | Pulse Number | dvUS
(3008,0173) | Brachy Pulse Control Point Delivered Sequence | dvSQ
(3008,0200) | Current Treatment Status | dvCS
(3008,0202) | Treatment Status Comment | dvST
(3008,0220) | Fraction Group Summary Sequence | dvSQ
(3008,0223) | Referenced Fraction Number | dvIS
(3008,0224) | Fraction Group Type | dvCS
(3008,0230) | Beam Stopper Position | dvCS
(3008,0240) | Fraction Status Summary Sequence | dvSQ
(3008,0250) | Treatment Date | dvDA
(3008,0251) | Treatment Time | dvTM
(300A,0000) | RT Plan Group Length | dvUL
(300A,0002) | RT Plan Label | dvSH
(300A,0003) | RT Plan Name | dvLO
(300A,0004) | RT Plan Description | dvST
(300A,0006) | RT Plan Date | dvDA
(300A,0007) | RT Plan Time | dvTM
(300A,0009) | Treatment Protocols | dvLO
(300A,000A) | Plan Intent | dvCS
(300A,000B) | Treatment Sites | dvLO
(300A,000C) | RT Plan Geometry | dvCS
(300A,000E) | Prescription Description | dvST
(300A,0010) | Dose Reference Sequence | dvSQ
(300A,0012) | Dose Reference Number | dvIS
(300A,0013) | Dose Reference UID | dvUI
(300A,0014) | Dose Reference Structure Type | dvCS
(300A,0015) | Nominal Beam Energy Unit | dvCS
(300A,0016) | Dose Reference Description | dvLO
(300A,0018) | Dose Reference Point Coordinates | dvDS
(300A,001A) | Nominal Prior Dose | dvDS
(300A,0020) | Dose Reference Type | dvCS
(300A,0021) | Constraint Weight | dvDS
(300A,0022) | Delivery Warning Dose | dvDS
(300A,0023) | Delivery Maximum Dose | dvDS
(300A,0025) | Target Minimum Dose | dvDS
(300A,0026) | Target Prescription Dose | dvDS
(300A,0027) | Target Maximum Dose | dvDS
(300A,0028) | Target Underdose Volume Fraction | dvDS
(300A,002A) | Organ at Risk Full-volume Dose | dvDS
(300A,002B) | Organ at Risk Limit Dose | dvDS
(300A,002C) | Organ at Risk Maximum Dose | dvDS
(300A,002D) | Organ at Risk Overdose Volume Fraction | dvDS
(300A,0040) | Tolerance Table Sequence | dvSQ
(300A,0042) | Tolerance Table Number | dvIS
(300A,0043) | Tolerance Table Label | dvSH
(300A,0044) | Gantry Angle Tolerance | dvDS
(300A,0046) | Beam Limiting Device Angle Tolerance | dvDS
(300A,0048) | Beam Limiting Device Tolerance Sequence | dvSQ
(300A,004A) | Beam Limiting Device Position Tolerance | dvDS
(300A,004B) | Snout Position Tolerance | dvFL
(300A,004C) | Patient Support Angle Tolerance | dvDS
(300A,004E) | Table Top Eccentric Angle Tolerance | dvDS
(300A,004F) | Table Top Pitch Angle Tolerance | dvFL
(300A,0050) | Table Top Roll Angle Tolerance | dvFL
(300A,0051) | Table Top Vertical Position Tolerance | dvDS
(300A,0052) | Table Top Longitudinal Position Tolerance | dvDS
(300A,0053) | Table Top Lateral Position Tolerance | dvDS
(300A,0055) | RT Plan Relationship | dvCS
(300A,0070) | Fraction Group Sequence | dvSQ
(300A,0071) | Fraction Group Number | dvIS
(300A,0072) | Fraction Group Description | dvLO
(300A,0078) | Number of Fractions Planned | dvIS
(300A,0079) | Number of Fraction Pattern Digits per Day | dvIS
(300A,007A) | Repeat Fraction Cycle Length | dvIS
(300A,007B) | Fraction Pattern | dvLT
(300A,0080) | Number of Beams | dvIS
(300A,0082) | Beam Dose Specification Point | dvDS
(300A,0084) | Beam Dose | dvDS
(300A,0086) | Beam Meterset | dvDS
(300A,0088) | Beam Dose Point Depth | dvFL
(300A,0089) | Beam Dose Point Equivalent Depth | dvFL
(300A,008A) | Beam Dose Point SSD | dvFL
(300A,008B) | Beam Dose Meaning | dvCS
(300A,008C) | Beam Dose Verification Control Point Sequence | dvSQ
(300A,008D) | Average Beam Dose Point Depth | dvFL
(300A,008E) | Average Beam Dose Point Equivalent Depth | dvFL
(300A,008F) | Average Beam Dose Point SSD | dvFL
(300A,00A0) | Number of Brachy Application Setups | dvIS
(300A,00A2) | Brachy Application Setup Dose Specification Point | dvDS
(300A,00A4) | Brachy Application Setup Dose | dvDS
(300A,00B0) | Beam Sequence | dvSQ
(300A,00B2) | Treatment Machine Name | dvSH
(300A,00B3) | Primary Dosimeter Unit | dvCS
(300A,00B4) | Source-Axis Distance | dvDS
(300A,00B6) | Beam Limiting Device Sequence | dvSQ
(300A,00B8) | RT Beam Limiting Device Type | dvCS
(300A,00BA) | Source to Beam Limiting Device Distance | dvDS
(300A,00BB) | Isocenter to Beam Limiting Device Distance | dvFL
(300A,00BC) | Number of Leaf/Jaw Pairs | dvIS
(300A,00BE) | Leaf Position Boundaries | dvDS
(300A,00C0) | Beam Number | dvIS
(300A,00C2) | Beam Name | dvLO
(300A,00C3) | Beam Description | dvST
(300A,00C4) | Beam Type | dvCS
(300A,00C5) | Beam Delivery Duration Limit | dvFD
(300A,00C6) | Radiation Type | dvCS
(300A,00C7) | High-Dose Technique Type | dvCS
(300A,00C8) | Reference Image Number | dvIS
(300A,00CA) | Planned Verification Image Sequence | dvSQ
(300A,00CC) | Imaging Device-Specific Acquisition Parameters | dvLO
(300A,00CE) | Treatment Delivery Type | dvCS
(300A,00D0) | Number of Wedges | dvIS
(300A,00D1) | Wedge Sequence | dvSQ
(300A,00D2) | Wedge Number | dvIS
(300A,00D3) | Wedge Type | dvCS
(300A,00D4) | Wedge ID | dvSH
(300A,00D5) | Wedge Angle | dvIS
(300A,00D6) | Wedge Factor | dvDS
(300A,00D7) | Total Wedge Tray Water-Equivalent Thickness | dvFL
(300A,00D8) | Wedge Orientation | dvDS
(300A,00D9) | Isocenter to Wedge Tray Distance | dvFL
(300A,00DA) | Source to Wedge Tray Distance | dvDS
(300A,00DB) | Wedge Thin Edge Position | dvFL
(300A,00DC) | Bolus ID | dvSH
(300A,00DD) | Bolus Description | dvST
(300A,00E0) | Number of Compensators | dvIS
(300A,00E1) | Material ID | dvSH
(300A,00E2) | Total Compensator Tray Factor | dvDS
(300A,00E3) | Compensator Sequence | dvSQ
(300A,00E4) | Compensator Number | dvIS
(300A,00E5) | Compensator ID | dvSH
(300A,00E6) | Source to Compensator Tray Distance | dvDS
(300A,00E7) | Compensator Rows | dvIS
(300A,00E8) | Compensator Columns | dvIS
(300A,00E9) | Compensator Pixel Spacing | dvDS
(300A,00EA) | Compensator Position | dvDS
(300A,00EB) | Compensator Transmission Data | dvDS
(300A,00EC) | Compensator Thickness Data | dvDS
(300A,00ED) | Number of Boli | dvIS
(300A,00EE) | Compensator Type | dvCS
(300A,00EF) | Compensator Tray ID | dvSH
(300A,00F0) | Number of Blocks | dvIS
(300A,00F2) | Total Block Tray Factor | dvDS
(300A,00F3) | Total Block Tray Water-Equivalent Thickness | dvFL
(300A,00F4) | Block Sequence | dvSQ
(300A,00F5) | Block Tray ID | dvSH
(300A,00F6) | Source to Block Tray Distance | dvDS
(300A,00F7) | Isocenter to Block Tray Distance | dvFL
(300A,00F8) | Block Type | dvCS
(300A,00F9) | Accessory Code | dvLO
(300A,00FA) | Block Divergence | dvCS
(300A,00FB) | Block Mounting Position | dvCS
(300A,00FC) | Block Number | dvIS
(300A,00FE) | Block Name | dvLO
(300A,0100) | Block Thickness | dvDS
(300A,0102) | Block Transmission | dvDS
(300A,0104) | Block Number of Points | dvIS
(300A,0106) | Block Data | dvDS
(300A,0107) | Applicator Sequence | dvSQ
(300A,0108) | Applicator ID | dvSH
(300A,0109) | Applicator Type | dvCS
(300A,010A) | Applicator Description | dvLO
(300A,010C) | Cumulative Dose Reference Coefficient | dvDS
(300A,010E) | Final Cumulative Meterset Weight | dvDS
(300A,0110) | Number of Control Points | dvIS
(300A,0111) | Control Point Sequence | dvSQ
(300A,0112) | Control Point Index | dvIS
(300A,0114) | Nominal Beam Energy | dvDS
(300A,0115) | Dose Rate Set | dvDS
(300A,0116) | Wedge Position Sequence | dvSQ
(300A,0118) | Wedge Position | dvCS
(300A,011A) | Beam Limiting Device Position Sequence | dvSQ
(300A,011C) | Leaf/Jaw Positions | dvDS
(300A,011E) | Gantry Angle | dvDS
(300A,011F) | Gantry Rotation Direction | dvCS
(300A,0120) | Beam Limiting Device Angle | dvDS
(300A,0121) | Beam Limiting Device Rotation Direction | dvCS
(300A,0122) | Patient Support Angle | dvDS
(300A,0123) | Patient Support Rotation Direction | dvCS
(300A,0124) | Table Top Eccentric Axis Distance | dvDS
(300A,0125) | Table Top Eccentric Angle | dvDS
(300A,0126) | Table Top Eccentric Rotation Direction | dvCS
(300A,0128) | Table Top Vertical Position | dvDS
(300A,0129) | Table Top Longitudinal Position | dvDS
(300A,012A) | Table Top Lateral Position | dvDS
(300A,012C) | Isocenter Position | dvDS
(300A,012E) | Surface Entry Point | dvDS
(300A,0130) | Source to Surface Distance | dvDS
(300A,0134) | Cumulative Meterset Weight | dvDS
(300A,0140) | Table Top Pitch Angle | dvFL
(300A,0142) | Table Top Pitch Rotation Direction | dvCS
(300A,0144) | Table Top Roll Angle | dvFL
(300A,0146) | Table Top Roll Rotation Direction | dvCS
(300A,0148) | Head Fixation Angle | dvFL
(300A,014A) | Gantry Pitch Angle | dvFL
(300A,014C) | Gantry Pitch Rotation Direction | dvCS
(300A,014E) | Gantry Pitch Angle Tolerance | dvFL
(300A,0180) | Patient Setup Sequence | dvSQ
(300A,0182) | Patient Setup Number | dvIS
(300A,0183) | Patient Setup Label | dvLO
(300A,0184) | Patient Additional Position | dvLO
(300A,0190) | Fixation Device Sequence | dvSQ
(300A,0192) | Fixation Device Type | dvCS
(300A,0194) | Fixation Device Label | dvSH
(300A,0196) | Fixation Device Description | dvST
(300A,0198) | Fixation Device Position | dvSH
(300A,0199) | Fixation Device Pitch Angle | dvFL
(300A,019A) | Fixation Device Roll Angle | dvFL
(300A,01A0) | Shielding Device Sequence | dvSQ
(300A,01A2) | Shielding Device Type | dvCS
(300A,01A4) | Shielding Device Label | dvSH
(300A,01A6) | Shielding Device Description | dvST
(300A,01A8) | Shielding Device Position | dvSH
(300A,01B0) | Setup Technique | dvCS
(300A,01B2) | Setup Technique Description | dvST
(300A,01B4) | Setup Device Sequence | dvSQ
(300A,01B6) | Setup Device Type | dvCS
(300A,01B8) | Setup Device Label | dvSH
(300A,01BA) | Setup Device Description | dvST
(300A,01BC) | Setup Device Parameter | dvDS
(300A,01D0) | Setup Reference Description | dvST
(300A,01D2) | Table Top Vertical Setup Displacement | dvDS
(300A,01D4) | Table Top Longitudinal Setup Displacement | dvDS
(300A,01D6) | Table Top Lateral Setup Displacement | dvDS
(300A,0200) | Brachy Treatment Technique | dvCS
(300A,0202) | Brachy Treatment Type | dvCS
(300A,0206) | Treatment Machine Sequence | dvSQ
(300A,0210) | Source Sequence | dvSQ
(300A,0212) | Source Number | dvIS
(300A,0214) | Source Type | dvCS
(300A,0216) | Source Manufacturer | dvLO
(300A,0218) | Active Source Diameter | dvDS
(300A,021A) | Active Source Length | dvDS
(300A,021B) | Source Model ID | dvSH
(300A,021C) | Source Description | dvLO
(300A,0222) | Source Encapsulation Nominal Thickness | dvDS
(300A,0224) | Source Encapsulation Nominal Transmission | dvDS
(300A,0226) | Source Isotope Name | dvLO
(300A,0228) | Source Isotope Half Life | dvDS
(300A,0229) | Source Strength Units | dvCS
(300A,022A) | Reference Air Kerma Rate | dvDS
(300A,022B) | Source Strength | dvDS
(300A,022C) | Source Strength Reference Date | dvDA
(300A,022E) | Source Strength Reference Time | dvTM
(300A,0230) | Application Setup Sequence | dvSQ
(300A,0232) | Application Setup Type | dvCS
(300A,0234) | Application Setup Number | dvIS
(300A,0236) | Application Setup Name | dvLO
(300A,0238) | Application Setup Manufacturer | dvLO
(300A,0240) | Template Number | dvIS
(300A,0242) | Template Type | dvSH
(300A,0244) | Template Name | dvLO
(300A,0250) | Total Reference Air Kerma | dvDS
(300A,0260) | Brachy Accessory Device Sequence | dvSQ
(300A,0262) | Brachy Accessory Device Number | dvIS
(300A,0263) | Brachy Accessory Device ID | dvSH
(300A,0264) | Brachy Accessory Device Type | dvCS
(300A,0266) | Brachy Accessory Device Name | dvLO
(300A,026A) | Brachy Accessory Device Nominal Thickness | dvDS
(300A,026C) | Brachy Accessory Device Nominal Transmission | dvDS
(300A,0280) | Channel Sequence | dvSQ
(300A,0282) | Channel Number | dvIS
(300A,0284) | Channel Length | dvDS
(300A,0286) | Channel Total Time | dvDS
(300A,0288) | Source Movement Type | dvCS
(300A,028A) | Number of Pulses | dvIS
(300A,028C) | Pulse Repetition Interval | dvDS
(300A,0290) | Source Applicator Number | dvIS
(300A,0291) | Source Applicator ID | dvSH
(300A,0292) | Source Applicator Type | dvCS
(300A,0294) | Source Applicator Name | dvLO
(300A,0296) | Source Applicator Length | dvDS
(300A,0298) | Source Applicator Manufacturer | dvLO
(300A,029C) | Source Applicator Wall Nominal Thickness | dvDS
(300A,029E) | Source Applicator Wall Nominal Transmission | dvDS
(300A,02A0) | Source Applicator Step Size | dvDS
(300A,02A2) | Transfer Tube Number | dvIS
(300A,02A4) | Transfer Tube Length | dvDS
(300A,02B0) | Channel Shield Sequence | dvSQ
(300A,02B2) | Channel Shield Number | dvIS
(300A,02B3) | Channel Shield ID | dvSH
(300A,02B4) | Channel Shield Name | dvLO
(300A,02B8) | Channel Shield Nominal Thickness | dvDS
(300A,02BA) | Channel Shield Nominal Transmission | dvDS
(300A,02C8) | Final Cumulative Time Weight | dvDS
(300A,02D0) | Brachy Control Point Sequence | dvSQ
(300A,02D2) | Control Point Relative Position | dvDS
(300A,02D4) | Control Point 3D Position | dvDS
(300A,02D6) | Cumulative Time Weight | dvDS
(300A,02E0) | Compensator Divergence | dvCS
(300A,02E1) | Compensator Mounting Position | dvCS
(300A,02E2) | Source to Compensator Distance | dvDS
(300A,02E3) | Total Compensator Tray Water-Equivalent Thickness | dvFL
(300A,02E4) | Isocenter to Compensator Tray Distance | dvFL
(300A,02E5) | Compensator Column Offset | dvFL
(300A,02E6) | Isocenter to Compensator Distances | dvFL
(300A,02E7) | Compensator Relative Stopping Power Ratio | dvFL
(300A,02E8) | Compensator Milling Tool Diameter | dvFL
(300A,02EA) | Ion Range Compensator Sequence | dvSQ
(300A,02EB) | Compensator Description | dvLT
(300A,0302) | Radiation Mass Number | dvIS
(300A,0304) | Radiation Atomic Number | dvIS
(300A,0306) | Radiation Charge State | dvSS
(300A,0308) | Scan Mode | dvCS
(300A,030A) | Virtual Source-Axis Distances | dvFL
(300A,030C) | Snout Sequence | dvSQ
(300A,030D) | Snout Position | dvFL
(300A,030F) | Snout ID | dvSH
(300A,0312) | Number of Range Shifters | dvIS
(300A,0314) | Range Shifter Sequence | dvSQ
(300A,0316) | Range Shifter Number | dvIS
(300A,0318) | Range Shifter ID | dvSH
(300A,0320) | Range Shifter Type | dvCS
(300A,0322) | Range Shifter Description | dvLO
(300A,0330) | Number of Lateral Spreading Devices | dvIS
(300A,0332) | Lateral Spreading Device Sequence | dvSQ
(300A,0334) | Lateral Spreading Device Number | dvIS
(300A,0336) | Lateral Spreading Device ID | dvSH
(300A,0338) | Lateral Spreading Device Type | dvCS
(300A,033A) | Lateral Spreading Device Description | dvLO
(300A,033C) | Lateral Spreading Device Water Equivalent Thickness | dvFL
(300A,0340) | Number of Range Modulators | dvIS
(300A,0342) | Range Modulator Sequence | dvSQ
(300A,0344) | Range Modulator Number | dvIS
(300A,0346) | Range Modulator ID | dvSH
(300A,0348) | Range Modulator Type | dvCS
(300A,034A) | Range Modulator Description | dvLO
(300A,034C) | Beam Current Modulation ID | dvSH
(300A,0350) | Patient Support Type | dvCS
(300A,0352) | Patient Support ID | dvSH
(300A,0354) | Patient Support Accessory Code | dvLO
(300A,0356) | Fixation Light Azimuthal Angle | dvFL
(300A,0358) | Fixation Light Polar Angle | dvFL
(300A,035A) | Meterset Rate | dvFL
(300A,0360) | Range Shifter Settings Sequence | dvSQ
(300A,0362) | Range Shifter Setting | dvLO
(300A,0364) | Isocenter to Range Shifter Distance | dvFL
(300A,0366) | Range Shifter Water Equivalent Thickness | dvFL
(300A,0370) | Lateral Spreading Device Settings Sequence | dvSQ
(300A,0372) | Lateral Spreading Device Setting | dvLO
(300A,0374) | Isocenter to Lateral Spreading Device Distance | dvFL
(300A,0380) | Range Modulator Settings Sequence | dvSQ
(300A,0382) | Range Modulator Gating Start Value | dvFL
(300A,0384) | Range Modulator Gating Stop Value | dvFL
(300A,0386) | Range Modulator Gating Start Water Equivalent Thickness | dvFL
(300A,0388) | Range Modulator Gating Stop Water Equivalent Thickness | dvFL
(300A,038A) | Isocenter to Range Modulator Distance | dvFL
(300A,0390) | Scan Spot Tune ID | dvSH
(300A,0392) | Number of Scan Spot Positions | dvIS
(300A,0394) | Scan Spot Position Map | dvFL
(300A,0396) | Scan Spot Meterset Weights | dvFL
(300A,0398) | Scanning Spot Size | dvFL
(300A,039A) | Number of Paintings | dvIS
(300A,03A0) | Ion Tolerance Table Sequence | dvSQ
(300A,03A2) | Ion Beam Sequence | dvSQ
(300A,03A4) | Ion Beam Limiting Device Sequence | dvSQ
(300A,03A6) | Ion Block Sequence | dvSQ
(300A,03A8) | Ion Control Point Sequence | dvSQ
(300A,03AA) | Ion Wedge Sequence | dvSQ
(300A,03AC) | Ion Wedge Position Sequence | dvSQ
(300A,0401) | Referenced Setup Image Sequence | dvSQ
(300A,0402) | Setup Image Comment | dvST
(300A,0410) | Motion Synchronization Sequence | dvSQ
(300A,0412) | Control Point Orientation | dvFL
(300A,0420) | General Accessory Sequence | dvSQ
(300A,0421) | General Accessory ID | dvSH
(300A,0422) | General Accessory Description | dvST
(300A,0423) | General Accessory Type | dvCS
(300A,0424) | General Accessory Number | dvIS
(300A,0425) | Source to General Accessory Distance | dvFL
(300A,0431) | Applicator Geometry Sequence | dvSQ
(300A,0432) | Applicator Aperture Shape | dvCS
(300A,0433) | Applicator Opening | dvFL
(300A,0434) | Applicator Opening X | dvFL
(300A,0435) | Applicator Opening Y | dvFL
(300A,0436) | Source to Applicator Mounting Position Distance | dvFL
(300C,0000) | RT Relationship Group Length | dvUL
(300C,0002) | Referenced RT Plan Sequence | dvSQ
(300C,0004) | Referenced Beam Sequence | dvSQ
(300C,0006) | Referenced Beam Number | dvIS
(300C,0007) | Referenced Reference Image Number | dvIS
(300C,0008) | Start Cumulative Meterset Weight | dvDS
(300C,0009) | End Cumulative Meterset Weight | dvDS
(300C,000A) | Referenced Brachy Application Setup Sequence | dvSQ
(300C,000C) | Referenced Brachy Application Setup Number | dvIS
(300C,000E) | Referenced Source Number | dvIS
(300C,0020) | Referenced Fraction Group Sequence | dvSQ
(300C,0022) | Referenced Fraction Group Number | dvIS
(300C,0040) | Referenced Verification Image Sequence | dvSQ
(300C,0042) | Referenced Reference Image Sequence | dvSQ
(300C,0050) | Referenced Dose Reference Sequence | dvSQ
(300C,0051) | Referenced Dose Reference Number | dvIS
(300C,0055) | Brachy Referenced Dose Reference Sequence | dvSQ
(300C,0060) | Referenced Structure Set Sequence | dvSQ
(300C,006A) | Referenced Patient Setup Number | dvIS
(300C,0080) | Referenced Dose Sequence | dvSQ
(300C,00A0) | Referenced Tolerance Table Number | dvIS
(300C,00B0) | Referenced Bolus Sequence | dvSQ
(300C,00C0) | Referenced Wedge Number | dvIS
(300C,00D0) | Referenced Compensator Number | dvIS
(300C,00E0) | Referenced Block Number | dvIS
(300C,00F0) | Referenced Control Point Index | dvIS
(300C,00F2) | Referenced Control Point Sequence | dvSQ
(300C,00F4) | Referenced Start Control Point Index | dvIS
(300C,00F6) | Referenced Stop Control Point Index | dvIS
(300C,0100) | Referenced Range Shifter Number | dvIS
(300C,0102) | Referenced Lateral Spreading Device Number | dvIS
(300C,0104) | Referenced Range Modulator Number | dvIS
(300E,0000) | Approval Group Length | dvUL
(300E,0002) | Approval Status | dvCS
(300E,0004) | Review Date | dvDA
(300E,0005) | Review Time | dvTM
(300E,0008) | Reviewer Name | dvPN
(4000,0000) | Text Group Length | dvUL
(4000,0010) | Arbitrary | dvLT
(4000,4000) | Text Comments | dvLT
(4008,0000) | Results Group Length | dvUL
(4008,0040) | Results ID | dvSH
(4008,0042) | Results ID Issuer | dvLO
(4008,0050) | Referenced Interpretation Sequence | dvSQ
(4008,00FF) | Report Production Status (Trial) | dvCS
(4008,0100) | Interpretation Recorded Date | dvDA
(4008,0101) | Interpretation Recorded Time | dvTM
(4008,0102) | Interpretation Recorder | dvPN
(4008,0103) | Reference to Recorded Sound | dvLO
(4008,0108) | Interpretation Transcription Date | dvDA
(4008,0109) | Interpretation Transcription Time | dvTM
(4008,010A) | Interpretation Transcriber | dvPN
(4008,010B) | Interpretation Text | dvST
(4008,010C) | Interpretation Author | dvPN
(4008,0111) | Interpretation Approver Sequence | dvSQ
(4008,0112) | Interpretation Approval Date | dvDA
(4008,0113) | Interpretation Approval Time | dvTM
(4008,0114) | Physician Approving Interpretation | dvPN
(4008,0115) | Interpretation Diagnosis Description | dvLT
(4008,0117) | Interpretation Diagnosis Code Sequence | dvSQ
(4008,0118) | Results Distribution List Sequence | dvSQ
(4008,0119) | Distribution Name | dvPN
(4008,011A) | Distribution Address | dvLO
(4008,0200) | Interpretation ID | dvSH
(4008,0202) | Interpretation ID Issuer | dvLO
(4008,0210) | Interpretation Type ID | dvCS
(4008,0212) | Interpretation Status ID | dvCS
(4008,0300) | Impressions | dvST
(4008,4000) | Results Comments | dvST
(4009,0001) | Undocumented | dvLT
(4009,0020) | Undocumented | dvLT
(4009,0030) | Undocumented | dvDA
(4009,0070) | Undocumented | dvLT
(4009,00E0) | Undocumented | dvLT
(4009,00E1) | Undocumented | dvLT
(4009,00E3) | Undocumented | dvLT
(4010,0001) | Low Energy Detectors | dvCS
(4010,0002) | High Energy Detectors | dvCS
(4010,0004) | Detector Geometry Sequence | dvSQ
(4010,1001) | Threat ROI Voxel Sequence | dvSQ
(4010,1004) | Threat ROI Base | dvFL
(4010,1005) | Threat ROI Extents | dvFL
(4010,1006) | Threat ROI Bitmap | dvOB
(4010,1007) | Route Segment ID | dvSH
(4010,1008) | Gantry Type | dvCS
(4010,1009) | OOI Owner Type | dvCS
(4010,100A) | Route Segment Sequence | dvSQ
(4010,1010) | Potential Threat Object ID | dvUS
(4010,1011) | Threat Sequence | dvSQ
(4010,1012) | Threat Category | dvCS
(4010,1013) | Threat Category Description | dvLT
(4010,1014) | ATD Ability Assessment | dvCS
(4010,1015) | ATD Assessment Flag | dvCS
(4010,1016) | ATD Assessment Probability | dvFL
(4010,1017) | Mass | dvFL
(4010,1018) | Density | dvFL
(4010,1019) | Z Effective | dvFL
(4010,101A) | Boarding Pass ID | dvSH
(4010,101B) | Center of Mass | dvFL
(4010,101C) | Center of PTO | dvFL
(4010,101D) | Bounding Polygon | dvFL
(4010,101E) | Route Segment Start Location ID | dvSH
(4010,101F) | Route Segment End Location ID | dvSH
(4010,1020) | Route Segment Location ID Type | dvCS
(4010,1021) | Abort Reason | dvCS
(4010,1023) | Volume of PTO | dvFL
(4010,1024) | Abort Flag | dvCS
(4010,1025) | Route Segment Start Time | dvDT
(4010,1026) | Route Segment End Time | dvDT
(4010,1027) | TDR Type | dvCS
(4010,1028) | International Route Segment | dvCS
(4010,1029) | Threat Detection Algorithm and Version | dvLO
(4010,102A) | Assigned Location | dvSH
(4010,102B) | Alarm Decision Time | dvDT
(4010,1031) | Alarm Decision | dvCS
(4010,1033) | Number of Total Objects | dvUS
(4010,1034) | Number of Alarm Objects | dvUS
(4010,1037) | PTO Representation Sequence | dvSQ
(4010,1038) | ATD Assessment Sequence | dvSQ
(4010,1039) | TIP Type | dvCS
(4010,103A) | DICOS Version | dvCS
(4010,1041) | OOI Owner Creation Time | dvDT
(4010,1042) | OOI Type | dvCS
(4010,1043) | OOI Size | dvFL
(4010,1044) | Acquisition Status | dvCS
(4010,1045) | Basis Materials Code Sequence | dvSQ
(4010,1046) | Phantom Type | dvCS
(4010,1047) | OOI Owner Sequence | dvSQ
(4010,1048) | Scan Type | dvCS
(4010,1051) | Itinerary ID | dvLO
(4010,1052) | Itinerary ID Type | dvSH
(4010,1053) | Itinerary ID Assigning Authority | dvLO
(4010,1054) | Route ID | dvSH
(4010,1055) | Route ID Assigning Authority | dvSH
(4010,1056) | Inbound Arrival Type | dvCS
(4010,1058) | Carrier ID | dvSH
(4010,1059) | Carrier ID Assigning Authority | dvCS
(4010,1060) | Source Orientation | dvFL
(4010,1061) | Source Position | dvFL
(4010,1062) | Belt Height | dvFL
(4010,1064) | Algorithm Routing Code Sequence | dvSQ
(4010,1067) | Transport Classification | dvCS
(4010,1068) | OOI Type Descriptor | dvLT
(4010,1069) | Total Processing Time | dvFL
(4010,106C) | Detector Calibration Data | dvOB
(4010,106D) | Additional Screening Performed | dvCS
(4010,106E) | Additional Inspection Selection Criteria | dvCS
(4010,106F) | Additional Inspection Method Sequence | dvSQ
(4010,1070) | AIT Device Type | dvCS
(4010,1071) | QR Measurements Sequence | dvSQ
(4010,1072) | Target Material Sequence | dvSQ
(4010,1073) | SNR Threshold | dvFD
(4010,1075) | Image Scale Representation | dvDS
(4010,1076) | Referenced PTO Sequence | dvSQ
(4010,1077) | Referenced TDR Instance Sequence | dvSQ
(4010,1078) | PTO Location Description | dvST
(4010,1079) | Anomaly Locator Indicator Sequence | dvSQ
(4010,107A) | Anomaly Locator Indicator | dvFL
(4010,107B) | PTO Region Sequence | dvSQ
(4010,107C) | Inspection Selection Criteria | dvCS
(4010,107D) | Secondary Inspection Method Sequence | dvSQ
(4010,107E) | PRCS to RCS Orientation | dvDS
(4FFE,0001) | MAC Parameters Sequence | dvSQ
(5000,0000) | Undocumented | dvUL
(5000,0005) | Curve Dimensions | dvUS
(5000,0010) | Number of Points | dvUS
(5000,0020) | Type of Data | dvCS
(5000,0022) | Curve Description | dvLO
(5000,0030) | Axis Units | dvSH
(5000,0040) | Axis Labels | dvSH
(5000,0103) | Data Value Representation | dvUS
(5000,0104) | Minimum Coordinate Value | dvUS
(5000,0105) | Maximum Coordinate Value | dvUS
(5000,0106) | Curve Range | dvSH
(5000,0110) | Curve Data Descriptor | dvUS
(5000,0112) | Coordinate Start Value | dvUS
(5000,0114) | Coordinate Step Value | dvUS
(5000,1001) | Curve Activation Layer | dvCS
(5000,2000) | Audio Type | dvUS
(5000,2002) | Audio Sample Format | dvUS
(5000,2004) | Number of Channels | dvUS
(5000,2006) | Number of Samples | dvUL
(5000,2008) | Sample Rate | dvUL
(5000,200A) | Total Time | dvUL
(5000,200C) | Audio Sample Data | dvOW
(5000,200E) | Audio Comments | dvLT
(5000,2500) | Curve Label | dvLO
(5000,2600) | Curve Referenced Overlay Sequence | dvSQ
(5000,2610) | Curve Referenced Overlay Group | dvUS
(5000,3000) | Curve Data | dvOW
(5200,9229) | Shared Functional Groups Sequence | dvSQ
(5200,9230) | Per-frame Functional Groups Sequence | dvSQ
(5400,0000) | Waveform Group Length | dvUL
(5400,0100) | Waveform Sequence | dvSQ
(5400,0110) | Channel Minimum Value | dvOW
(5400,0112) | Channel Maximum Value | dvOW
(5400,1004) | Waveform Bits Allocated | dvUS
(5400,1006) | Waveform Sample Interpretation | dvCS
(5400,100A) | Waveform Padding Value | dvOW
(5400,1010) | Waveform Data | dvOW
(5600,0010) | First Order Phase Correction Angle | dvOF
(5600,0020) | Spectroscopy Data | dvOF
(6000,0000) | Overlay Group Length | dvUL
(6000,0001) | Undocumented | dvUS
(6000,0002) | Undocumented | dvUS
(6000,0010) | Overlay Rows | dvUS
(6000,0011) | Overlay Columns | dvUS
(6000,0012) | Overlay Planes | dvUS
(6000,0015) | Number of Frames in Overlay | dvIS
(6000,0022) | Overlay Description | dvLO
(6000,0040) | Overlay Type | dvCS
(6000,0045) | Overlay Subtype | dvLO
(6000,0050) | Overlay Origin | dvSS
(6000,0051) | Image Frame Origin | dvUS
(6000,0052) | Overlay Plane Origin | dvUS
(6000,0060) | Overlay Compression Code | dvCS
(6000,0061) | Overlay Compression Originator | dvSH
(6000,0062) | Overlay Compression Label | dvSH
(6000,0063) | Overlay Compression Description | dvCS
(6000,0066) | Overlay Compression Step Pointers | dvAT
(6000,0068) | Overlay Repeat Interval | dvUS
(6000,0069) | Overlay Bits Grouped | dvUS
(6000,0100) | Overlay Bits Allocated | dvUS
(6000,0102) | Overlay Bit Position | dvUS
(6000,0110) | Overlay Format | dvCS
(6000,0200) | Overlay Location | dvUS
(6000,0800) | Overlay Code Label | dvCS
(6000,0802) | Overlay Number of Tables | dvUS
(6000,0803) | Overlay Code Table Location | dvAT
(6000,0804) | Overlay Bits for Code Word | dvUS
(6000,1001) | Overlay Activation Layer | dvCS
(6000,1100) | Overlay Descriptor - Gray | dvUS
(6000,1101) | Overlay Descriptor - Red | dvUS
(6000,1102) | Overlay Descriptor - Green | dvUS
(6000,1103) | Overlay Descriptor - Blue | dvUS
(6000,1200) | Overlays - Gray | dvUS
(6000,1201) | Overlays - Red | dvUS
(6000,1202) | Overlays - Green | dvUS
(6000,1203) | Overlays - Blue | dvUS
(6000,1301) | ROI Area | dvIS
(6000,1302) | ROI Mean | dvDS
(6000,1303) | ROI Standard Deviation | dvDS
(6000,1500) | Overlay Label | dvLO
(6000,3000) | Overlay Data | dvOW
(6000,4000) | Overlay Comments | dvLT
(6001,0000) | Undocumented | dvUN
(6001,0010) | Undocumented | dvLO
(6001,1010) | Undocumented | dvUSorSS
(6001,1030) | Undocumented | dvUSorSS
(6021,0000) | Undocumented | dvUSorSS
(6021,0010) | Undocumented | dvUSorSS
(7000,0004) | Undocumented | dvST
(7000,0005) | Undocumented | dvIS
(7000,0007) | Undocumented | dvIS
(7001,0010) | Undocumented | dvLT
(7003,0010) | Undocumented | dvLT
(7005,0010) | Undocumented | dvLT
(7F00,0000) | Undocumented | dvUL
(7F00,0010) | Variable Pixel Data | dvOW
(7F00,0011) | Variable Next Data Group | dvOW
(7F00,0020) | Variable Coefficients SDVN | dvOW
(7F00,0030) | Variable Coefficients SDHN | dvOW
(7F00,0040) | Variable Coefficients SDDN | dvOW
(7FE0,0000) | Pixel Data Group Length | dvUL
(7FE0,0010) | Pixel Data | dvOW
(7FE0,0020) | Coefficients SDVN | dvOW
(7FE0,0030) | Coefficients SDHN | dvOW
(7FE0,0040) | Coefficients SDDN | dvOW
(7FE1,0000) | Undocumented | dvOB
(7FE1,0010) | Undocumented | dvUSorSS
(7FE3,0000) | Undocumented | dvLT
(7FE3,0010) | Undocumented | dvOB
(7FE3,0020) | Undocumented | dvOB
(7FF1,0001) | Undocumented | dvUS
(7FF1,0002) | Undocumented | dvUS
(7FF1,0003) | Undocumented | dvUSorSS
(7FF1,0004) | Undocumented | dvIS
(7FF1,0005) | Undocumented | dvUS
(7FF1,0007) | Undocumented | dvUS
(7FF1,0008) | Undocumented | dvUS
(7FF1,0009) | Undocumented | dvUS
(7FF1,000A) | Undocumented | dvLT
(7FF1,000B) | Undocumented | dvUS
(7FF1,000C) | Undocumented | dvUS
(7FF1,000D) | Undocumented | dvUS
(7FF1,0010) | Undocumented | dvUS
(FFFA,FFFA) | Digital Signatures Sequence | dvSQ
(FFFC,FFFC) | Data Set Trailing Padding | dvOB
(FFFE,E000) | Item | dvUnknown
(FFFE,E00D) | Item Delimitation Item | dvUnknown
(FFFE,E0DD) | Sequence Delimitation Item | dvUnknown
(FFFF,FFFF) | Undocumented | dvUSorSS


DicomCompatibleFile

DicomCompatibleFile

Declaration

function DicomCompatibleFile(const sFilename: string): boolean;

Description

Returns true if the specified filename has a DICOM extension (i.e. *.DICOM, *.DCM, *.DIC or *.V2).

Examples

// Enable button if the selected file is Dicom format
btnShowDicom.Enabled := DicomCompatibleFile( MyFileListBox.Filename );


dmax

dmax

Declaration

function dmax(v1, v2: Double): Double;

Description

Returns the maximum of v1 and v2.


dmin

dmin

Declaration

function dmin(v1, v2: Double): Double;

Description

Returns the minimum of v1 and v2.


DrawAcquireComboListBoxItem

DrawAcquireComboListBoxItem

Declaration

procedure DrawAcquireComboListBoxItem(TheControl : TWinControl;
CanvasRect : TRect;
const sRawDeviceStr : string;
AnImageList : TImageList = nil;
iScannerGlyph : Short = -1;
iCameraGlyph : Short = -1;
iDriveGlyph : Short = -1;
iDeviceGlyph : Short = -1;
iUnknownGlyph : Short = -1);

Description

If you use FillListWithSources to fill a list or combobox you can use this method to custom draw the item from the controls OnDrawItem event.

TheControl, CanvasRect are passed from the event parameters.
sRawDeviceStr will be TheControl.Items[Index].
If you have a TImageList containing glyphs then pass it as AnImageList and the index of each relevant glyph as iScannerGlyph, iCameraGlyph, iDriveGlyph and iUnknownGlyph.

See Also

- FillListWithSources

Example

// Draw with glyphs from a TImageList
procedure TMyForm.lbxSourcesDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
const
Scanner_Glyph_Index = 0;
Camera_Glyph_Index = 1;
Drive_Glyph_Index = 2;
Device_Glyph_Index = 3;
Unknown_Glyph_Index = 4;
begin
// lbxSources Style has been set to lbOwnerDrawFixed
DrawAcquireComboListBoxItem(Control, Rect, lbxSources.Items[Index], imlDevices,
Scanner_Glyph_Index, Camera_Glyph_Index, Drive_Glyph_Index, Device_Glyph_Index, Unknown_Glyph_Index);
end;

// Draw source names only (no glyphs)
procedure TMyForm.lbxSourcesDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
// lbxSources Style has been set to lbOwnerDrawFixed
DrawAcquireComboListBoxItem(Control, Rect, lbxSources.Items[Index]);
end;


EIEException

EIEException

Declaration

EIEException = class(Exception);

Description

Generic ImageEn exception

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


EIERFBError

EIERFBError

Declaration

EIERFBError = class(Exception);

Description

Generic RFB exception.


EnumDCXIm

EnumDCXIm

Declaration

function EnumDCXIm(const FileName: WideString): Integer;

Description

Returns the number of frames (images) that the specified file contains.
If the FileName doesn't exist or doesn't contain images, it returns 0.

See Also

- Multipage Image functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


EnumGIFIm

EnumGIFIm

Declaration

function EnumGIFIm(const FileName: WideString): Integer;

Description

Returns the number of frames (images) that the specified file contains. If the FileName doesn't exist or doesn't contain images, it returns 0.

Note: A GIF can contain multiple images even if it is not marked as animated.


EnumICOIm

EnumICOIm

Declaration

function EnumICOIm(const FileName: WideString): Integer;

Description

Returns the number of images inside an ICO file.
If the FileName doesn't exist or doesn't contain images, it returns 0.


EnumTIFFIm

EnumTIFFIm

Declaration

function EnumTIFFIm(const FileName: WideString): Integer;

Description

Returns the number of frames (images) that the specified file contains.
If the FileName doesn't exist or doesn't contain images, it returns 0.


EnumTIFFStream

EnumTIFFStream

Declaration

function EnumTIFFStream(Stream: TStream): Integer;

Description

Returns the number of frames (images) that the TIFF Stream contains.


EqualRGB

EqualRGB

Declaration

function EqualRGB(rgb1, rgb2: TRGB): Boolean;

Description

Returns True if rgb1 and rgb2 are equal.

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


EXIF Consts for EXIF_AsStr

EXIF Consts for EXIF_AsStr

Declaration

const
_EXIF_UserComment = 0;
_EXIF_ImageDescription = 1;
_EXIF_CameraMake = 2;
_EXIF_CameraModel = 3;
_EXIF_XResolution = 4;
_EXIF_YResolution = 5;
_EXIF_DateTime = 6;
_EXIF_DateTimeOriginal = 7;
_EXIF_DateTimeDigitized = 8;
_EXIF_Copyright = 9;
_EXIF_Orientation = 10;
_EXIF_ExposureTime = 11;
_EXIF_FNumber = 12;
_EXIF_ExposureProgram = 13;
_EXIF_ISOSpeedRatings = 14;
_EXIF_ShutterSpeedValue = 15;
_EXIF_ApertureValue = 16;
_EXIF_BrightnessValue = 17;
_EXIF_ExposureBiasValue = 18;
_EXIF_MaxApertureValue = 19;
_EXIF_SubjectDistance = 20;
_EXIF_MeteringMode = 21;
_EXIF_LightSource = 22;
_EXIF_Flash = 23;
_EXIF_FocalLength = 24;
_EXIF_FlashPixVersion = 25;
_EXIF_ColorSpace = 26;
_EXIF_ExifImageWidth = 27;
_EXIF_ExifImageHeight = 28;
_EXIF_RelatedSoundFile = 29;
_EXIF_FocalPlaneXResolution = 30;
_EXIF_FocalPlaneYResolution = 31;
_EXIF_ExposureIndex = 32;
_EXIF_SensingMethod = 33;
_EXIF_FileSource = 34;
_EXIF_SceneType = 35;
_EXIF_YCbCrPositioning = 36;
_EXIF_ExposureMode = 37;
_EXIF_WhiteBalance = 38;
_EXIF_DigitalZoomRatio = 39;
_EXIF_FocalLengthIn35mmFilm = 40;
_EXIF_SceneCaptureType = 41;
_EXIF_GainControl = 42;
_EXIF_Contrast = 43;
_EXIF_Saturation = 44;
_EXIF_Sharpness = 45;
_EXIF_SubjectDistanceRange = 46;
_EXIF_GPSLatitude = 47;
_EXIF_GPSLongitude = 48;
_EXIF_GPSAltitude = 49;
_EXIF_GPSImageDirection = 50;
_EXIF_GPSTrack = 51;
_EXIF_GPSSpeed = 52;
_EXIF_GPSDateAndTime = 53;
_EXIF_GPSSatellites = 54;
_EXIF_GPSVersionID = 55;
_EXIF_Artist = 56;
_EXIF_XPTitle = 57;
_EXIF_XPComment = 58;
_EXIF_XPAuthor = 59;
_EXIF_XPKeywords = 60;
_EXIF_XPSubject = 61;
_EXIF_XPRating = 62;
_EXIF_InteropVersion = 63;
_EXIF_CameraOwnerName = 64;
_EXIF_BodySerialNumber = 65;
_EXIF_LensMake = 66;
_EXIF_LensModel = 67;
_EXIF_LensSerialNumber = 68;
_EXIF_Gamma = 69;
_EXIF_SubjectArea = 70;
_EXIF_SubjectLocation = 71;

_EXIF_Tag_Count = 72;


EXIF Orientation Consts

EXIF Orientation Consts

Declaration

_exoCorrectOrientation = 1; // Image is Orientated Correctly
_exoNeedsHorizontalFlip = 2; // Image is Horizontally Flipped
_exoNeeds180Rotate = 3; // Image is Offset by 180º
_exoNeedsVerticalFlip = 4; // Image is Vertically Flipped
_exoNeedsHorzAndVertFlip = 5; // Image is Flipped Horiz. and Offset 90º CCW
_exoNeeds90RotateCW = 6; // Image is Offset by 90º CCW
_exoNeedsFlipHorzAnd90Rotate = 7; // Image is Flipped Horiz. and offset 90º CW
_exoNeeds270RotateCW = 8; // Image is Offset by 90º clockwise


ExifCompatibleFile

ExifCompatibleFile

Declaration

function ExifCompatibleFile(const sFilename: string): boolean;

Description

Returns true if the specified filename has an extension of a file type that supports EXIF reading (JPEG, TIFF or Camera Raw).

Examples

// Enable button if the selected file may contain exif fields
btnShowExif.Enabled := ExifCompatibleFile( MyFileListBox.Filename );


EXIFDateToDateTime

EXIFDateToDateTime

Declaration

function EXIFDateToDateTime(const sEXIFDate: string): TDateTime;

Description

Converts an EXIF date string to a TDateTime value (also works with XMP date fields). EXIF dates are formatted as "YYYY:MM:DD HH:MM:SS"+0x00

Examples

dtExifDate := EXIFDateToDateTime( '2015-05-03T14:03:08-04:00' );

See Also

- DateTimeToEXIFDate

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


ExtractTIFFImageFile

ExtractTIFFImageFile

Declaration

procedure ExtractTIFFImageFile(const SourceFileName, OutFileName: WideString; idx: Integer);

Description

Extracts the page, idx, (starting at 0) from SourceFileName and saves it to OutFileName.
It doesn't remove the page from source file; also it doesn't decompress the image resulting in a very quick process.

Example

ExtractTIFFImageFile( 'input_multipage.tif' , 'page0.tif', 0 ); // extract first page


ExtractTIFFImageStream

ExtractTIFFImageStream

Declaration

procedure ExtractTIFFImageStream(SourceStream, OutStream: TStream; idx: Integer);

Description

Extracts the page, idx, (starting at 0) from SourceStream and saves it to OutStream.
It doesn't remove the page from source file; also it doesn't decompress the image resulting in a very quick process.

Example

// extract first page
fr := TFileStream.Create('input_multipage.tif', fmOpenRead);
fw := TFileStream.Create('page0.tif', fmCreate);
ExtractTIFFImageFile( fr , fw, 0 );
fw.free;
fr.free;


FindFileFormat

FindFileFormat

Declaration

function FindFileFormat(const FileName: WideString; FindMethod: TIEFindFormatMethod = ffContentOnly): TIOFileType;

Description

Returns the file format of the specified file by reading the file and trying to recognize the file header.

FindMethod determines how the file extension is used to aid or confirm format detection:
Value | Description
ffContentOnly | Only the content of the file is examined. The filename is ignored (No extension checking)
ffVerifyByExtension | The content is examined to determine the type. This is then compared to the file extension and ioUnknown is returned if the type does not match (Strict extension checking)
ffFallbackToExtension | The content is examined to determine the type. If it cannot be determined (which can happen with some Dicom and Raw formats), then the type is guessed by the file extension (Optimistic extension checking)

Some formats cannot be detected by content alone. Sony ARW and Kodak DCR are TIFF internally so will return as ioTIFF. WBMP and Implicit Dicom will return as ioUnknown.

Note: FindFileFormat uses FindStreamFormat to detect the image format.

Examples

// Determine the file type only by examining the file header/content
if FindFileFormat( sFilename, ffContentOnly ) = ioJPEG then
ShowMessage( 'File content is JPEG' );

// Determine the file type by examining the file header/content, check it has the correct file extension
if FindFileFormat( sFilename, ffVerifyByExtension ) = ioJPEG then
ShowMessage( 'File content is JPEG and it has a JPEG extension' );

// Determine the file type by examining the file header/content. If that fails use the correct file extension
if FindFileFormat( sFilename, ffFallbackToExtension ) = ioDICOM then
ShowMessage( 'File appears to be a DICOM' );

var
ss: TIOFileType;
begin
ss := FindFileFormat('C:\myfile.dat', ffContentOnly);
if ss = ioGIF then
ImageEnView1.IO.LoadFromFileGIF('C:\myfile.dat')
else
if ss = ioJPEG then
ImageEnView1.IO.LoadFromFileJpeg('C:\myfile.dat');
end;


FindStreamFormat

FindStreamFormat

Declaration

function FindStreamFormat(Stream: TStream): TIOFileType;

Description

Returns the format of the file found in a stream by reading the file header.

Some formats cannot be detected by content alone. Sony ARW and Kodak DCR are TIFF internally so will return as ioTIFF. WBMP and Implicit Dicom will return as ioUnknown.


GenerateColorLuminancePalette

GenerateColorLuminancePalette

Declaration

function GenerateColorLuminancePalette(Color: TColor; ColorCount: Integer = 256; MinL : Integer = 10; MaxL : Integer = 240): TIEArrayOfTRGB;

Description

Returns an array of all luminance value (in the range MinL to MaxL) for a color.

Example

// Return all shades of blue
aArray := GenerateColorLuminancePalette( clBlue, 100 );

See Also

- GenerateGradientPalette
- AssignPalette

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


GenerateGradientPalette

GenerateGradientPalette

Declaration

function GenerateGradientPalette(Color1, Color2: TColor; ColorCount: Integer = 256): TIEArrayOfTRGB;

Description

Returns an array of colors gradiated from Color1 to Color2.

Example

// Return a range of colors from blue to red
aArray := GenerateGradientPalette( clBlue, clRed, 100 );

See Also

- GenerateColorLuminancePalette
- AssignPalette

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


GetAllSupportedFileExtensions

GetAllSupportedFileExtensions

Declaration

function GetAllSupportedFileExtensions(bLoadFormats, bSaveFormats : Boolean; bVideoFormats: Boolean = True) : string

Description

Returns the extensions of all file formats that are supported by ImageEn in the format "*.jpeg;*.jpg;*.gif;...'

Parameter | Description
bLoadFormats | Include formats that ImageEn can load
bSaveFormats | Include formats that ImageEn can save
bVideoFormats | Include video formats that ImageEn supports

Example

// Get all image and video formats that ImageEn can read
sLoadExtensions := GetAllSupportedFileExtensions( True, False, True );

// Get the image formats that ImageEn can save (not videos)
sSaveExtensions := GetAllSupportedFileExtensions( False, True, False );

// Create a file filter for JPEG, GIF and all supported files types
FilterComboBox1.Filter := 'JPEG Files|' + GetFileExtensionsOfType( ioJPEG ) + '|' +
'GIF Files|' + GetFileExtensionsOfType(i oGIF ) + '|' +
'All Images|' + GetAllSupportedFileExtensions( True, False, False ) + '|' +
'All Files|*.*';

See Also

- GetFileExtensionsOfType

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


GetExifOrFileCreationDate

GetExifOrFileCreationDate

Declaration

function GetExifOrFileCreationDate(const sFilename: string;
bReturnCreateDate: Boolean = true
): TDateTime;

Description

Calls EXIF_DateTimeOriginal to retrieve the creation date specified in a camera image. If the image does not contain a date, you can optionally return the Windows File Creation Date.

Example

// Get digital camera date for for MyImage.jpeg
aCreateDate := GetExifOrFileCreationDate('D:\MyImage.jpeg', True);


GetExifTagList

GetExifTagList

Declaration

procedure GetExifTagList(ssDest: TStrings);

Description

Fill ssDest with all available exif tags, such as %EXIF-User-Comment%

Exif Tags

Exif tags allow creation of generic text blocks where the data within the text is replaced with EXIF data (in a similar way to a mail merge). For example, a user may insert the exif tag, %EXIF-User-Comment%, you can then call ReplaceExifTags to replace the tag with the actually value of the EXIF_UserComment field.

BEFORE:
Description: %EXIF-User-Comment%
Camera: %EXIF-Camera-Make%
Shutter Speed: %EXIF-Shutter-Speed%

AFTER (Example):
Description: Eiffel Tower
Camera: Nikon
Shutter Speed: 1/200 second

Examples

// Fill our tag selector with all available Exif tags
GetExifTagList( lbxExifTagList.Items );


GetFileExtensionsOfType

GetFileExtensionsOfType

Declaration

function GetFileExtensionsOfType(FileType: TIOFileType) : string;

Description

Returns the extensions of an ImageEn file type in the format "*.jpeg;*.jpg'

Example

// Create a file filter for JPEG, GIF and all supported files types
FilterComboBox1.Filter := 'JPEG Files|' + GetFileExtensionsOfType(ioJPEG) + '|' +
'GIF Files|' + GetFileExtensionsOfType(ioGIF) + '|' +
'All Images|' + GetAllSupportedFileExtensions(True, False, False) + '|' +
'All Files|*.*';

See Also

- GetAllSupportedFileExtensions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


GetImageDetails

GetImageDetails

Declaration

function GetImageDetails(const sFilename: string;
out iWidth: Integer;
out iHeight: Integer;
out iBitsPerPixel: Integer
): Boolean; overload;
function GetImageDetails(const sFilename: string): TPoint; overload;

Description

Return the size and color depth of an image. Result is false if a load error occurs.
The second overload only returns only the width and height (which will be -1,-1 if a load error is encountered).

Note: Color depth is TImageEnIO.Params.BitsPerSample * TImageEnIO.Params.SamplesPerPixel.

See also: BitsPerPixelToStr

Example

if GetImageDetails('D:\MyImage.jpeg', iWidth, iHeight, iBitsPerPixel) then
begin
lblWidth.Caption := IntToStr(iWidth);
lblHeight.Caption := IntToStr(iHeight);
lblColorDepth.Caption := BitsPerPixelToStr(iBitsPerPixel);
end;


GetImageRectWithinArea

GetImageRectWithinArea

Declaration

function GetImageRectWithinArea(iImageWidth, iImageHeight : Integer;
iAvailableWidth, iAvailableHeight : Integer;
iHorzOffset : Integer = 0;
iVertOffset : integer = 0;
bAllowStretching : boolean = true;
bAllowShrinking : boolean = true;
bCenterHorz : boolean = true;
bCenterVert : boolean = true;
iAutoCropPercent : Integer = 0;
FitMethod: TFitMethod = _fmFitWithinRect) : TRect; overload;

function GetImageRectWithinArea(iImageWidth, iImageHeight: Integer;
ADestRect : TRect;
bAllowStretching : boolean = true;
bAllowShrinking : boolean = true;
bCenterHorz : boolean = true;
bCenterVert : boolean = true;
iAutoCropPercent : Integer = 0;
FitMethod: TFitMethod = _fmFitWithinRect) : TRect; overload;

Description

Return the new size and position of an image within an area assuming that we maintain the aspect ratio of the image.

Parameter | Description
iImageWidth/iImageHeight | The dimensions of the image
iAvailableWidth/iAvailableHeight or ADestRect | The space available for the image (e.g. the client area of a display control, such as a TImageEnView)
iHorzOffset/iVertOffset | Added to the left/top of the image position, e.g. to add a margin
bAllowStretching | If image is smaller than iAvailableWidth/iAvailableHeight its dimensions will be enlarged
bAllowShrinking | If image is larger than iAvailableWidth/iAvailableHeight its dimensions will be reduced
bCenterHorz | Image is positioned in the horizontal center (Otherwise result.Left will be zero)
bCenterVert | Image is positioned in the vertical center (Otherwise result.Top will be zero)
iAutoCropPercent | An advanced parameter that allows the image to be positioned outside of the display area to that it appears larger (i.e. part of the image is cropped). For example, if a portrait image is shown on screen generally there are wide side borders. An autocrop value of 10% would see (up to) 5% of the image not shown at the top and bottom so the border areas are reduced
FitMethod | Generally _fmFitWithinRect, but _fmFillRect_WithOverlap will return an image that makes the image as large as possible without any border area (but with part of the image offscreen). This is the same as using an iAutoCropPercent of 100

Examples

// Stretch Draw an image centered within a TIEBitmap
aRect := GetImageRectWithinArea( SrcBMP.Width, SrcBMP.Height, DestBMP.Width, DestBMP.Height);
SrcBMP.DrawToTIEBitmap( DestBMP, IERectangle( aRect ), IERectangle( 0, 0, SrcBMP.Width, SrcBMP.Height ) );

// Col 1 of a TStringGrid displays a thumbnail drawn from a TImageEnMView
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Longint;
Rect: TRect; State: TGridDrawState);
var
aIEBitmap: IEBitmap;
aCanvas: TCanvas;
idx: Integer;
begin
// Col 1 contains thumbnail. Row 0 is fixed header row
if (ACol <> 1) or (ARow = 0) then
Exit;

idx := ARow;
aCanvas := (Sender as TStringGrid).Canvas;

// Clear current cell rect
aCanvas.FillRect( Rect );

// Get our image
// Note: don't need to create or free the TIEBitmap
aIEBitmap := ImageEnMView1.GetIEBitmap( idx );

// Adjust our rect to maintain the image aspect ratio
Rect := GetImageRectWithinArea( Rect, aIEBitmap.Width, aIEBitmap.Height );

// Draw the image
aIEBitmap := RenderToCanvas( aCanvas, Rect.Left, Rect.Top, Rect.Right - Rect.Left, Rect.Bottom - Rect.Top, rfFastLinear, 0 );

// Release our image
ImageEnMView1.ReleaseBitmap( idx, False );
end;

See Also

- GetImageSizeWithinArea
- IEAdjustRectToAspectRatio

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


GetImageSizeWithinArea

GetImageSizeWithinArea

Declaration

function GetImageSizeWithinArea(iImageWidth, iImageHeight : integer;
iAvailableWidth, iAvailableHeight : integer;
bAllowStretching : boolean = TRUE;
FitMethod: TFitMethod = _fmFitWithinRect
): TPoint;

Description

Return the new size of an image we wish to fit within an area of size iAvailableWidth x iAvailableHeight while maintaining the original aspect ratio

Parameter | Description
iImageWidth, iImageHeight | The dimensions of the image
iAvailableWidth, iAvailableHeight | The space available for the image (e.g. the client area of a display control, such as a TImageEnView)
bAllowStretching | If the image is smaller than the available area it will be stretched to the full available size (otherwise result is the original width/height)
FitMethod | Generally _fmFitWithinRect, but _fmFillRect_WithOverlap will return an image that makes the image as large as possible without any border area (so one dimension will match the available size, and the other will generally be larger)

See Also

- GetImageRectWithinArea
- IEAdjustRectToAspectRatio

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


GetWindowsSpecialFolder

GetWindowsSpecialFolder

Declaration

function GetWindowsSpecialFolder(const iCSIDL: Integer): string;

Description

Calls SHGetSpecialFolderPath to return a Windows special folder.

Example

// Display the contents of the Recycle Bin
IEFolderMView1.Folder := GetWindowsSpecialFolder(CSIDL_BITBUCKET);


HSL2RGB

HSL2RGB

Declaration

procedure HSL2RGB(var px: TRGB; Hue, Sat, Lum: Double);

Description

Converts an HSL value (Hue, Sat, Lum) with a TRGB (px).

Hue, Sat and Lum are in range 0 to 1.

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


HSLToColor

HSLToColor

Declaration

function HSLToColor(Hue, Sat, Lum: Double) : TColor;

Description

Converts HSL values (Hue, Sat, Lum) to a TColor.

Hue, Sat and Lum are in range 0 to 1.


HSV2RGB

HSV2RGB

Declaration

procedure HSV2RGB(var px: TRGB; H, S, V: Integer);

Description

Converts a HSV values to TRGB.

H (Hue) is from 0 to 359 (corresponding to 0..359 degrees around a hexcone).
S (Saturation) is from 0 (shade of gray) to 99 (pure color).
V (Value) is from 0 (black) to 99 (white).

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


HSVToColor

HSVToColor

Declaration

function HSVToColor(h, s, v: Integer): TColor;

Description

Converts HSV values to a TColor.

H (Hue) is from 0 to 359 (corresponding to 0..359 degrees around a hexcone).
S (Saturation) is from 0 (shade of gray) to 99 (pure color).
V (Value) is from 0 (black) to 99 (white).


IEAddExtIOPlugin

IEAddExtIOPlugin

Declaration

function IEAddExtIOPlugin(const FileName : string) : Integer;

Description

Adds support for extra file formats using the ImageEn input/output plug-ins (DLL's) that can be downloaded from the Registered Users download page.
Available plug-ins allow you to load and save JBIG and other formats. All include source code if you need help to you write your own plug-ins.
Result is the FileType for the added formats, e.g. ioOtherDLLPlugIns, ioOtherDLLPlugIns + 1, etc. This can be used by methods such as LoadFromStream.

Note: From v6.1.0, dcrawlib.dll is no longer used for Camera Raw format support, use ielib instead.

Example

IEAddExtIOPlugIn('jbiglib.dll');
IEAddExtIOPlugIn('imagemagick.dll');

A plugin can include more than one file format. For example, imagemagick.dll adds PCD, DICOM, FITS and many others.
Please read license terms for each plugin downloaded from imageen.com web site.

See Also

- IEAutoLoadIOPlugins

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEAddNewFilter

IEAddNewFilter

Declaration

function IEAddNewFilter( const filter: TGraphFilter ; const name: String): Integer;

Description

Creates a new public filter (3x3 convolution matrix). You can apply filters to an image using ApplyFilter or the Image Processing Dialog.

Example

Const
Myfilter: TgraphFilter =
(Values: ((-1, 0, 1),
(-1, 1, 1),
(-1, 0, 1));
Divisor: 1);
..
IEAddNewFilter( MyFilter, 'My Filter');
..
ImageEnView.Proc.DoPreviews(); // This filter will be displayed on the "User Filters" tab


IEAdjustRectToAspectRatio

IEAdjustRectToAspectRatio

Declaration

function IEAdjustRectToAspectRatio(InRect : TRect;
iImageWidth, iImageHeight: Integer;
iDisplayWidth, iDisplayHeight : Integer;
FitMethod: TFitMethod = _fmFitWithinRect ) : TRect;

Description

Adjusts the past rect so that it matches the aspect ratio of an image. For example, if InRect specifies a selected area where you want to draw an image, you can adjust the selection so that the image is not stretched (maintains its aspect ratio).

Parameter | Description
InRect | The source rect (to be adjusted)
iImageWidth, iImageHeight | The dimensions of the image (to which inRect will be adjusted)
iDisplayWidth, iDisplayHeight | The maximum width/height for the rect (typically the client area of a display control, such as a TImageEnView)
FitMethod | Rather than reducing the area of InRect, it is increased. The returned rect will cover the entire passed rect

Assuming InRect does not already match the ratio of iImageWidth/iImageHeight then IEAdjustRectToAspectRatio will return a rect with either:
- Left and Right unchanged but Top increased and Bottom decreased
- Top and Bottom unchanged but Left increased and Right decreased

But if FitMethod is _fmFillRect_WithOverlap then result wil be either:
- Left and Right unchanged but Top decreased and Bottom increased
- Top and Bottom unchanged but Left decreased and Right increased

Compatibility Notes

This is the same as the AdjustRectToAspectRatio() method in versions prior to v6.0.0 but note the change of parameter order

See Also

- GetImageRectWithinArea
- GetImageSizeWithinArea

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEAlphaToOpacity

IEAlphaToOpacity

Declaration

function IEAlphaToOpacity(Alpha: integer ): integer;

Description

COnverts an alpha value (in range of 0 - 255) to an opacity percentage (0 - 100).
Opacity is generally referred to as percent. (e.g. Alpha of 255 would return Opacity of 100% )

See also: IEOpacityToAlpha

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEApplyAlphaToColor

IEApplyAlphaToColor

Declaration

function IEApplyAlphaToColor(Color: TColor; Alpha: Integer): TColor; overload;
function IEApplyAlphaToColor(rgb: TRGB; Alpha: Integer): TRGB; overload;

Description

Applies Alpha (0=fully transparent, 255=fully visible) to the specified color.

Examples

Color := IEApplyAlphaToColor( clRed, 255 ); // Returns Pure Red
Color := IEApplyAlphaToColor( clRed, 175 ); // Returns Dark Pink
Color := IEApplyAlphaToColor( clRed, 50 ); // Returns Pale Pink
Color := IEApplyAlphaToColor( clRed, 0 ); // Returns White


IEAutoLoadIOPlugins

IEAutoLoadIOPlugins

Declaration

function IEAutoLoadIOPlugins : Integer;

Description

Checks the application folder for any of the following plug-ins: jbiglib.dll and imagemagick.dll and automatically adds them by calling IEAddExtIOPlugin.
Also checks for an installed version of ImageMagick (and optionally Ghostscript) using TIEMiscPluginsImageMagick.
Result is the number of plug-ins that were loaded, or -1 in case of unexpected error.

Note: From v6.1.0, dcrawlib.dll is no longer used for Camera Raw format support, use ielib instead.

Example

procedure TMainForm.FormCreate(Sender: TObject);
begin
IEAutoLoadIOPlugins;
end;

See Also

- IEAddExtIOPlugin
- File Format Functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEAutomaticallyRotateImageFile

IEAutomaticallyRotateImageFile

Declaration

function IEAutomaticallyRotateImageFile(const sFilename : string) : Integer;

Description

Upmarket digital cameras will automatically store the correct orientation of an image when the camera is rotated to take a portrait photo. This function calls EXIF_Orientation to retrieve the desired orientation for a JPEG camera image and then calls JpegLosslessTransform2 to losslessly rotate it.
If bConservativeChecking is true it performs some further checking to ensure the orientation data is accurate (e.g. to avoid problems where the photo has already been rotated in another program).

Example

// Rotate MyImage.jpeg if it is not correctly oriented
IEAutomaticallyRotateImageFile('D:\MyImage.jpeg', True);


IEAverageColor

IEAverageColor

Declaration

function IEAverageColor(c1, c2 : TColor): TColor; overload;
function IEAverageColor(c1, c2 : TRGB): TRGB; overload;

Description

Returns the average of two colors.


IEAVIGetCodecs

IEAVIGetCodecs

Declaration

function IEAVIGetCodecs: TStringList;

Description

Returns a list of Windows codec as FourCC codec strings. These can then be used for methods such as CreateAVIFile.
To obtain a description of codecs use IEAVIGetCodecsDescription.


IEAVIGetCodecsDescription

IEAVIGetCodecsDescription

Declaration

function IEAVIGetCodecsDescription: TStringList;

Description

Returns a list of Windows codec descriptions. It will align with FourCC codec strings returned by IEAVIGetCodecs.


IEAVISelectCodec

IEAVISelectCodec

Declaration

function IEAVISelectCodec: AnsiString;

Description

Displays the Windows Codec Selection dialog. If the user selects a code it is returned as a FourCC codec string. Otherwise '' is returned.

This can then be used in methods such as CreateAVIFile.


IECalcJpegFileQuality

IECalcJpegFileQuality

Declaration

function IECalcJpegFileQuality(const FileName: WideString): Integer;

Description

Estimates the quality that was used for saving a Jpeg file.
The returned value can then be used for the JPEG_Quality property (to maintain a similar quality level).

Example

ImageEnView1.LoadFromFile('C:\input.jpg');
// do image processing here...
ImageEnView1.IO.Params.JPEG_Quality := IECalcJpegFileQuality('C:\input.jpg');
ImageEnView1.IO.SaveToFile('D:\output.jpg');


IECalcJpegStreamQuality

IECalcJpegStreamQuality

Declaration

function IECalcJpegStreamQuality(Stream: TStream): Integer;

Description

Estimates the quality that was used for saving a Jpeg file.
The returned value can then be used for the JPEG_Quality property (to maintain a similar quality level).

Example

ImageEnView1.LoadFromFile('C:\input.jpg');
// do image processing here...
ImageEnView1.IO.Params.JPEG_Quality := IECalcJpegFileQuality('C:\input.jpg');
ImageEnView1.IO.SaveToFile('D:\output.jpg');


IECalcPaperSize

IECalcPaperSize

Declaration

function IECalcPaperSize(const Width, Height : Double; Metric: Boolean) : TIOPDFPaperSize;

Description

Finds the largest paper type that will fit within the dimensions of Width and Height (specified in inches).
If Metric is true, the result will be one of: iepA0, iepA1, iepA2, iepA3, iepA4, iepA5, iepA6, iepB5. Otherwise it will be a US value from: iepLetter, iepLegal, iepTabloid
Result will be iepUnknown if the method fails.

Example

with ImageEnMView1.MIO do
begin
lblSizeM := 'Max Paper Size (Metric): + IEPaperSizeToStr( IECalcPaperSize( AcquireParams.PhysicalWidth, AcquireParams.PhysicalHeight, True ));
lblSizeUS := 'Max Paper Size (US): + IEPaperSizeToStr( IECalcPaperSize( AcquireParams.PhysicalWidth, AcquireParams.PhysicalHeight, False ));
end;

See Also

- IEPaperSizeToStr
- IEStrToPaperSize
- IEPointsToPaperSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IECloneBitmap

IECloneBitmap

Declaration

function IECloneBitmap(Source: TBitmap): TBitmap;

Description

Creates a new TBitmap object that is a copy of the Source bitmap.

Example

Var
mybmp: TBitmap;
Begin
...
mybmp := IECloneBitmap( ImageEnView1.Bitmap );
...
mybmp.free;
End;


IEConvertImageFile

IEConvertImageFile

Declaration

function IEConvertImageFile(const sInFilename, sOutFilename: string;
iJpegQuality: Integer;
bAutoAdjustOrientation: Boolean = False
): Boolean;

Description

Change the format of a file (e.g. from BMP to JPEG). Specify the JPEG_Quality if sOutFilename is a JPEG. Returns False if an error was encountered.

Example

// Convert MyImage.jpeg to a BMP file
IEConvertImageFile('D:\MyImage.jpeg', 'D:\MyImage.bmp', 90);


IECopyBitmap

IECopyBitmap

Declaration

procedure IECopyBitmap(Source, Dest: TBitmap);

Description

Copies Source bitmap to Dest bitmap.

Example

IECopyBitmap( ImageEnView1.Bitmap , ImageEnView2.Bitmap );


IECreateShapeRegion

IECreateShapeRegion

Declaration

function IECreateShapeRegion(Shape: TIEShape; iLeft, iTop, iWidth, iHeight: Integer;
Angle: Integer = 0; ShapeModifier: Integer = 0): HRgn; overload;
function IECreateShapeRegion(Shape: TIEShape; ARect: TRect; MaintainAspect: TIEBooleanEx = iebDefault;
Angle: Integer = 0; ShapeModifier: Integer = 0): HRgn; overload;

Description

Create an HRGN of a TIEShape at the specified position and size.
If MaintainAspect is iebDefault, then shapes are output at the aspect ratio they were designed (if iebTrue then a 1:1 aspect ratio is enforced even if it was not designed with one).
Angle is the amount of rotation to apply (degrees counter-clockwise). The following shapes can only be rotated in 90 degree increments: iesHalfEllipse, iesRoundRect, iesHeart, iesDoubleHeart, iesCloud, iesMoon, iesSpeechBubble*, iesThoughtBubble*, iesFrame, iesNarrowFrame, iesFatFrame

ShapeModifier has the following effect:
Shape | Effect | Range | Default
iesCustomShape | Specifies the number of sides of the shape | 3 - 50 | 10
iesCustomStar | Specifies the number of points of the star | 3 - 50 | 10
iesCustomExplosion | Specifies the number of points of the explosion | 3 - 50 | 12
iesEllipseSegment | Specifies the width of the ellipse segment (in degrees) | 1 - 90 | 45

Note: Defined in iexCanvasUtils unit

Example

// Create a heart HRGN
aRgn := IECreateShapeRegion( iesExplosion, 0, 0, 200, 200 );


IECreateThumbnailFromFile

IECreateThumbnailFromFile

Declaration

function IECreateThumbnailFromFile(const sInFilename: string;
const sOutFilename: string;
iMaxX, iMaxY: integer;
bCanStretch: Boolean;
iJPEGQuality: integer;
bAutoAdjustOrientation: Boolean = False;
QualityFilter : TResampleFilter = rfLanczos3;

bAddBorder: Boolean = False;
cBorderColor: TColor = clBlack;

bAddShadow: Boolean = False;
iBlurRadius : Integer = 4;
iShadowOffset : Integer = 4;
cShadowColor: TColor = clBlack;
cBGColor: TColor = clWhite
): Boolean;

Description

Creates a thumbnail from an image.

Parameter | Description
iMaxX, iMaxY | The maximum size of the new image (as the aspect ratio is maintained, one of the dimensions is likely to be less than the specified value)
bCanStretch | Set to false to avoid images smaller than iMaxX x iMaxY from being made larger
bAutoAdjustOrientation | Sets EnableAdjustOrientation to automatically re-orient JPEG camera images
QualityFilter | Specify the quality that is used for rescaling the image
bAddBorder | Set to true to add a 1 pixel border to the thumbnail
cBorderColor | The color of the added border
bAddShadow | Add a solid or soft shadow to the image
iBlurRadius | Set to 0 to add a solid shadow or any other value for the width of the Soft Shadow
iShadowOffset | The offset of the shadow from the image
cShadowColor | The shadow color
cBGColor | The color of the image behind the shadow

Example

// Create a thumbnail of MyImage.jpeg at size 160x120 and save to MyImage_Thumb.jpeg
IECreateThumbnailFromFile('D:\MyImage.jpeg', 'D:\MyImage_Thumb.jpeg', 160, 120, False, 75)


IEDrawShape

IEDrawShape

Declaration

procedure IEDrawShape(Canvas: TCanvas; Shape: TIEShape; iLeft, iTop, iWidth, iHeight: Integer; MaintainAspect: TIEBooleanEx = iebDefault); overload;
procedure IEDrawShape(Canvas: TCanvas; Shape: TIEShape;
iLeft, iTop, iWidth, iHeight: Integer; MaintainAspect: TIEBooleanEx;
BorderColor: TColor; BorderWidth: Integer;
FillColor: TColor; FillColor2: TColor = clNone; GradientDir: TIEGradientDir = gdVertical
Angle: Integer = 0; ShapeModifier: Integer = 0); overload;

Description

Draw a TIEShape onto a canvas at the specified size and position.
If MaintainAspect is iebDefault, then shapes are output at the aspect ratio they were designed (if iebTrue then a 1:1 aspect ratio is enforced even if it was not designed with one).
For the first overload, the Canvas Brush is used for color and fill.
For the second, the colors you specify will override the canvas brush.
Angle is the amount of rotation to apply (degrees counter-clockwise). The following shapes can only be rotated in 90 degree increments: iesHalfEllipse, iesRoundRect, iesHeart, iesDoubleHeart, iesCloud, iesMoon, iesSpeechBubble*, iesThoughtBubble*, iesFrame, iesNarrowFrame, iesFatFrame

ShapeModifier has the following effect:
Shape | Effect | Range | Default
iesCustomShape | Specifies the number of sides of the shape | 3 - 50 | 10
iesCustomStar | Specifies the number of points of the star | 3 - 50 | 10
iesCustomExplosion | Specifies the number of points of the explosion | 3 - 50 | 12
iesEllipseSegment | Specifies the width of the ellipse segment (in degrees) | 1 - 90 | 45

Note: Defined in iexCanvasUtils unit

Example

// Draw a heart onto the centre of the current image
IEDrawShape( ImageEnView1.IEBitmap.Canvas, iesExplosion, Width div 2 - 100, Height div 2 - 100, 200, 200 );
ImageEnView1.Update;


IEExtToFileFormat

IEExtToFileFormat

Declaration

function IEExtToFileFormat(ex: String): TIOFileType;

Description

Converts a file extension to a TIOFileType type.

See Also

- File Format Functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEFileExtInExtensions

IEFileExtInExtensions

Declaration

function IEFileExtInExtensions(sFileExt : String; const sExtensions : String) : Boolean;

Description

Returns true if the extension (with or without the dot) is listed in those passed (in format '*.jpeg;*.jpg;*.gif;');

For example: IEFilenameInExtensions('.avi', '*.AVI;*.mpg;*.mpeg') would return true

Note: sExtensions can be '*.*';

See Also

- General Helper Functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEFileFormatAdd

IEFileFormatAdd

Declaration

procedure IEFileFormatAdd(FileFormatInfo: TIEFileFormatInfo);

Description

Adds a new file format to ImageEn. The object FileFormatInfo specifies file format information and read/write functions.

Note: You do not need to free the FileFormatInfo object.

Demo

Demos\InputOutput\FileFormatPlugins\FPlug.dpr

Example

var
FileFormatInfo: TIEFileFormatInfo;
begin
FileFormatInfo := TIEFileFormatInfo.Create;
with FileFormatInfo do
begin
FileType := ioUNC;
FullName := 'Uncompressed Bitmap';
Extensions := 'unc;ucp';
SuitableExtension := 'unc'; // Optional. It is automatically set if not specified
InternalFormat := False;
DialogPage := [];
ReadFunction := ReadUNC;
WriteFunction := WriteUNC;
TryFunction := TryUNC;
end;
IEFileFormatADD(FileFormatInfo);
end;


IEFileFormatGetInfo

IEFileFormatGetInfo

Declaration

function IEFileFormatGetInfo(FileType: TIOFileType): TIEFileFormatInfo;

Description

Returns a TIEFileFormatInfo object which contains details about the specified file format.

See also: IEFileFormatGetInfo2

Example

// Get a suitable file extension for saving a JPEG
sExt := IEFileFormatGetInfo(ioJPEG).SuitableExtension; // returns 'jpeg'

// Get a description of JPEG files
sFormatName := IEFileFormatGetInfo(ioJPEG).FullName; // returns 'JPEG Bitmap'


IEFileFormatGetInfo2

IEFileFormatGetInfo2

Declaration

function IEFileFormatGetInfo2(Extension: string): TIEFileFormatInfo;

Description

Returns a TIEFileFormatInfo object which contains details about the specified file format. The format is specified by its extension (example '.gif' or 'gif').

See also: IEFileFormatGetInfo

Example

// Get a description of .JPEG files
sFormatName := IEFileFormatGetInfo2('.JPEG').FullName; // returns 'JPEG Bitmap'


IEFileFormatRemove

IEFileFormatRemove

Declaration

procedure IEFileFormatRemove(FileType: TIOFileType);

Description

Removes a file format added using IEFileFormatAdd.


IEFileIsOfFormat

IEFileIsOfFormat

Declaration

function IEFileIsOfFormat(const sFilename : string; aFormat : TIOFileType) : Boolean;

Description

Returns true if the file has the extension of the specified type.

For example: IEFileIsOfFormat('C:\File.avi', ioAVI) would return true

See Also

- File Format Functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEFilenameInExtensions

IEFilenameInExtensions

Declaration

function IEFilenameInExtensions(const sFileName, sExtensions : String) : Boolean;

Description

Returns true if the filename has an extension listed in those passed (in format '*.jpeg;*.jpg;*.gif;');

For example: IEFilenameInExtensions('C:\File.avi', '*.AVI;*.mpg;*.mpeg') would return true

See Also

- General Helper Functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEFileSetDate

IEFileSetDate

Declaration

function FileSetDate(const sFilename: string; DateTime: TDateTime): boolean;

Description

Same as sysutils.FileSetDate but takes a TDateTime as a parameter.


IEFindNumberWithKnownFormat

IEFindNumberWithKnownFormat

Declaration

function IEFindNumberWithKnownFormat( const Directory: WideString ): integer;

Description

Returns the number of images in a specified folder that are of a format supported by ImageEn.


IEFlipImageFile

IEFlipImageFile

Declaration

function IEFlipImageFile(const sFilename : string;
iJpegQuality : integer;
Direction: TFlipDir;
bCanUseLossless: Boolean = true
): Boolean; overload;
function IEFlipImageFile(const sInFilename, sOutFilename : string;
iJpegQuality : integer;
Direction: TFlipDir;
bCanUseLossless: Boolean = true
): Boolean; overload;

Description

Calls Flip to Flip an image file and resave it (optionally to an alternative file). if bCanUseLossless is specified then JpegLosslessTransform2 is used where possible for JPEG files.

Example

// Flip an image horizontally and save to a JPEG
IEFlipImageFile('D:\Source.bmp', 'D:\MyImage.jpg', 90, fdHorizontal);

// Flip an image vertically. This will be lossless as source and destination are JPEG
IEFlipImageFile('D:\MyJPEG.jpg', 90, fdVertical);


IEGetCoresCount

IEGetCoresCount

Declaration

function IEGetCoresCount(): integer;

Description

Returns the total amount of processor's cores present on the system.

Some Windows operating system versions cannot communicate this information, so it defaults to DefaultCoresCount.


IEGetFileDetails

IEGetFileDetails

Declaration

function IEGetFileDetails(const sFilename: string;
out iFileSizeBytes: Int64;
out dtCreateDate: TDateTime;
out dtEditDate: TDateTime
): boolean;

Description

Return the size, create date and last edit date of a file. Result is false if an error occured.

See Also

- IEGetFileSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEGetFileFramesCount

IEGetFileFramesCount

Declaration

function IEGetFileFramesCount(const FileName: WideString): Integer;

Description

A generic method to get the number of frames in a multi-page images and supported videos (GIF, TIFF, AVI, MPEG...).

Notes:
- It will work with single page files too (such as JPEG) by returning 1.
- The file content is analyzed to determine the image type

See Also

- Multipage Image functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEGetFileSize

IEGetFileSize

Declaration

function IEGetFileSize(const Filename: string): int64;

Description

Returns the size of a file (even if larger than 2GB). Result is 0 if an error occured.

See Also

- IEGetFileDetails

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEGlobalSettings

IEGlobalSettings

Declaration

function IEGlobalSettings(): TIEImageEnGlobalSettings;

Description

Returns the instance of TIEImageEnGlobalSettings object.


IEIsInternalFormat

IEIsInternalFormat

Declaration

function IEIsInternalFormat(ex: String): Boolean;

Description

Returns true if the specified extension is recognized as internal file format (i.e. a format that ImageEn natively supports).

See Also

- File Format Functions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IELayersMerge

IELayersMerge

Declaration

procedure IELayersMerge(Layer1, Layer2, LayerMask: TIELayer; Destination: TIEBitmap; ZoomFilter: TResampleFilter; Background: TColor; RelativePositions: Boolean);

Description

Merges two layers to the destination bitmap.
ZoomFilter specifies the filter to use when layers needs to be stretched.
Background is the color used to fill empty regions.
LayerMask is the upper layer's mask. This can be 'nil' if no layer mask exists.
If RelativePositions = false the output layer should have posx = 0 and posy = 0 because the required space is added to the destination bitmap.
If ForceCropLayer2 = true, then any parts of Layer 2 lying outside of layer 1 will be cropped. If False, cropping will only occur if Cropped is enabled.

Example

// this merges all layers of ImageEnView1 to tempIE (invisible), then saves to jpeg file
var
tempIE: TImageEnView;
tempBMP: TIEBitmap;
i: Integer;
begin
tempIE := TImageEnView.Create(nil);
tempIE.Layers[0].Bitmap.Assign( ImageEnView1.Layers[0].Bitmap );
tempBMP := TIEBitmap.Create;
for i := 1 to ImageEnView1.LayersCount-1 do
begin
IELayersMerge( tempIE.Layers[0], ImageEnView1.Layers[i], nil, tempBMP, rfNone, clBlack );
tempIE.Layers[0].Bitmap.Assign( tempBMP );
end;
tempBMP.free;

tempIE.Background := clBlack;
tempIE.RemoveAlphaChannel(true);
tempIE.IO.SaveToFile('output.jpg');
tempIE.free;
end;


IELibAvailable

IELibAvailable

Declaration

function IELibAvailable() : Boolean;

Description

Returns true if the DLL's required by ImageEn are available (e.g. ielib64.dll for a 64bit ImageEn application. Also initializes the library.

Example

procedure TMainForm.FormShow(Sender: TObject);
begin
if IELibAvailable() = False then
MessageDlg(format('The installation is incomplete. Please reinstall %s', [Application_Name]), mtError, [mbOK], 0);
end;


IEMediaFoundationGetVideoSampleDecoders

IEMediaFoundationGetVideoSampleDecoders

Declaration

function IEMediaFoundationGetVideoSampleDecoders(): TObjectList;;

Description

Applications add new decoders by using this function and implementing the TIEMediaFoundationVideoSampleDecoder abstract class.

Example

IEMediaFoundationGetVideoSampleDecoders().Add(TIEMediaFoundationVideoSampleDecoder_YOURFORMAT.Create());


IEMediaFoundationTimeToSec

IEMediaFoundationTimeToSec

Declaration

function IEMediaFoundationTimeToSec(time: int64): Double;

Description

Converts Media Foundation times (100 nanosecond units) to seconds (There are 1 billion nanoseconds to a second).

Parameter | Description
time | The Media Foundation time in 100 nanosecond units

Example

// Display length in seconds
if IEMediaFoundationTimeToSec(ImageEnView1.IO.MediaFoundationSourceReader.Duration) < 1 then
lblLength.Caption := '< 1 Sec.'
else
lblLength.Caption := format('%d Sec.', [Round(IEMediaFoundationTimeToSec(ImageEnView1.IO.MediaFoundationSourceReader.Duration))]);

See Also

- IESecToMediaFoundationTime
- IEMediaFoundationTimeToStr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEMediaFoundationTimeToStr

IEMediaFoundationTimeToStr

Declaration

function IEMediaFoundationTimeToStr(time: int64): string;

Description

Converts Media Foundation times (100 nanosecond units) to their string representation (HH:MM:SS:DD).

Parameter | Description
time | The Media Foundation time in 100 nanosecond units

Example

// Get the source duration as a 'HH:MM:SS:DD' string
durationStr := IEMediaFoundationTimeToStr(ImageEnView1.IO.MediaFoundationSourceReader.Duration);

See Also

- Duration
- IEMediaFoundationTimeToSec

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEOpacityToAlpha

IEOpacityToAlpha

Declaration

function IEOpacityToAlpha(Opacity: integer): integer;

Description

COnverts a opacity percentage (0 - 100) to an alpha value (in range of 0 - 255). For example Opacity of 100% would return Alpha of 255.

See also: IEAlphaToOpacity

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEOptimizeGIF

IEOptimizeGIF

Declaration

procedure IEOptimizeGIF(const InputFile, OutputFile: WideString);

Description

Optimizes a GIF animation (or multi-page GIF) by detecting differences between each frame and removing any data that is duplicated. The resulting file will only include differences between frames and can be significantly smaller.

Demo

Demos\ImageEditing\AnimatedGIF\AnimatedGIF.dpr

Example

ImageEnMView1.MIO.SaveToFile('D:\temp.gif');
IEOptimizeGIF('D:\temp.gif', 'D:\output.gif');


IEPaperSizeToStr

IEPaperSizeToStr

Declaration

function IEPaperSizeToStr(const ASize : TIOPDFPaperSize) : string;

Description

Convert a TIOPDFPaperSize value to a human-readible string. TIOPDFPaperSize values can be specified for PS_PaperSize and PDF_PaperSize.

Example 1

Caption := IEPaperSizeToStr(iepLetter); // Caption becomes 'US Letter';

Example 2

procedure TMainForm.FormCreate(Sender: TObject);
var
a: TIOPDFPaperSize;
begin
// Fill combobox with available PDF paper sizes
cmbPaperSize.Clear;
for a := Low(TIOPDFPaperSize) to iepAuto do
cmbPaperSize.Items.Add(IEPaperSizeToStr(a));

// Make "US Letter" the selected one
cmbPaperSize.ItemIndex := cmbPaperSize.Items.IndexOf(IEPaperSizeToStr(iepLetter));
end;

// Set PDF paper size to user's selection
ImageEnView1.IO.Params.PDF_PaperSize := IEStrToPaperSize(cmbPaperSize.Text);

See Also

- IEStrToPaperSize
- IEPointsToPaperSize
- IECalcPaperSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEPointsToPaperSize

IEPointsToPaperSize

Declaration

function IEPointsToPaperSize(const Width, Height : Integer) : TIOPDFPaperSize;

Description

Converts dimensions in Adobe PDF points (1 point = 1/72 of inch) to a TIOPDFPaperSize value. TIOPDFPaperSize values are used by PS_PaperSize and PDF_PaperSize.


IEReadCorrectOrientationOfImageFile

IEReadCorrectOrientationOfImageFile

Declaration

function IEReadCorrectOrientationOfImageFile(const sFilename : string; bConservativeChecking : Boolean = True) : Integer;

Description

Upmarket digital cameras will automatically store the correct orientation of an image when the camera is rotated to take a portrait photo. This function calls EXIF_Orientation to retrieve the desired orientation for a JPEG camera image.
If bConservativeChecking is true it performs some further checking to ensure the returned value is accurate (e.g. to avoid problems where the photo has already been rotated in another program).

Example

iBestOrientation := IEReadCorrectOrientationOfImageFile('D:\MyImage.jpeg', True);


IERectangle

IERectangle

Declaration

function IERectangle(x, y, width, height: integer): TIERectangle; overload;
function IERectangle(Rect: TRect): TIERectangle; overload;

Description

Create a TIERectangle structure.


IERegisterFormats

IERegisterFormats

Declaration

procedure IERegisterFormats;

Description

Register/unregister following classes inside the VCL class framework. This allows use of standard VCL open/save dialogs and TPicture objects with ImageEn file formats.

TIETiffImage, TIEGifImage, TIEJpegImage, TIEPCXImage, TIEBMPImage, TIEICOImage, TIEPNGImage, TIETGAImage, TIEPXMImage, TIEJP2Image, TIEJ2Kimage

Each of above classes inherits from TIEGraphicBase. To get input/output parameters use the “IO” property, which is the same as the ImageEnIO.Params property.


IEResampleImageFile

IEResampleImageFile

Declaration

function IEResampleImageFile(const sInFilename, sOutFilename: string;
iJpegQuality: Integer;
iMaxX: Integer;
iMaxY: Integer;
bCanStretch: Boolean = False;
QualityFilter: TResampleFilter = rfLanczos3;
bAutoAdjustOrientation: Boolean = False;
bStripMetaData: Boolean = False
): Boolean;

Description

Loads an image of any format, resizes it and saves it to file (of any format).

Parameter | Description
iJPEGQuality | Specify the JPEG_Quality if sOutFilename is a JPEG
iMaxX, iMaxY | The maximum size of the new image (as the aspect ratio is maintained, one of the dimensions is likely to be less than the specified value)
bCanStretch | Set to false to avoid images smaller than iMaxX x iMaxY from being made larger
QualityFilter | Specify the quality that is used for rescaling the image
bAutoAdjustOrientation | Sets EnableAdjustOrientation to automatically re-orient JPEG camera images
bStripMetaData | If enabled ResetInfo is used to strip meta-data from the image and make it smaller

Example

// Resize MyImage.jpeg to the screen dimensions and save to MyImage_Screen.jpeg
IEResampleImageFile('D:\MyImage.jpeg', 'D:\MyImage_Screen.jpeg', 90, Screen.Width, Screen.Height, False);


IERotateImageFile

IERotateImageFile

Declaration

function IERotateImageFile(const sFilename : string;
iJpegQuality : integer;
iRotateAngle : integer;
AntiAliasMode: TIEAntialiasMode = ierFast;
bCanUseLossless: Boolean = true;
cBackgroundColor: TColor = clWhite): Boolean; overload;
function IERotateImageFile(const sInFilename, sOutFilename : string;
iJpegQuality : integer;
iRotateAngle : integer;
AntiAliasMode: TIEAntialiasMode = ierFast;
bCanUseLossless: Boolean = true;
cBackgroundColor: TColor = clWhite): Boolean; overload;

Description

Calls Rotate to rotate an image file and resave it (optionally to an alternative file). if bCanUseLossless is specified then JpegLosslessTransform2 is used where possible for JPEG files.

See also: AngleToImageEnRotateAngle

Example

// This will result in a lossless rotation
IERotateImageFile('D:\MyImage.jpg', 90, ierFast, True);

// This will be a lossy rotation
IERotateImageFile('D:\MyImage.jpg', 45, ierFast, True, clBlack);


IESecToMediaFoundationTime

IESecToMediaFoundationTime

Declaration

function IESecToMediaFoundationTime(sec: Double): int64;

Description

Converts a value in seconds to Media Foundation times (100 nanosecond units).

Parameter | Description
time | The Media Foundation time in 100 nanosecond units

Example

// Navigate ten seconds into the sample
ImageEnView1.IO.MediaFoundationSourceReader.SetPosition( IESecToMediaFoundationTime(10) );

See Also

- IEMediaFoundationTimeToSec

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IESetTranslationWord

IESetTranslationWord

Declaration

procedure IESetTranslationWord(const lang: TMsgLanguage; const msg: TMsgLanguageWords; const trans: AnsiString);
procedure IESetTranslationWordU(const lang: TMsgLanguage; const msg: TMsgLanguageWords; const trans: String);

Description

IESetTranslationWord allows applications to set a customized word/sentence translation.
lang is the target language.
msg is the message to translate.
trans is the translated message.

See also: iewords.pas file.


IEShapePreferredAspectRatio

IEShapePreferredAspectRatio

Declaration

function IEShapePreferredAspectRatio(Shape: TIEShape): Double;

Description

Some shapes are best displayed at the ratio they were designed (typically 1:1). This method returns that preferred aspect ratio (equating to Height / Width ) or 0 if the shape has no preferred ratio.

Note: Defined in iexCanvasUtils unit

Example

aspectRatio := IEShapePreferredAspectRatio( iesHeart ); // Returns 1


IESoftShadowSize

IESoftShadowSize

Declaration

function IESoftShadowSize(Radius: Double; OffSetX: Integer; OffSetY: Integer) : Integer;

Description

If you call AddSoftShadow with AdaptSize enabled then the dimensions of your image will be enlarged so the content does not change to fit the shadow.

This function returns the number of pixels that will be added in height and width by calling AddSoftShadow.

Note: Regardless of your values for OffSetX/OffSetY AddSoftShadow always increases the width and height by the same value

Example

Var
iSoftShadowSize: Integer;
Begin
iSoftShadowSize := IESoftShadowSize(ImageEnView1.Proc.SoftShadow.Radius, ImageEnView1.Proc.SoftShadow.OffsetX, ImageEnView1.Proc.SoftShadow.OffsetY);
ShowMessage(Format('Adding a soft shadow will enlarge the image to %d x %d',
[ImageEnView1.IEBitmap.Width + iShadowSize,
ImageEnView1.IEBitmap.Height + iShadowSize]);
End;


IEStrToPaperSize

IEStrToPaperSize

Declaration

function IEStrToPaperSize(const sSize : string; aDefault : TIOPDFPaperSize = iepUnknown) : TIOPDFPaperSize;

Description

Converts a paper size name (e.g. as returned by IEPaperSizeToStr) to a TIOPDFPaperSize value. TIOPDFPaperSize values are used by PS_PaperSize and PDF_PaperSize.

Example

procedure TMainForm.FormCreate(Sender: TObject);
var
a: TIOPDFPaperSize;
begin
// Fill combobox with available PDF paper sizes
cmbPaperSize.Clear;
for a := Low(TIOPDFPaperSize) to iepAuto do
cmbPaperSize.Items.Add(IEPaperSizeToStr(a));

// Make "US Letter" the selected one
cmbPaperSize.ItemIndex := cmbPaperSize.Items.IndexOf(IEPaperSizeToStr(iepLetter));
end;

// Set PDF paper size to user's selection
ImageEnView1.IO.Params.PDF_PaperSize := IEStrToPaperSize(cmbPaperSize.Text);

See Also

- IEPaperSizeToStr
- IEPointsToPaperSize
- IECalcPaperSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEUnregisterFormats

IEUnregisterFormats

Declaration

procedure IEUnregisterFormats;

Description

Unregisters ImageEn file formats from the VCL.


IEVision Embedded Classifiers

IEVision Embedded Classifiers

Declaration

IEVC_EYE = ':EYE';
IEVC_EYE_TREE_EYE_GLASSES = ':EYETREEEYEGLASSES';
IEVC_FRONTAL_FACE_ALT = ':FRONTALFACEALT';
IEVC_FRONTAL_FACE_ALT_2 = ':FRONTALFACEALT2';
IEVC_FRONTAL_FACE_ALT_TREE = ':FRONTALFACEALTTREE';
IEVC_FRONTAL_FACE_DEFAULT = ':FRONTALFACEDEFAULT';
IEVC_FULL_BODY = ':FULLBODY';
IEVC_LOWER_BODY = ':LOWERBODY';
IEVC_PROFILE_FACE = ':PROFILEFACE';
IEVC_UPPER_BODY = ':UPPERBODY';
IEVC_LEFT_EYE_2_SPLITS = ':LEFTEYE2SPLITS';
IEVC_RIGHT_EYE_2_SPLITS = ':RIGHTEYE2SPLITS';
IEVC_LBP_FRONTAL_FACE = ':LBPFRONTALFACE';
IEVC_CASCADE_SMILE = ':CASCADESMILE';
IEVC_FRONTAL_CAT_FACE = ':FRONTALCATFACE';
IEVC_FRONTAL_CAT_FACE_EXT = ':FRONTALCATFACEEXTENDED';
IEVC_LICENSE_PLATE_RUS = ':LICENSEPLATERUS';
IEVC_RUSSIAN_PLATE_NUMBER = ':RUSSIANPLATENUMBER';

IEVC_ALL_CLASSIFIERS = IEVC_EYE + #13#10 +
IEVC_EYE_TREE_EYE_GLASSES + #13#10 +
IEVC_FRONTAL_FACE_ALT + #13#10 +
IEVC_FRONTAL_FACE_ALT_2 + #13#10 +
IEVC_FRONTAL_FACE_ALT_TREE + #13#10 +
IEVC_FRONTAL_FACE_DEFAULT + #13#10 +
IEVC_FULL_BODY + #13#10 +
IEVC_LOWER_BODY + #13#10 +
IEVC_PROFILE_FACE + #13#10 +
IEVC_UPPER_BODY + #13#10 +
IEVC_LEFT_EYE_2_SPLITS + #13#10 +
IEVC_RIGHT_EYE_2_SPLITS + #13#10 +
IEVC_LBP_FRONTAL_FACE + #13#10 +
IEVC_CASCADE_SMILE + #13#10 +
IEVC_FRONTAL_CAT_FACE + #13#10 +
IEVC_FRONTAL_CAT_FACE_EXT + #13#10 +
IEVC_LICENSE_PLATE_RUS + #13#10 +
IEVC_RUSSIAN_PLATE_NUMBER ;


IEVisionAvailable

IEVisionAvailable

Declaration

function IEVisionAvailable(): boolean;

Description

Checks if the ievision.dll is available. When it returns true you can use any IEVision function and class.

Example

if not IEVisionAvailable() then
begin
ShowMessage('This application requires ievision.dll plugin. Please download it from www.imageen.com');
Application.Terminate;
exit;
end;


IEVisionFloatPair

IEVisionFloatPair

Declaration

function IEVisionFloatPair(first: double; second: double): TIEVisionFloatPair;

Description

Returns a TIEVisionFloatPair record initialized with specified parameters.

Parameter | Description
first | First floating point value.
second | Second floating point value.


IEVisionGetLanguagesInFolder

IEVisionGetLanguagesInFolder

Declaration

function IEVisionGetLanguagesInFolder(ssDest : TStrings; const sFolder : string; bDisplayName : Boolean = False) : Boolean;

Description

Finds all the language files in a folder and fills ssDest with their display name or language code.

Language files of IEVision will be named with a language code followed by extensions such as traineddata (IEV_OCR_Language_Data_Ext), word-freq, params, size, etc.

Result is false if no language files are found.

Example

procedure TMainForm.FormCreate(Sender: TObject);
begin
// Fill our Combobox with available languages
IEVisionGetLanguagesInFolder(cmbLanguage.Items, ExtractFilePath(Application.ExeName), True);

// Default to English
cmbLanguage.ItemIndex := cmbLanguage.Items.IndexOf(IEOCRLanguageList[OCR_English_language].DisplayName);
end;

procedure TMainForm.btnRecognizeClick(Sender: TObject);
var
sLangCode: string;
begin
// Get selected language code
sLangCode := IEVisionLanguageNameToCode(cmbLanguage.Text);

// create OCR object
m_OCR := IEVisionLib.createOCR(PAnsiChar(ExtractFilePath(Application.ExeName)), PAnsiChar(sLangCode), ievOCRFAST);
...
end;

See Also

- TIEOCRLanguages
- LanguageExistsInFolder
- IEVisionLanguageCodeToName
- IEVisionLanguageNameToCode

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEVisionLanguageCodeToName

IEVisionLanguageCodeToName

Declaration

function IEVisionLanguageCodeToName(const sLangCode : string) : string;

Description

Converts a language code (which can be used for loading an OCR language file) to a display name.

E.g. IEVisionLanguageCodeToName('eng') would retun 'English'.

See Also

- TIEOCRLanguages
- IEVisionLanguageNameToCode
- IEVisionGetLanguagesInFolder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEVisionLanguageNameToCode

IEVisionLanguageNameToCode

Declaration

function IEVisionLanguageNameToCode(const sLangName : string) : string;

Description

Returns the language code (which can be used for loading an OCR language file) from a display name (filled using A TIEOCRLanguages>).

E.g. IEVisionLanguageNameToCode('English') would retun 'eng'.

Example

procedure TMainForm.FormCreate(Sender: TObject);
begin
// Fill our Combobox with available languages
IEVisionGetLanguagesInFolder(cmbLanguage.Items, ExtractFilePath(Application.ExeName), True);

// Default to English
cmbLanguage.ItemIndex := cmbLanguage.Items.IndexOf(IEOCRLanguageList[OCR_English_language].DisplayName);
end;

procedure TMainForm.btnRecognizeClick(Sender: TObject);
var
sLangCode: string;
begin
// Get selected language code
sLangCode := IEVisionLanguageNameToCode(cmbLanguage.Text);

// create OCR object
m_OCR := IEVisionLib.createOCR(PAnsiChar(ExtractFilePath(Application.ExeName)), PAnsiChar(sLangCode), ievOCRFAST);
...
end;

See Also

- TIEOCRLanguages
- IEVisionLanguageCodeToName
- IEVisionGetLanguagesInFolder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


IEVisionLib

IEVisionLib

Declaration

function IEVisionLib(): TIEVisionLibrary;

Description

When IEVisionAvailable is true then this function returns a pre-built TIEVisionLibrary interface which allows you to create all other IEVision objects.

Example

// creates empty image
image := IEVisionLib().createImage();


IEVisionPoint

IEVisionPoint

Declaration

function IEVisionPoint(x, y: int32_t): TIEVisionPoint;

Description

Returns a TIEVisionPoint record initialized with specified parameters.

Parameter | Description
x | Top-left horizontal coordinate.
y | Top-left vertical coordinate.


IEVisionRect

IEVisionRect

Declaration

function IEVisionRect(x, y, width, height: int32_t): TIEVisionRect;

Description

Returns a TIEVisionRect record initialized with specified parameters.

Parameter | Description
x | Top-left horizontal coordinate.
y | Top-left vertical coordinate.
width | Width.
height | Height.


IEVisionRectToTRect

IEVisionRectToTRect

Declaration

function IEVisionRectToTRect(Rect: TIEVisionRect): TRect;

Description

Converts TIEVisionRect to VCL TRect record.


IEVisionScalar

IEVisionScalar

Declaration

function IEVisionScalar(val0: double; val1: double = 0.0; val2: double = 0.0; val3: double = 0.0): TIEVisionScalar;

Description

Returns a TIEVisionScalar record initialized with specified parameters.
This structure can be also used to specify BGR colors: IEVisionScalar(0, 0, 255) = full red.

Parameter | Description
val0 | First scalar value.
val1 | Second scalar value.
val2 | Third scalar value.
val3 | Fourth scalar value.


IEVisionSize

IEVisionSize

Declaration

function IEVisionSize(width, height: int32_t): TIEVisionSize;

Description

Returns a TIEVisionSize record initialized with specified parameters.

Parameter | Description
width | Width
height | Height


IEVisionTermCriteria

IEVisionTermCriteria

Declaration

function IEVisionTermCriteria(ctype: TIEVisionTermCriteriaType; maxIter: int32_t; epsilon: double): TIEVisionTermCriteria;

Description

Returns a TIEVisionTermCriteria record initialized with specified parameters.

Parameter | Description
ctype | Type of the termination criteria.
maxIter | Maximum number of iterations.
epsilon | Required accuracy.


IEWICAvailable

IEWICAvailable

Declaration

function IEWICAvailable: boolean;

Description

Returns True if WIC interfaces are available. This means that Microsoft HD Photo is also available.


IEWriteICOImages

IEWriteICOImages

Declaration

procedure IEWriteICOImages(const fileName: WideString; images: array of TObject);

Description

Provides an alternate method to save ICO files (instead of using SaveToFile or SaveToFileICO). It allows you to specify the origin of each frame of ICO to be saved.

IEWriteICOImages doesn't look at ICO_Sizes and ICO_BitCount, but only TImageEnView.IO.Params.BitsPerSample and TImageEnView.IO.Params.SamplesPerPixel.

Example

// Suppose we have three images, each in a TImageEnView component (e.g. ImageEnView1, ImageEnView2, ImageEnView3)
// we want to create an icon of these three images at 32 bit, 8 bit and 4 bit.

// 32 bit (24 for colors and 8 for alpha channel)
ImageEnView1.IO.Params.BitsPerSample := 4;
ImageEnView1.IO.Params.SamplesPerPixel := 3;

// 8 bit (256 colors)
ImageEnView2.IO.Params.BitsPerSample := 8;
ImageEnView2.IO.Params.SamplesPerPixel := 1;

// 4 bit (16 colors)
ImageEnView3.IO.Params.BitsPerSample := 4;
ImageEnView3.IO.Params.SamplesPerPixel := 1;

// save all inside a single ICO
IEWriteICOImages('output.ico', [ImageEnView1, ImageEnView2, ImageEnView3]);


IIELanguageUpdatable

IIELanguageUpdatable

Declaration

IIELanguageUpdatable = interface
procedure UpdateLanguage();
end;

Description

Each component (TComponent descendant) that implements UpdateLanguage method of this interface will be called whenever MsgLanguage changes.


IIEMediaFoundationReaderNotifyReceiver

IIEMediaFoundationReaderNotifyReceiver

Declaration

type IIEMediaFoundationReaderNotifyReceiver = interface
['{70E06CBA-1727-402B-857A-CC3679EDDC26}']
procedure ReceiveNotify(sender: TObject; notifyType: TIEMediaFountationNotifyType; dwStreamIndex: DWORD; dwStreamFlags: DWORD; llTimestamp: int64; pSample: IE_IMFSample; mediaType: IE_IMFMediaType; pEvent: IE_IMFMediaEvent);
end;


ilimit

ilimit

Declaration

function ilimit(vv, min, max: Integer): Integer;

Description

Ensures vv is in the range of min and max.


ImageEnRotateAngleToAngle

ImageEnRotateAngleToAngle

Declaration

function AngleToImageEnRotateAngle(Angle: Double): Double;

Description

ImageEn's rotation parameter requires a value specified negative or positive degrees counter-clockwise. This method converts an ImageEn rotation value to a value between -180 and +180.

See also: AngleToImageEnRotateAngle

Example

ImageEnView1.Proc.Rotate( 90 );
ShowMessage( Format( 'Rotated by %d degrees', [ ImageEnRotateAngleToAngle( 90 )]);


imax

imax

Declaration

function imax(v1, v2: Integer): Integer;

Description

Returns the maximum of v1 and v2.


imin

imin

Declaration

function imin(v1, v2: Integer): Integer;

Description

Returns the minimum of v1 and v2.


InsertTIFFImageFile

InsertTIFFImageFile

Declaration

procedure InsertTIFFImageFile(const SourceFileName, InsertingFileName, OutFileName: WideString; idx: Integer);

Description

Inserts the file InsertingFileName into SourceFileName, saving the result to OutFileName. Idx is the page where to insert the file.
As both source and destination images are not de-compressed the operation is very quick.

Note: Both TIFFs must have the same byte order. You can check it reading image parameters and checking TIFF_ByteOrder property.

Example

// this inserts pagetoinsert.tif in old.tif as first page and save all to new.tif
InsertingTIFFImageFile( 'old.tif' , 'pagetoinsert.tif', 'new.tif', 0 );


InsertTIFFImageStream

InsertTIFFImageStream

Declaration

procedure InsertTIFFImageStream(SourceStream, InsertingStream, OutStream: TStream; idx: Integer);

Description

Inserts the TIFF stream InsertingStream into SourceStream, saving the result to OutStream. Idx is the page where to insert the file.
As both source and destination images are not de-compressed the operation is very quick.

Note: Both TIFFs must have the same byte order. You can check it by reading the image parameters and checking TIFF_ByteOrder property.


int64array

int64array

Declaration

int64array = array[0..MaxInt div 16] of int64;


IntegerArray

IntegerArray

Declaration

IntegerArray = array[0..MaxInt div 16] of integer;


IPTC items compatible with Adobe PhotoShop

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


IPTCCompatibleFile

IPTCCompatibleFile

Declaration

function IPTCCompatibleFile(const sFilename: string): boolean;

Description

Returns true if the specified filename has an extension of a file type that supports IPTC (i.e. JPEG or TIFF).

Examples

// Enable button if the selected file may contain IPTC
btnShowIPTC.Enabled := IPTCCompatibleFile( MyFileListBox.Filename );


IsKnownFormat

IsKnownFormat

Declaration

function IsKnownFormat(const FileName : WideString; bIncludeVideoFiles : Boolean = False) : boolean;

Description

Returns true if the specified filename is a supported file format.
By default, this only includes image formats. Set bIncludeVideoFiles to true to include AVI, MPEG and WMV

Note: This method only checks that file extension is recognized (e.g. .JPEG of image.jpeg). To examine the content of the image to determine if it is readable use FindFileFormat

See also: IsKnownSaveFormat

Example

If IsKnownFormat('C:\test.fax') then
ShowMessage('ok, I can load it');


IsKnownSaveFormat

IsKnownSaveFormat

Declaration

function IsKnownSaveFormat(const FileName : WideString) : boolean;

Description

Returns true if the specified filename is a file format that ImageEn supports saving (by checking its file extension).

Note: There are a variety of formats (such as WMF) which ImageEn can load but not save.

See also: IsKnownFormat

Example

If IsKnownSaveFormat('test.dcm') then
ShowMessage('ok, I can save it');


iswap

iswap

Declaration

procedure iswap(var B1, B2: LongInt);

Description

Swap B1 with B2.


JPEGLosslessFlipFile

JPEGLosslessFlipFile

Declaration

function JPEGLosslessFlipFile(const sInFilename : WideString; const sOutFilename : WideString; Direction: TFlipDir) : Boolean; overload;
function JPEGLosslessFlipFile(const sFilename : WideString; Direction: TFlipDir) : Boolean; overload;

Description

Calls JpegLosslessTransform or JpegLosslessTransform2 to losslessly flip a JPEG image.

Note: All comments and markers are copied and the EXIF orientation and thumbnail are updated.

Example

// Flip MyImage.jpeg horizontally
JPEGLosslessRotateFile('D:\MyImage.jpeg', fdHorizontal);


JPEGLosslessRotateFile

JPEGLosslessRotateFile

Declaration

function JPEGLosslessRotateFile(const sInFilename : WideString; const sOutFilename : WideString; iRotateAngle : integer) : Boolean; overload;
function JPEGLosslessRotateFile(const sFilename : WideString; iRotateAngle : integer) : Boolean; overload;

Description

Calls JpegLosslessTransform or JpegLosslessTransform2 to losslessly rotate a JPEG image, but allows you to specify a rotation angle that matches the Rotate Angle parameter.

Note: All comments and markers are copied and the EXIF orientation and thumbnail are updated. All values other than -90, 90, 180, -180, 270 and -270 are ignored

Example

// Rotate MyImage.jpeg 90 deg. counter-clockwise and save to MyImage_ROT.jpeg
JPEGLosslessRotateFile('D:\MyImage.jpeg', 'D:\MyImage_ROT.jpeg', 90);


JpegLosslessTransform

JpegLosslessTransform

Declaration

function JpegLosslessTransform(const SourceFile, DestFile: WideString; Transform: TIEJpegTransform; GrayScale: Boolean; CopyMarkers: TIEJpegCopyMarkers; CutRect: TRect; UpdateEXIF: Boolean = False): Boolean;
function JpegLosslessTransform(const SourceFile, DestFile: WideString; Transform: TIEJpegTransform): boolean; overload;

Description

Losslessly rotates, flips or crops (cuts) a JPEG file.

Description

Parameter | Description
SourceFile | The full path and filename of the source file
DestFile | The full path and filename for the resulting file
Transform | The transformation to perform
GrayScale | True force grayscale output
CopyMarkers | How comments and markers (e.g. IPTC info) should be copied
CutRect | Specifies the rectangle to retain when Transform = jtCut
UpdateEXIF | Updates the EXIF thumbnail and orientation tags

Returns false if the operation failed.

See also: JpegLosslessTransform2 which works with a single file.

Lossless Information

Whenever you save a JPEG by regular methods it needs to re-encoded, so after multiple re-saves the quality can become quite degraded. Lossless JPEG operations, on the other hand, work by rearranging the compressed data, without ever fully decoding the image, therefore there is no degration in quality.
Note, however, that lossless operations can only work on full DCT blocks, so when cutting/cropping the resulting image may contain at least a part of the area outside CutRect depending on the need to align with to the nearest DCT block boundary (or multiple blocks, depending on the sampling factors).

Demo

Demos\ImageEditing\LosslessCrop\LosslessCut.dpr

Example

// Rotate input.jpg 90° clockwise and save to output.jpg
JpegLosslessTransform('D:\input.jpg', 'D:\output.jpg', jtRotate90, false, jcCopyAll, Rect(0, 0, 0, 0));


JpegLosslessTransform2

JpegLosslessTransform2

Declaration

function JpegLosslessTransform2(const FileName: WideString; Transform: TIEJpegTransform; GrayScale: boolean; CopyMarkers: TIEJpegCopyMarkers; CutRect: TRect; UpdateEXIF: Boolean = False): boolean; overload;
function JpegLosslessTransform2(const FileName: WideString; Transform: TIEJpegTransform): boolean; overload;

Description

Losslessly rotates, flips or crops (cuts) a JPEG file. Same as JpegLosslessTransform, but the source file is overwritten with the transformed image.

Description

Parameter | Description
FileName | The full path and filename of the file to transform
Transform | The transformation to perform
GrayScale | True force grayscale output
CopyMarkers | How comments and markers (e.g. IPTC info) should be copied
CutRect | Specifies the rectangle to retain when Transform = jtCut
UpdateEXIF | Updates the EXIF thumbnail and orientation tags

Returns false if the operation failed.

Lossless Information

Whenever you save a JPEG by regular methods it needs to re-encoded, so after multiple re-saves the quality can become quite degraded. Lossless JPEG operations, on the other hand, work by rearranging the compressed data, without ever fully decoding the image, therefore there is no degration in quality.
Note, however, that lossless operations can only work on full DCT blocks, so when cutting/cropping the resulting image may contain at least a part of the area outside CutRect depending on the need to align with to the nearest DCT block boundary (or multiple blocks, depending on the sampling factors).

Demo

Demos\ImageEditing\LosslessCrop\LosslessCut.dpr

Example

// Rotate MyImage.jpg 90° clockwise
JpegLosslessTransform('D:\MyImage.jpg', jtRotate90);


JpegLosslessTransformStream

JpegLosslessTransformStream

Declaration

function JpegLosslessTransformStream(SourceStream, DestStream: TStream; Transform: TIEJpegTransform; GrayScale: Boolean; CopyMarkers: TIEJpegCopyMarkers; CutRect: Trect; UpdateEXIF: Boolean = False): Boolean;

Description

Losslessly rotates, flips or crops (cuts) a JPEG in a stream.

Description

Parameter | Description
SourceStream | A TStream object that contains the jpeg source stream
DestStream | A TStream object that will receive the jpeg result stream
Transform | The transformation to perform
GrayScale | True force grayscale output
CopyMarkers | How comments and markers (e.g. IPTC info) should be copied
CutRect | Specifies the rectangle to retain when Transform = jtCut
UpdateEXIF | Updates the EXIF thumbnail and orientation tags

Returns false if the operation failed.

Lossless Information

Whenever you save a JPEG by regular methods it needs to re-encoded, so after multiple re-saves the quality can become quite degraded. Lossless JPEG operations, on the other hand, work by rearranging the compressed data, without ever fully decoding the image, therefore there is no degration in quality.

Note, however, that lossless operations can only work on full DCT blocks, so when cutting/cropping the resulting image may contain at least a part of the area outside CutRect depending on the need to align with to the nearest DCT block boundary (or multiple blocks, depending on the sampling factors).


LanguageExistsInFolder

LanguageExistsInFolder

Declaration

function LanguageExistsInFolder(aLanguage : TIEOCRLanguages; const sFolder : string) : Boolean; overload;
function LanguageExistsInFolder(const sLangCode : string; const sFolder : string) : Boolean; overload;

Description

Returns true if the language file for the specified language is found in a folder.

Language files of IEVision will be named with a language code followed by extensions such as traineddata (IEV_OCR_Language_Data_Ext), word-freq, params, size, etc.

Examples

if LanguageExistsInFolder(IEVisionLanguageNameToCode('English'), ExtractFilePath(Application.ExeName)) = False then
MessageDlg('The English language OCR files could not be found. Please reinstall.', mtError, [mbOK], 0);

if LanguageExistsInFolder(OCR_English_language, ExtractFilePath(Application.ExeName)) = False then
MessageDlg('The English language OCR files could not be found. Please reinstall.', mtError, [mbOK], 0);

See Also

- TIEOCRLanguages
- CubeEngineExistsInFolder
- IEVisionGetLanguagesInFolder
- IEVisionLanguageCodeToName
- IEVisionLanguageNameToCode

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


LanguageToStr

LanguageToStr

Declaration

function LanguageToStr(ALanguage : TMsgLanguage) : string;

Description

Converts a TMsgLanguage to string, e.g. msEnglish would return 'English', msItalian returns 'Italian', etc.

Example

// Create all language menu items
procedure TMainForm.CreateLanguageMenuItems;
var
aLang : TMsgLanguage;
NewItem: TMenuItem;
begin
mnuLanguage.Clear;
for aLang := Low(TMsgLanguage) to High(TMsgLanguage) do
begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := LanguageToStr(aLang);
NewItem.Checked := IEGlobalSettings.MsgLanguage = aLang;
NewItem.Tag := ord(aLang);
NewItem.OnClick := LanguageClick;
mnuLanguage.Add(NewItem)
end;
end;

// Handle clicking of a language item
procedure TMainForm.LanguageClick(Sender: TObject);
var
aLang : TMsgLanguage;
I: Integer;
begin
for I := 0 to mnuLanguage.Count - 1 do
mnuLanguage.Items[I].Checked := False;
aLang := TMsgLanguage(TMenuItem(Sender).Tag);
IEGlobalSettings.MsgLanguage := aLang;
TMenuItem(Sender).Checked := True;
end;


LoadFilterFromFile

LoadFilterFromFile

Declaration

function LoadFilterFromFile(const FileName: String): TGraphFilter;

Description

Loads a filter from a file.

Example

var
Filter: TGraphFilter;
Begin
Filter := LoadFilterFromFile('D:\myfilter.flt')
ImageEnView1.Proc.ApplyFilter( Filter );
End;


LoadPaletteFromFile

LoadPaletteFromFile

Declaration

function LoadPaletteFromFile(const Filename: TFileName; Format: Integer = -1; Names: TStrings = nil): TIEArrayOfTRGB;

Description

Loads all colors in a palette file.

The following formats are supported:
- JASC Palette (*..pal, *.psppalette)
- Photoshop ACO (*.aco)
- Photoshop ACT (*.act)

For Format specify one of the following:
Const | Value | Description
IECP_Fmt_Unknown | -1 | The file format will be guessed based on the file extension. If it is not recognized, then IECP_Fmt_JASC is assumed
IECP_Fmt_JASC | 0 | File is loaded as a JASC Palette file
IECP_Fmt_Photoshop_Act | 1 | File is loaded as a Photoshop ACT file
IECP_Fmt_Photoshop_Aco | 2 | File is loaded as a Photoshop ACO file

Photoshop ACO format may include names for each of the colors. If a valid TStringList is passed for the Names parameter it will be filled with names.

Raises an exception if the file format is not recognized.

Example

// Prompt to display all colors of a palette file in a TMemo
if OpenDialog1.Execute then
try
Memo1.Clear;
clrArray := LoadPaletteFromFile( OpenDialog1.Filename );
for I := Low( clrArray ) to High( clrArray ) do
Memo1.Lines.Add( ColorToString( TRGB2TColor( clrArray[ I ]));
except
ShowMessage( 'File format is unknown!' );
end;

// Show names and colors of a palette file
ssNames := TStringList.create();
clrArray := LoadPaletteFromFile( 'C:\PhotoshopPal.aco', -1, ssNames );
for I := Low( clrArray ) to High( clrArray ) do
begin
if ssNames[ I ] <> '' then
Memo1.Lines.Add( ssNames[ I ] + ': ' + ColorToString( TRGB2TColor( clrArray[ I ]))
else
Memo1.Lines.Add( ColorToString( TRGB2TColor( clrArray[ I ]));
end;

See Also

- SavePaletteToFile
- LoadFromFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


OrdCor

OrdCor

Declaration

procedure OrdCor(var x1, y1, x2, y2: Integer);

Description

Sorts x1, y1, x2, y2 so that x1, y1 is at the top-left and x2, y2 is at the bottom-right vertex of the rectangle.


PasteFilesFromClipboard

PasteFilesFromClipboard

Declaration

function PasteFilesFromClipboard(Handle : HWND; ssFilenames: TStrings; out bMoveFiles : Boolean) : Boolean;

Description

If there are files om the clipboard that have been copied from Windows Explorer or TImageEnFolderMView then they will be assigned to ssFilenames.
bMoveFiles will be true if they are marked to be moved (i.e. Ctrl+X was used instead of Ctrl+V).
Result is true if there are files on the clipboard

Example

bHaveFiles := PasteFilesFromClipboard(Form1.Handle, ssFilenames, bMoveFiles);
if bHaveFiles then
ShowMessage('No Files to paste')
else
if bMoveFiles then
ShowMessage('Files to Move:' + #13#10 + ssFilenames.Text)
else
ShowMessage('Files to Copy:' + #13#10 + ssFilenames.Text)


pboolean

pboolean

Declaration

pboolean = ^boolean;


PBYTEROW

PBYTEROW

Declaration

PBYTEROW = ^TBYTEROW;


PBYTEROWS

PBYTEROWS

Declaration

PBYTEROWS = ^TBYTEROWS;


PCIELAB

PCIELAB

Declaration

PCIELAB = ^TCIELAB;


PCIELABROW

PCIELABROW

Declaration

PCIELABROW = ^TCIELABROW;


PCMYK

PCMYK

Declaration

PCMYK = ^TCMYK;


PCMYKROW

PCMYKROW

Declaration

PCMYKROW = ^TCMYKROW;


PDoubleArray

PDoubleArray

Declaration

PDoubleArray = ^TDoubleArray;


PDPointArray

PDPointArray

Declaration

type PDPointArray = ^TDPointArray;


PDWordArray

PDWordArray

Declaration

PDWordArray = ^TDWordArray;


PHistogramItem

PHistogramItem

Declaration

PHistogramItem = ^THistogramItem;


PIEDicomTag

PIEDicomTag

Declaration

PIEDicomTag = ^TIEDicomTag;


PIEPointArray

PIEPointArray

Declaration

PIEPointArray = ^TIEPointArray;


PIERGBAPalette

PIERGBAPalette

Declaration

PIERGBAPalette = ^TIERGBAPalette;


PIERGBPalette

PIERGBPalette

Declaration

PIERGBPalette = ^TIERGBPalette;


PIESmallIntArray

PIESmallIntArray

Declaration

PIESmallIntArray = ^TIESmallIntArray;


PIEVisionBGR8

PIEVisionBGR8

Declaration

PIEVisionBGR8 = ^TIEVisionBGR8;


PIEVisionBGR16

PIEVisionBGR16

Declaration

PIEVisionBGR16 = ^TIEVisionBGR16;


PIEVisionOCRBox

PIEVisionOCRBox

Declaration

PIEVisionOCRBox = ^TIEVisionOCRBox;


PIEVisionRect

PIEVisionRect

Declaration

PIEVisionRect = ^TIEVisionRect;


PIEVisionRGB8

PIEVisionRGB8

Declaration

PIEVisionRGB8 = ^TIEVisionRGB8;


PIEVisionRGB16

PIEVisionRGB16

Declaration

PIEVisionRGB16 = ^TIEVisionRGB16;


PIEVObject

PIEVObject

Declaration

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


pint64array

pint64array

Declaration

pint64array = ^int64array;


pIntegerArray

pIntegerArray

Declaration

pIntegerArray = ^IntegerArray;


PopupSystemMenu

PopupSystemMenu

Declaration

procedure PopupSystemMenu(Handle: HWND; ssFileList: TStrings; x, y: integer);

Description

Displays the system menu for the specified files at position x,y. This menu is the same as that displayed when right-clicking a selection of files in Windows Explorer

Example

PopupSystemMenu(Form1.Handle, ssSelectedFiles, ClickPos.X, ClickPos.Y);


ppeColorAdjustments

ppeColorAdjustments

Declaration

ppeColorAdjustments = [peContrast, peHSV, peHSL, peRGB, peEqualize, peFFT, peGamma, peAutoEnhance];

Description

A set of TPreviewEffects that adjust the color of the image.

Examples

// Prompt to perform color adjustment effects
ImageEnView1.Proc.DoPreviews( ppeColorAdjustments );


ppeEditingFunctions

ppeEditingFunctions

Declaration

ppeEditingFunctions = [peRotate, peResize, peSharpen, peCrop];

Description

A set of TPreviewEffects for editing the image.

Examples

// Prompt to edit the image
ImageEnView1.Proc.DoPreviews( ppeEditingFunctions );


ppeSpecialEffects

ppeSpecialEffects

Declaration

ppeSpecialEffects = [peUserFilt, peBumpMap, peLens, peWave, peMorph, peSoftShadow];

Description

A set of TPreviewEffects that perform effects upon the image.

Examples

// Prompt to perform special effects
ImageEnView1.Proc.DoPreviews( ppeSpecialEffects );


PPointArray

PPointArray

Declaration

PPointArray = ^TPointArray;


PPointerArray

PPointerArray

Declaration

PPointerArray = ^TPointerArray;


PPRGBArray

PPRGBArray

Declaration

type PPRGBArray = ^PRGBArray;


PProgressRec

PProgressRec

Declaration

PProgressRec = ^TProgressRec;


PRGB

PRGB

Declaration

type PRGB = ^TRGB;


PRGB32ROW

PRGB32ROW

Declaration

type PRGB32ROW = ^RGB32ROW;


PRGB48

PRGB48

Declaration

PRGB48 = ^TRGB48;


PRGB48ROW

PRGB48ROW

Declaration

PRGB48ROW = ^TRGB48ROW;


PRGBA

PRGBA

Declaration

PRGBA = ^TRGBA;


PRGBArray

PRGBArray

Declaration

type PRGBArray = array[0 . . Maxint div 16] of pRGB;


PRGBROW

PRGBROW

Declaration

type PRGBROW = ^RGBROW;


PSingleArray

PSingleArray

Declaration

PSingleArray = ^TSingleArray;


PYCBCR

PYCBCR

Declaration

PYCBCR = ^TYCBCR;


QualityToZoomFilter

QualityToZoomFilter

Declaration

function QualityToZoomFilter(Quality: TIEQuality): TResampleFilter;

Description

Provide quick access to the most common zoom filters
ieLow : Returns rfNone, no quality filtering is used
ieMedium : Returns rfFastLinear, a good quality but very fast filter
ieHigh : Returns rfLanczos3, a very high quality filter

Example

// Set Quality filter to ComboBox selection (which contains values: Low, Medium and High)
frmMain.ImageEnView1.ZoomFilter := QualityToZoomFilter( cmbQuality.ItemIndex );

See Also

- ZoomFilter

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


ReadExifCameraFieldsFromFile

ReadExifCameraFieldsFromFile

Declaration

function ReadExifCameraFieldsFromFile(const sFilename : string;
out sCameraModel : string;
out sExposureTime : string;
out sFlashMode : string
) : boolean;

Description

Retrieves camera related EXIF data from a file. The following properties are returned:
- EXIF_Camera_Str
- EXIF_ExposureTime_Str
- EXIF_Flash

Returns false if sFilename is not a file type that supports EXIF.

Examples

// Show Camera data for selected file
if ReadExifCameraFieldsFromFile( MyFileListBox.Filename, sCameraModel, sExposureTime, sFlashMode ) then
begin
lblCameraModel .Caption := sCameraModel;
lblExposureTime.Caption := sExposureTime;
lblFlashMode .Caption := sFlashMode;
end
else
begin
lblCameraModel .Caption := '';
lblExposureTime.Caption := '';
lblFlashMode .Caption := '';
end;


ReadExifGPSFieldsFromFile

ReadExifGPSFieldsFromFile

Declaration

function ReadExifGPSFieldsFromFile(const sFilename : string;
out GPSLatitude: Double;
out GPSLongitude: Double
) : boolean; overload;

function ReadExifGPSFieldsFromFile(const sFilename : string;
out sGPSLatitude: string;
out sGPSLongitude: string
) : boolean; overload;

Description

Retrieves GPS location data from a file. The following properties are returned:
- EXIF_GPSLatitude
- EXIF_GPSLongitude

Returns false if sFilename does not contain any GPS data.

Examples

// Show location on map for selected file
if ReadExifGPSFieldsFromFile( MyFileListBox.Filename, GPSLatitude, GPSLongitude ) then
Map.NavigateTo( GPSLatitude, GPSLongitude );

// Show GPS location for selected file
if ReadExifGPSFieldsFromFile( MyFileListBox.Filename, sGPSLatitude, sGPSLongitude ) then
begin
lblGPSLatitude .Caption := sGPSLatitude;
lblGPSLongitude.Caption := sGPSLongitude;
end
else
begin
lblGPSLatitude .Caption := '';
lblGPSLongitude.Caption := '';
end;


ReadIPTCDescriptionAndKeywordsFromFile

ReadIPTCDescriptionAndKeywordsFromFile

Declaration

function ReadIPTCDescriptionAndKeywordsFromFile(const sFilename: string;
out sDescription: string;
ssKeywords: TStrings = nil) : Boolean;

Description

Retrieves the description and keywords from the IPTC data of a file. The following records are returned:
- PhotoShop_IPTC_Records/IPTC_PS_Caption
- PhotoShop_IPTC_Records/IPTC_PS_Keywords

Returns false if the file does not contain an IPTC description or keywords.

Note: ssKeywords can be nil

Example

// Show keyword and description of selected file
if ReadIPTCCameraFieldsFromFile( MyFileListBox.Filename, sDescription, ssKeywords ) then
begin
lblDescription .Caption := sDescription;
lblKeywords .Caption := ssKeywords.CommaText;
end
else
begin
lblDescription .Caption := '';
lblKeywords .Caption := '';
end;


ReplaceExifTags

ReplaceExifTags

Declaration

function ReplaceExifTags(const Text: string; EXIFSource : TIOParams): string; overload;
function ReplaceExifTags(const Text: string; const sEXIFSourceFilename : string): string; overload;

Description

Replace all Exif tags found in Text with the actual EXIF properties of the current image, or an image loaded from file.

Note: Specify sEXIFSourceFilename as Example_File_Only to show example properties to the user (e.g. instead of reading the EXIF_UserComment field from file, it will insert 'Sample User Comment')

Exif Tags

Exif tags allow creation of generic text blocks where the data within the text is replaced with EXIF data (in a similar way to a mail merge). For example, a user may insert the exif tag, %EXIF-User-Comment%, you can then call ReplaceExifTags to replace the tag with the actually value of the EXIF_UserComment field.

BEFORE:
Description: %EXIF-User-Comment%
Camera: %EXIF-Camera-Make%
Shutter Speed: %EXIF-Shutter-Speed%

AFTER (Example):
Description: Eiffel Tower
Camera: Nikon
Shutter Speed: 1/200 second

Examples

// Replace the exif tags in memo with the actual values of the current image
if ContainsExifTag( Memo1.Text ) then
Memo1.Text := ReplaceExifTags( Memo1.Text, ImageEnView1.IO.Params );

// Show sample output
memSample.Text := ReplaceExifTags( 'Camera: %EXIF-Camera-Make%'#13#10'Shutter Speed: %EXIF-Shutter-Speed%', Example_File_Only );
(*
Which outputs:
Camera: Sample Camera Make
Shutter Speed: Sample Shutter Speed
*)


RGB2HSL

RGB2HSL

Declaration

procedure RGB2HSL(px: TRGB; var Hue, Sat, Lum: Double);

Description

Converts a TRGB color to HSL values.

Note: Hue, Sat and Lum will be in range 0 to 1.

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


RGB2HSV

RGB2HSV

Declaration

procedure RGB2HSV(RGB: TRGB; var h, s, v: Integer);

Description

Converts a TRGB color to HSV values.

H (Hue) is from 0 to 359 (corresponding to 0..359 degrees around a hexcone).
S (Saturation) is from 0 (shade of gray) to 99 (pure color).
V (Value) is from 0 (black) to 99 (white).

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


RGB2TColor

RGB2TColor

Declaration

function RGB2TColor(r, g, b: Integer): TColor;

Description

Converts R, G, B values to TColor.

Example

Panel1.Color := RGB2TColor(255, 0, 0); // Panel1.Color will be clRed

See Also

- TRGB2TColor
- RGB2TColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


RGB32ROW

RGB32ROW

Declaration

type RGB32ROW = array[0 . . Maxint div 16] of TRGBA;


RGBROW

RGBROW

Declaration

type RGBROW = array[0 . . Maxint div 16] of TRGB;


SaveFilterToFile

SaveFilterToFile

Declaration

procedure SaveFilterToFile(const FileName: String; const filt: TGraphFilter);

Description

Saves a filter to a file.


SavePaletteToFile

SavePaletteToFile

Declaration

procedure SavePaletteToFile(const FileName: TFileName; Palette: TIEArrayOfTRGB; Truncate: Boolean);

Description

Saves a set of colors to file in JASC Palette format (*.pal, *.psppalette).

If Truncate is true, then only the first 256 colors of the palette are output.

Note: The JASC Palette format supports only 256 colors. If Truncate is set to false the created format may be incompatible with other applications.

Example

// Save a set of colors in a database that contains R, G and B columns
var
aPalette: TIEArrayOfTRGB;
i: integer;
begin
i := 0;
SetLength( aPalette, tblColorList.RecordCount );
tblColorList.First;
While not tblColorList.EOF do
begin
aPalette[ i ].R := tblColorListRed.AsInteger;
aPalette[ i ].G := tblColorListGreen.AsInteger;
aPalette[ i ].B := tblColorListBlue.AsInteger;
inc( i );
tblColorList.Next;
end;
SavePaletteToFile( 'D:\ColorSet.pal', aPalette, False );
end;

See Also

- LoadPaletteFromFile
- SaveToFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


ShowTempHourglass

ShowTempHourglass

Declaration

function ShowTempHourglass: IUnknown;

Description

Change the cursor to an hourglass during the current procedure (i.e. will revert to the previous cursor once we go out of scope)

Example

Load an image when a button is clicked. Show hourglass during loading
procedure TMain.Button1Click(Sender: TObject);
begin
ShowTempHourglass;
ImageEnView1.IO.LoadFromFile('C:\MyImage.jpg');
end;


ShowWindowsPrintWizard

ShowWindowsPrintWizard

Declaration

procedure ShowWindowsPrintWizard(ImageEnMView: TImageEnMView; bAllImages: Boolean); overload;
procedure ShowWindowsPrintWizard(ssFiles: TStrings); overload;

Description

Display the Windows Print Wizard with the images of a TImageEnMView or a file list.

Example

ShowWindowsPrintWizard( ImageEnMView1, True );


StrToAcquireSource

StrToAcquireSource

Declaration

function StrToAcquireSource(const sRawDeviceStr : string) : TIEAcquireSource;

Description

If you use FillListWithSources from your own code then the returned devices will be list of strings formatted as follows:

Device Name||Index of Location||API||Device Type

E.g. My Cool Scanner||3||TWN||SCN

You can use StrToAcquireSource to convert the raw string to a TIEAcquireSource record.


Supported_Generate_Points_Shapes

Supported_Generate_Points_Shapes

Declaration

Supported_Generate_Points_Shapes = [ iesRectangle, iesTriangle, iesCorner, iesDiamond, iesStar5, iesStar6, iesArrowLeft, iesArrowRight,
iesArrowUp, iesArrowDown, iesFatArrowUp, iesFatArrowLeft, iesFatArrowRight, iesFatArrowDown,
iesArrowLeftRight, iesArrowUpDown, iesArrowNW, iesArrowNE, iesArrowSW, iesArrowSE,
iesShootingArrowNW, iesShootingArrowNE, iesShootingArrowSW, iesShootingArrowSE, iesLightningLeft,
iesLightningRight, iesExplosion, iesCross, iesShield, iesBadge, iesNamePlate, iesPentagon,
iesHexagon, iesHeptagon, iesOctagon, iesCustomShape, iesCustomStar, iesCustomExplosion ];


TBitmap

TBitmap

Description

Standard Windows TBitmap class. See Delphi documentation for more detail.

ImageEn provides a similar class for holding images in memory, TIEBitmap.


TBitmap.IEAddSoftShadow

TBitmap.IEAddSoftShadow

Declaration

procedure IEAddSoftShadow(iBlurRadius: integer;
iShadowOffset : Integer;
cBGColor: TColor;
LightOrigin: TLightOrigin = _loTopLeft;
cShadowColor: TColor = clblack);

Description

Calls AddSoftShadow to add a soft shadow to an image in a TBitmap

Example

// Add a soft shadow to the bitmap image
MyBitmap.IEAddSoftShadow(3, 3, clWhite);


TBitmap.IEConvertToThumbnail

TBitmap.IEConvertToThumbnail

Declaration

procedure IEConvertToThumbnail(iMaxX, iMaxY: integer;
bCanStretch: Boolean;
QualityFilter : TResampleFilter = rfLanczos3;

bAddBorder: Boolean = False;
cBorderColor: TColor = clBlack;

bAddShadow: Boolean = False;
iBlurRadius : Integer = 4;
iShadowOffset : Integer = 4;
cShadowColor: TColor = clBlack;
cBGColor: TColor = clWhite);

Description

Resize an image in a TBitmap to the specified size (while maintaining the aspect ratio, thus one of the dimensions is likely to be less than the specified value).

Parameter | Description
iMaxX, iMaxY | The maximum size of the new image (as the aspect ratio is maintained, one of the dimensions is likely to be less than the specified value)
bCanStretch | Set to false to avoid images smaller than iMaxX x iMaxY from being made larger
bAutoAdjustOrientation | Sets EnableAdjustOrientation to automatically re-orient JPEG camera images
QualityFilter | Specify the quality that is used for rescaling the image
bAddBorder | Set to true to add a 1 pixel border to the thumbnail
cBorderColor | The color of the added border
bAddShadow | Add a solid or soft shadow to the image
iBlurRadius | Set to 0 to add a solid shadow or any other value for the width of the Soft Shadow
iShadowOffset | The offset of the shadow from the image
cShadowColor | The shadow color
cBGColor | The color of the image behind the shadow

Example

// Resize the current bitmap image to 160x120 with a black border
MyBitmap.IEConvertToThumbnail(160, 120, True, rfFastLinear, True, clBlack);


TBitmap.IEFlip

TBitmap.IEFlip

Declaration

procedure IEFlip(Direction: TFlipDir);

Description

Calls Flip to flip a TBitmap.

Example

// Flip the bitmap image horizontally
MyBitmap.IEFlip(fdHorizontal);


TBitmap.IEInitialize

TBitmap.IEInitialize

Declaration

procedure IEInitialize(iWidth, iHeight: Integer; ABackgroundColor : TColor = clNone);

Description

Resizes a bitmap and optionally fills it with the specified color.

Example

// Make a bitmap of screen size and black background
MyBitmap.IEInitialize(Screen.Width, Screen.Height, clBlack);


TBitmap.IELoadAsThumbnail

TBitmap.IELoadAsThumbnail

Declaration

function IELoadAsThumbnail(const sFilename: string;
iMaxX, iMaxY: integer;
bCanStretch: Boolean;
bAutoAdjustOrientation: Boolean = False;
QualityFilter : TResampleFilter = rfLanczos3;

bAddBorder: Boolean = False;
cBorderColor: TColor = clBlack;

bAddShadow: Boolean = False;
iBlurRadius : Integer = 4;
iShadowOffset : Integer = 4;
cShadowColor: TColor = clBlack;
cBGColor: TColor = clWhite
) : Boolean;

Description

Loads an image of any format into a TBitmap reducing it to the specified size (while maintaining the aspect ratio, thus one of the dimensions is likely to be less than the specified value).

Parameter | Description
iMaxX, iMaxY | The maximum size of the new image (as the aspect ratio is maintained, one of the dimensions is likely to be less than the specified value)
bCanStretch | Set to false to avoid images smaller than iMaxX x iMaxY from being made larger
bAutoAdjustOrientation | Sets EnableAdjustOrientation to automatically re-orient JPEG camera images
QualityFilter | Specify the quality that is used for rescaling the image
bAddBorder | Set to true to add a 1 pixel border to the thumbnail
cBorderColor | The color of the added border
bAddShadow | Add a solid or soft shadow to the image
iBlurRadius | Set to 0 to add a solid shadow or any other value for the width of the Soft Shadow
iShadowOffset | The offset of the shadow from the image
cShadowColor | The shadow color
cBGColor | The color of the image behind the shadow

Example

// Load an image at the size 160x120
MyBitmap.IELoadAsThumbnail('D:\MyImage.jpeg', 160, 120, False);


TBitmap.IELoadFromFile

TBitmap.IELoadFromFile

Declaration

function IELoadFromFile(const sFilename : string): Boolean;

Description

Allows a TBitmap to load any format supported by ImageEn.
Returns True if loading was successful, or False on error

Example

// Load MyImage.jpeg into a bitmap
MyBitmap.IELoadFromFile('D:\MyImage.jpeg')


TBitmap.IELoadFromFileFast

TBitmap.IELoadFromFileFast

Declaration

function IELoadFromFileFast(const sFilename: string;
iMaxX, iMaxY: integer;
bAutoAdjustOrientation: Boolean = False
): Boolean;

Description

Allows you to load an image into a TBitmap using the fastest method by specifying the maximum size it is required. It uses:
- JPEG_Scale for JPEGs
- RAW_GetExifThumbnail and RAW_HalfSize for Camera Raw files
- IEN_GetThumbnail for IEN files

You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images.

Returns True if loading was successful, or False on error.

Example

// Load the specified image as fast as possible, but bigger than screen size
MyBitmap.IELoadFromFileFast('D:\MyImage.jpeg', Screen.Width, Screen.Height)


TBitmap.IELoadFromStream

TBitmap.IELoadFromStream

Declaration

function IELoadFromStream(Stream: TStream; FileType: TIOFileType = 0): Boolean;

Description

Allows a TBitmap to load any format supported by ImageEn.
If you know the FileType type of the stream, pass it to speed up loading.
Returns True if loading was successful, or False on error

Example

// Load MyImage.jpeg into a bitmap
MyBitmap.IELoadFromStream( MyStream )


TBitmap.IELoadFromStreamFast

TBitmap.IELoadFromStreamFast

Declaration

function IELoadFromStreamFast(Stream: TStream; FileType: TIOFileType;
iMaxX, iMaxY: integer;
bAutoAdjustOrientation: Boolean = False
): Boolean;

Description

Allows you to load an image into a TBitmap using the fastest method by specifying the maximum size it is required. It uses:
- JPEG_Scale for JPEGs
- RAW_GetExifThumbnail and RAW_HalfSize for Camera Raw files
- IEN_GetThumbnail for IEN files

You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images.

If you know the FileType type of the stream, pass it to speed up loading. Otherwise specify ioUnknown.

Returns True if loading was successful, or False on error.

Example

// Load the specified image as fast as possible, but bigger than screen size
MyBitmap.IELoadFromStreamFast( MyStream, ioUnknown, Screen.Width, Screen.Height )


TBitmap.IEResample

TBitmap.IEResample

Declaration

procedure IEResample(iNewWidth, iNewHeight: integer; QualityFilter: TResampleFilter = rfNone; bMaintainAspectRatio : Boolean = False);

Description

Calls Resample to resize a TBitmap and its content.

Example

// Resize the bitmap to screen dimensions (and good quality)
MyBitmap.IEResample(Screen.Width, Screen.Height, rfLanczos3);


TBitmap.IERotate

TBitmap.IERotate

Declaration

procedure IERotate(Angle: double; AntiAliasMode: TIEAntialiasMode = ierFast; BackgroundColor: TColor = -1);

Description

Calls Rotate to rotate a TBitmap.

Example

// Rotate the image 90 deg. counter-clockwise
MyBitmap.IERotate(90);

// Rotate the image 45 deg. clockwise and fill new areas with black
MyBitmap.IERotate(315, ierFast, clBlack);


TBitmap.IESaveToFile

TBitmap.IESaveToFile

Declaration

function IESaveToFile(const sFilename : string; iJPEGQuality : Integer): Boolean;

Description

Allows a TBitmap to save to any format supported by ImageEn. If you are saving to JPEG you can also specify the JPEG_Quality.
Returns True if saving was successful, or False on error

Example

// Save the image at 90% quality
MyBitmap.IESaveToFile(SavePictureDialog1.FileName, 90);


TBitmap.IESaveToStream

TBitmap.IESaveToStream

Declaration

function IESaveToStream(Stream: TStream; FileType: integer; iJPEGQuality : Integer): Boolean;

Description

Allows a TBitmap to save to any format supported by ImageEn. If you are saving to JPEG you can also specify the JPEG_Quality.
You must specify the file format.
Returns True if saving was successful, or False on error

Example

// Save the image at 90% quality
MyBitmap.IESaveToStream( DestStream, ioJPEG, 90 );


TBitmap.LoadFromURL

TBitmap.LoadFromURL

Declaration

function LoadFromURL(const URL : WideString;
const sProxyAddress : WideString = '';
const sProxyUser : WideString = '';
const sProxyPassword : WideString = ''
): Boolean;

Description

Load an image from the internet using the HTTP or FTP protocol.

Note: See documentation for TImageEnIO.LoadFromURL

Example

MyBitmapLoadFromURL('http://www.imageen.com/image.jpg');


TBitmap.PrintImage

TBitmap.PrintImage

Declaration

procedure PrintImage(PrtCanvas: TCanvas = nil; MarginLeft: double = 1; MarginTop: double = 1; MarginRight: double = 1; MarginBottom: double = 1; VerticalPos: TIEVerticalPos = ievpCenter; HorizontalPos: TIEHorizontalPos = iehpCenter; Size: TIESize = iesFitToPage; SpecWidth: double = 0; SpecHeight: double = 0; GammaCorrection: double = 1; SubsampleFilter: TResampleFilter = rfFastLinear);

Description

Print the current bitmap by specifying margins, vertical position, horizontal position and size.

Parameter | Description
PrtCanvas | The canvas to bring to. Generally the application will pass this as Printer.Canvas
MarginLeft | Left page margin in inches (Specify zero for no margin)
MarginTop | Top page margin in inches (Specify zero for no margin)
MarginRight | Right page margin in inches (Specify zero for no margin)
MarginBottom | Bottom page margin in inches (Specify zero for no margin)
VerticalPos | How the image is vertically aligned on the page
HorizontalPos | How the image horizontally aligned on the page
Size | How the image should be sized for printing
SpecWidth | The absolute width of the image in inches if Size = iesSpecifiedSize. The number of pages wide if Size = iesMultiplePages
SpecHeight | The absolute height of the image in inches if Size = iesSpecifiedSize. The number of pages high if Size = iesMultiplePages
GammaCorrection | The gamma correction value (Specify 1.0 to disable gamma correction)
SubsampleFilter | The filter that is used to enhance quality if hte image needs to be resampled for printing

Example

// Print the image in the center of the page at the original size
Printer.BeginDoc;
ABitmap.PrintImage(Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesNormal, 0, 0, 1);
Printer.EndDoc;

// Print the image in the center of the page stretched to page dimensions (respecting the proportions)
Printer.BeginDoc;
ABitmap.PrintImage(Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesFitToPage, 0, 0, 1);
Printer.EndDoc;

// Print the image as a poster, four pages wide and six pages high
Printer.BeginDoc;
ABitmap.PrintImage(Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesMultiplePages, 4, 6, 1);
Printer.EndDoc;


TBYTEROW

TBYTEROW

Declaration

TBYTEROW = array[0..Maxint div 16] of byte;


TBYTEROWS

TBYTEROWS

Declaration

TBYTEROWS = array[0..Maxint div 16] of PBYTEROW;


TCIELab

TCIELab

Declaration

TCIELab = packed record
l: byte;
a: shortint;
b: shortint;
end;


TCIELABROW

TCIELABROW

Declaration

TCIELABROW = array[0..Maxint div 16] of TCIELAB;


TCMYK

TCMYK

Declaration

TCMYK = packed record
c: byte;
m: byte;
y: byte;
k: byte;
end;


TCMYK16

TCMYK16

Declaration

TCMYK16 = packed record
c: word;
m: word;
y: word;
k: word;
end;


TCMYKROW

TCMYKROW

Declaration

TCMYKROW = array[0..Maxint div 16] of TCMYK;


TColor2TRGB

TColor2TRGB

Declaration

function TColor2TRGB(cl: TColor): TRGB;

Description

Converts a TColor to TRGB.

Example

var
rgb: TRGB;
Begin
rgb := TColor2TRGB( clRed );
// Which is the same as rgb := CreateRGB( 255, 0, 0 );
...
End;

See Also

- CreateRGB
- TRGB2TColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TColor2TRGBA

TColor2TRGBA

Declaration

function TColor2TRGBA(cl: TColor): TRGBA; overload;
function TColor2TRGBA(cl: TColor; transparency: Integer): TRGBA;

Description

Converts TColor and transparency to TRGBA.

Example

var
rgb: TRGBA;
Begin
rgb := TColor2TRGBA( clRed, 255 );
...
End;


TDataFieldImageFormat

TDataFieldImageFormat

Declaration

TDataFieldImageFormat = (ifBitmap, ifJpeg, ifGIF, ifPCX, ifTIFF, ifTIFFwAnnot, ifPNG, ifTGA, ifPXM, ifICO, ifJP2, ifJ2K, ifWBMP, ifUnknown);

Description

TIFF format with embedded TImageEnVect annotations (works only with TImageEnDBVect). Doesn't use stream headers.
Value | Description
ifBitmap | BMP format
ifJpeg | Jpeg format
ifGIF | GIF format
ifPCX | PCX format
ifTIFF | TIFF format
ifTIFFwAnnot |
ifPNG | PNG format
ifTGA | TGA format
ifPXM | PXM format
ifICO | ICO format
ifJP2 | JPEG2000 format
ifJ2K | JPEG2000 format
ifWBMP | WBMP format
ifUnknown | Unknown format


TDoubleArray

TDoubleArray

Declaration

TDoubleArray = array[0..maxint div 16] of double;


TDPoint

TDPoint

Declaration

TDPoint = record
X, Y: double;
end;


TDPointArray

TDPointArray

Declaration

type TDPointArray = array[0 . . Maxint div 32] of TDPoint;


TDWordArray

TDWordArray

Declaration

TDWordArray = array[0..maxint div 16] of dword;


TFileChangeNotifyEvent

TFileChangeNotifyEvent

Declaration

TFileChangeNotifyEvent = procedure(const Sender: TObject;
const Action: TWatchAction;
const FileName: string
) of Object;


TFitMethod

TFitMethod

Declaration

TFitMethod = (_fmFitWithinRect, // Normal Usage: All the image is made to fit within the available area (with border area)
_fmFillRect_WithOverlap); // Return an image that may be bigger than the available area but that does not have any border area showing


TFlipDir

TFlipDir

Declaration

TFlipDir = (fdHorizontal, fdVertical);


TGraphFilter

TGraphFilter

Declaration

TGraphFilter = record
Values: array[0..2, 0..2] of integer;
Divisor: Integer;
end;
PIEGraphFilter = ^TGraphFilter;

// filter exception
EFilterInvalid = class(Exception);


TGripKind

TGripKind

Declaration

TGripKind = (gkTriangle, gkLeftTriangle, gkRightTriangle, gkArrow, gkArrow2, gkLine, gkNone);

Description

Item | Description
gkTriangle | Triangle
gkLeftTriangle | Triangle pointing to the left
gkRightTriangle | Triangle pointing to the right
gkArrow | A standard arrow
gkArrow2 | A track bar style arrow
gkLine | Line only
gkNone | Grip is not visible


TGripsDir

TGripsDir

Declaration

TGripsDir = (gdUp, gdDown);


TGripsXDir

TGripsXDir

Declaration

TGripsXDir = (gdLeft, gdRight);


THistogram

THistogram

Declaration

THistogram = array[0..255] of THistogramItem;


THistogramBox.AttachedImageEnProc

THistogramBox.AttachedImageEnProc

Declaration

property AttachedImageEnProc: TImageEnProc;

Description

Use this property to attach a THistogramBox to a TImageEnProc object.

Example

HistogramBox1.AttachedImageEnProc := ImageEnView1.Proc;
HistogramBox1.Update; // now HistogramBox1 will display the histogram of an image attached to ImageEnProc1


THistogramBox.Background

THistogramBox.Background

Declaration

property Background: TColor;

Description

Specifies the background color.

Note: To change the color of the font and grid use Font.Color


THistogramBox.Bitmap

THistogramBox.Bitmap

Declaration

property Bitmap: TBitmap;

Description

The bitmap of the current histogram

Example

uses
iexHelperFunctions;

// Print the current histogram
Printer.BeginDoc;
HistogramBox1.Bitmap.PrintImage(Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesFitToPage);
Printer.EndDoc;


THistogramBox.Clear

THistogramBox.Clear

Declaration

procedure Clear();

Description

Reset the histogram to null values.

Example

HistogramBox1.Clear();


THistogramBox.CompBar

THistogramBox.CompBar

Declaration

property CompBar: boolean;

Description

If True, a gradient bar is shown below the histogram graph.


THistogramBox.GrayColor

THistogramBox.GrayColor

Declaration

property GrayColor: Tcolor;

Description

Specifies the color of the line/bar for a gray histogram (i.e. when HistogramKind is [hkGray]).


THistogramBox.HistogramAbsXPos

THistogramBox.HistogramAbsXPos

Declaration

property HistogramAbsXPos: integer;

Description

Returns the left X coordinate where the histogram will be painted inside the component client area.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THistogramBox.HistogramKind

THistogramBox.HistogramKind

Declaration

property HistogramKind: THistogramKind;

Description

Selects which channels are shown:
Value | Description
hkRed | Red channel
hkGreen | Green channel
hkBlue | Blue channel
hkGray | Gray-scale level
hkHue | Hue (of HSV values)


THistogramBox.HistogramStyle

THistogramBox.HistogramStyle

Declaration

property HistogramStyle: THistogramStyle;

Description

Specifies the styling of the histogram: Solid bars, single lines or filled lines.

Default: hsBars

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THistogramBox.Labels

THistogramBox.Labels

Declaration

property Labels: THistogramLabels;

Description

Specifies which labels (vertical and horizontal) are shown:
Value | Description
hlVertical | Values are shown along the X axis
hlHorizontal | Range is shown along the Y axis

Default: [hlVertical, hlHorizontal];


THistogramBox.MaxSelected

THistogramBox.MaxSelected

Declaration

property MaxSelected: Integer;

Description

If MouseInteract = mhSelectRange then MinSelected and MaxSelected specify the range of returned values.
If MouseInteract = mhSelectValue then MinSelected and MaxSelected return the same value.

Note: This valid range of MaxSelected will depend on HistogramKind. If HistogramKind is [hkHue] then the range will be 0 to 359. Otherwise it will be 0 to 255. -1 can also be specified to clear the selection.

Example

// Select from 100 to 200
HistogramBox1.MouseInteract := mhSelectRange;
HistogramBox1.MinSelected := 100;
HistogramBox1.MaxSelected := 200;

See Also

- MinSelected
- SelectionColor
- MouseInteract

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THistogramBox.MinSelected

THistogramBox.MinSelected

Declaration

property MinSelected: Integer;

Description

If MouseInteract = mhSelectRange then MinSelected and MaxSelected specify the range of returned values.
If MouseInteract = mhSelectValue then MinSelected and MaxSelected return the same value.

Note: This valid range of MinSelected will depend on HistogramKind. If HistogramKind is [hkHue] then the range will be 0 to 359. Otherwise it will be 0 to 255. -1 can also be specified to clear the selection.

Example

// Select mid-point in color histogram
HistogramBox1.MinSelected := 128;

See Also

- MaxSelected
- SelectionColor
- MouseInteract

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THistogramBox.MouseInteract

THistogramBox.MouseInteract

Declaration

property MouseInteract: THistogramMouseInteract;

Description

Determines what effect use of the mouse has on the component

Example

// Allow the user to select a value on the histogram
HistogramBox1.MouseInteract := mhSelectValue;

See Also

- MinSelected
- MaxSelected
- SelectionColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THistogramBox.OnSelectionChanged

THistogramBox.OnSelectionChanged

Declaration

property OnSelectionChanged: TNotifyEvent;

Description

If MouseInteract has been enabled then this event will occur after the user has modified the selection.

Note: Unlike OnSelectionChanged this event only fires once per change (on mouse up)


THistogramBox.OnSelectionChanging

THistogramBox.OnSelectionChanging

Declaration

property OnSelectionChanging: TNotifyEvent;

Description

If MouseInteract has been enabled then this event will occur as the user modifies the selection.

Note: Unlike OnSelectionChanged this event will fire multiple times during a selection change (as user drags mouse)


THistogramBox.Scale

THistogramBox.Scale

Declaration

property Scale: THistogramScale;

Description

Specifies the histogram plot scale.
Default value is iehsLinear. Use iehsLinearClipped or iehsLogarithmic on images with a heavy background color, which may create flat histograms.

Example

// Improve range of histogram display
HistogramBox1.Scale := iehsLinearClipped;


THistogramBox.SelectionColor

THistogramBox.SelectionColor

Declaration

property SelectionColor: TColor;

Description

Specifies the color of the selection line/box if you have enabled mouse interaction.

See Also

- MouseInteract

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THistogramBox.UpdateFromBitmap

THistogramBox.UpdateFromBitmap

Declaration

procedure UpdateFromBitmap(Bitmap: TIEBitmap);

Description

Updates the histogram from the specified bitmap.

Example

HistogramBox1.UpdateFromBitmap( ImageEnView1.IEBitmap );


THistogramBox.UpdateFromHistogram

THistogramBox.UpdateFromHistogram

Declaration

procedure UpdateFromHistogram(Histogram: TIEHistogram);

Description

Updates content from the specified histogram.


THistogramItem

THistogramItem

Declaration

THistogramItem = record
R: DWord;
G: DWord;
B: DWord;
Gray: DWord;
Hue: DWord;
end;


THistogramKind

THistogramKind

Declaration

THistogramKind = set of (hkRed, hkGreen, hkBlue, hkGray, hkHue);


THistogramLabels

THistogramLabels

Declaration

THistogramLabels = set of (hlVertical, hlHorizontal);


THistogramMouseInteract

THistogramMouseInteract

Declaration

THistogramMouseInteract = (mhNone, mhSelectValue, mhSelectRange);

Description

What action does the mouse perform:
Value | Description
mhNone | Mouse has no effect
mhSelectValue | Clicking/moving the mouse selects a single value on the histogram
mhSelectRange | Clicking/moving the mouse selects a range of values on the histogram


THistogramScale

THistogramScale

Declaration

THistogramScale = (iehsLinear, iehsLinearClipped, iehsLogarithmic);


THistogramStyle

THistogramStyle

Declaration

THistogramStyle = (hsBars, hsLines, hsFilledLines);


THSVBox.Background

THSVBox.Background

Declaration

property Background: TColor;

Description

Background is the background color.


THSVBox.BarsDistance

THSVBox.BarsDistance

Declaration

property BarsDistance: integer;

Description

Specifies the distance of Hue bar from color box (left box).

Example

HSVBox1.BarsDistance := 0; // removes distance from color bar and hue bar


THSVBox.Blue

THSVBox.Blue

Declaration

property Blue: byte;

Description

Blue channel of the conversion from current HSV color to RGB.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THSVBox.Color

THSVBox.Color

Declaration

property Color: TColor;

Description

Conversion of current HSV color in TColor.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THSVBox.GetColorAt

THSVBox.GetColorAt

Declaration

function GetColorAt(x, y: integer): TColor;

Description

GetColorAt returns the color at component coordinates x, y. Useful in response to MouseMove event.


THSVBox.Green

THSVBox.Green

Declaration

property Green: byte;

Description

Green channel of the conversion from current HSV color to RGB.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THSVBox.Hue

THSVBox.Hue

Declaration

property Hue: integer;

Description

Hue channel of the current color.


THSVBox.HueBarWidth

THSVBox.HueBarWidth

Declaration

property HueBarWidth: integer;

Description

HueBarWidth specifies the width of the Hue bar. Set this value to 0 to remove the Hue bar (right bar).

Example

HSVBox1.HueBarWidth := 0; // removes Hue bar


THSVBox.OnChange

THSVBox.OnChange

Declaration

property OnChange: TNotifyEvent;

Description

Occurs whenever a color is changed.


THSVBox.Red

THSVBox.Red

Declaration

property Red: byte;

Description

Red channel of the conversion from current HSV color to RGB.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


THSVBox.Sat

THSVBox.Sat

Declaration

property Sat: integer;

Description

Saturation channel of the current color.


THSVBox.SetColor

THSVBox.SetColor

Declaration

procedure SetColor(cl: TColor);

Description

Sets current color as TColor.


THSVBox.SetRGB

THSVBox.SetRGB

Declaration

procedure SetRGB(r, g, b: byte);

Description

Sets current color as RGB.


THSVBox.Val

THSVBox.Val

Declaration

property Val: integer;

Description

Value channel of the current color.


TidyIPTCStr

TidyIPTCStr

Declaration

function TidyIPTCStr(const Value: string): string;

Description

Removes the extraneous characters often found in IPTC data, such as null terminators.

Examples

sDescription := TidyIPTCStr( AnImageEnIO.Params.IPTC_Info.StringItem[iCaption] );


TIE2DPoint

TIE2DPoint

Declaration

TIE2DPoint = record
X: double;
Y: double;
end;


TIE2DPointArray

TIE2DPointArray

Declaration

TIE2DPointArray = array of TIE2DPoint;


TIE3DPoint

TIE3DPoint

Declaration

TIE3DPoint = record
x: double;
y: double;
z: double;
end;


TIEAcquireApi

TIEAcquireApi

Declaration

TIEAcquireApi = (ieaTwain, ieaWIA, ieaDCIM, ieaNone);

Description

Value | Description
ieaTwain | Acquire from Twain device
ieaWIA | Acquire from WIA (scanners or camera)
ieaDCIM | Read from any connected device containing a DCIM folder (e.g. camera card in a slot or a USB connected camera) using the WPD API *
ieaNone | No valid source has been set

* Note: WPD support is not available in Delphi/C++ Builder 5


TIEAcquireApis

TIEAcquireApis

Declaration

TIEAcquireApis = Set of TIEAcquireApi;


TIEAcquireBitmapEvent

TIEAcquireBitmapEvent

Declaration

TIEAcquireBitmapEvent = procedure(Sender: TObject; ABitmap: TIEBitmap; DpiX, DpiY: Integer; var Handled: boolean) of object;

Description

Occurs whenever an image is acquired from a scanner.
Parameter | Description
Sender | Will be either a TImageEnIO or TImageEnMIO control
ABitmap | A TIEBitmap object that contains the acquired image
DpiX, DpiY | Tne DPI of the acquired image
Handled | Setting Handled to True causes ImageEn to ignore this image (i.e. the current image won't be inserted into the TImageEnMView control, if attached). Handled has no effect when acquiring via a TImageEnView/TImageEnIO

Note: Handled defaults to False.


TIEAcquireDeviceType

TIEAcquireDeviceType

Declaration

TIEAcquireDeviceType = (ieadScanner, ieadCamera, ieadDrive, ieadDevice, ieadUnknown);

Description

Value | Device Type
ieadUnknown | Could not be determined
ieadScanner | Scanner
ieadCamera | Camera
ieadDrive | A connected camera card or device that appears as a removable drive and contains a DCIM folder
ieadDevice | Other connected devices that contain a DCIM folder


TIEAcquireOrientation

TIEAcquireOrientation

Declaration

TIEAcquireOrientation = (ieaoPortrait, ieaoLandscape, ieaoRotate90, ieaoRotate180);


TIEAcquireParams.Aborting

TIEAcquireParams.Aborting

Declaration

property Aborting : Boolean; (Read/Write)

Description

Set to false to cancel the acquisition of images (e.g. during the OnProgress event)


TIEAcquireParams.Acquire

TIEAcquireParams.Acquire

Declaration

function Acquire(DestBitmap: TIEBitmap; DestIOParams: TObject; OnProgress: TIEProgressEvent = nil; bNativePixelFormat: Boolean = False): Boolean; overload;
function Acquire(OnGetImage: TIEMultiCallBack; OnProgress: TIEProgressEvent = nil; bNativePixelFormat: Boolean = False): Boolean; overload;

Description

Perform an image acquisition from the SelectedSource, which may be a camera card, Twain or WIA device (SelectedSource is set when the user chooses a source if you have called SelectAcquireSource or manually set a source using SetAcquireSource).

** Generally you should NOT call this method directly. Use Acquire or Acquire Instead **

Acquiring a single image:
function Acquire(DestBitmap : TIEBitmap; DestIOParams : TObject; OnProgress: TIEProgressEvent = nil; bNativePixelFormat : Boolean = False) : Boolean;
Parameter | Description
DestBitmap | The TIEBitmap which will be filled with the acquired image
DestIOParams | A TIOParams object which will be filled with the parameters of the acquired image (optional)
OnProgress | Event to display acquisition progress and allow aborting (optional)
bNativePixelFormat | Set to true to disable conversion of paletted images, gray scale and all other formats to ImageEn native pixel formats (24 bit or 1 bit)

Acquiring multiple images:
function Acquire(OnGetImage : TIEMultiCallBack; OnProgress: TIEProgressEvent = nil; bNativePixelFormat : Boolean = False) : Boolean; overload;
Parameter | Description
OnGetImage | Event to call for every acquired image
OnProgress | Event to display acquisition progress and allow aborting (optional)
bNativePixelFormat | Set to true to disable conversion of paletted images, gray scale and all other formats to ImageEn native pixel formats (24 bit or 1 bit)


TIEAcquireParams.AcquireFrameBottom

TIEAcquireParams.AcquireFrameBottom

Declaration

property AcquireFrameBottom: double; (Read/Write)

Description

AcquireFrameBottom is the bottom of the rectangle to acquire measured in inches
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM).

See Also

- AcquireFrameLeft
- AcquireFrameTop
- AcquireFrameRight
- AcquireFrameBottom
- WIA_IPS_YPOS/WIA_IPS_YEXTENT

Example

// Acquires the 2,2,7,7 rectangle without display scanner dialog
ImageEnView1.IO.AcquireParams.AcquireFrameTop := 2;
ImageEnView1.IO.AcquireParams.AcquireFrameLeft := 2;
ImageEnView1.IO.AcquireParams.AcquireFrameRight := 7;
ImageEnView1.IO.AcquireParams.AcquireFrameBottom := 7;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.AcquireFrameEnabled

TIEAcquireParams.AcquireFrameEnabled

Declaration

property AcquireFrameEnabled : boolean; (Read/Write)

Description

If AcquireFrameEnabled is True, it enables the properties AcquireFrameLeft, AcquireFrameRight, AcquireFrameTop and AcquireFrameBottom.

Note: This is only required for API Types of ieaTwain. For other types AcquireFrameEnabled is always true.

See Also

- AcquireFrameEnabled

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.AcquireFrameLeft

TIEAcquireParams.AcquireFrameLeft

Declaration

property AcquireFrameLeft: double; (Read/Write)

Description

AcquireFrameLeft is the left of the rectangle to acquire measured in inches.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- AcquireFrameTop
- AcquireFrameRight
- AcquireFrameBottom
- AcquireFrameLeft
- WIA_IPS_XPOS

Example

// Acquires the 2,2,7,7 rectangle without display scanner dialog
ImageEnView1.IO.AcquireParams.AcquireFrameTop := 2;
ImageEnView1.IO.AcquireParams.AcquireFrameLeft := 2;
ImageEnView1.IO.AcquireParams.AcquireFrameRight := 7;
ImageEnView1.IO.AcquireParams.AcquireFrameBottom := 7;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIEAcquireParams.AcquireFrameRight

TIEAcquireParams.AcquireFrameRight

Declaration

property AcquireFrameRight: double; (Read/Write)

Description

AcquireFrameRight is the right side of the rectangle to acquire measured in inches.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- AcquireFrameLeft
- AcquireFrameTop
- AcquireFrameBottom
- AcquireFrameRight
- WIA_IPS_XPOS/WIA_IPS_XEXTENT

Example

// Acquires the 2,2,7,7 rectangle without display scanner dialog
ImageEnView1.IO.AcquireParams.AcquireFrameTop := 2;
ImageEnView1.IO.AcquireParams.AcquireFrameLeft := 2;
ImageEnView1.IO.AcquireParams.AcquireFrameRight := 7;
ImageEnView1.IO.AcquireParams.AcquireFrameBottom := 7;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIEAcquireParams.AcquireFrameTop

TIEAcquireParams.AcquireFrameTop

Declaration

property AcquireFrameTop: double; (Read/Write)

Description

AcquireFrameTop is the top of the rectangle to acquire measured in inches.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM). With WIA ensure you set AcquireFrameLeft/AcquireFrameTop before AcquireFrameRight/AcquireFrameBottom

See Also

- AcquireFrameLeft
- AcquireFrameRight
- AcquireFrameBottom
- AcquireFrameTop
- WIA_IPS_YPOS

Example

// Acquires the 2,2,7,7 rectangle without display scanner dialog
ImageEnView1.IO.AcquireParams.AcquireFrameTop := 2;
ImageEnView1.IO.AcquireParams.AcquireFrameLeft := 2;
ImageEnView1.IO.AcquireParams.AcquireFrameRight := 7;
ImageEnView1.IO.AcquireParams.AcquireFrameBottom := 7;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIEAcquireParams.AttachedDCIMParams

TIEAcquireParams.AttachedDCIMParams

Declaration

property AttachedDCIMParams : TIEDcimAcquire; (Read/Write)

Description

TIEAcquireParams needs to be attached to a TIEDcimAcquire object in order to retrieve files from a DCIM device.

Note: Not available in Delphi/C++ Builder 5

Example

AcquireParams := TIEAcquireParams.Create;
AcquireParams.AttachedTwainParams := fTwainParams;
AcquireParams.AttachedWIAParams := fWIA;
AcquireParams.AttachedDCIMParams := fDcimParams;
If AcquireParams.SelectSource([ieaTwain, ieaWIA, ieaDCIM]) then
AcquireParams.Acquire;


TIEAcquireParams.AttachedTwainParams

TIEAcquireParams.AttachedTwainParams

Declaration

property AttachedTwainParams : TIETwainParams; (Read/Write)

Description

TIEAcquireParams needs to be attached to a TIETwainParams object in order to acquire from a Twain source.

Example

AcquireParams := TIEAcquireParams.Create;
AcquireParams.AttachedTwainParams := fTwainParams;
AcquireParams.AttachedWIAParams := fWIA;
AcquireParams.AttachedDCIMParams := fDcimParams;
If AcquireParams.SelectSource([ieaTwain, ieaWIA, ieaDCIM]) then
AcquireParams.Acquire;


TIEAcquireParams.AttachedWIAParams

TIEAcquireParams.AttachedWIAParams

Declaration

property AttachedWIAParams : TIEWia; (Read/Write)

Description

TIEAcquireParams needs to be attached to a TIEWia object in order to retrieve files from a WIA source.

Example

AcquireParams := TIEAcquireParams.Create;
AcquireParams.AttachedTwainParams := fTwainParams;
AcquireParams.AttachedWIAParams := fWIA;
AcquireParams.AttachedDCIMParams := fDcimParams;
If AcquireParams.SelectSource([ieaTwain, ieaWIA, ieaDCIM]) then
AcquireParams.Acquire;


TIEAcquireParams.AutoFeed

TIEAcquireParams.AutoFeed

Declaration

property AutoFeed : boolean; (Read/Write)

Description

If AutoFeed is true, the scanner will automatically feed the next page from the document feeder.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- AutoFeed
- WIA_AUTO_ADVANCE of WIA_DPS_DOCUMENT_HANDLING_SELECT


TIEAcquireParams.BitDepth

TIEAcquireParams.BitDepth

Declaration

property BitDepth : Integer; (Read/Write)

Description

Specifies the bit depth (bits per channel) of the image to scan.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Example

// acquire 48 bit (RGB, 16 bit per pixel) native pixels
ImageEnView1.LegacyBitmap := false;
ImageEnView1.IO.NativePixelFormat := true;
ImageEnView1.IO.AcquireParams.BitDepth := 16;
ImageEnView1.IO.Acquire;

See Also

- BitDepth
- WIA_IPA_DEPTH

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.Brightness

TIEAcquireParams.Brightness

Declaration

property Brightness : Double; (Read/Write)

Description

Brightness value.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- Brightness
- WIA_IPS_BRIGHTNESS

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.Contrast

TIEAcquireParams.Contrast

Declaration

property Contrast : Double; (Read/Write)

Description

Contrast value.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- Contrast
- WIA_IPS_CONTRAST

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.Create

TIEAcquireParams.Create

Declaration

constructor Create(Owner: TComponent);

Example

AcquireParams := TIEAcquireParams.Create;
AcquireParams.AttachedTwainParams := fTwainParams;
AcquireParams.AttachedWIAParams := fWIA;
AcquireParams.AttachedDCIMParams := fDcimParams;
If AcquireParams.SetSelectedSource(ieaTwain, Default_Device) then
AcquireParams.Acquire;


TIEAcquireParams.Destroy

TIEAcquireParams.Destroy

Declaration

destructor TIEAcquireParams.Destroy;


TIEAcquireParams.DuplexEnabled

TIEAcquireParams.DuplexEnabled

Declaration

property DuplexEnabled: boolean; (Read/Write)

Description

If DuplexEnabled is True, the scanner scans both sides of a paper; otherwise, the scanner will scan only one side.
Use this property only within TImageEnMIO component to enable/disable duplex mode.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Default: False (Scan only one side)

See Also

- DuplexEnabled
- WIA_DUPLEX of WIA_DPS_DOCUMENT_HANDLING_SELECT


TIEAcquireParams.DuplexSupported

TIEAcquireParams.DuplexSupported

Declaration

property DuplexSupported: boolean; (Read-only)

Description

If DuplexSupported is True, the scanner can scans both sides of a paper; otherwise the scanner will scan only one side.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Example

// enables duplex if supported
If ImageEnMView1.MIO.AcquireParams.DuplexSupported then
ImageEnMView1.MIO.AcquireParams.DuplexEnabled := True;

See Also

- DuplexSupported
- WIA_DETECT_DUP_AVAIL of WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES


TIEAcquireParams.FeederEnabled

TIEAcquireParams.FeederEnabled

Declaration

property FeederEnabled: boolean; (Read/Write)

Description

FeederEnabled enables the feed loader mechanism when present. Use this property only within TImageEnMIO component to disable the feed loader.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Example

// Acquires only one feed
ImageEnMView1.MIO.AcquireParams.FeederEnabled := False;
ImageEnMView1.MIO.Acquire;

See Also

- FeederEnabled
- WIA_FEEDER of WIA_DPS_DOCUMENT_HANDLING_SELECT


TIEAcquireParams.FeederLoaded

TIEAcquireParams.FeederLoaded

Declaration

property FeederLoaded: boolean; (Read-only)

Description

Use the FeederLoaded property to determine whether there are documents loaded in the Source's feeder.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Example

// use of TImageEnIO (instead of TImageEnMIO) to acquire and save multi pages
while ImageEnView1.IO.AcquireParams.FeederLoaded do
begin
ImageEnView1.IO.Acquire;
ImageEnView1.IO.SaveToFile('page'+inttostr(count)+'.jpg');
Inc( count );
end;

See Also

- FeederLoaded
- WIA_FEED_READY of WIA_DPS_DOCUMENT_HANDLING_STATUS


TIEAcquireParams.FillListWithSources

TIEAcquireParams.FillListWithSources

Declaration

procedure FillListWithSources(ssDest : TStrings; Apis: TIEAcquireApis = [ieaTwain, ieaWIA, ieaDCIM]; bNameOnly : Boolean = False);

Description

Add all acquisition sources to the specified list. Specify which source types to support using the Apis parameter.

If bNameOnly is true then the list will only be filled with the names of the devices. If bNameOnly is false then the items will be formatted as follows:

Device Name||Index of Location||API||Device Type

E.g. My Cool Scanner||3||TWN||SCN

You can SetSourceByStr to activate a source with these raw device strings.

See Also

- SetSource
- StrToAcquireSource

Example

// Fill listbox with all available acquisition sources
FillListWithSources(Listbox1.Items, [ieaTwain, ieaWIA, ieaDCIM], False);

// Acquire from the selected source
if ImageEnMView1.MIO.AcquireParams.SetSourceByStr(Listbox1.Items[Listbox1.ItemIndex]) then
ImageEnMView1.MIO.Acquire;


TIEAcquireParams.FindSourceByName

TIEAcquireParams.FindSourceByName

Declaration

procedure FindSourceByName(const sName : string) : TIEAcquireSource;

Description

Pass the name of a Twain or WIA device and a TIEAcquireSource will be returned if it is valid.

See Also

- SetSource
- StrToAcquireSource

Example

ASource.FindSourceByName(edtTwainName.text);
if (ASource.API <> ieaNone) and ImageEnView1.IO.SetAcquireSource(ASource.API, ASource.Location) then
ImageEnView1.MO.Acquire;


TIEAcquireParams.IsPixelTypeSupported

TIEAcquireParams.IsPixelTypeSupported

Declaration

function IsPixelTypeSupported(PixelType: TIEAcquirePixelType): boolean;

Description

Returns true if the device supports acquisition using the specified PixelType.

Notes:
- Twain devices: Checks capabilities of both PixelType and BitDepth
- WIA devices: Always returns true
- DCIM: Returns true for ieapOther, otherwise false

Example

if ImageEnView1.IO.AcquireParams.IsPixelTypeSupported( TIEAcquirePixelType( cmbPixelType.ItemIndex )) = False then
MessageDlg( 'The selected pixel type is not supported by your device.', mtError, [mbOK], 0 );


TIEAcquireParams.Orientation

TIEAcquireParams.Orientation

Declaration

property Orientation : TIEAcquireOrientation; (Read/Write)

Description

Orientation defines the orientation of the output image. Not all scanners support this capability.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Value is one of:
Value | Description
ieaoPortrait | No rotation (Portrait)
ieaoLandscape | Rotate 270° clockwise (Landscape)
ieaoRotate90 | Rotate 90° clockwise
ieaoRotate180 | Rotate 180°

Example

// Acquire image in landscape orientation (if supported)
ImageEnView1.IO.AcquireParams.Orientation := ieaoLandscape;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

See Also

- Orientation
- WIA_IPS_ORIENTATION

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.PaperDetectable

TIEAcquireParams.PaperDetectable

Declaration

property PaperDetectable: boolean; (Read-only)

Description

If PaperDetectable is True, the scanner is able to detect paper.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- PaperDetectable
- WIA_DETECT_FEED flag of WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES


TIEAcquireParams.PhysicalHeight

TIEAcquireParams.PhysicalHeight

Declaration

property PhysicalHeight: double; (Read-only)

Description

PhysicalHeight is the maximum physical height (Y-axis) the scanner can acquire (measured in inches).
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- PhysicalHeight
- WIA_DPS_VERTICAL_BED_SIZE

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.PhysicalWidth

TIEAcquireParams.PhysicalWidth

Declaration

property PhysicalWidth: double; (Read-only)

Description

PhysicalWidth is the maximum physical width (X-axis) the scanner can acquire (measured in inches).
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- PhysicalWidth
- WIA_DPS_HORIZONTAL_BED_SIZE

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.PixelType

TIEAcquireParams.PixelType

Declaration

property PixelType: TIEAcquirePixelType; (Read/Write)

Description

PixelType is the type of pixel data that a scanner is capable of acquiring.
Notes:
- Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)
- Passing ieapOther as the PixelType will acquire using the default/current properties

Valid values are:
Value | Description
ieapMonochrome | Black & white (1 bit)
ieap8BitGrayScale | Gray scale (8 bit)
ieap16BitGrayScale | Gray scale (16 bit)
ieapFullColor | Full RGB (24 bit)
ieapFullColor16 | Full RGB (48 bit)
ieapOther | Other pixel formats (that are not supported by ImageEn)

You can determine what formats the device supports by using IsPixelTypeSupported

Example

// Acquire a black/white (1bit) image
ImageEnView1.IO.AcquireParams.PixelType := ieapMonochrome;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

// Acquire a gray scale (8bit) image
ImageEnView1.IO.AcquireParams.PixelType.CurrentValue := ieap8BitGrayScale;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

// Acquire a full RGB (24bit) image
ImageEnView1.IO.AcquireParams.PixelType.CurrentValue := ieapFullColor;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

See Also

- IsPixelTypeSupported
- PixelType
- BitDepth
- WIA_IPA_BITS_PER_CHANNEL
- WIA_IPA_CHANNELS_PER_PIXEL

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.Rotation

TIEAcquireParams.Rotation

Declaration

property Rotation : TIEAcquireRotation; (Read/Write)

Description

Specifies how much the Source can/should rotate the scanned image data prior to transfer.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Allowed values:
Value | Description
iearNone | No rotation
iear90CW | Rotate 90° clockwise
iear180CW | Rotate 180°
iear270CW | Rotate 270° clockwise

See Also

- Rotation
- WIA_IPS_ROTATION

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.SelectedSource

TIEAcquireParams.SelectedSource

Declaration

property SelectedSource: TIEAcquireSource; (Read-only)

Description

Returns the acquisition source that is currently active due to selection by the user with SelectSource or programatically using SetSource.
A TIEAcquireSource record is returned that provides meta information about the device (SelectedSource.Name, SelectedSource.DeviceType) and technical details (SelectedSource.Api, SelectedSource.Location).
If no device is selected then SelectedSource.Api will be ieaNone.

** Generally you should NOT use this property directly. Use TImageEnIO.SelectedAcquireSource or TImageEnMIO.SelectedAcquireSource Instead **

See Also

- SelectSource
- SetSource

Examples

// Display the selected source
if AcquireParams.SelectedSource.Api = ieaNone then
ShowMessage('No device is selected')
else
ShowMessage('The selected device is ' + AcquireParams.SelectedSource.Name);

// Read and restore the selected source
var
sDevice : string;
begin
..
// Read the selected device
sDevice := AcquireSourceToStr(AcquireParams.SelectedSource);
..
end;

var
sDevice : string;
ADevice : TIEAcquireSource;
begin
..
// Restore the device selection
ADevice := StrToAcquireSource(sDevice);
AcquireParams.SetSource(ADevice.Api, ADevice.Location);
..
end;


TIEAcquireParams.SelectedSourceApi

TIEAcquireParams.SelectedSourceApi

Declaration

property SelectedSourceApi : TIEAcquireApi; (Read-only)

Description

Returns the acquisition source that is currently active due to selection by the user with SelectSource or programatically using SetSource.
A TIEAcquireSource record is returned that provides meta information about the device (Selectedource.Name, SelectedSource.DeviceType) and technical details (SelectedSource.Api, SelectedSource.Location).
If no device is selected then SelectedSource.Api will be ieaNone.

** Generally you should NOT use this property directly. Use TImageEnIO.SelectedAcquireSource or TImageEnMIO.SelectedAcquireSource Instead **

Note: This is the same as SelectedSource.API

See Also

- SelectedSource

Examples

// Display the selected source
if AcquireParams.SelectedSource.Api = ieaNone then
ShowMessage('No device is selected')
else
ShowMessage('The selected device is ' + AcquireParams.SelectedSource.Name);

// Read and restore the selected source
var
sDevice : string;
begin
..
// Read the selected device
sDevice := AcquireSourceToStr(AcquireParams.SelectedSource);
..
end;

var
sDevice : string;
ADevice : TIEAcquireSource;
begin
..
// Restore the device selection
ADevice := StrToAcquireSource(sDevice);
AcquireParams.SetSource(ADevice.Api, ADevice.Location);
..
end;


TIEAcquireParams.SelectSource

TIEAcquireParams.SelectSource

Declaration

function SelectSource(Apis: TIEAcquireApis = [ieaTwain, ieaWIA, ieaDCIM]) : boolean;

Description

Prompts the user with a dialog to select a Twain, WIA or portable device.

** Generally you should NOT call this method directly. Use SelectAcquireSource or SelectAcquireSource Instead **

Use Apis to specify which sources are available to the user. Any combination of the following can be used:
Value | Description
ieaTwain | Acquire from Twain device
ieaWIA | Acquire using WIA (scanners or camera)
ieaDCIM | Read from any attached device containing a DCIM folder (e.g. camera card in a slot or a USB connected camera) using the WPD API

Note: If your location is only [ieTwain] or [ieWIA] then the default Twain/WIA selector is shown. Otherwise a custom device selector is used (Use MsgLanguage to control the language in the custom dialog).

Returns False if user press "Cancel" button.

Example

if AcquireParms.SelectSource([ieaTwain, ieaWIA, ieaDCIM]) then
AcquireParms.Acquire;


TIEAcquireParams.SetSource

TIEAcquireParams.SetSource

Declaration

function SetSource(Api : TIEAcquireApi; Location : Variant) : boolean;

Description

Programatically set the selected acquisition source by an API type and device. The selected device will be used for subsequent calls to Acquire.
Result is false if the device cannot be selected (i.e. is not connected or does not exist).

The API can be one of the following:
Value | Description
ieaTwain | Acquire from Twain device
ieaWIA | Acquire using WIA (scanners or camera)
ieaDCIM | Read from any connected device containing a DCIM folder (e.g. camera card in a slot or a USB connected camera) using the WPD API

Location can be one of the following:
Value | Description
Default_Device | The default device for that API type will be selected
Index | An index of a device, e.g. 0 for the first device (ieaTwain/ieaWIA/ieaDCIM)
Name | The name of a device, e.g. 'CanoScan FB620' (ieaTwain/ieaWIA/ieaDCIM)
Path | The path of a DCIM folder, e.g. 'I:\DCIM\' (ieaDCIM)
Drive Letter | The letter of a connected camera card or device containing a DCIM folder, e.g. 'I' (ieaDCIM)

See Also

- Acquire
- SelectedSource

Examples

// Acquire from the default Twain device
if ImageEnMView1.MIO.SetAcquireSource(ieaTwain, Default_Device) then
ImageEnMView1.MIO.Acquire;

// Select a Twain scanner by name
ImageEnMView1.MIO.SetAcquireSource(ieaTwain, 'CanoScan FB620');

// Select the second WIA device
ImageEnMView1.MIO.SetAcquireSource(ieaWIA, 1);

// Acquire from the camera card on H drive
if ImageEnMView1.MIO.SetAcquireSource(ieaDCIM, 'H') then
ImageEnMView1.MIO.Acquire;

// Read and restore a source
var
sDevice : string;
ADevice : TIEAcquireSource;
begin
..
// Read the selected device
sDevice := AcquireSourceToStr(ImageEnMView1.MIO.SelectedAcquireSource);
..
end;

var
sDevice : string;
ADevice : TIEAcquireSource;
begin
..
// Restore the device selection
ADevice := StrToAcquireSource(sDevice);
ImageEnMView1.MIO.SetAcquireSource(ADevice.Api, ADevice.Location);
..
end;


TIEAcquireParams.SetSourceByStr

TIEAcquireParams.SetSourceByStr

Declaration

function SetSourceByStr(const sRawDeviceStr : string) : boolean;

Description

If you use FillListWithSources from your own code then the returned devices will be list of strings formatted as follows:

Device Name||Index of Location||API||Device Type

E.g. My Cool Scanner||3||TWN||SCN

You can use SetSourceByStr to activate a source with these raw device strings.

See Also

- SetSource
- StrToAcquireSource

Example

procedure TForm1.btnAcquire(Sender: TObject);
begin
// A listbox has been filled with devices using FillListWithSources
if ImageEnMView1.MIO.AcquireParams.SetSourceByStr(Listbox1.Items[Listbox1.ItemIndex]) then
ImageEnMView1.MIO.Acquire;
end;


TIEAcquireParams.Threshold

TIEAcquireParams.Threshold

Declaration

property Threshold : Double; (Read/Write)

Description

Threshold specifies the dividing line between black and white. Allowed values: 0 - 255.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

See Also

- Threshold
- WIA_IPS_THRESHOLD

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.VisibleDialog

TIEAcquireParams.VisibleDialog

Declaration

property VisibleDialog : boolean; (Read/Write)

Description

If True, the camera/scanner user interface is displayed when Acquire is called.

Default: True

Note: Dialogs are never shown for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Example

ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

See Also

- VisibleDialog

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.XResolution

TIEAcquireParams.XResolution

Declaration

property XResolution : Double; (Read/Write)

Description

XResolution is the DPI (Dots per Inch) in the X-axis.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Example

// Acquire with 100 DPI (if supported by scanner)
ImageEnView1.IO.AcquireParams.YResolution := 100;
ImageEnView1.IO.AcquireParams.XResolution := 100;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

See Also

- XResolution
- WIA_IPS_XRES

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquireParams.YResolution

TIEAcquireParams.YResolution

Declaration

property YResolution: Double; (Read/Write)

Description

YResolution is the DPI (Dots per Inch) in the Y-axis.
Note: Not supported for DCIM retrieval (i.e. when SelectedAcquireSource.Api = ieaDCIM)

Example

// Acquire with 100 DPI (if supported by scanner)
ImageEnView1.IO.AcquireParams.YResolution := 100;
ImageEnView1.IO.AcquireParams.XResolution := 100;
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

See Also

- YResolution
- WIA_IPS_YRES

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAcquirePixelType

TIEAcquirePixelType

Declaration

TIEAcquirePixelType = (ieapMonochrome, ieap8BitGrayScale, ieap16BitGrayScale, ieapFullColor, ieapFullColor16, ieapOther);


TIEAcquireRotation

TIEAcquireRotation

Declaration

TIEAcquireRotation = (iearNone, iear90CW, iear180CW, iear270CW);


TIEAcquireSource

TIEAcquireSource

Declaration

TIEAcquireSource = Record
Name : AnsiString;
Location : Integer;
Api : TIEAcquireApi;
DeviceType : TIEAcquireDeviceType;
end;

Description

Value | Description
Api | The method used to connect to this device, e.g. Twain or WIA
Location | Index of this device within the device lists of TIETwainParams, TIEWia or TIEPortableDevices
Name | The system name for this device
DeviceType | The type of device, e.g. camera or scanner


TIEAfterAcquireBitmapEvent

TIEAfterAcquireBitmapEvent

Declaration

TIEAfterAcquireBitmapEvent = procedure(Sender: TObject; index: integer) of object;

Description

This event fired after an image has been acquired and added to the image list.
index specifies the index of the new image in the attached TImageEnMView.


TIEAfterEvent

TIEAfterEvent

Declaration

TIEAfterEventEvent = procedure(Sender: TObject; Event: TIEAfterEvent) of object;

Description

TIEAfterEvent = (ieaeMouseDown, ieaeMouseUp, ieaeKeyDown, ieaeKeyUp, ieaePaint);


TIEAfterEventEvent

TIEAfterEventEvent

Declaration

TIEAfterEventEvent = procedure(Sender: TObject; Event: TIEAfterEvent) of object;

Description

Occurs after ImageEn has processed an event.


TIEAlignLayers

TIEAlignLayers

Declaration

TIEAlignLayers = (ilaAlignToLeft, ilaAlignToRight, ilaAlignToTop, ilaAlignToBottom, ilaAlignToHorizontalCenter, ilaAlignToVerticalCenter,
ilaAlignLeftEdges, ilaAlignRightEdges, ilaAlignTopEdges, ilaAlignBottomEdges, ilaAlignHorizontalCenters, ilaAlignVerticalCenters,
ilaMatchWidth, ilaMatchHeight);

Description

Item | Description
ilaAlignToLeft | Align selected layers to the left side of the image
ilaAlignToRight | Align selected layers to the right side of the image
ilaAlignToTop | Align selected layers to the top of the image
ilaAlignToBottom | Align selected layers to the bottom of the image
ilaAlignToHorizontalCenter | Align selected layers along the horizon of the image
ilaAlignToVerticalCenter | Align selected layers to the vertical center of the image
ilaAlignLeftEdges | Align selected layers to the edge of the left-most layer
ilaAlignRightEdges | Align selected layers to the edge of the right-most layer
ilaAlignTopEdges | Align selected layers to the edge of the top-most layer
ilaAlignBottomEdges | Align selected layers to the edge of the bottom-most layer
ilaAlignHorizontalCenters | Align selected layers to have the same horizontal center
ilaAlignVerticalCenters | Align selected layers to have the same vertical center
ilaMatchWidth | Resize all selected layers to the width of the widest layer
ilaMatchHeight | Resize all selected layers to the height of the tallest layer


TIEAlignment

TIEAlignment

Declaration

TIEAlignment = (iejLeft, iejRight, iejCenter, iejJustify);


TIEAnimation.AnimDuration

TIEAnimation.AnimDuration

Declaration

property AnimDuration: dword;

Description

Specifies the animation duration in milliseconds.

Default: 800ms

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAnimation.BorderPen

TIEAnimation.BorderPen

Declaration

property BorderPen: TPen;

Description

Specifies pen to use when painting the frames border. A frame border is painted when ShowBorder is true.


TIEAnimation.Create

TIEAnimation.Create

Declaration

constructor Create();

Description

Creates the TIEAnimation object. You should call this constructor on your subclass.


TIEAnimation.CurrentImage

TIEAnimation.CurrentImage

Declaration

property CurrentImage: integer;

Description

Specifies current image index. Current image is often the most visible or the central image.


TIEAnimation.DeleteImage

TIEAnimation.DeleteImage

Declaration

procedure DeleteImage(imageIndex: integer);

Description

Removes the specified image.


TIEAnimation.Depth

TIEAnimation.Depth

Declaration

property Depth: integer;

Description

Specifies the 3D projection depth.

Default: 500

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAnimation.Destroy

TIEAnimation.Destroy

Declaration

destructor Destroy(); override;

Description

Destroys the TIEAnimation object. You should call this destructor on your subclass.


TIEAnimation.Display

TIEAnimation.Display

Declaration

procedure Display(dest: TIEBitmap); virtual; abstract;

Description

This method must be implemented by the subclass. It should loop among images calling drawImage for each image.

Parameter | Description
dest | The destination bitmap.


TIEAnimation.DoGetImage

TIEAnimation.DoGetImage

Declaration

procedure DoGetImage(imageIndex: integer; var image: TIEBitmap; var text: WideString);

Description

Calls the TIEAnimationGetImageEvent event, assigned on creation.

Parameter | Description
imageIndex | Index of the required image.
image | Return value for image bitmap.
text | Return value for image textual info (ie a filename).


TIEAnimation.DoGetImageInfo

TIEAnimation.DoGetImageInfo

Declaration

procedure DoGetImageInfo(imageIndex: integer; isVisible: boolean; var imageWidth: integer; var imageHeight: integer; var text: WideString);

Description

Calls the TIEAnimationGetImageInfoEvent event, if assigned on creation. If no event was assigned just calls the TIEAnimationGetImageEvent event.

Parameter | Description
imageIndex | Index of the required image info.
isVisible | False if the required image may not be visible (hence you can provide estimated values).
imageWidth | Return value for image width.
imageHeight | Return value for image height
text | Return value for image textual info (ie a filename).


TIEAnimation.DoReleaseImage

TIEAnimation.DoReleaseImage

Declaration

procedure DoReleaseImage(imageIndex: integer; var image: TIEBitmap);

Description

Calls the TIEAnimationReleaseImageEvent event, if assigned on creation.

Parameter | Description
imageIndex | Index of the image to release.
image | The bitmap to release.


TIEAnimation.drawImage

TIEAnimation.drawImage

Declaration

function drawImage(dest: TIEBitmap; imageIndex: integer): boolean; virtual;

Description

Draws the specified image. This method reads the timers to draw the image correctly (at calculated position, rotation, etc...).
Returns true when the image doesn't need to be drawn again (the animation is finished).

Parameter | Description
dest | The destination bitmap. Must be at least ViewWidth and ViewHeight pixels.
imageIndex | The image index to draw.


TIEAnimation.FindImageAt

TIEAnimation.FindImageAt

Declaration

function FindImageAt(X, Y: integer): integer;

Description

Returns the index of the image that is under the specified coordinates, or -1 if there is no image.

Parameter | Description
X | Horizontal coordinate.
Y | Vertical coordinate.


TIEAnimation.Font

TIEAnimation.Font

Declaration

property Font: TFont;

Description

The font of the text if ShowText is enabled.

Default values: Height: 18; Style: [fsBold]; Color: clWhite; Name: 'Arial'

Example

ImageEnMView1.Animation.Font.Color := clRed;
ImageEnMView1.Animation.Font.Height := 30;
ImageEnMView1.Animation.Font.Name := 'Tahoma';
ImageEnMView1.Animation.Font..Style := [fsBold];
ImageEnMView1.Update;


TIEAnimation.FramesZoomFilter

TIEAnimation.FramesZoomFilter

Declaration

property FramesZoomFilter: TResampleFilter;

Description

Specifies the interpolation filter to apply when the animation runs.

Default: rfNone

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAnimation.ImageCount

TIEAnimation.ImageCount

Declaration

property ImageCount: integer;

Description

Specifies the number of images that TIEAnimation should handle. This value could not match the number of visible images.
Setting this property reinitializes the animation and set the current image to 0.


TIEAnimation.Images

TIEAnimation.Images

Declaration

property Images[index: integer]: TIEAnimationImageInfo;

Description

Get or set the animation parameters for the image of the specified index.

Example

animation.Images[0].startAngleX := 45;


TIEAnimation.InsertImage

TIEAnimation.InsertImage

Declaration

procedure InsertImage(imageIndex: integer);

Description

Inserts a new image at specified position.


TIEAnimation.IsInsideScrollbar

TIEAnimation.IsInsideScrollbar

Declaration

function IsInsideScrollbar(X, Y: integer): boolean;

Description

Returns true if the specified coordinates are inside the scrollbar.

Parameter | Description
X | Horizontal coordinate.
Y | Vertical coordinate.


TIEAnimation.IsInsideScrollbarSlider

TIEAnimation.IsInsideScrollbarSlider

Declaration

function IsInsideScrollbarSlider(X, Y: integer): boolean;

Description

Returns true if the specified coordinates are inside the scrollbar slider.
This function is useful to start dragging the scrollbar slider.

Parameter | Description
X | Horizontal coordinate.
Y | Vertical coordinate.

See Also

- MoveScrollbarSliderTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAnimation.LastFrameZoomFilter

TIEAnimation.LastFrameZoomFilter

Declaration

property LastFrameZoomFilter: TResampleFilter;

Description

Specifies the interpolation filter to apply when the last frame is showed (when the animation ends).

Default: rfFastLinear

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAnimation.MoveScrollbarSliderTo

TIEAnimation.MoveScrollbarSliderTo

Declaration

procedure MoveScrollbarSliderTo(X: integer);

Description

Moves the scrollbar slider to the specified horizontal position.

Parameter | Description
X | Horizontal slider position.

Example

procedure TMainForm.ImageEnView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
// directly move to the clicked scrollbar position
if m_animation.IsInsideScrollbar(X, Y) then
m_animation.MoveScrollbarSliderTo(X);
end;


TIEAnimation.NeedRefresh

TIEAnimation.NeedRefresh

Declaration

property NeedRefresh: boolean;

Description

Applications will read this value to determine whether a call to Display is necessary.
This property is True when animation is running, and False when the last frame has been painted.
NeedRefresh can be also True just after a property has been changed.

Example

// repaint frame (if necessary)
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
if m_animation.NeedRefresh then
begin
ImageEnView1.IEBitmap.Fill(clBlack);
ImageEnView1.IEBitmap.AlphaChannel.Fill(255);
m_animation.Display(ImageEnView1.IEBitmap);
ImageEnView1.Update();
end;
end;


TIEAnimation.PaintScrollBar

TIEAnimation.PaintScrollBar

Declaration

procedure PaintScrollBar(dest: TIEBitmap);

Description

Paints the scroll bar. You should call this method inside Display method.

Parameter | Description
dest | The destination bitmap.


TIEAnimation.PaintText

TIEAnimation.PaintText

Declaration

procedure PaintText(posY: integer; dest: TIEBitmap);

Description

Paints the text (ie filename) at the specified row. You should call this method inside Display method.

Parameter | Description
posY | Vertical position where to draw the text.
dest | The destination bitmap.


TIEAnimation.RestartAnimation

TIEAnimation.RestartAnimation

Declaration

procedure RestartAnimation();

Description

Restarts the animation.


TIEAnimation.SetEndValues

TIEAnimation.SetEndValues

Declaration

procedure SetEndValues(); virtual;

Description

Sets ending values (image position, rotation, etc) whenever the animation is about to begin.
This method needs to be overloaded to implement animations.


TIEAnimation.SetInitialValues

TIEAnimation.SetInitialValues

Declaration

procedure SetInitialValues(first, last: integer); virtual;

Description

Sets initial animation values (image position, rotation, etc). This is called one time when the object is initialized.
This method need to be overloaded to implement animations.

Parameter | Description
first | Index of first image to set values.
last | Index of last image to set values..


TIEAnimation.SetStartEndValues

TIEAnimation.SetStartEndValues

Declaration

procedure SetStartEndValues();

Description

This method just calls SetStartValues and SetEndValues.


TIEAnimation.SetStartValues

TIEAnimation.SetStartValues

Declaration

procedure SetStartValues(); virtual;

Description

Sets starting values (image position, rotation, etc) whenever the animation is about to begin.
This method needs to be overloaded to implement animations.


TIEAnimation.SetupEvents

TIEAnimation.SetupEvents

Declaration

procedure SetupEvents(getImage: TIEAnimationGetImageEvent; releaseImage: TIEAnimationReleaseImageEvent = nil; getImageInfo: TIEAnimationGetImageInfoEvent = nil);

Description

Setup events necessary to show images.

Parameter | Description
getImage | The event called whenever a new image needs to be drawn. Cannot be nil.
releaseImage | The event called whenever an image can be released. Can be nil.
getImageInfo | The event called whenever only image info are needed. Can be nil.


TIEAnimation.ShadowAlphaMax

TIEAnimation.ShadowAlphaMax

Declaration

property ShadowAlphaMax: integer;

Description

Specifies the maximum alpha value for the shadow.

Default: 40

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAnimation.ShadowAlphaMin

TIEAnimation.ShadowAlphaMin

Declaration

property ShadowAlphaMin: integer;

Description

Specifies the minimum alpha value for the shadow.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEAnimation.ShowBorder

TIEAnimation.ShowBorder

Declaration

property ShowBorder: boolean;

Description

If true a border will be painted around all images.

See also: BorderPen.


TIEAnimation.ShowScrollbar

TIEAnimation.ShowScrollbar

Declaration

property ShowScrollbar: boolean;

Description

If true the scrollbar will be painted.


TIEAnimation.ShowText

TIEAnimation.ShowText

Declaration

property ShowText: boolean;

Description

Whether the current image text will be painted. Styling of the text is specified using Font


TIEAnimation.ViewHeight

TIEAnimation.ViewHeight

Declaration

property ViewHeight: integer;

Description

Specifies the height of area reserved for the animation.

See Also

- ViewWidth

Example

animation.ViewWidth := ImageEnView.IEBitmap.Width;
animation.ViewHeight := ImageEnView.IEBitmap.Height;


TIEAnimation.ViewWidth

TIEAnimation.ViewWidth

Declaration

property ViewWidth: integer;

Description

Specifies the width of area reserved for the animation.

See Also

- ViewHeight

Example

animation.ViewWidth := ImageEnView.IEBitmap.Width;
animation.ViewHeight := ImageEnView.IEBitmap.Height;


TIEAnimationGetImageEvent

TIEAnimationGetImageEvent

Declaration

TIEAnimationGetImageEvent = procedure(Sender: TObject; imageIndex: integer; var image: TIEBitmap; var text: WideString) of object;

Description

Event called when the whole image is needed.

Parameter | Description
Sender | The caller, a subclass of TIEAnimation class.
imageIndex | Index of the required image.
image | Return value for image bitmap.
text | Return value for image textual info (ie a filename).


TIEAnimationGetImageInfoEvent

TIEAnimationGetImageInfoEvent

Declaration

TIEAnimationGetImageInfoEvent = procedure(Sender: TObject; imageIndex: integer; isVisible: boolean; var imageWidth: integer; var imageHeight: integer; var text: WideString) of object;

Description

Event called when only the image info is needed (not the whole image).

Parameter | Description
Sender | The caller, a subclass of TIEAnimation class.
imageIndex | Index of the required image info.
isVisible | False if the required image may not be visible (hence you can provide estimated values).
imageWidth | Return value for image width.
imageHeight | Return value for image height
text | Return value for image textual info (ie a filename).


TIEAnimationImageInfo

TIEAnimationImageInfo

Declaration

TIEAnimationImageInfo = class;

Description

Objects of this class contain the animation state of each image like positions and rotations, other than timing info.

Fields

TIEAnimationImageInfo = class
public
startTime : dword; // when transition was started
endTime : dword; // when transition must ends

startAlpha : integer; // the starting alpha (0..255)
endAlpha : integer; // the ending alpha (0..255)
lastAlpha : integer; // last calculated alpha (0..255)

startAngleX : double; // the starting angle X in degrees
endAngleX : double; // the ending angle X in degrees
lastAngleX : double; // last calculated angle X in degrees

startAngleY : double; // the starting angle Y in degrees
endAngleY : double; // the ending angle Y in degrees
lastAngleY : double; // last calculated angle Y in degrees

startCenterX : integer; // the starting X position
endCenterX : integer; // the ending X position
lastCenterX : integer; // last calculated X position

startCenterY : integer; // the starting Y position
endCenterY : integer; // the ending Y position
lastCenterY : integer; // last calculated Y position

startWidth : integer; // the starting width
endWidth : integer; // the ending width
lastWidth : integer; // last calculated width

startHeight : integer; // the starting height
endHeight : integer; // the ending height
lastHeight : integer; // last calculated height

lastCoords : TIEQuadCoords; // last calculated coordinates
end;


TIEAnimationReleaseImageEvent

TIEAnimationReleaseImageEvent

Declaration

TIEAnimationReleaseImageEvent = procedure(Sender: TObject; imageIndex: integer; var image: TIEBitmap) of object;

Description

Event called when the image can be released.

Parameter | Description
Sender | The caller, a subclass of TIEAnimation class.
imageIndex | Index of the image to release.
image | The bitmap to release.


TIEAnimationTextEvent

TIEAnimationTextEvent

Declaration

TIEAnimationTextEvent = procedure(Sender: TObject; imageIndex: integer; var text: WideString) of object;


TIEAntialiasMode

TIEAntialiasMode

Declaration

TIEAntialiasMode = (ierNone, ierFast, ierBilinear, ierBicubic);

Description

Specifies the anti-aliasing algorithm that is used to improve quality when rotating images:
ierNone : No anti-aliasing (lowest quality)
ierFast : Fast but lower quality
ierBilinear : Bilinear, high quality
ierBicubic : Bicubic, highest quality


TIEArrayOfByte

TIEArrayOfByte

Declaration

TIEArrayOfByte = array of byte;


TIEArrayOfDouble

TIEArrayOfDouble

Declaration

TIEArrayOfDouble = array of double;


TIEArrayOfDWord

TIEArrayOfDWord

Declaration

TIEArrayOfDWord = array of dword;


TIEArrayOfInteger

TIEArrayOfInteger

Declaration

TIEArrayOfInteger = array of integer;


TIEArrayOfSingle

TIEArrayOfSingle

Declaration

TIEArrayOfSingle = array of single;


TIEArrayOfTRGB

TIEArrayOfTRGB

Declaration

TIEArrayOfTRGB = array of TRGB;


TIEAutoSaveErrorEvent

TIEAutoSaveErrorEvent

Declaration

type TIEImageSaveErrorEvent = procedure(Sender: TObject; Filename: string; ErrorMsg: string) of object;

Description

If AutoSaveChanges has been enabled for a relevant TImageEnMViewAction then this event will be called when changes cannot be saved


TIEBackgroundStyle

TIEBackgroundStyle

Declaration

TIEBackgroundStyle = (iebsSolid, iebsHorizontal, iebsVertical, iebsFDiagonal, iebsBDiagonal, iebsCross, iebsDiagCross, iebsChessboard, iebsDiagonals, iebsCropped, iebsCropShadow, iebsGradient, iebsSoftShadow, iebsPhotoLike, iebsBlurredImage);

Description

Value | Description
iebsCropped * | A border is shown around the image (instead of around the edge of the ImageEnView). Best used with ImageEnView.BorderStyle=bsNone and Center=True
iebsCropShadow * | A solid shadow is drawn around the image (See also: iebsSoftShadow)
iebsChessboard | Background has chessboard pattern
iebsDiagonals | Background has diagonal pattern
iebsSolid | Background is a solid color (see Background)
iebsHorizontal | Same as bsHorizontal of TBrushStyle
iebsVertical | Same as bsVertical of TBrushStyle
iebsFDiagonal | Same as bsFDiagonal of TBrushStyle
iebsBDiagonal | Same as bsBDiagonal of TBrushStyle
iebsCross | Same as bsCross of TBrushStyle
iebsDiagCross | Same as bsDiagCross of TBrushStyle
iebsGradient | Background is a gradient of two colors (specified with Background and GradientEndColor)
iebsSoftShadow * | A soft (gaussian) shadow is drawn around the image
iebsPhotoLike * | A dark gray backround is drawn around the image with a black border around
iebsBlurredImage * | The current image is shown blurred and zoomed to fill the window (can be slow)

* These styles are not supported by TImageEnMView


TIEBaseBitmap

TIEBaseBitmap

Description

This is the base abstract class for TIEBitmap object. Applications cannot create TIEBaseBitmap objects, instead use TIEBitmap.

Implemented Properties

Access
Palette
PaletteLength
PaletteUsed

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBaseBitmap.Access

TIEBaseBitmap.Access

Declaration

property Access: TIEDataAccess;

Description

Specifies whether the bitmap is readable or/and writable. This works only when Location is ieFile to speed up reading and writing operations.

The default value is [iedRead, iedWrite] which allows read and write.

Examples

// set write-only when loading input.tif (in reality this is automatic!)
ImageEnView.IEBitmap.Access := [iedWrite];
ImageEnView.IO.LoadFromFile('D:\Input.tif');
ImageEnView.IEBitmap.Access := [iedWrite, iedRead]; // restore

// set read-only when saving output.tif (in reality this is automatic!)
ImageEnView.IEBitmap.Access := [iedRead];
ImageEnView.IO.SaveToFile('D:\Output.tif');
ImageEnView.IEBitmap.Access := [iedWrite, iedRead]; // restore


TIEBaseBitmap.Palette

TIEBaseBitmap.Palette

Declaration

property Palette[index: integer]: TRGB;

Description

Returns the color of the palette entry index.

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBaseBitmap.PaletteLength

TIEBaseBitmap.PaletteLength

Declaration

property PaletteLength: integer;

Description

Returns the count of entries in the palette.


TIEBaseBitmap.PaletteUsed

TIEBaseBitmap.PaletteUsed

Declaration

property PaletteUsed: integer;

Description

Specifies the number of colors used by the palette.


TIEBeforeLoadImageEvent

TIEBeforeLoadImageEvent

Declaration

TIEBeforeLoadImageEvent = procedure(Sender: TObject; Field: TField) of object;


TIEBitmap.AdjustmentsMask

TIEBitmap.AdjustmentsMask

Declaration

property AdjustmentsMask: TIEMask;

Description

Use the AdjustmentsMask to select which pixels are affected by BlackValue, WhiteValue, ChannelOffset, Contrast and layers blending operations.

To reset the adjustments mask (apply changes to the whole image) use:

ImageEnView1.IEBitmap.AdjustmentsMask.Empty();
ImageEnView1.Update();

Example

// copy ImageEnView current selection to AdjustmentsMask and apply Contrast in real time
ImageEnView.IEBitmap.AdjustmentsMask.Assign( ImageEnView1.SelectionMask );
ImageEnView.IEBitmap.Contrast := 20;
ImageEnView.Update();

Demo

Demos\Display\DisplayAdjust\Display.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.Allocate

TIEBitmap.Allocate

Declaration

function Allocate(ImageWidth, ImageHeight: integer; ImagePixelFormat: TIEPixelFormat=ie24RGB): boolean;

Description

Prepares space for an image with ImageWidth and ImageHeight sizes.
Returns true on success.

Note: When TIEBitmap is connected to TImageEnView, ensure that LegacyBitmap is False before setting pixel formats other than ie1g and ie24RGB.

Example

ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Allocate(1000, 1000, ieCMYK);


TIEBitmap.Alpha

TIEBitmap.Alpha

Declaration

property Alpha[x, y: integer]: byte;

Description

Specifies the alpha value of a pixel. 0 is transparent, 255 is opaque, 1 - 254 are partially transparent.

Note: This function doesn't perform a range check test.


TIEBitmap.AlphaChannel

TIEBitmap.AlphaChannel

Declaration

property AlphaChannel: TIEBitmap;

Description

TIEBitmap handles the alpha channel as an encapsulated TIEBitmap object with pixelformat of ie8g.
This property returns the associated AlphaChannel.
If an image doesn't have an alpha channel, you can create it just using AlphaChannel property.
To determine whether an image has an alpha channel, examine the HasAlphaChannel property.

Example

// Assign an alpha channel to an image using a source file
// For simple transparency, use a monochrome bitmap where the black pixels will become transparent
// Otherwise, a 256 color gray-scale image can provide a range of tranparency values (from white/fully opaque to black/fully transparent)
aBMP := TIEBitmap.create( 'D:\alpha.bmp' );

// Use our bitmap as the alpha channel
ImageEnView1.IEBitmap.AlphaChannel.Assign( aBMP );

// Ensure size of alpha channel matches size of image (and is ie8g)
ImageEnView1.IEBitmap.SyncAlphaChannel();

// Update the container
ImageEnView1.Update;

aBMP.free;

Source Image:

Image to use for Alpha (Black will be come transparent, gray will be 50% transparent and white will be fully opaque):

Result (on a white TImageEnView):

See Also

- SyncAlphaChannel
- DetachAlphaChannel
- ReplaceAlphaChannel

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.AlphaChannelOpt

TIEBitmap.AlphaChannelOpt

Declaration

property AlphaChannelOpt: TIEBitmap;

Description

Returns the alpha channel if present, otherwise returns nil.

See also: AlphaChannel.


TIEBitmap.Assign

TIEBitmap.Assign

Declaration

procedure Assign(Source: TObject);

Description

Copies an image from source object. Source can be a TIEBitmap or a TBitmap.

Note: Params are also copied if ParamsEnabled is true for both source and destination


TIEBitmap.AssignIEVisionImage

TIEBitmap.AssignIEVisionImage

Declaration

procedure AssignIEVisionImage(Source: TIEVisionImage);

Description

Copies source IEVision image into current TIEBitmap object, replacing previous image.

Example

ImageEnView1.IEBitmap.AssignIEVisionImage(ievisionImage);
ImageEnView1.Update();


TIEBitmap.AssignImage

TIEBitmap.AssignImage

Declaration

procedure AssignImage(Source: TIEBaseBitmap);

Description

Copies an image from Source object, but not the alpha channel.


TIEBitmap.AssignRect

TIEBitmap.AssignRect

Declaration

procedure AssignRect(Source: TObject; SourceRect: TRect);

Description

Copies a rectangle from source object. Source can be a TIEBitmap, TImageEnView or a TBitmap.

When Source is TImageEnView the currently selected layer is copied.

Note: Params are also copied if ParamsEnabled is true for both source and destination


TIEBitmap.AutoCalcBWValues

TIEBitmap.AutoCalcBWValues

Declaration

procedure AutoCalcBWValues;

Description

Auto calculates BlackValue and WhiteValue to correctly display the image.
This method finds the low and high values of image pixels and sets them to the BlackValue and WhiteValue properties.


TIEBitmap.BitAlignment

TIEBitmap.BitAlignment

Declaration

property BitAlignment: integer;

Description

Specifies the number of bits of alignment (32 is the default). This works only when Location is ieMemory.


TIEBitmap.BitCount

TIEBitmap.BitCount

Declaration

property BitCount: integer;

Description

Return the bits per pixel. Here is the PixelFormat - BitCount comparison:
PixelFormat = ie1g -> BitCount = 1
PixelFormat = ie8g -> BitCount = 8
PixelFormat = ie8p -> BitCount = 8
PixelFormat = ie16g -> BitCount = 16
PixelFormat = ie24RGB -> BitCount = 24
PixelFormat = ie32f -> BitCount = 32
PixelFormat = ieCMYK -> BitCount = 32
PixelFormat = ie48RGB -> BitCount = 48
PixelFormat = ieCIELab -> BitCount = 24
PixelFormat = ie32RGB -> BitCount = 32
PixelFormat = ieVirtual -> BitCount = 24

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.BlackValue

TIEBitmap.BlackValue

Declaration

property BlackValue: double;

Description

Specifies (along with WhiteValue) the value range from black to white.

For example, if your image is a gray scale (256 levels) where only values from 100 to 200 are used (100 is black and 200 is white), to display the image you must write:

ImageEnView.IEBitmap.BlackValue := 100;
ImageEnView.IEBitmap.WhiteValue := 200;
ImageEnView.Update;

Demo

Demos\Display\DisplayAdjust\Display.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.CalcRAWSize

TIEBitmap.CalcRAWSize

Declaration

function CalcRAWSize: integer;

Description

Calculates the space required for SaveRAWToBufferOrStream method, when used with "Buffer" parameter.


TIEBitmap.Canvas

TIEBitmap.Canvas

Declaration

property Canvas: TCanvas;

Description

Returns the canvas when Location is ieTBitmap.

Note: If you access the Canvas property the Location is automatically converted to ieTBitmap.


TIEBitmap.CanvasCurrentAlpha

TIEBitmap.CanvasCurrentAlpha

Declaration

property CanvasCurrentAlpha: integer

Description

Setting this property to a value >=0, makes the alpha channel an 8 bit gray scale paintable bitmap.
This means that you can draw on the alpha channel using TCanvas object.
The value (0..255) specifies the transparency, 0=fully transparent, 255=fully opaque.

Default: -1

Examples

ImageEnView1.IEBitmap.AlphaChannel.CanvasCurrentAlpha := 128;
with ImageEnView1.IEBitmap.AlphaChannel.Canvas do
begin
FillRect(0, 0, 100, 100);
Ellipse(10, 10, 200, 200);
end;

// Draw a line on the IEBitmap canvas and ensure it also make opaque on the transparency
With ImageEnView1 do
begin
IEBitmap.Canvas.Pen.Color := clRed;
IEBitmap.Canvas.MoveTo( 10, 10 ) ;
IEBitmap.Canvas.LineTo( 100, 100 );

IEBitmap.AlphaChannel.CanvasCurrentAlpha := 255;
IEBitmap.AlphaChannel.Canvas.MoveTo( 10, 10 ) ;
IEBitmap.AlphaChannel.Canvas.LineTo( 100, 100 );

Update;
end


TIEBitmap.ChannelCount

TIEBitmap.ChannelCount

Declaration

property ChannelCount: integer;

Description

Returns the number of channels of current pixel format.


TIEBitmap.ChannelOffset

TIEBitmap.ChannelOffset

Declaration

property ChannelOffset[idx: integer]: integer;

Description

Allows an offset for each channel to be specified. Idx is the channel where 0=red, 1=green and 2=blue
At the moment ChannelOffset works only with ie24RGB pixelformat.

For example, to display only the red channel, just set green and blue to -255:

ImageEnView.IEBitmap.ChannelOffset[1] := -255; // hide green
ImageEnView.IEBitmap.ChannelOffset[2] := -255; // hide blue
ImageEnView.Update;

ChannelOffset is useful also to increase or decrease luminosity (brightness). Example:

// trackbar1 has min=-255 and max=255.
ImageEnView.IEBitmap.ChannelOffset[0] := trackbar1.Position;
ImageEnView.IEBitmap.ChannelOffset[1] := trackbar1.Position;
ImageEnView.IEBitmap.ChannelOffset[2] := trackbar1.Position;
ImageEnView.Update;

Finally you can use ChannelOffset to display the alpha channel as a black image, hiding all channels. Example:

ImageEnView.IEBitmap.ChannelOffset[0] := -255;
ImageEnView.IEBitmap.ChannelOffset[1] := -255;
ImageEnView.IEBitmap.ChannelOffset[2] := -255;
ImageEnView.Update;

Demo

Demos\Display\DisplayAdjust\Display.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.Clear

TIEBitmap.Clear

Declaration

procedure Clear;

Description

Sets the image width and height to zero.


TIEBitmap.ColorProfile

TIEBitmap.ColorProfile

Declaration

property ColorProfile: TIEICC;

Description

Contains the bitmap color profile loaded from TIFF, Jpeg or PSD file format.
Currently used for CMYK pixel format only.

See also: ApplyColorProfileOnRendering

Example

// Apply color profile on rendering
IEGlobalSettings().ApplyColorProfileOnRendering := True; // not actually necessary, this is the default
ImageEnView1.IO.NativePixelFormat := True; // this says "do not convert to RGB"
ImageEnView1.IO.LoadFromFile('cmyk-jpeg.jpg');

// Apply color profile before rendering
IEGlobalSettings().EnableCMS := True;
IEGlobalSettings().ApplyColorProfileOnRendering := False;
ImageEnView1.IO.NativePixelFormat := False; // this says "convert to RGB"
ImageEnView1.IO.LoadFromFile('cmyk-jpeg.jpg');

// Do not apply color profile
IEGlobalSettings().EnableCMS := False;
IEGlobalSettings().ApplyColorProfileOnRendering := False;
ImageEnView1.IO.NativePixelFormat := False; // this says "convert to RGB"
ImageEnView1.IO.LoadFromFile('cmyk-jpeg.jpg');


TIEBitmap.Contrast

TIEBitmap.Contrast

Declaration

property Contrast: integer;

Description

Specifies a dynamic contrast to apply. It does not modify the image, only how it is displayed.

Allowed values are 0 to 100.

Example

ImageEnView.IEBitmap.Contrast := 20;
ImageEnView.Update;

Demo

Demos\Display\DisplayAdjust\Display.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.CopyAndConvertFormat

TIEBitmap.CopyAndConvertFormat

Declaration

procedure CopyAndConvertFormat(Source: TIEBitmap);

Description

Copies from the specified source image, converting to current pixel format.
Uses color quantizers when convert from a true color to a paletted.
Not supported if Location is ieTBitmap.


TIEBitmap.CopyFromDIB

TIEBitmap.CopyFromDIB

Declaration

procedure CopyFromDIB(Source: THandle); overload;
procedure CopyFromDIB(BitmapInfo: pointer; Pixels: pointer = nil); overload;

Description

Copies from the specified DIB handle.
The second overload copies from a DIB composed by a BitmapInfo structure and pixels buffer pointer.
When Pixels is null, pixels are supposed to stay just after BitmapInfo structure.

Note: if ParamsEnabled = True, then the DPI is returned in Params.DpiX and Params.DpiY

Example

IEBmp :=TIEBitmap.create;
IEBmp.ParamsEnabled := true; // So we can get the DPI
IEBmp.CopyFromDIB( HDib ); // Copy from HDIB passed by scanner
lblDPI.caption := IntToStr( IEBmp.Params.DpiX );
ImageEnView1.IEBitmap.assign( IEBmp );
IEBmp.Free;


TIEBitmap.CopyFromMemory

TIEBitmap.CopyFromMemory

Declaration

procedure CopyFromMemory(SrcBuffer: pointer; SrcWidth: integer; SrcHeight: integer; SrcPixelFormat: TIEPixelFormat; SrcOrigin: TIEBitmapOrigin; SrcRowLen: integer);

Description

Copies an image from memory buffer.

Parameter | Description
SrcBuffer | Source memory buffer.
SrcWidth | Source image width.
SrcHeight | Source image height.
SrcPixelFormat | Source pixel format.
SrcOrigin | Source orientation.
SrcRowLen | Source row length.


TIEBitmap.CopyFromTBitmap

TIEBitmap.CopyFromTBitmap

Declaration

procedure CopyFromTBitmap(Source: TBitmap);

Description

Copies the image from the Source TBitmap object.
The source's TBitmap.PixelFormat allowed values are: pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit.
If Location is ieTBitmap, then only pf1bit and pf24bit and pf32bit are accepted.


TIEBitmap.CopyFromTDibBitmap

TIEBitmap.CopyFromTDibBitmap

Declaration

procedure CopyFromTDibBitmap(Source: TIEDibBitmap);

Description

Copies the image from a TIEDibBitmap object.


TIEBitmap.CopyFromTIEMask

TIEBitmap.CopyFromTIEMask

Declaration

procedure CopyFromTIEMask(Source: TIEMask);

Description

Copies the image from a TIEMask object.
If Source is nil then fills the bitmap with all 255.


TIEBitmap.CopyPaletteTo

TIEBitmap.CopyPaletteTo

Declaration

procedure CopyPaletteTo(Dest: TIEBaseBitmap);

Description

Copies all palette colors to destination bitmap. Dest must be a TIEBitmap object.


TIEBitmap.CopyRectTo

TIEBitmap.CopyRectTo

Declaration

procedure CopyRectTo(Dest: TIEBitmap; SrcX, SrcY, DstX, DstY: integer; RectWidth, RectHeight: integer; CopyAlpha: boolean = false);

Description

Copies a rectangle to the Dest image.

Parameter | Description
Dest | Destination bitmap. Must have same PixelFormat as the source image
SrcX | Left source position
SrcY | Top source position
DstX | Left destination position. Can be negative (cut top-left rectangle and reduces size)
DstY | Top destination position
RectWidth | Width of rectangle to copy
RectHeight | Height of rectangle to copy
CopyAlpha | If true alpha channel is also copied (only if the source bitmap has an alpha channel)


TIEBitmap.CopyToClipboard

TIEBitmap.CopyToClipboard

Declaration

function CopyToClipboard(IncludeImageEnFormat: Boolean = True; DpiX: Integer = 200; DpiY: Integer = 200): Boolean;

Description

Copy the image to the clipboard.
If IncludeImageEnFormat is True, two bitmap are saved: one in standard DIB format and one in an "ImageEn" format which preserves the pixel format and alpha channel.
Returns False if copying fails. Typically this only happens with very large images that exceed the available memory.

See Also

- PasteFromClipboard
- CopyToClipboard
- PasteFromClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.CopyToTBitmap

TIEBitmap.CopyToTBitmap

Declaration

procedure CopyToTBitmap(Dest: TBitmap);

Description

Copies the image to the Dest TBitmap object. These PixelFormat conversions are applied:
ie1g -> pf1bit
ie8p -> pf8bit
ie8g -> pf8bit (create gray scale palette)
ie16g -> pf8bit (copy only high 8 bit)
ie24RGB -> pf24bit


TIEBitmap.CopyToTDibBitmap

TIEBitmap.CopyToTDibBitmap

Declaration

procedure CopyToTDibBitmap(Dest: TIEDibBitmap; source_x, source_y, sourceWidth, sourceHeight: integer);

Description

Copies specified source rectangle inside Dest (at top-left side).
The destination PixelFormat and PixelFormat must both be 1 bit or both 24 bit.


TIEBitmap.CopyToTIEMask

TIEBitmap.CopyToTIEMask

Declaration

procedure CopyToTIEMask(Dest: TIEMask);

Description

Copies the image to a TIEMask object.
It works only with ie1g and ie8g pixelformats. ie24RGB is converted to ie8g.


TIEBitmap.CopyWithMask1

TIEBitmap.CopyWithMask1

Declaration

procedure CopyWithMask1(Dest: TIEBitmap; SourceMask: TIEMask; Background: TColor);
procedure CopyWithMask1(Dest: TIEBitmap; SourceMask: TIEMask);

Description

Copies the current bitmap to Dest, using the SourceMask referred to the source.


TIEBitmap.CopyWithMask2

TIEBitmap.CopyWithMask2

Declaration

procedure CopyWithMask2(Dest: TIEBitmap; DestMask: TIEMask);

Description

Copies the current bitmap to Dest using DestMask referred to the destination.


TIEBitmap.Create

TIEBitmap.Create

Declaration

constructor Create();
constructor Create(ImageWidth, ImageHeight: integer; ImagePixelFormat: TIEPixelFormat = ie24RGB);
constructor Create(const FileName: string; IOParams: TIOParams = nil);
constructor Create(image: TIEBitmap);
constructor Create(Buffer: pointer; BufferSize: integer; Format: TIOFileType = ioUnknown); overload;
constructor Create(image: TIEBitmap; Rect: TRect); overload;
constructor Create(image: TBitmap; Rect: TRect); overload;

Description

Creates a new TIEBitmap object.
The second overload creates the bitmap using specified parameters.
Third overload loads image from specified file. IOParams specifies the in/out parameters as TIOParams objects.
Fourth overload creates a clone of source image.
Fifth overload creates from memory buffer.

Examples

// creates an empty image
bmp1 := TIEBitmap.Create();

// creates 1000x1000, 24 bit RGB image
bmp2 := TIEBitmap.Create(1000, 1000, ie24RGB);

// creates an image from file "input.png"
bmp2 := TIEBitmap.Create('input.png');

// creates a clone of bmp2
bmp3 := TIEBitmap.Create(bmp2);


TIEBitmap.CreateDIB

TIEBitmap.CreateDIB

Declaration

function CreateDIB: THandle;
function CreateDIB(x1, y1, x2, y2: integer): THandle;

Description

Creates a DIB from current image. You are responsible to free memory (calling GlobalFree).
The second overload creates a DIB from specified rectangle of current image.


TIEBitmap.CreateROIBitmap

TIEBitmap.CreateROIBitmap

Declaration

function CreateROIBitmap(Rect: TRect; ROIPixelFormat: TIEPixelFormat; PerformAlphaCompositing: boolean = false): TIEBitmap;

Description

Creates a TIEBitmap object containing a copy of the specified area.
When the returned object is destroyed the content is copied back to the original bitmap.
If PerformAlphaCompositing is True then the resulting bitmap is black and fully transparent. An alpha compose will be performed when bitmap is released.
ROIPixelFormat is ignored when PerformAlphaCompositing is True (it is always ie32RGB).


TIEBitmap.CreateROICanvas

TIEBitmap.CreateROICanvas

Declaration

function CreateROICanvas(Rect: TRect; AntiAlias: boolean = true; UseGDIPlus: boolean = true; PerformAlphaCompositing: boolean = false): TIECanvas;
function CreateROICanvas(AntiAlias: boolean = true; UseGDIPlus: boolean = true; PerformAlphaCompositing: boolean = false): TIECanvas;

Description

Creates a TIECanvas object representing a copy of specified bitmap area.
The canvas pixel format will be temporally 24 bit RGB (or 32 bit RGB when PerformAlphaCompositing is True) and has coordinates translated to the top-left of the specified rectangle.
When the returned object is destroyed the content is copied back to the original bitmap.

Example

// create a layer on a TImageEnView with shadow text
var
compositingCanvas: TIECanvas;
begin
ImageEnView1.LayersAdd;

// Area that is larger than what we need
ImageEnView1.IEBitmap.Allocate(500, 500);
ImageEnView1.AlphaChannel.Fill(0);

// Rect(0,0,500,100) is just the estimated required area
compositingCanvas := ImageEnView1.IEBitmap.CreateROICanvas(Rect(0, 0, 500, 100), true, true, true);

compositingCanvas.Brush.Color := clRed;
compositingCanvas.Font.Name := 'Tahoma';
compositingCanvas.Font.Height := 72;
compositingCanvas.DrawText('Hello World!', Rect(0, 0, 500, 300)); // use DrawText instead of TextOut

// This will also copy the content back to the IEBitmap
compositingCanvas.Free();

// Add a Soft Shadow
ImageEnView1.Proc.AddSoftShadow(5, 5, 1);

// Remove excess transparent area
ImageEnView1.Proc.CropTransparentBorder;

ImageEnView1.Update();
end;

Example 2

// make area outside ellipse transparent
ImageEnView1.IO.LoadFromFile('test.jpg');
ImageEnView1.IEBitmap.AlphaChannel.Fill(0);
with ImageEnView1.IEBitmap.AlphaChannel.CreateROICanvas() do
begin
Brush.Style := bsSolid;
Brush.Color := RGB(255, 255, 255);
Ellipse(0, 0, ImageEnView1.IEBitmap.Width - 1, ImageEnView1.IEBitmap.Height - 1);
Free();
end;
ImageEnView1.Update();


TIEBitmap.Crop

TIEBitmap.Crop

Declaration

procedure Crop(x1, y1, x2, y2 : Integer);
procedure Crop(Rect : TRect);

Description

Replace the current image with that within the specified rectangle (i.e. keep only the specified region).

Examples

// Crop the image at position, Top-Left: (20, 20), Bottom-right: (100, 100). The resulting image will be 80 x 80 pixels
IEBmp.Crop( 20, 20, 100, 100 );

See Also

- Resize
- CropAlpha
- Crop
- Lossless Jpeg Transformations

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.CropAlpha

TIEBitmap.CropAlpha

Declaration

function CropAlpha(): Boolean;

Description

Removes any transparent area on the edge of the image, resizing the resulting image to the visible rectangle.
Result is true if the image was cropped (i.e. alpha was removed).

Example

IEBitmap.CropAlpha();

See Also

- Crop
- CropTransparentBorder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.DefaultDitherMethod

TIEBitmap.DefaultDitherMethod

Declaration

property DefaultDitherMethod: TIEDitherMethod;

Description

Specifies the default dithering method to apply when a color image needs to be converted to black/white.

Default: ieThreshold

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.Destroy

TIEBitmap.Destroy

Declaration

destructor Destroy;

Description

Destroys the TIEBitmap object.


TIEBitmap.DetachAlphaChannel

TIEBitmap.DetachAlphaChannel

Declaration

procedure DetachAlphaChannel(CreateIfNotExists: Boolean = false);

Description

Detach the current alpha channel (if it exists) and return it.

Note: It is the responsibility of application to free it.

Parameter | Description
CreateIfNotExists | Creates an alpha channel if the image hasn't one.

See Also

- AlphaChannel
- ReplaceAlphaChannel

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.DrawToCanvas

TIEBitmap.DrawToCanvas

Declaration

procedure DrawToCanvas(DestCanvas: TCanvas; xDst, yDst : integer);

Description

Draws the whole bitmap to the specified DestCanvas canvas, at coordinates xDst, yDst.

Note: This is a simplified version of RenderToCanvas

See Also

- RenderToCanvas
- DrawToCanvasWithAlpha

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.DrawToCanvasWithAlpha

TIEBitmap.DrawToCanvasWithAlpha

Declaration

procedure DrawToCanvasWithAlpha(DestCanvas: TCanvas; xDst, yDst : integer; Transparency: integer; Opacity: double);

Description

Draws the whole bitmap to the specified DestCanvas canvas, at coordinates xDst, yDst with parameters:
Transparency specifies the transparency value (0 to 255).
Opacity specifies the opacity (0 to 1.0).

This functions reads the destination canvas pixels and merges them with image using the alpha channel mask.

Note: This is a simplified version of RenderToCanvasWithAlpha

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0

See Also

- RenderToCanvasWithAlpha
- DrawToCanvas

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.DrawToTIEBitmap

TIEBitmap.DrawToTIEBitmap

Declaration

procedure DrawToTIEBitmap(Dest: TIEBitmap; XDest, YDest : Integer); overload; // Draw whole image
procedure DrawToTIEBitmap(Dest: TIEBitmap; XDest, YDest : Integer; SrcRect : TIERectangle); overload; // Draw part of image
procedure DrawToTIEBitmap(Dest: TIEBitmap; DestRect : TIERectangle; SrcRect : TIERectangle; Filter: TResampleFilter = rfLanczos3); overload; // Stretch draw image

Description

Draws content of the current IEBitmap onto another IEBitmap.
Overload 1 will draw the whole of the current image at coordinates XDest, YDest.
Overload 2 allows you to specify a portion of the current image to draw at coordinates XDest, YDest.
Overload 3 allows you to stretch draw (enlarge or reduce) the image.

Dest PixelFormat must be ie24RGB.

Note: Use IERectangle to convert a standard TRect to a TIERectangle

Examples

// Stretch Draw an image centered within a TIEBitmap
aRect := GetImageRectWithinArea( SrcBMP.Width, SrcBMP.Height, DestBMP.Width, DestBMP.Height);
SrcBMP.DrawToTIEBitmap( DestBMP, IERectangle( aRect ), IERectangle( 0, 0, SrcBMP.Width, SrcBMP.Height ) );

// DRAW TWO IMAGES BESIDE EACH OTHER (USING OVERLOAD 1)

// Load input files
IEBitmap1.Read('D:\MyPic1.png');
IEBitmap2.Read('D:\MyPic2.jpg');

// Get Left position for IEBitmap2
iBitmap1Width := IEBitmap1.Width;

// Resize IEBitmap1
IEBitmap1.Resize(IEBitmap1.Width + IEBitmap2.Width, iMax(IEBitmap1.Height, IEBitmap2.Height), clWhite, 255, iehLeft, ievCenter);

// Draw IEBitmap2
IEBitmap2.DrawToTIEBitmap(IEBitmap1, iBitmap1Width, 0);

// Save output file
IEBitmap2.Write('D:\Output.png');

// DRAW TWO IMAGES BESIDE EACH OTHER, BUT ONLY OUTPUT CENTRAL PORTION OF SECOND IMAGE (USING OVERLOAD 2)

// Load input files
IEBitmap1.Read('D:\MyPic1.png');
IEBitmap2.Read('D:\MyPic2.jpg');

// Get Left position for IEBitmap2
iBitmap1Width := IEBitmap1.Width;

// Resize IEBitmap1
IEBitmap1.Resize(IEBitmap1.Width + IEBitmap2.Width div 2, iMax(IEBitmap1.Height, IEBitmap2.Height div 2), clWhite, 255, iehLeft, ievCenter);

// Draw IEBitmap2
IEBitmap2.DrawToTIEBitmap(IEBitmap1, iBitmap1Width, 0, IERectangle(IEBitmap2.Width div 4, IEBitmap2.Height div 4, IEBitmap2.Width div 2, IEBitmap2.Height div 2));

// Save output file
IEBitmap2.Write('D:\Output.png');

// DRAW TWO IMAGES BESIDE EACH OTHER, BUT ONLY OUTPUT CENTRAL PORTION OF SECOND IMAGE AT DOUBLE SIZE (USING OVERLOAD 3)

// Load input files
IEBitmap1.Read('D:\MyPic1.png');
IEBitmap2.Read('D:\MyPic2.jpg');

// Get Left position for IEBitmap2
iBitmap1Width := IEBitmap1.Width;

// Resize IEBitmap1
IEBitmap1.Resize(IEBitmap1.Width + IEBitmap2.Width, iMax(IEBitmap1.Height, IEBitmap2.Height), clWhite, 255, iehLeft, ievCenter);

// Draw IEBitmap2
IEBitmap2.DrawToTIEBitmap(IEBitmap1,
IERectangle(iBitmap1Width, 0, IEBitmap2.Width, IEBitmap2.Height),
IERectangle(IEBitmap2.Width div 4, IEBitmap2.Height div 4, IEBitmap2.Width div 2, IEBitmap2.Height div 2));

// Save output file
IEBitmap2.Write('D:\Output.png');

// DRAW TWO IMAGES BESIDE EACH OTHER, BUT OUTPUT SECOND IMAGE AT HALF SIZE (USING OVERLOAD 3)

// Load input files
IEBitmap1.Read('D:\MyPic1.png');
IEBitmap2.Read('D:\MyPic2.jpg');

// Get Left position for IEBitmap2
iBitmap1Width := IEBitmap1.Width;

// Resize IEBitmap1
IEBitmap1.Resize(IEBitmap1.Width + IEBitmap2.Width div 2, iMax(IEBitmap1.Height, IEBitmap2.Height div 2), clWhite, 255, iehLeft, ievCenter);

// Draw IEBitmap2
IEBitmap2.DrawToTIEBitmap(IEBitmap1,
IERectangle(iBitmap1Width, 0, IEBitmap2.Width div 2, IEBitmap2.Height div 2),
IERectangle(0, 0, IEBitmap2.Width, IEBitmap2.Height));

// Save output file
IEBitmap2.Write('D:\Output.png');

See Also

- RenderToTIEBitmap
- RenderToTIEBitmapEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.EncapsulatedFromMemory

TIEBitmap.EncapsulatedFromMemory

Declaration

property EncapsulatedFromMemory: boolean;

Description

Returns True if the image is encapsulated from a memory buffer (using EncapsulateMemory).


TIEBitmap.EncapsulatedFromTBitmap

TIEBitmap.EncapsulatedFromTBitmap

Declaration

property EncapsulatedFromTBitmap: boolean;

Description

Returns True if the image is encapsulated from a TBitmap object (using EncapsulateTBitmap).


TIEBitmap.EncapsulateMemory

TIEBitmap.EncapsulateMemory

Declaration

procedure EncapsulateMemory(mem: pointer; bmpWidth, bmpHeight: integer; bmpPixelFormat: TIEPixelFormat; DoFreeImage: boolean; Origin: TIEBitmapOrigin = ieboBOTTOMLEFT);

Description

Encapsulates an existing bitmap from its buffer.
It is useful to pass a TBitmap object to routines that require a TIEBitmap.
If DoFreeImage is true, the buffer will be freed when the object is destroyed.
Origin specifies the image orientation (default is bottom-left, that is Windows default. For example set ieboTOPLEFT with OpenCV images).


TIEBitmap.EncapsulateTBitmap

TIEBitmap.EncapsulateTBitmap

Declaration

procedure EncapsulateTBitmap(obj: TBitmap; DoFreeImage: boolean);

Description

Encapsulates an existing TBitmap object. It is useful to pass a TBitmap object to routines that require a TIEBitmap. Any changes to the TIEBitmap will be reflected in the TBitmap.
If DoFreeImage is true, the TBitmap object will be freed when the object is destroyed.
Supports only TBitmap with PixelFormat pf1bit, pf8bit and pf24bit

Example

iebmp := TIEBitmap.Create;
try
tbmp.EncapsulateTBitmap( bmp, False );
RotateMyIEBitmap( iebmp );
finally
FreeAndNil( iebmp );
end;


TIEBitmap.FeatherAlphaEdges

TIEBitmap.FeatherAlphaEdges

Declaration

procedure FeatherAlphaEdges(iFeatherDepth : Integer);

Description

Applies a feathering effect to the image. Feathering softens the edges of an image by applying alpha transparency at a rate that is proportional to the distance to the edge (specifically, adding a gradient in the alpha channel).

iFeatherDepth specifies the depth in pixels of the feather effect. The range is 0 to 255, with typical values of 2 to 5. If iFeatherDepth = 0 then the image is not feathered but a simple smoothing filter is applied to reduce the jagged edges of the image.

Note: Method has no effect if the image does not have an alpha channel


TIEBitmap.Filename

TIEBitmap.Filename

Declaration

property Filename: string;

Description

The last filename used when reading or writing the bitmap to file.


TIEBitmap.FileType

TIEBitmap.FileType

Declaration

property FileType: TIOFileType;

Description

The file type when last reading reading or writing the bitmap to file.


TIEBitmap.Fill

TIEBitmap.Fill

Declaration

procedure Fill(Value: double);
procedure Fill(Value: TRGBA);

Description

Fills the image with a specified value.
For ie1g images, Value can be 0 or 1. For ie8g and ie8p, it can be from 0 to 255.
For ie16g images, it can be from 0 to 65535.
For ie24RGB, ie32RGB, ieCMYK and ieCIELab Value is a TColor value.

Example

// Fill an image with white
IEBitmap.Fill( clWhite );

// Set image as fully transparent
IEBitmap.AlphaChannel.Fill( 0 );


TIEBitmap.FillRect

TIEBitmap.FillRect

Declaration

procedure FillRect(x1, y1, x2, y2: integer; Value: double);

Description

Fills the rectangle with a specified value.
For ie1g images, Value can be 0 or 1. For ie8g and ie8p, it can be from 0 to 255.
For ie16g images, it can be from 0 to 65535.
For ie24RGB, ie32RGB, ieCMYK and ieCIELab Value is a TColor value.


TIEBitmap.FixChannelOffset

TIEBitmap.FixChannelOffset

Declaration

procedure FixChannelOffset();

Description

Makes ChannelOffset property permanent (applying specified offset).
The ChannelOffset property values are then reset to zero.
Only works for ie24RGB, ie32RGB and ie48RGB pixel formats.


TIEBitmap.FixContrast

TIEBitmap.FixContrast

Declaration

procedure FixContrast();

Description

Makes Contrast property permanent (applying specified contrast).
The Contrast property is then reset to zero.
Only works for ie24RGB, ie32RGB and ie48RGB pixel formats.


TIEBitmap.Flip

TIEBitmap.Flip

Declaration

procedure Flip(Dir: TFlipDir);

Description

Flips (mirrors) the current image across the horizontal or vertical axis.

Examples

ABitmap.Flip(fdHorizontal);
ABitmap.Flip(fdVertical);

See Also

- Lossless Jpeg Transformations

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.FreeImage

TIEBitmap.FreeImage

Declaration

procedure FreeImage(freeAlpha: boolean = true);

Description

Destroys the image and frees memory.


TIEBitmap.FreeRow

TIEBitmap.FreeRow

Declaration

procedure FreeRow(Row: integer);

Description

Frees a row obtained using GetRow.
Does nothing if Location is ieMemory or ieTBitmap.


TIEBitmap.Full

TIEBitmap.Full

Declaration

property Full: boolean;

Description

Returns true if all pixels are 1 (or white).
See also: SyncFull.


TIEBitmap.GetHash

TIEBitmap.GetHash

Declaration

function GetHash(Algorithm: TIEHashAlgorithm = iehaMD5): AnsiString;

Description

Calculates the hash (using the specified hash algorithm) of the bitmap and returns the string representation of the hash.

Example

// calculates MD5 hash of input.jpg raster bitmap
ImageEnView1.IO.LoadFromFile('input.jpg');
ShowMessage( ImageEnView1.IEBitmap.GetHash() );

// calculates MD5 hash of input.jpg
with TIEHashStream.Create() do
begin
LoadFromFile('input.jpg');
ShowMessage( GetHash() );
end;


TIEBitmap.GetIEVisionImage

TIEBitmap.GetIEVisionImage

Declaration

function GetIEVisionImage(): TIEVisionImage;

Description

Creates a TIEVisionImage container for the current image.
This method can convert the image to a different pixel format and origin if necessary.

Note: GetIEVisionImage will make the following changes to your image:
- TIEBitmap.Origin changes to ieboTOPLEFT
- If image has an 8 bit palette then TIEBitmap.PixelFormat changes to ie24RGB

Example

// perform OCR (English language is the default) of "input.tiff"
ImageEnView1.IO.LoadFromFile('input.tiff');
str := IEVisionLib.createOCR().recognize(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0)).c_str();


TIEBitmap.GetRow

TIEBitmap.GetRow

Declaration

function GetRow(Row: integer): pointer;

Description

Retrieves a pointer to the specified Row. Returned pointer is valid until the application calls FreeRow.
Just like Scanline if Location is ieMemory or ieTBitmap.


TIEBitmap.GetSegment

TIEBitmap.GetSegment

Declaration

function GetSegment(Row: integer; Col: integer; Width: integer): pointer;

Description

Returns the pointer to a buffer containing a specified image segment.
For Location=ieFile or PixelFormat=ieVirtual you can use only the last line obtained from Scanline[] (consequently this is not thread safe).

Parameter | Description
Row | Row to retrieve (0 = first row).
Col | Column to retrieve (0 = first column).
Width | Number of pixels to retrieve.

See Also

- ScanLine
- GetRow
- FreeRow

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.HasAlphaChannel

TIEBitmap.HasAlphaChannel

Declaration

property HasAlphaChannel: boolean;

Description

Specifies whether the current image has an alpha channel.


TIEBitmap.Height

TIEBitmap.Height

Declaration

property Height: integer;

Description

Specifies the image height.


TIEBitmap.IEAddSoftShadow

TIEBitmap.IEAddSoftShadow

Declaration

procedure IEAddSoftShadow(iBlurRadius: integer;
iShadowOffset : Integer;
cBGColor: TColor;
LightOrigin: TLightOrigin = _loTopLeft;
cShadowColor: TColor = clblack);

Description

Calls AddSoftShadow to add a soft shadow to an image in a TIEBitmap

Example

// Add a soft shadow to the bitmap image
MyIEBitmap.IEAddSoftShadow(3, 3, clWhite);


TIEBitmap.IECanvas

TIEBitmap.IECanvas

Declaration

property IECanvas: TIECanvas;

Description

Returns the IECanvas when Location is ieTBitmap.

Note: If you access the IECanvas property the Location is automatically converted to ieTBitmap.


TIEBitmap.IEConvertToThumbnail

TIEBitmap.IEConvertToThumbnail

Declaration

procedure IEConvertToThumbnail(iMaxX, iMaxY: integer;
bCanStretch: Boolean;
QualityFilter : TResampleFilter = rfLanczos3;

bAddBorder: Boolean = False;
cBorderColor: TColor = clBlack;

bAddShadow: Boolean = False;
iBlurRadius : Integer = 4;
iShadowOffset : Integer = 4;
cShadowColor: TColor = clBlack;
cBGColor: TColor = clWhite);

Description

Resize an image in a TIEBitmap to the specified size (while maintaining the aspect ratio, thus one of the dimensions is likely to be less than the specified value).

Parameter | Description
iMaxX, iMaxY | The maximum size of the new image (as the aspect ratio is maintained, one of the dimensions is likely to be less than the specified value)
bCanStretch | Set to false to avoid images smaller than iMaxX x iMaxY from being made larger
bAutoAdjustOrientation | Sets EnableAdjustOrientation to automatically re-orient JPEG camera images
QualityFilter | Specify the quality that is used for rescaling the image
bAddBorder | Set to true to add a 1 pixel border to the thumbnail
cBorderColor | The color of the added border
bAddShadow | Add a solid or soft shadow to the image
iBlurRadius | Set to 0 to add a solid shadow or any other value for the width of the Soft Shadow
iShadowOffset | The offset of the shadow from the image
cShadowColor | The shadow color
cBGColor | The color of the image behind the shadow

Example

// Resize the IEBitmap to 160x120 with a black border
MyIEBitmap.IEConvertToThumbnail(160, 120, True, rfFastLinear, True, clBlack);


TIEBitmap.IEInitialize

TIEBitmap.IEInitialize

Declaration

procedure IEInitialize(iWidth, iHeight: Integer; ABackgroundColor : TColor = clNone); overload;
procedure IEInitialize(iWidth, iHeight: Integer; Transparent: Boolean); overload;

Description

Resizes a TIEBitmap and optionally fills it with the specified color (or make transparent).

Example

// Resize the IEBitmap to screen size with a black background
MyIEBitmap.IEInitialize(Screen.Width, Screen.Height, clBlack);

// Resize the IEBitmap to screen size with transparency
MyIEBitmap.IEInitialize(Screen.Width, Screen.Height, clBlack, True);


TIEBitmap.IELoadAsThumbnail

TIEBitmap.IELoadAsThumbnail

Declaration

function IELoadAsThumbnail(const sFilename: string;
iMaxX, iMaxY: integer;
bCanStretch: Boolean;
bAutoAdjustOrientation: Boolean = False;
QualityFilter : TResampleFilter = rfLanczos3;

bAddBorder: Boolean = False;
cBorderColor: TColor = clBlack;

bAddShadow: Boolean = False;
iBlurRadius : Integer = 4;
iShadowOffset : Integer = 4;
cShadowColor: TColor = clBlack;
cBGColor: TColor = clWhite
) : Boolean;

Description

Loads an image of any format into a TIEBitmap reducing it to the specified size (while maintaining the aspect ratio, thus one of the dimensions is likely to be less than the specified value).

Parameter | Description
iMaxX, iMaxY | The maximum size of the new image (as the aspect ratio is maintained, one of the dimensions is likely to be less than the specified value)
bCanStretch | Set to false to avoid images smaller than iMaxX x iMaxY from being made larger
bAutoAdjustOrientation | Sets EnableAdjustOrientation to automatically re-orient JPEG camera images
QualityFilter | Specify the quality that is used for rescaling the image
bAddBorder | Set to true to add a 1 pixel border to the thumbnail
cBorderColor | The color of the added border
bAddShadow | Add a solid or soft shadow to the image
iBlurRadius | Set to 0 to add a solid shadow or any other value for the width of the Soft Shadow
iShadowOffset | The offset of the shadow from the image
cShadowColor | The shadow color
cBGColor | The color of the image behind the shadow

Example

// Load an image at the size 160x120
MyIEBitmap.IELoadAsThumbnail('D:\MyImage.jpeg', 160, 120, False);


TIEBitmap.IELoadFromFile

TIEBitmap.IELoadFromFile

Declaration

function IELoadFromFile(const sFilename : string; IOParams: TIOParams = nil; iImageIndex: Integer = 0): Boolean;

Description

Allows a TIEBitmap to load any format supported by ImageEn.
You can optionally pass an TIOParams object for the I/O parameters of the file. The index of an image to load within a multiframe format can also be specified.
Returns True if loading was successful, or False on error

Note: Unlike Read, IELoadFromStream will use TIEWicReader for better performance where possible

Example

// Load the image specified in an open dialog
ImageEnView1.Bitmap.IELoadFromFile(OpenPictureDialog1.FileName)


TIEBitmap.IELoadFromFileFast

TIEBitmap.IELoadFromFileFast

Declaration

function IELoadFromFileFast(const sFilename: string;
iMaxX, iMaxY: integer;
bAutoAdjustOrientation: Boolean = False;
IOParams: TIOParams = nil
): Boolean;

Description

Allows you to load an image into a TIEBitmap using the fastest method by specifying the maximum size it is required. It uses:
- JPEG_Scale for JPEGs
- RAW_GetExifThumbnail and RAW_HalfSize for Camera Raw files
- IEN_GetThumbnail for IEN files
- TIEWicReader for other file types (where possible)

You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images.
You can optionally pass an TIOParams object for the I/O parameters of the file.

Returns True if loading was successful, or False on error.

Example

// Load the specified image as fast as possible, but bigger than the screen dimensions
MyIEBitmap.IELoadFromFileFast('D:\MyImage.jpeg', Screen.Width, Screen.Height)


TIEBitmap.IELoadFromStream

TIEBitmap.IELoadFromStream

Declaration

function IELoadFromStream(Stream: TStream; FileType: integer = 0; IOParams: TIOParams = nil; iImageIndex: Integer = 0): Boolean;

Description

Allows a TIEBitmap to load any format supported by ImageEn.
If you know the FileType type of the stream, pass it to speed up loading.
You can optionally pass an TIOParams object for the I/O parameters of the file. The index of an image to load within a multiframe format can also be specified.
Returns True if loading was successful, or False on error

Note: Unlike Read, IELoadFromStream will use TIEWicReader for better performance where possible

Example

ImageEnView1.Bitmap.IELoadFromStream(MyStream)


TIEBitmap.IELoadFromStreamFast

TIEBitmap.IELoadFromStreamFast

Declaration

function IELoadFromStreamFast(Stream: TStream;
FileType: TIOFileType;
iMaxX, iMaxY: integer;
bAutoAdjustOrientation: Boolean = False;
IOParams: TIOParams = nil
): Boolean;

Description

Allows you to load an image into a TIEBitmap using the fastest method by specifying the maximum size it is required. It uses:
- JPEG_Scale for JPEGs
- RAW_GetExifThumbnail and RAW_HalfSize for Camera Raw files
- IEN_GetThumbnail for IEN files
- TIEWicReader for other file types (where possible)

You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images.
If you know the FileType type of the stream, pass it to speed up loading. Otherwise specify ioUnknown.
You can optionally pass an TIOParams object for the I/O parameters of the file.

Returns True if loading was successful, or False on error.

Example

// Load the specified image as fast as possible, but bigger than the screen dimensions
MyIEBitmap.IELoadFromStreamFast( MyStream, ioUnknown, Screen.Width, Screen.Height )


TIEBitmap.IESaveToFile

TIEBitmap.IESaveToFile

Declaration

function IESaveToFile(const sFilename : string; iJPEGQuality : Integer; IOParams: TIOParams = nil): Boolean;

Description

Allows a TIEBitmap to save to any format supported by ImageEn. If you are saving to JPEG you can also specify the JPEG_Quality.
You can optionally specify an TIOParams object containing the I/O parameters of the file.
Returns True if saving was successful, or False on error.

Example

// Save the image at 90% quality
MyIEBitmap.IESaveToFile(SavePictureDialog1.FileName, 90)


TIEBitmap.IESaveToStream

TIEBitmap.IESaveToStream

Declaration

function IESaveToStream(Stream: TStream; FileType: TIOFileType; iJPEGQuality : Integer; IOParams: TIOParams = nil): Boolean;

Description

Allows a TIEBitmap to save to any format supported by ImageEn. If you are saving to JPEG you can also specify the JPEG_Quality.
You must specify the file format.
You can optionally specify an TIOParams object containing the I/O parameters of the file.
Returns True if saving was successful, or False on error.

Example

// Save the image at 90% quality
MyIEBitmap.IESaveToStream(DestStream, ioJPEG, 90)


TIEBitmap.IsAllBlack

TIEBitmap.IsAllBlack

Declaration

function IsAllBlack: boolean;

Description

Return true if all pixels are Zero.


TIEBitmap.IsAlpha

TIEBitmap.IsAlpha

Declaration

property IsAlpha: boolean;

Description

Returns True if this bitmap is an alpha channel (i.e. ImageEnView.IEBitmap.AlphaChannel).


TIEBitmap.IsEmpty

TIEBitmap.IsEmpty

Declaration

function IsEmpty: boolean;

Description

Returns true if the bitmap is empty (width=0, height=0, etc...).


TIEBitmap.IsGrayScale

TIEBitmap.IsGrayScale

Declaration

function IsGrayScale: boolean;

Description

Checks if all pixels have have equilavent R, G and B values (i.e. the bitmap is grayscale)


TIEBitmap.IsVirtual

TIEBitmap.IsVirtual

Declaration

property IsVirtual: boolean;

Description

Returns true when VirtualBitmapProvider or OnRenderVirtualPixel is assigned, meaning that the image content is virtual (no buffer is allocated).


TIEBitmap.LoadFromResource

TIEBitmap.LoadFromResource

Declaration

procedure LoadFromResource(Instance: THandle; const ResName: string; ResType: PChar; Format: integer = 0); overload;
procedure LoadFromResource(Instance: THandle; const ResID: Integer; ResType: PChar; Format: integer = 0); overload;

Description

Load an image from a resource.

Parameter | Description
Instance | The instance handle associated with the executable or shared library that contains the resource (e.g. HInstance for the current application)
ResName/ResID | The name or ID associated with resource
ResType | The type of the resource as defined when it was created, e.g. RT_BITMAP for a bitmap resource, or RT_RCDATA for raw data
Format | If this is 0 then the image format will be detected by reading its content, otherwise specify a type such as ioJPEG

Example

// Load the About Box image from a JPEG resource in the current application
MainForm1.ImageEnView1.IEBitmap.LoadFromResource( HInstance, 'AboutImage', RT_RCDATA, ioJPEG );

// Load the About Box image from a bitmap resource in the current application
MainForm1.ImageEnView1.IEBitmap.LoadFromResource( HInstance, 'AboutImage', RT_BITMAP, ioBMP );

Copies current bitmap to Dest, using the SourceMask referred to the source.


TIEBitmap.LoadFromURL

TIEBitmap.LoadFromURL

Declaration

function LoadFromURL(const URL : WideString;
const sProxyAddress : WideString = '';
const sProxyUser : WideString = '';
const sProxyPassword : WideString = ''
): Boolean;

Description

Load an image from the internet using the HTTP or FTP protocol.

Note: See documentation for TImageEnIO.LoadFromURL

Example

MyBitmap.LoadFromURL('http://www.imageen.com/image.jpg');


TIEBitmap.LoadRAWFromBufferOrStream

TIEBitmap.LoadRAWFromBufferOrStream

Declaration

function LoadRAWFromBufferOrStream(Buffer: pointer; Stream: TStream): boolean;

Description

Loads an image that was saved with SaveRAWToBufferOrStream.
Return true on success.


TIEBitmap.Location

TIEBitmap.Location

Declaration

property Location: TIELocation;

Description

Specifies how the image is stored (e.g. in memory).

Example

// Optimize TImageEnView to handle very large images
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Location := ieFile;

Default: ieMemory if sufficient memory is available, otherwise ieFile

See Also

- MinFileSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.Memory

TIEBitmap.Memory

Declaration

property Memory: pointer;

Description

Returns the image pointer when Location is ieMemory or ieTBitmap and it is not fragmented.


TIEBitmap.MemoryAllocator

TIEBitmap.MemoryAllocator

Declaration

property MemoryAllocator: TIEMemoryAllocator;

Description

Specifies the method used to allocate bitmap memory.


TIEBitmap.MergeAlphaRectTo

TIEBitmap.MergeAlphaRectTo

Declaration

procedure MergeAlphaRectTo(Dest: TIEBitmap; SrcX, SrcY, DstX, DstY: integer; RectWidth, RectHeight: integer);

Description

This method copies the alpha channel to Dest bitmap alpha channel.


TIEBitmap.MergeFromTDibBitmap

TIEBitmap.MergeFromTDibBitmap

Declaration

procedure MergeFromTDibBitmap(Source: TIEDibBitmap; x, y: integer);

Description

Copies the image from a TIEDibBitmap object, placing it at the specified coordinates.
The original image is not destroyed.
The source PixelFormat and PixelFormat must be both 1 bit or both 24 bit


TIEBitmap.MergeWithAlpha

TIEBitmap.MergeWithAlpha

Declaration

procedure MergeWithAlpha(Bitmap: TIEBitmap; DstX: integer=0; DstY: integer=0; DstWidth: integer=-1; DstHeight: integer=-1; Transparency: integer=255; ResampleFilter: TResampleFilter = rfNone; Operation: TIERenderOperation = ielNormal; Resample: boolean = false; ; SrcX: integer = 0; SrcY: integer = 0; Opacity: double = 1.0);

Description

Merges pixels and alpha channel of Bitmap with the background.

Parameter | Description
Bitmap | Image with alpha channel to merge with the background.
DstX | Horizontal destination position.
DstY | Vertical destination position.
DstWidth | Destination width (Bitmap will be resampled/cropped to this value). -1 = the same width of source bitmap.
DstHeight | Destination height (Bitmap will be resampled/cropped to this value). -1 = the same height of source bitmap.
Transparency | Transparency of source bitmap. 0 = fully transparent, 255 = fully opaque.
ResampleFilter | Interpolation filter used when source bitmap needs to be resampled.
Operation | Blender operation to perform.
Resample | If true Bitmap is resampled, otherwise it is cropped.
SrcX | Source bitmap left position.
SrcY | Source bitmap top position.

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0

Example

// merges uplayer.png over background.png
ImageEnView1.IO.LoadFromFile('background.png');
ImageEnView2.IO.LoadFromFile('uplayer.png');
ImageEnView1.IEBitmap.MergeWithAlpha(ImageEnView2.IEBitmap);
ImageEnView1.Update;
ImageEnView1.IO.SaveToFile('output.png');


TIEBitmap.MinFileSize

TIEBitmap.MinFileSize

Declaration

property MinFileSize: int64;

Description

Specifies the minimum memory needed by the image to allow use of memory mapped file.
If the memory needed by the image is less than MinFileSize, the image will be stored in memory (also if the Location is ieFile).
If the global setting DefMinFileSize is not -1, it overrides the MinFileSize value.

Default: 90% of available free memory

See Also

- Location
- DefMinFileSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.Modified

TIEBitmap.Modified

Declaration

property Modified: Boolean;

Description

Returns true if the image has changed since loading. This includes methods such as Rotate, Flip and Resample, as well as any method of TImageEnProc.

Changes to the following properties do not affect Modified:
- Canvas
- IECanvas
- ScanLine
- Pixels
- PixelFormat

Notes:
- Modified is reset to false whenever the TIEBitmap is loaded, i.e. using Read or via TImageEnIO
- Saving a TIEBitmap does not reset Modified

Example

// Check the status of the loaded image on FormClose
If ImageEnView1.IEBitmap.Modified then
if MessageDlg( 'Save changes to your image?', mtConfirmation, [mbYes,mbNo], 0) = mrYes then
ImageEnView1.IO.SaveToFile( ImageEnView1.IEBitmap.Filename );

See Also

- OnChanged

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.MoveRegion

TIEBitmap.MoveRegion

Declaration

procedure MoveRegion(x1, y1, x2, y2, DstX, DstY: integer; BackgroundValue: double; FillSource: boolean = true);

Description

Moves a rectangle specified in x1, y1, x2, y2 to DstX, DstY position.
The BackgroundValue parameter specifies the color that fills the source rectangle.
If FillSource is true (default) then the source rectangle is filled with BackgroundValue.
MoveRegion doesn't copy the alpha channel.


TIEBitmap.OnChanged

TIEBitmap.OnChanged

Declaration

property OnChanged: TNotifyEvent;

Description

Occurs whenever the TIEBitmap is modified, e.g. Rotate, Flip, Resample or any method of TImageEnProc.

OnChanged does not occur for changes to:
- Canvas
- IECanvas
- ScanLine
- Pixels
- PixelFormat

See Also

- Modified

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.OnRenderVirtualPixel

TIEBitmap.OnRenderVirtualPixel

Declaration

property OnRenderVirtualPixel: TIERenderVirtualPixel;

Description

Occurs whenever a pixel must be rendered if PixelFormat is ieVirtual.
Applications should set OnRenderVirtualPixel after PixelFormat = ieVirtual.

Example

ImageEnView1.LegacyBitmap := false;
ImageEnView1.IEBitmap.OnRenderVirtualPixel := DrawVirtualPixel;
ImageEnView1.Update();

...

procedure TForm1.DrawVirtualPixel(Sender: TObject; SrcX, SrcY: integer; var outval: TRGB);
begin
outval := CreateRGB(SrcX mod 255, SrcY mod 255, 255);
end;


TIEBitmap.Origin

TIEBitmap.Origin

Declaration

property Origin: TIEBitmapOrigin;

Description

Specifies the bitmap origin.

Default: bottom-left, which is Windows compatible. Other libraries may require top-left (like OpenCV).


TIEBitmap.Params

TIEBitmap.Params

Declaration

property Params: TIOParams;

Description

If ParamsEnabled is true, then Params provides access to the TIOParams object for the image.
The parameters are updated when loading from files or streams. You can modify these parameters before saving the image.
If ParamsEnabled is false, an exception will be raised.

Note: ParamsEnabled should only be used when TIEBitmap is being used as a stand-alone object. When it is attached to a TImageEnView or TImageEnMIO, use TImageEnIO.Params instead.

Example

// Reduce the size of a JPEG image
aBmp := TIEBitmap.create;
aBmp.ParamsEnabled := True; // Load params with the image
aBmp.Read( 'C:\MyImage.jpeg' );
aBmp.Params.JPEG_Quality := 70;
aBmp.Write( 'C:\OutImage.jpeg' );
aBmp.Free;

// Which is the same as:
aBmp := TIEBitmap.create;
aIOParams := TIOParams.create;
aBmp.Read( 'C:\MyImage.jpeg', aIOParams );
aIOParams.JPEG_Quality := 70;
aBmp.Write( 'C:\OutImage.jpeg', aIOParams );
aIOParams.free;
aBmp.Free;


TIEBitmap.ParamsEnabled

TIEBitmap.ParamsEnabled

Declaration

property ParamsEnabled: Boolean;

Description

If ParamsEnabled is true, then this object stores the Input/Output parameters (meta-data) for the image, which can be accessed via Params.
Default: False.

Note: ParamsEnabled should only be used when TIEBitmap is being used as a stand-alone object. When it is attached to a TImageEnView or TImageEnMIO, use TImageEnIO.Params instead.

Example

// Reduce the size of a JPEG image
aBmp := TIEBitmap.create;
aBmp.ParamsEnabled := True; // Load params with the image
aBmp.Read( 'C:\MyImage.jpeg' );
aBmp.Params.JPEG_Quality := 70;
aBmp.Write( 'C:\OutImage.jpeg' );
aBmp.Free;

// Which is the same as:
aBmp := TIEBitmap.create;
aIOParams := TIOParams.create;
aBmp.Read( 'C:\MyImage.jpeg', aIOParams );
aIOParams.JPEG_Quality := 70;
aBmp.Write( 'C:\OutImage.jpeg', aIOParams );
aIOParams.free;
aBmp.Free;


TIEBitmap.PasteFromClipboard

TIEBitmap.PasteFromClipboard

Declaration

function PasteFromClipboard(): Boolean;

Description

Paste an image from the clipboard.
Returns False if pasting fails, e.g. there is not an image found on the clipboard.

See Also

- CopyToClipboard
- CopyToClipboard
- PasteFromClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.PixelFormat

TIEBitmap.PixelFormat

Declaration

property PixelFormat: TIEPixelFormat;

Description

Specifies the image pixel format.
You can set PixelFormat to convert an image from one format to another.


TIEBitmap.Pixels

TIEBitmap.Pixels

Declaration

property Pixels[x, y: integer]: TRGB;

Description

Return the RGB value for the specified pixel. For black/white images it can be (0, 0, 0) or (255, 255, 255).

Note: This function doesn't perform a range check test.

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.Pixels_ie1g

TIEBitmap.Pixels_ie1g

Declaration

property Pixels_ie1g[x, y: integer]: boolean;

Description

Specifies a pixel value for black/white images (ie1g pixelformat). False is black, True is white.

Note: This function doesn't perform a range check test.


TIEBitmap.Pixels_ie8

TIEBitmap.Pixels_ie8

Declaration

property Pixels_ie8[x, y: integer]: byte;

Description

Specifies a pixel value for palette or gray scale images (ie8p or ie8p pixelformat).

Note: This function doesn't perform a range check test.


TIEBitmap.Pixels_ie16g

TIEBitmap.Pixels_ie16g

Declaration

property Pixels_ie16g[x, y: integer]: word;

Description

Specifies a pixel value for 16 bit gray scale images (ie16g pixelformat).

Note: This function doesn't perform a range check test.


TIEBitmap.Pixels_ie24RGB

TIEBitmap.Pixels_ie24RGB

Declaration

property Pixels_ie24RGB[x, y: integer]: TRGB;

Description

Specifies a pixel value for true color images (ie24RGB pixelformat).

Note: This function doesn't perform a range check test.

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.Pixels_ie32f

TIEBitmap.Pixels_ie32f

Declaration

property Pixels_ie32f[x, y: integer]: single;

Description

Specifies a pixel value for 32 bit floating point value (single) for gray scale images (ie32f pixelformat).

Note: This function doesn't perform a range check test.


TIEBitmap.Pixels_ie32RGB

TIEBitmap.Pixels_ie32RGB

Declaration

property Pixels_ie32RGB[x, y: integer]: TRGBA;

Description

Specifies a pixel value for true color images (ie32RGB pixelformat).

Note: This function doesn't perform a range check test.


TIEBitmap.Pixels_ie48RGB

TIEBitmap.Pixels_ie48RGB

Declaration

property Pixels_ie48RGB[x, y: integer]: TRGB48

Description

Specifies a pixel value for true color 48 bit images (ie48RGB pixelformat).

Note: This function doesn't perform a range check test.


TIEBitmap.Pixels_ieCIELab

TIEBitmap.Pixels_ieCIELab

Declaration

property Pixels_ieCIELab[x, y: integer]: TCIELab

Description

Specifies a pixel value for CIELab color space (ieCIELab pixelformat).

Note: This function doesn't perform a range check test.


TIEBitmap.Pixels_ieCMYK

TIEBitmap.Pixels_ieCMYK

Declaration

property Pixels_ieCMYK[x, y: integer]: TCMYK;

Description

Specifies a pixel value for CMYK true color images (ieCMYK pixelformat).

Note: This function doesn't perform a range check test.


TIEBitmap.PPixels_ie24RGB

TIEBitmap.PPixels_ie24RGB

Declaration

property PPixels_ie24RGB[x, y: integer]: PRGB;

Description

Returns a pointer to specified pixel.

Note: This function doesn't perform a range check test.


TIEBitmap.PPixels_ie32RGB

TIEBitmap.PPixels_ie32RGB

Declaration

property PPixels_ie32RGB[x, y: integer]: PRGBA;

Description

Returns a pointer to specified pixel.

Note: This function doesn't perform a range check test.


TIEBitmap.PPixels_ie48RGB

TIEBitmap.PPixels_ie48RGB

Declaration

property PPixels_ie48RGB[x, y: integer]: PRGB48;

Description

Returns a pointer to specified pixel.

Note: This function doesn't perform a range check test.


TIEBitmap.PrintImage

TIEBitmap.PrintImage

Declaration

procedure PrintImage(PrtCanvas: TCanvas = nil; MarginLeft: double = 1; MarginTop: double = 1; MarginRight: double = 1; MarginBottom: double = 1; VerticalPos: TIEVerticalPos = ievpCenter; HorizontalPos: TIEHorizontalPos = iehpCenter; Size: TIESize = iesFitToPage; SpecWidth: double = 0; SpecHeight: double = 0; GammaCorrection: double = 1; SubsampleFilter: TResampleFilter = rfFastLinear);

Description

Print the current bitmap by specifying margins, vertical position, horizontal position and size.

Parameter | Description
PrtCanvas | The canvas to bring to. Generally the application will pass this as Printer.Canvas
MarginLeft | Left page margin in inches (Specify zero for no margin)
MarginTop | Top page margin in inches (Specify zero for no margin)
MarginRight | Right page margin in inches (Specify zero for no margin)
MarginBottom | Bottom page margin in inches (Specify zero for no margin)
VerticalPos | How the image is vertically aligned on the page
HorizontalPos | How the image horizontally aligned on the page
Size | How the image should be sized for printing
SpecWidth | The absolute width of the image in inches if Size = iesSpecifiedSize. The number of pages wide if Size = iesMultiplePages
SpecHeight | The absolute height of the image in inches if Size = iesSpecifiedSize. The number of pages high if Size = iesMultiplePages
GammaCorrection | The gamma correction value (Specify 1.0 to disable gamma correction)
SubsampleFilter | The filter that is used to enhance quality if hte image needs to be resampled for printing

Example

// Print the image in the center of the page at the original size
Printer.BeginDoc;
ABitmap.PrintImage(Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesNormal, 0, 0, 1);
Printer.EndDoc;

// Print the image in the center of the page stretched to page dimensions (respecting the proportions)
Printer.BeginDoc;
ABitmap.PrintImage(Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesFitToPage, 0, 0, 1);
Printer.EndDoc;

// Print the image as a poster, four pages wide and six pages high
Printer.BeginDoc;
ABitmap.PrintImage(Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesMultiplePages, 4, 6, 1);
Printer.EndDoc;


TIEBitmap.Read

TIEBitmap.Read

Declaration

function Read(const FileName: string; IOParams: TIOParams = nil; bCheckUnknown: Boolean = True): boolean; overload;
function Read(Stream: TStream; FileType: TIOFileType = ioUnknown; IOParams: TIOParams = nil): boolean; overload;
function Read(Buffer: pointer; BufferSize: integer; FileType: TIOFileType = ioUnknown; IOParams: TIOParams = nil): boolean;

Description

Load an image from file or stream. This method supports all formats supported by TImageEnIO class.
When reading from a stream you can optionally specify the Format. If it is not specified ImageEn will determine the file type automatically.
You can optionally pass an TIOParams object for the I/O parameters of the file (see also ParamsEnabled). If bCheckUnknown is true and the file extension is not known or is incorrect (e.g. a GIF file named MyImage.jpg), then loading will be attempted by analyzing the file content (in the same way as LoadFromFileAuto).

Result will be False if the file is not a recognized file type (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Examples

var
bmp: TIEBitmap;
begin
bmp := TIEBitmap.Create;
bmp.Read('input.jpg');
bmp.Write('output.jpg');
bmp.Free;
end;

Which is the same as...
with TIEBitmap.Create('input.jpg') do
begin
Write('output.jpg');
Free;
end;

Also, the same as...
var
bmp: TIEBitmap;
io: TImageEnIO;
begin
bmp := TIEBitmap.Create;
io := TImageEnIO.CreateFromBitmap(bmp);
io.LoadFromFile('input.jpg');
io.SaveToFile('output.jpg');
io.Free;
bmp.Free;
end;

Compatibility Notes

The parameters of TIEBitmap.Read changed for the stream overload in v6.0.0.

Code that was:
MyBmp.Read(aStream, aIOParams);

Should change to:
MyBmp.Read(aStream, ioUnknown, aIOParams);


TIEBitmap.RemoveAlphaChannel

TIEBitmap.RemoveAlphaChannel

Declaration

procedure RemoveAlphaChannel(Merge: boolean = false; BackgroundColor: TColor = clWhite);

Description

Removes the associated alpha channel.
When Merge is true, the specified BackgroundColor is merged with the semitransparent areas of the image (like a shadow).


TIEBitmap.RenderToCanvas

TIEBitmap.RenderToCanvas

Declaration

procedure RenderToCanvas(DestCanvas: TCanvas; xDst, yDst, dxDst, dyDst: integer; Filter: TResampleFilter; Gamma: double = 0; BackgroundColor: TColor = clWhite);

Description

Draws the bitmap to the DestCanvas at the rectangle specified by xDst, yDst, dxDst, dyDst.
Filter specifies the filter if the image needs to be resampled.
Gamma is the gamma correction.
BackgroundColor specifies the background color when pixels aren't opaque.

Example

// Col 1 of a TStringGrid displays a thumbnail drawn from a TImageEnMView
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Longint;
Rect: TRect; State: TGridDrawState);
var
aIEBitmap: IEBitmap;
aCanvas: TCanvas;
idx: Integer;
begin
// Col 1 contains thumbnail. Row 0 is fixed header row
if (ACol <> 1) or (ARow = 0) then
Exit;

idx := ARow;
aCanvas := (Sender as TStringGrid).Canvas;

// Clear current cell rect
aCanvas.FillRect( Rect );

// Get our image
// Note: don't need to create or free the TIEBitmap
aIEBitmap := ImageEnMView1.GetIEBitmap( idx );

// Adjust our rect to maintain the image aspect ratio
Rect := GetImageRectWithinArea( Rect, aIEBitmap.Width, aIEBitmap.Height );

// Draw the image
aIEBitmap := RenderToCanvas( aCanvas, Rect.Left, Rect.Top, Rect.Right - Rect.Left, Rect.Bottom - Rect.Top, rfFastLinear, 0 );

// Release our image
ImageEnMView1.ReleaseBitmap( idx, False );
end;

See Also

- DrawToCanvas
- RenderToCanvasWithAlpha

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.RenderToCanvasWithAlpha

TIEBitmap.RenderToCanvasWithAlpha

Declaration

procedure RenderToCanvasWithAlpha(Dest: TCanvas; xDst, yDst, dxDst, dyDst: integer; xSrc, ySrc, dxSrc, dySrc: integer; Transparency: integer = 255; Filter: TResampleFilter = rfNone; RenderOperation: TIERenderOperation = ielNormal; Opacity: double = 1.0);

Description

Draws the rectangle, xSrc, ySrc, dxSrc, dySrc, within the destination rectangle, xDst, yDst, dxDst, dyDst, of Dest TCanvas object.
Transparency specifies the transparency value (0=Fully Transparent to 255=Fully Opaque).
Filter the resampling filter.
RenderOperation the rendering operation.
Opacity specifies the opacity (0=Fully Transparent to 1.0=Fully Opaque).

This functions reads the destination canvas pixels and merges them with image using the alpha channel mask.

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0

Example

// Draw aIEBitmap within aRect while maintaining the aspect ratio of the image
aRect := GetImageRectWithinArea( aIEBitmap.Width, aIEBitmap.Height, aRect );
aIEBitmap.RenderToCanvasWithAlpha( aCanvas, aRect.Left, aRect.Top, aRect.Right - aRect.Left, aRect.Bottom - aRect.Top, 0, 0, aIEBitmap.Width, aIEBitmap.Height, 255, rfFastLinear );

See Also

- DrawToCanvasWithAlpha
- RenderToCanvas

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.RenderToTBitmap

TIEBitmap.RenderToTBitmap

Declaration

procedure RenderToTBitmap(ABitmap: TBitmap; var XLUT, YLUT: pinteger; UpdRect: PRect; xDst, yDst, dxDst, dyDst: integer; xSrc, ySrc, dxSrc, dySrc: integer; EnableAlpha: boolean; SolidBackground: boolean; Transparency: integer; Filter: TResampleFilter; FreeTables: boolean; RenderOperation: TIERenderOperation = ielNormal; Opacity: double = 1.0);

Description

Used internally to render a TIEBitmap in TImageEnView object.
ABitmap must be pf24bit

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0

See Also

- RenderToTBitmapEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.RenderToTBitmapEx

TIEBitmap.RenderToTBitmapEx

Declaration

procedure RenderToTBitmapEx(Dest: TBitmap; xDst, yDst, dxDst, dyDst: integer; xSrc, ySrc, dxSrc, dySrc: integer; bEnableAlpha: Boolean = True; Transparency: integer = 255; Filter: TResampleFilter = rfNone; RenderOperation: TIERenderOperation = ielNormal; Opacity: double = 1.0);

Description

Draws the rectangle xSrc, ySrc, dxSrc, dySrc inside the destination rectangle xDst, yDst, dxDst, dyDst of Dest TBitmap object.
Dest.PixelFormat must be pf24bit.
bEnableAlpha includes the alpha channel
Transparency specifies the transparency value (0=Fully Transparent to 255=Fully Opaque).
Filter specifies the resampling filter.
RenderOperation specifies the rendering operation.
Opacity specifies the opacity (0=Fully Transparent to 1.0=Fully Opaque).

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0


TIEBitmap.RenderToTIEBitmap

TIEBitmap.RenderToTIEBitmap

Declaration

procedure RenderToTIEBitmap(ABitmap: TIEBitmap; var XLUT, YLUT: pinteger; UpdRect: PRect; xDst, yDst, dxDst, dyDst: integer; xSrc, ySrc, dxSrc, dySrc: integer; EnableAlpha: boolean; SolidBackground: boolean; Transparency: integer; Filter: TResampleFilter; FreeTables: boolean; RenderOperation: TIERenderOperation = ielNormal; Opacity: double = 1.0);

Description

Used internally to render a TIEBitmap in TImageEnView object.
ABitmap must be 24 bit.
XLUT, YLUT: x and y screen to bitmap conversion table, can be NIL

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0

See Also

- RenderToTIEBitmapEx
- DrawToTIEBitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.RenderToTIEBitmapEx

TIEBitmap.RenderToTIEBitmapEx

Declaration

procedure RenderToTIEBitmapEx(Dest: TIEBitmap; xDst, yDst, dxDst, dyDst: integer; xSrc, ySrc, dxSrc, dySrc: integer; bEnableAlpha: Boolean = True; Transparency: integer = 255; Filter: TResampleFilter = rfNone; RenderOperation: TIERenderOperation = ielNormal; Opacity: double = 1.0);

Description

Draws the rectangle xSrc, ySrc, dxSrc, dySrc inside the destination rectangle xDst, yDst, dxDst, dyDst of Dest TIEBitmap object.
Dest PixelFormat must be ie24RGB.
bEnableAlpha includes the alpha channel
Transparency specifies the transparency value (0=Fully Transparent to 255=Fully Opaque).
Filter the resampling filter.
RenderOperation the rendering operation.
Opacity specifies the opacity (0=Fully Transparent to 1.0=Fully Opaque).

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0

Compatibility Information

In v6.0.0 the bEnableAlpha parameter was added. Set this to true to maintain existing functionality.

Example

// Merge images of ImageEnView1 and ImageEnView2 using "InverseColorDodge" and put onto ImageEnView3
ImageEnView3.IEBitmap.Assign( ImageEnView2.IEBitmap );
ImageEnView1.IEBitmap.RenderToTIEBitmapEx( ImageEnView3.IEBitmap,
0, 0, ImageEnView2.IEBitmap.Width, ImageEnView2.IEBitmap.Height,
0, 0, ImageEnView1.IEBitmap.Width, ImageEnView1.IEBitmap.Height,
False, 255, rfNone,
ielInverseColorDodge );
ImageEnView3.Update;

See Also

- RenderToTIEBitmap
- DrawToTIEBitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.ReplaceAlphaChannel

TIEBitmap.ReplaceAlphaChannel

Declaration

procedure ReplaceAlphaChannel(Value: TIEBitmap);

Description

Destroy the current alpha channel (if it exists) and set a new one.

Note: The new alpha channel will be freed automatically on destroy.

See Also

- AlphaChannel
- SyncAlphaChannel
- DetachAlphaChannel

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.Resample

TIEBitmap.Resample

Declaration

procedure Resample(NewWidth, NewHeight: integer; FilterType: TResampleFilter = rfNone; bMaintainAspectRatio : Boolean = False); overload;
procedure Resample(ScaleBy: Double; FilterType: TResampleFilter = rfNone); overload;

Description

Resizes the current image. The content of the image changes (stretched to the new size).

Parameter | Description
NewWidth | New image width in pixels. If NewWidth is -1 then it is calculated automatically, respecting the proportions.
NewHeight | New image height in pixels. If NewHeight is -1 then it is calculated automatically, respecting the proportions.
FilterType | Resampling interpolation algorithm.
bMaintainAspectRatio | Automatically reduces NewWidth or NewHeight to ensure the original proportions of the image are maintained

Examples

ABitmap.Resample( 50, -1, rfNone ); // Resizes the image to width of 50 (with height automatically set) without any smoothing algorithm
ABitmap.Resample( -1, 100, rfLanczos3 ); // Resizes the image to height of 100 (with width automatically calculated) and high quality smoothing
ABitmap.Resample( 100, 100, rfLanczos3, True ); // Resizes the image so that it is no higher or wider than 100, but maintains the original aspect ratio (e.g. a 4:3 portrait image would have the new dimensions 100 x 75)
ABitmap.Resample( 0.5, rfFastLinear ); // Resizes the image to half its current size with fast, but good quality smoothing


TIEBitmap.Resize

TIEBitmap.Resize

Declaration

procedure Resize(NewWidth, NewHeight: integer; BackgroundValue: double = 0; FillAlpha: integer = 255; HorizAlign: TIEHAlign = iehLeft; VertAlign: TIEVAlign = TIEVAlign); overload
procedure Resize(AddLeft, AddTop, AddRight, AddBottom: integer; BackgroundValue: double = 0; FillAlpha: integer = 255); overload;

Description

Resize the image without resampling (i.e. the image content is not stretched).
This method also resizes the alpha channel.

Overload 1:
Parameter | Description
NewWidth | New image width
NewHeight | New image height
BackgroundValue | TColor value for ie24RGB images or a gray level for gray scale or black/white images. It is used to fill added regions
AlphaValue | Alpha value used to fill added regions (0: Fully Transparent - 255: Opaque)
HorizAlign | Specifies how to horizontally align the old image (has no effect unless the new width is greater than the old width)
VertAlign | Specifies how to vertically align the old image (has no effect unless the new height is greater than the old height)

Overload 2:
Parameter | Description
AddLeft | Pixels to add to the left of the image (or remove if AddLeft < 0)
AddTop | Pixels to add to the top of the image (or remove if AddTop < 0)
AddRight | Pixels to add to the right of the image (or remove if AddRight < 0)
AddBottom | Pixels to add to the bottom of the image (or remove if AddBottom < 0)
BackgroundValue | TColor value for ie24RGB images or a gray level for gray scale or black/white images. It is used to fill added regions
AlphaValue | Alpha value used to fill added regions (0: Fully Transparent - 255: Opaque)

Examples

// resize image to 1000x1000
MyIEBitmap.Resize( 1000, 1000 );

// make a contour around the image
MyIEBitmap.Resize( MyIEBitmap.Width + 80, MyIEBitmap.Height + 80, clBlack, 255, iehCenter, ievCenter );

// which is the same as:
MyIEBitmap.Resize( 80, 80, 80, 80, clBlack, 255 );

// Add 50 pixels to the top and bottom of the image, remove 80 pixels from the left and right
MyIEBitmap.Resize( -80, 50, -80, 50, 255 );


TIEBitmap.RestoreState

TIEBitmap.RestoreState

Declaration

procedure RestoreState();

Description

Pops the top state on the states stack, restoring the TIEBitmap to that state.

See SaveState.

Example

// merges alpha channel to save image as BMP, and restore it
ImageEnView1.IO.LoadFromFile('input.png');
ImageEnView1.LockUpdate();
ImageEnView1.IEBitmap.SaveState();
ImageEnView1.RemoveAlphaChannel(true);
ImageEnView1.IO.SaveToFile('output.bmp');
ImageEnView1.IEBitmap.RestoreState();
ImageEnView1.UnLockUpdate();

// as above with LegacyBitmap = False
ImageEnView1.LegacyBitmap := false;
ImageEnView1.IO.LoadFromFile('input.png');
ImageEnView1.IEBitmap.SaveState();
ImageEnView1.RemoveAlphaChannel(true);
ImageEnView1.IO.SaveToFile('output.bmp');
ImageEnView1.IEBitmap.RestoreState();

Pops the top state on the stack, restoring the context to that state.


TIEBitmap.Rotate

TIEBitmap.Rotate

Declaration

procedure Rotate(Angle: double; AntialiasMode: TIEAntialiasMode = ierFast; BackgroundColor: TColor = clWhite);

Description

Rotates the current image by the specified angle (negative or positive degrees counter-clockwise).

AntialiasMode specifies the anti-aliasing algorithm that is used to improve rotation quality:
ierNone : No anti-aliasing (lowest quality)
ierFast : Fast but lower quality
ierBilinear : Bilinear, high quality
ierBicubic : Bicubic, highest quality

BackgroundColor specifies a background color to fill new regions (i.e. when not rotating at a 90 degree angle)

Examples

// Rotate the image 45° clockwise at highest quality with a white background color
ABitmap.Rotate(315, ierBicubic, clWhite);

// Rotate the image 90° clockwise (Note: AntialiasMode is irrelevant for 90 deg. rotates)
ABitmap.Rotate(270);

// Rotate the image 180° clockwise
ABitmap.Rotate(180);

// Rotate the image 90° counter-clockwise;
ABitmap.Rotate(90);

See Also

- Lossless Jpeg Transformations
- AngleToImageEnRotateAngle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.RowLen

TIEBitmap.RowLen

Declaration

property RowLen: integer;

Description

Returns the count of bytes in a row. By default, a row is double word aligned (32bit).


TIEBitmap.SaveRAWToBufferOrStream

TIEBitmap.SaveRAWToBufferOrStream

Declaration

procedure SaveRAWToBufferOrStream(Buffer: pointer; Stream: TStream; StreamHasSize: boolean = true);

Description

Saves the image using an internal format preserving pixel format and alpha channel.
Location field will be lost. Only the image and its description is saved.
If the image has alpha channel this is also saved.
You can save the image inside a buffer or a stream.
Saving in a buffer you must specify a valid Buffer (of size returned by CalcRAWSize) and Stream must be nil.
Saving in a Stream the Buffer parameter must be nil.
Set StreamHasSize = true if specified Stream can set Size of stream.

See Also

- LoadRAWFromBufferOrStream
- CalcRAWSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.SaveState

TIEBitmap.SaveState

Declaration

procedure SaveState();

Description

Pushes the current TIEBitmap state onto the states stack so it can be restored later calling RestoreState.

Note: When TImageEnView.LegacyBitmap = True, applications should block TImageEnView updates between calls to SaveState() and RestoreState(), calling TImageEnView.LockUpdate() and TImageEnView.UnLockUpdate().

Example

// merges alpha channel to save image as BMP, and restore it
ImageEnView1.IO.LoadFromFile('input.png');
ImageEnView1.LockUpdate();
ImageEnView1.IEBitmap.SaveState();
ImageEnView1.RemoveAlphaChannel(true);
ImageEnView1.IO.SaveToFile('output.bmp');
ImageEnView1.IEBitmap.RestoreState();
ImageEnView1.UnLockUpdate();

// as above with LegacyBitmap = False
ImageEnView1.LegacyBitmap := false;
ImageEnView1.IO.LoadFromFile('input.png');
ImageEnView1.IEBitmap.SaveState();
ImageEnView1.RemoveAlphaChannel(true);
ImageEnView1.IO.SaveToFile('output.bmp');
ImageEnView1.IEBitmap.RestoreState();


TIEBitmap.Scanline

TIEBitmap.Scanline

Declaration

property Scanline[row: integer]: pointer

Description

Retrieves an entire line of pixels at a time.
For Location=ieFile or PixelFormat=ieVirtual you can use only last line obtained from Scanline[] (consequently this is not thread safe).

Examples

// Convert image to gray-scale (PixelFormat must be ie24RGB)
// Same as TImageEnProc.ConvertToGray
var
x, y: Integer;
pPix: PRGB;
Gray: Byte;
begin
for y := 0 to ImageEnView1.IEBitmap.Height - 1 do
begin
pPix := ImageEnView1.IEBitmap.ScanLine[ y ];
for x := 0 to ImageEnView1.SelectionMask.Width - 1 do
begin
Gray := (pPix^.R * IEGlobalSettings().RedToGrayCoef + pPix^.G * IEGlobalSettings().GreenToGrayCoef + pPix^.B * IEGlobalSettings().BlueToGrayCoef) div 100;
pPix^.R := Gray;
pPix^.G := Gray;
pPix^.B := Gray;

inc( pPix );
end;
end;
ImageEnView1.Update();
end;

// Set all pixels within selection as red
// Same as ImageEnView1.SetSelectedPixelsColor
var
x, y: Integer;
pSel: pbyte;
pPix: PRGB;
begin
if ImageEnView1.SelectionMask.IsEmpty then
raise Exception.create( 'Nothing selected' );

if ImageEnView1.IEBitmap.PixelFormat <> ie24RGB then
raise Exception.create( 'Not 24bit' );

// Process selected area
for y := 0 to ImageEnView1.SelectionMask.Height - 1 do
begin
pSel := ImageEnView1.SelectionMask.ScanLine[ y ];
pPix := ImageEnView1.IEBitmap.ScanLine[ y ];

case ImageEnView1.SelectionMask.BitsPerPixel of
1:
for x := 0 to ImageEnView1.SelectionMask.Width - 1 do
begin
// 1 Bit mask (values are 0 or 1)
if (pbytearray(pSel)^[x shr 3] and iebitmask1[x and $7]) <> 0 then
begin
pPix^.R := 255;
pPix^.G := 0;
pPix^.B := 0;
end;
inc( pPix );
end;
8:
for x := 0 to ImageEnView1.SelectionMask.Width - 1 do
begin
// 8 Bit mask (values are 0 to 255)
if pSel^ <> 0 then
begin
pPix^.R := 255;
pPix^.G := 0;
pPix^.B := 0;
end;
inc( pSel );
inc( pPix );
end;
end;
end;
ImageEnView1.Update();
end;

See Also

- GetRow
- FreeRow
- GetSegment

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.StretchRectTo

TIEBitmap.StretchRectTo

Declaration

procedure StretchRectTo(Dest: TIEBitmap; xDst, yDst, dxDst, dyDst: integer; xSrc, ySrc, dxSrc, dySrc: integer; Filter: TResampleFilter; Transparency: integer = 255; Opacity: double = 1.0);

Description

Stretches source rectangle in destination rectangle.
This method doesn't merge the image with the background, but just replace it (image and alpha).
This function assumes that there is an alpha channel (if not creates it).
Dest must be ie24RGB

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0


TIEBitmap.StretchValues

TIEBitmap.StretchValues

Declaration

procedure StretchValues();

Description

Stretches the pixel values in the range of BlackValue and WhiteValue.
BlackValue and WhiteValue and then reset to zero.
Works only when PixelFormat is ie8g, ie16g, ie24RGB and ie32f.


TIEBitmap.SwitchTo

TIEBitmap.SwitchTo

Declaration

procedure SwitchTo(Target: TIEBitmap);

Description

Assigns the current image to the target object. The source object will be empty.
Executes more quickly than a copy operation because the image is transferred rather than copied.
In detail, it assigns all fields to Target, and set to zero all parameters (do not free the image or allocated memory).


TIEBitmap.SyncAlphaChannel

TIEBitmap.SyncAlphaChannel

Declaration

procedure SyncAlphaChannel(AntiAlias: Boolean = True);

Description

If you have manually loaded or set the AlphaChannel, calling this method will ensure it matches the size of the image and has a pixelformat of ie8g (alpha channels with invalid sizes or color depths will not display).
AntiAlias specifies that a Bicubic filter is used if the alpha channel needs to be stretched (which will create a range of transparency values). Set to false to ensure an alpha channel with only 0 and 255 values (i.e. full alpha or full opaque pixels) will not have semi-transparent pixels.

Example

// Assign an alpha channel to an image using a source file
// For simple transparency, use a monochrome bitmap where the black pixels will become transparent
// Otherwise, a 256 color gray-scale image can provide a range of tranparency values (from white/fully opaque to black/fully transparent)
aBMP := TIEBitmap.create( 'D:\alpha.bmp' );

// Use our bitmap as the alpha channel
ImageEnView1.IEBitmap.AlphaChannel.Assign( aBMP );

// Ensure size of alpha channel matches size of image (and is ie8g)
ImageEnView1.IEBitmap.SyncAlphaChannel();

// Update the container
ImageEnView1.Update;

aBMP.free;

Source Image:

Image to use for Alpha (Black will be come transparent, gray will be 50% transparent and white will be fully opaque):

Result (on a white TImageEnView):

See Also

- AlphaChannel
- DetachAlphaChannel
- ReplaceAlphaChannel

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.SyncFull

TIEBitmap.SyncFull

Declaration

procedure SyncFull;

Description

Sets Full to True if all values of the image are 255.


TIEBitmap.SynchronizeRGBA

TIEBitmap.SynchronizeRGBA

Declaration

procedure SynchronizeRGBA(RGBAtoAlpha: boolean; UpdatePixelFormat: Boolean = False);

Description

When ie32RGB (RGBA) pixel format is used, the A channel is not used. Alpha channel is stored in a separated plane (AlphaChannel).
To copy from A channel to ImageEn Alpha channel, call SynchronizeRGBA( True ); If UpdatePixelFormat is true, the PixelFormat will be set to ie24RGB.
To copy from ImageEn Alpha channel to A channel, call SynchronizeRGBA( False );

Examples

// Assign a 32bit Bitmap with alpha channel to an ImageEnView (keeping the alpha)
var
bmp: TBitmap;
begin
bmp := TBitmap.Create();
bmp.LoadFromFile( 'Bmp32_with_Alpha.bmp' );
ImageEnView1.IEBitmap.Assign( bmp );
ImageEnView1.IEBitmap.SynchronizeRGBA( true );
ImageEnView1.Update();
bmp.Free();
end;

// Create a 32bit Bitmap with alpha channel
var
bmp: TBitmap;
begin
bmp := TBitmap.Create();
ImageEnView1.IEBitmap.SynchronizeRGBA( false );
ImageEnView1.IEBitmap.CopyToTBitmap( bmp );
bmp.SaveToFile( 'test.bmp' );
bmp.Free();
end;

// Draw a semi-transparent ellipse
var
bitmap: TIEBitmap;
begin
bitmap := TIEBitmap.Create( 500, 500, ie32RGB ); // <= RGBA required!
bitmap.Fill( 0 );
bitmap.AlphaChannel.Fill( 0 );

bitmap.IECanvas.SetCompositingMode( ieCompositingModeSourceOver, ieCompositingQualityDefault );
bitmap.IECanvas.Pen.Width := 4;
bitmap.IECanvas.Pen.Color := clRed;
bitmap.IECanvas.Brush.Color := clBlue;
bitmap.IECanvas.Pen.Transparency := 90;
bitmap.IECanvas.Brush.Transparency := 90;

bitmap.IECanvas.Ellipse(10, 10, 400, 400);

bitmap.SynchronizeRGBA( True ); // <= gdi+ draws alpha on RGBA. This copies 'A' to TIEBitmap alpha channel

imageenview1.iebitmap.Assign( bitmap );
imageenview1.update;
bitmap.Free();
end;

See Also

- BMP_HandleTransparency

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.TBitmapScanlines

TIEBitmap.TBitmapScanlines

Declaration

property TBitmapScanlines: ppointerarray;

Description

Returns an array of pointers for each scanline of the bitmap.


TIEBitmap.UpdateFromTBitmap

TIEBitmap.UpdateFromTBitmap

Declaration

procedure UpdateFromTBitmap;

Description

Updates the TIEBitmap with the content of the embedded TBitmap object (VclBitmap).
This is useful if you change VclBitmap and want to refresh TIEBitmap.

Example

ImageEnView1.IEBitmap.VclBitmap.Width := 1000;
ImageEnView1.IEBitmap.UpdateFromTBitmap;
ImageEnView1.Update;


TIEBitmap.VclBitmap

TIEBitmap.VclBitmap

Declaration

property VclBitmap: TBitmap;

Description

Contains the encapsulated TBitmap object.


TIEBitmap.VirtualBitmapProvider

TIEBitmap.VirtualBitmapProvider

Declaration

property VirtualBitmapProvider: TObject;

Description

Specifies a bitmap content provider. The assigned object will be de-allocated when TIEBitmap destruction, assigning Nil or replacing it with a new object.
Using this property it is possible to create a bitmap without allocating memory. When the image (or part of it) needs to be displayed a method will be called.
This is an alternative way to OnRenderVirtualPixel.

At the moment only classes inherited from the abstract class TIEVirtualBitmapProvider are supported.

Example 1

ImageEnView1.LegacyBitmap := false;
ImageEnView1.IEBitmap.VirtualBitmapProvider := TIESlippyMap.Create();
with TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider) do
begin
// move to London
Latitude := 51.503614574056016;
Longitude := -0.12774750793460043;
// location at bitmap center
PointPosition := Point(ImageEnView1.IEBitmap.Width div 2, ImageEnView1.IEBitmap.Height div 2);
// zoom
Zoom := 14;
end;
ImageEnView1.Update();

Example 2

type TMyRenderer = class(TIEVirtualBitmapProvider)
public
procedure Render(Container: TIEBitmap; DestWidth: integer; DestHeight: integer; DestScanlines: PPointerArray; DestX1, DestY1, DestX2, DestY2: integer; SrcCols, SrcRows: PInteger; Transparency: integer; RenderOperation: TIERenderOperation; Opacity: double); override;
function GetSegment(Container: TIEBitmap; Row: integer; Col: integer; Width: integer): pointer; override;
end;

procedure TMyRenderer.Render(Container: TIEBitmap; DestWidth: integer; DestHeight: integer; DestScanlines: PPointerArray; DestX1, DestY1, DestX2, DestY2: integer; SrcCols, SrcRows: PInteger; Transparency: integer; RenderOperation: TIERenderOperation; Opacity: double);
begin
...application specific...
end;

function TMyRenderer.GetSegment(Container: TIEBitmap; Row: integer; Col: integer; Width: integer): pointer;
begin
...application specific...
end;

// assign TMyRenderer to ImageEnView1.IEBitmap
ImageEnView1.LegacyBitmap := false;
ImageEnView1.IEBitmap.VirtualBitmapProvider := TMyRenderer.Create();
ImageEnView1.Update();

See Also

- OnRenderVirtualPixel
- TIESlippyMap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.WhiteValue

TIEBitmap.WhiteValue

Declaration

property BlackValue: double;

Description

Specifies (along with BlackValue) the values range from black to white.

For example, if your image is a gray scale (256 levels) where only values from 100 to 200 are used (100 is black and 200 is white), to display the image you must write:

ImageEnView.IEBitmap.BlackValue := 100;
ImageEnView.IEBitmap.WhiteValue := 200;
ImageEnView.Update;

Demo

Demos\Display\DisplayAdjust\Display.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEBitmap.WicRead

TIEBitmap.WicRead

Declaration

function WicRead(const sFilename: string; iImageIndex: Integer = 0; IOParams: TIOParams = nil): Boolean; overload;
function WicRead(Stream: TStream; FileType: integer = 0; iImageIndex: Integer = 0; IOParams: TIOParams = nil): Boolean; overload;

Description

Use TIEWICReader to load an image into a TIEBitmap from a file or a stream. This will often be more than 100% faster than loading via native Delphi code.

The index of an image to load within a multiframe format can also be specified. For streams you must specify the TIOFileType must be specified (one of: ioBMP, ioPNG, ioICO, ioJPEG, ioGIF, ioTIFF, ioHDP).

Note: TIEWICReader only supports BMP, PNG, ICO, JPEG, GIF, TIFF and HDP file types.

Example

if dlgOpenImage.Execute() then
begin
ImageEnView1.IEBitmap.WicRead( dlgOpenImage.FileName );
ImageEnView1.Update();
end;


TIEBitmap.Width

TIEBitmap.Width

Declaration

property Width: integer;

Description

Specifies the image width.


TIEBitmap.Write

TIEBitmap.Write

Declaration

function Write(const FileName: string; IOParams: TIOParams = nil): boolean; overload;
function Write(Stream: TStream; FileType: TIOFileType; IOParams: TIOParams = nil): boolean; overload;

Description

Writes image to file or stream. This method supports all formats supported by TImageEnIO class.
If saving to a stream you must specify the FileType.
You can optionally specify an TIOParams object containing the I/O parameters of the file (see also ParamsEnabled).
Returns true on success.

Examples

var
bmp: TIEBitmap;
begin
bmp := TIEBitmap.Create;
bmp.Read('input.jpg');
bmp.Write('output.jpg');
bmp.Free;
end;

Which is the same as...
with TIEBitmap.Create('input.jpg') do
begin
Write('output.jpg');
Free;
end;

Also the same as...
var
bmp: TIEBitmap;
io: TImageEnIO;
begin
bmp := TIEBitmap.Create;
io := TImageEnIO.CreateFromBitmap(bmp);
io.LoadFromFile('input.jpg');
io.SaveToFile('output.jpg');
io.Free;
bmp.Free;
end;


TIEBitmapOrigin

TIEBitmapOrigin

Declaration

TIEBitmapOrigin = (ieboBOTTOMLEFT, ieboTOPLEFT);


TIEBooleanEx

TIEBooleanEx

Declaration

TIEBooleanEx = (iebFalse, iebTrue, iebDefault);


TIECanvas

TIECanvas

Description

TIECanvas is a GDI+ Graphics wrapper and VCL TCanvas wrapper.


TIECellClickEvent

TIECellClickEvent

Declaration

TIECellClickEvent = procedure (Button: TMouseButton; Shift: TShiftState; Index: integer; aColor: TColor; var Allow: boolean) of object;


TIECellStyle

TIECellStyle

Declaration

TIECellStyle = (iecsDefault, iecsBorderedGrid, iecsFlatGrid);


TIEChannel

TIEChannel

Declaration

TIEChannel = (iecRed, iecGreen, iecBlue);


TIEChannels

TIEChannels

Declaration

TIEChannels = set of TIEChannel;

Description

TIEChannels = set of (iecRed, iecGreen, iecBlue);


TIECheckboxClickEvent

TIECheckboxClickEvent

Declaration

type TIECheckboxClickEvent = procedure(Sender: TObject; idx: integer; var bChecked : Boolean) of object;

Description

Occurs whenever a user clicks a checkbox.

idx is the index of the clicked image.
bChecked specifies the new status of the image. You can override it, e.g. set it to false if the image cannot be checked

Note: Don't read CheckedCount in this event which will not yet be valid. Use OnClick or OnMouseUp.

Example

procedure TfMain.ImageEnMView1CheckboxClick(Sender: TObject; idx: integer; var bChecked : Boolean);
begin
// Only allow JPEG images to be checked
if bChecked and (IEFileIsOfFormat(ImageEnMView1.ImageFilename[idx], ioJPEG) = False) then
begin
MessageBeep(MB_ICONEXCLAMATION);
bChecked := False;
end;
end;

See Also

- Checkboxes
- CheckedCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECircularFlow.CurrentImageZoom

TIECircularFlow.CurrentImageZoom

Declaration

property CurrentImageZoom: double;

Description

Specifies the zoom (0..1) for central image.

Default: 1.0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECircularFlow.EllipseAngle

TIECircularFlow.EllipseAngle

Declaration

property EllipseAngle: double;

Description

Specifies the ellipse (the curve where images are placed) angle in degrees.

Default: 0 degrees

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECircularFlow.ImagesSizePercentage

TIECircularFlow.ImagesSizePercentage

Declaration

property ImagesSizePercentage: double;

Description

Specifies the percentage (1..100) of view size used for images.

Default: 40

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECircularFlow.ImagesZoom

TIECircularFlow.ImagesZoom

Declaration

property ImagesZoom: double;

Description

Specifies the zoom (0..1) for non-central images.

Default: 0.2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECircularFlow.VisibleImages

TIECircularFlow.VisibleImages

Declaration

property VisibleImages: integer;

Description

Specifies the number of visible images.

Default: 15

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECmpMode

TIECmpMode

Declaration

TIECmpMode = (
iecmpRMSE, // Root Mean Square error
iecmpHamming, // Hamming distance
iecmpCovariance // Covariance
);


TIEColorCellState

TIEColorCellState

Declaration

TIEColorCellState = (iestNone, iestOver, iestDown, iestChecked, iestCheckedHover);


TIEColorPalette.AddColor

TIEColorPalette.AddColor

Declaration

procedure AddColor(Color: TColor); overload;
procedure AddColor(Color: TRGB); overload;

Description

Swap the position of two colors in the component.

Example

// Add a transparent cell
ColorPalette1.AddColor( clTransparent );


TIEColorPalette.AppendColorLuminancePalette

TIEColorPalette.AppendColorLuminancePalette

Declaration

procedure AppendColorLuminancePalette(Color: TColor; ColorCount: Integer = 256; MinL : Integer = 10; MaxL : Integer = 240);

Description

Append a set of all luminance value (in the range MinL to MaxL) for a color.

Note: Colors are appended, so use Clear if you wish to replace the existing colors.

Example

// Display all shades of blue
ColorPalette1.Clear();
ColorPalette1.AppendColorLuminancePalette( clBlue, 100 );

See Also

- GenerateColorLuminancePalette
- AppendGradientPalette

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.AppendGradientPalette

TIEColorPalette.AppendGradientPalette

Declaration

procedure AppendGradientPalette(Color1, Color2: TColor; ColorCount: Integer = 256);

Description

Append a set of colors gradiated from Color1 to Color2.

Note: Colors are appended, so use Clear if you wish to replace the existing colors.

Example

// Display a range of colors from blue to red
ColorPalette1.Clear();
ColorPalette1.AppendGradientPalette( clBlue, clRed, 100 );

See Also

- GenerateGradientPalette
- AppendColorLuminancePalette

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.AssignPalette

TIEColorPalette.AssignPalette

Declaration

procedure AssignPalette(Palette: array of TColor; Append: Boolean = false); overload;
procedure AssignPalette(Palette: array of TRGB; Append: Boolean = false); overload;
procedure AssignPalette(Palette: TIEArrayOfTRGB; Append: Boolean = false); overload;
Procedure AssignPalette(Source: TObject; Append: Boolean = false); overload;

Description

Replace the current color set with one of the following sources:
- An array of TRGB or TColor values
- A TImageEnView or TImageEnVect
- A TImageEnProc
- A TIEBitmap or TBitmap
- A stringlist of color strings (same as setting Colors)

Examples

// ASSIGN THE PALETTE OF AN TIMAGEENVIEW IMAGE

// Don't use Windows Bitmaps
ImageEnView1.LegacyBitmap := False;
// Load images in native format
ImageEnView1.IO.NativePixelFormat := true;
ImageEnView1.IO.LoadFromFile( 'C:\Image.jpeg' );
// Convert to 8bit Palette for display
if ImageEnView1.IEBitmap.PixelFormat <> ie8p then
ImageEnView1.IEBitmap.PixelFormat := ie8p;
IEColorPalette1.AssignPalette( ImageEnView1 );

// ASSIGN A PALETTE FROM A DATABASE THAT CONTAINS R, G AND B COLUMNS
var
aPalette: array of TRGB;
i: integer;
begin
i := 0;
SetLength( aPalette, tblColorList.RecordCount );
tblColorList.First;
While not tblColorList.EOF do
begin
aPalette[ i ].R := tblColorListRed.AsInteger;
aPalette[ i ].G := tblColorListGreen.AsInteger;
aPalette[ i ].B := tblColorListBlue.AsInteger;
inc( i );
tblColorList.Next;
end;
IEColorPalette1.AssignPalette( aPalette );
end;

// ASSIGN A PALETTE FROM A FILE CONTAINING COLOR VALUES
var
ssFile: TStringList;
begin
ssFile := TStringList.Create;
ssFile.LoadFromFile( 'D:\MyColors.txt' );
IEColorPalette1.AssignPalette( ssFile );
ssFile.Free;
end;

See Also

- Palette
- Colors
- AddColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.BiDiMode

TIEColorPalette.BiDiMode

Declaration

property BiDiMode: TBiDiMode;

Description

Determine whether grid is filled left to right (bdLeftToRight) or right to left (bdRightToLeft).

Note: bdRightToLeftNoAlign and bdRightToLeftReadingOnly are treated as bdLeftToRight.


TIEColorPalette.CellSize

TIEColorPalette.CellSize

Declaration

property CellSize: integer;

Description

Specifies the size of the color selection cells.

Default: 22

Example

// Increase the size of the color selection cells
IEColorPalette1.CellSize := IEColorPalette1.CellSize + 2;


TIEColorPalette.CellStyle

TIEColorPalette.CellStyle

Declaration

property CellStyle: TIECellStyle;

Description

Specify the style of the component. Either as standard color swatches or a grid of colors.

Example

// Display component as color swatches
IEColorPalette1.CellStyle := iecsDefault;

// Display component as a grid of colors with a black border
IEColorPalette1.CellStyle := iecsBorderedGrid;

// Display component as a grid of colors without a border
IEColorPalette1.CellStyle := iecsFlatGrid;


TIEColorPalette.Clear

TIEColorPalette.Clear

Declaration

procedure Clear();

Description

Removes all colors from the control (by clearing Palette).

Example

// Add a Red/Blue gradient to the control
IEColorPalette1.Clear();
IEColorPalette1.AppendGradientPalette( clBlue, clRed, 100 );


TIEColorPalette.ColCount

TIEColorPalette.ColCount

Declaration

property ColCount: integer; (Read-only)

Description

Returns the number of horizontal columns of colors displayed in the control.

See Also

- RowCount
- ColorCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.ColorCount

TIEColorPalette.ColorCount

Declaration

property ColorCount: integer; (Read-only)

Description

Returns the number of colors currently displayed in the control.

Example

lblColors.Caption := 'Colors: ' + IntToStr( IEColorPalette1.ColorCount );

See Also

- Palette
- Colors

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.Colors

TIEColorPalette.Colors

Declaration

property Colors: TStrings;

Description

TIEColorPalette provides two ways to access the color palette:
- As an array of TRGB (via Palette)
- As a stringlist of TColor or RGB values

Colors assumes each line contains one of the following formats:
- A Delphi const, such as clRed, clBlue, clNone or clTransparent
- A hex value such as $0000FF (red) or $FF0000 (blue)
- R, G and B values separated by a space, e.g. '255 0 0' (red) or '0 0 255' (blue)

Note: You can use 'clTransparent' to specify a transparent/alpha value

Example

// DISPLAY A COLOR SET
ColorPalette1.Colors.text := 'clRed' + #13 +
'clYellow' + #13 +
'clBlue' + #13 +
'clWhite' + #13 +
'clBlack' + #13 +
'clGray';

// ASSIGN A PALETTE FROM A FILE CONTAINING COLOR VALUES
var
ssFile: TStringList;
begin
ssFile := TStringList.Create;
ssFile.LoadFromFile( 'D:\MyColors.txt' );
IEColorPalette1.Colors := ssFile;
ssFile.Free;
end;

// ASSIGN A PALETTE FROM A DATABASE THAT CONTAINING A COLOR COLUMN
var
ss: TStringList;
i: integer;
begin
ss := TStringList.Create;
tblColorList.First;
While not tblColorList.EOF do
begin
ss.Add( ColorToString( tblColorListColor.AsInteger ));
tblColorList.Next;
end;
IEColorPalette1.Colors := ss;
ss.Free;
end;


TIEColorPalette.ColorUnderCursor

TIEColorPalette.ColorUnderCursor

Declaration

property ColorUnderCursor: TColor; (Read-Only)

Description

Returns the color of the cell that is currently under the cursor.

Example

procedure TForm1.ColorPalette1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
// Show the color under the cursor
pnlHoverColor.ParentBackground := False;
pnlHoverColor.Color := ColorPalette1.SelectedColor;
end;


TIEColorPalette.Create

TIEColorPalette.Create

Declaration

constructor Create(AOwner: TComponent);

Description

Create a TIEColorPalette component.


TIEColorPalette.Destroy

TIEColorPalette.Destroy

Declaration

destructor Destroy;

Description

Destroy a TIEColorPalette component.


TIEColorPalette.ExchangeColors

TIEColorPalette.ExchangeColors

Declaration

procedure ExchangeColors(Index1, Index2: Integer);

Description

Swap the position of two colors in the component.

Example

// Swap the second and third color cell
ColorPalette1.ExchangeColors( 1, 2 );


TIEColorPalette.ExtentX

TIEColorPalette.ExtentX

Declaration

property ExtentX: integer; (Read-only)

Description

Returns the width of the control area used by color cells (ExtentX is always less than ClientWidth because TIEColorPalette does not support horizontal scrolling).

See Also

- ExtentY
- ViewX
- ViewY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.ExtentY

TIEColorPalette.ExtentY

Declaration

property ExtentY: integer; (Read-only)

Description

Returns the height of the control area used by color cells. If the control has a scrollbar then ExtentY will be greater than ClientHeight.

Example

if IEColorPalette1.ExtentY > IEColorPalette1.ClientHeight then
Scroll bar visible...

See Also

- ExtentX
- ViewX
- ViewY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.GetCellRect

TIEColorPalette.GetCellRect

Declaration

function GetCellRect(idx: integer): TRect;

Description

Returns the area that the specified color cell is displayed.

Note: The returned value does not take scrolling into account (i.e. is not a screen value).

Example

// Return the area of the first cell
Rect := IEColorPalette1.GetCellRect( 0 );


TIEColorPalette.HintFormat

TIEColorPalette.HintFormat

Declaration

property HintFormat: string;

Description

Specifies the hint that is displayed when hovering over a color. Set to '' to disable custom hints.

You can use the following consts:
IECP_Index_Value | %INDEX% | The index of the color in the control (zero-based)
IECP_Delphi_Value | %HTML% | The color as a Delphi value, e.g. clRed or $00663300
IECP_Html_Value | %HTML% | The color as an HTML value, e.g. $FF0033
IECP_RGB_R_Value | %RGB_R% | The Red value of RGB
IECP_RGB_G_Value | %RGB_G% | The Green value of RGB
IECP_RGB_B_Value | %RGB_B% | The Blue value of RGB
IECP_HSL_H_Value | %HSL_H% | The Hue value of HSL
IECP_HSL_S_Value | %HSL_S% | The Saturation value of HSL
IECP_HSL_L_Value | %HSL_L% | The Luminance value of HSL
IECP_HSV_H_Value | %HSV_H% | The Hue value of HSV
IECP_HSV_S_Value | %HSV_S% | The Saturation value of HSV
IECP_HSV_V_Value | %HSV_V% | The Value of HSV
IECP_CMYK_C_Value | %CMYK_C% | The Cyan value of CMYK
IECP_CMYK_M_Value | %CMYK_M% | The Magenta value of CMYK
IECP_CMYK_Y_Value | %CMYK_Y% | The Yellow value of CMYK
IECP_CMYK_Y_Value | %CMYK_Y% | The Black value of CMYK

You can specify the hint display time using CustomHintTimeout

Default: '%HTML% (R: %RGB_R%, G: %RGB_G%, B: %RGB_B%)'

Example

// Display full color details
ColorPalette1.HintFormat := IECP_Html_Value + #13 +
'R: ' + IECP_RGB_R_Value + ', G: ' + IECP_RGB_G_Value + ', B: ' + IECP_RGB_B_Value + #13 +
'C: ' + IECP_CMYK_C_Value + ', M: ' + IECP_CMYK_M_Value + ', Y: ' + IECP_CMYK_Y_Value + ', K: ' + IECP_CMYK_K_Value + #13 +
'H: ' + IECP_HSL_H_Value + ', S: ' + IECP_HSL_S_Value + ', L: ' + IECP_HSL_L_Value + #13 +
'H: ' + IECP_HSV_H_Value + ', S: ' + IECP_HSV_S_Value + ', V: ' + IECP_HSV_V_Value;

// Display as a Delphi format color
colorColorPalette1.HintFormat := IECP_Delphi_Value;

// Disable custom hints
ColorPalette1.HintFormat := '';
ColorPalette1.Hint := 'Choose a color';


TIEColorPalette.HorzMargin

TIEColorPalette.HorzMargin

Declaration

property HorzMargin: integer;

Description

Specify the amount of blank space on the left and right side of the component. If -1 is specified then the color selection is centered in the control.

Default: 3

Example

// Add a 10 pixel margin on the left and right
IEColorPalette1.HorzMargin := 10;

// Display no margin in the control
IEColorPalette1.HorzMargin := 0;
IEColorPalette1.VertMargin := 0;

// Horizontally center the colors
IEColorPalette1.HorzMargin := -1;

See Also

- VertMargin

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.IndexAtPos

TIEColorPalette.IndexAtPos

Declaration

function IndexAtPos(X, Y: integer) : integer;

Description

Returns the index of the color cell at position X, Y in the component. Result is -1 if there is not cell at the position.

Note: IndexAtPos takes scrolling into account, i.e. IndexAtPos( 0, 0 ) will return a different result if the control has been scrolled

Example

procedure TForm1.ColorPalette1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
idx: Integer;
begin
// Same as ColorPalette1.IndexUnderCursor
idx := ColorPalette1.IndexUnderCursor( X, Y );
lblIndex.Caption := 'Index under cursor: ' + IntToStr( idx );
end;


TIEColorPalette.IndexUnderCursor

TIEColorPalette.IndexUnderCursor

Declaration

property IndexUnderCursor: integer; (Read-Only)

Description

Returns the index of the color cell that is currently under the cursor.

Example

procedure TForm1.ColorPalette1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
lblIndex.Caption := 'Index under cursor: ' + IntToStr( ColorPalette1.IndexUnderCursor );
uc.color := ColorPalette1.ColorUnderCursor;
end;


TIEColorPalette.LoadFromFile

TIEColorPalette.LoadFromFile

Declaration

procedure LoadFromFile(const Filename: TFileName; Format: Integer = -1);

Description

Loads all colors in a palette file into the control.

The following formats are supported:
- JASC Palette (*.pal, *.psppalette)
- Photoshop ACO (*.aco)
- Photoshop ACT (*.act)

For Format specify one of the following:
Const | Value | Description
IECP_Fmt_Unknown | -1 | The file format will be guessed based on the file extension. If it is not recognized, then IECP_Fmt_JASC is assumed
IECP_Fmt_JASC | 0 | File is loaded as a JASC Palette file
IECP_Fmt_Photoshop_Act | 1 | File is loaded as a Photoshop ACT file
IECP_Fmt_Photoshop_Aco | 2 | File is loaded as a Photoshop ACO file

Photoshop ACO format may include names for each of the colors. If a valid TStringList is passed for the Names parameter it will be filled with names.

Raises an exception if the file format is not recognized.

Example

// Prompt to load colors from a palette file
if OpenDialog1.Execute then
try
ColorPalette1.LoadFromFile( OpenDialog1.Filename );
except
ShowMessage( 'File format is unknown!' );
end;

See Also

- LoadPaletteFromFile
- SaveToFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.MaxColors

TIEColorPalette.MaxColors

Declaration

property MaxColors: integer;

Description

Specify the maxium number of color cells to display. If the specified color set has more than this number, it will be truncated.

Note: The component is not designed to handle very large palettes, so setting MaxColors will ensure performance is not affected.

Example

// Show the first 65,536 colors of an image in a TImageEnView
IEColorPalette1.Selectable := False;
IEColorPalette1.MaxColors := 65536;
IEColorPalette1.AssignPalette( ImageEnView1 );


TIEColorPalette.MinColors

TIEColorPalette.MinColors

Declaration

property MinColors: integer;

Description

Specify the minimum number of color cells to display. If the specified color set has less than this number then clNone values are appended.

Example

// Display 256 colors for an image that requires 256 colors
IEColorPalette1.MinColors := 256;


TIEColorPalette.OnCellClick

TIEColorPalette.OnCellClick

Declaration

property OnCellClick: TIECellClickEvent;

Description

Occurs whenever the user clicks a color cell.

Set Allow to false, if you do not want to allow the selection.

Example

procedure TForm1.ColorPalette1CellClick(Button: TMouseButton; Shift:
TShiftState; Index: Integer; aColor: TColor; var Allow: Boolean);
begin
if aColor = clRed then
// Don't allow red cells to be clicked
Allow := False;
end;


TIEColorPalette.OnColorsChange

TIEColorPalette.OnColorsChange

Declaration

property OnColorsChange: TNotifyEvent;

Description

Occurs whenever the set of colors displayed in the control are changed (excluding changes in color sorting).

Example

procedure TForm1.ColorPalette1ColorsChange(Sender: TObject);
begin
// Show the current color count
lblColors.Caption := 'Colors: ' + IntToStr( IEColorPalette.ColorCount );
end;


TIEColorPalette.OnGetHintText

TIEColorPalette.OnGetHintText

Declaration

property OnGetHintText: TIEGetHintTextEvent;

Description

Occurs whenever a custom hint is set when hovering over a color (based on the HintFormat property).

The hint can be customized by changing the value of HintStr.

Example

procedure TForm1.ColorPalette1GetHintText(aColor: TColor; Index: Integer; var HintStr: string);
begin
if aColor = clRed then
HintStr := 'Red, just like my Ferrari!";
end;


TIEColorPalette.OnPaintCell

TIEColorPalette.OnPaintCell

Declaration

property OnPaintCell: TIEPaintCellEvent;

Description

Occurs whenever a color cell is painted.

Set Handled to true if you have drawn the cell yourself.


TIEColorPalette.OnSelectedColorChange

TIEColorPalette.OnSelectedColorChange

Declaration

property OnSelectedColorChange: TNotifyEvent;

Description

Occurs when ever the selected color is changed (by user or programatically).

Example

procedure TForm1.ColorPalette1SelectedColorChange(Sender: TObject);
begin
// Display the selected color
sc.color := ColorPalette1.SelectedColor;
end;


TIEColorPalette.Palette

TIEColorPalette.Palette

Declaration

property Palette: TIEArrayOfTRGB;

Description

TIEColorPalette provides two ways to access the color palette:
- As an array of TRGB
- As a stringlist of TColor or RGB values (via Colors)

Note: You can use TColor2TRGB and TRGB2TColor to convert between TColor and TRGB values

Example

// Assign all colors in the component to a database with R, G and B columns
for i := 0 to IEColorPalette1.ColorCount - 1 do
begin
tblColorList.Append;
tblColorListRed.AsInteger := IEColorPalette1.Palette[ i ].R;
tblColorListGreen.AsInteger := IEColorPalette1.Palette[ i ].G;
tblColorListBlue.AsInteger := IEColorPalette1.Palette[ i ].B;
tblColorList.Post;
end;

// Assign a palette from a database that contains R, G and B columns
var
aPalette: TIEArrayOfTRGB;
i: integer;
begin
i := 0;
SetLength( aPalette, tblColorList.RecordCount );
tblColorList.First;
While not tblColorList.EOF do
begin
aPalette[ i ].R := tblColorListRed.AsInteger;
aPalette[ i ].G := tblColorListGreen.AsInteger;
aPalette[ i ].B := tblColorListBlue.AsInteger;
inc( i );
tblColorList.Next;
end;
IEColorPalette1.Palette := aPalette;
end;

See Also

- Colors
- ColorCount
- AssignPalette
- TColor2TRGB
- TRGB2TColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.RowCount

TIEColorPalette.RowCount

Declaration

property RowCount: integer; (Read-Only)

Description

Returns the number of vertical rows of colors in the control.

Note: This may include rows that are not visible.

See Also

- VisibleRowCount
- ColCount
- ColorCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.SaveToFile

TIEColorPalette.SaveToFile

Declaration

procedure SaveToFile(const FileName: TFileName; Truncate: Boolean);

Description

Saves the current colors to file in JASC Palette format (*.pal, *.psppalette).

If Truncate is true, then only the first 256 colors of the palette are output.

Note: The JASC Palette format supports only 256 colors. If Truncate is set to false the created format may be incompatible with other applications.

Example

// Prompt to save colors to a palette file
if SaveDialog1.Execute then
try
ColorPalette1.LoadFromFile( SaveDialog1.Filename, False );
except
ShowMessage( 'File saving failed!' );
end;

See Also

- SavePaletteToFile
- LoadFromFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.ScrollBarParams

TIEColorPalette.ScrollBarParams

Declaration

property ScrollBarParams: TIEScrollBarParams;

Description

Properties to customize the behavior of the vertical scroll bar. This includes tracking (display refresh on mouse dragging), up/down buttons scroll distance and page up/down scroll distance.

Example

// Disable tracking
IEColorPalette1.ScrollBarParams.Tracking := False;


TIEColorPalette.Selectable

TIEColorPalette.Selectable

Declaration

property Selectable: Boolean;

Description

Specify whether colors can be selected within the component. Set to false for a read-only component that only displays colors.

Example

// Show colors of a TImageEnView
IEColorPalette1.Selectable := False;
IEColorPalette1.MaxColors := 65536;
IEColorPalette1.AssignPalette( ImageEnView1 );


TIEColorPalette.SelectedColor

TIEColorPalette.SelectedColor

Declaration

property SelectedColor: TColor;

Description

Specifies the color that is currently selected (down).

Note: TIEColorPalette does not support multiple selection

Example

// Show the selected color
pnlSelectedColor.ParentBackground := False;
pnlSelectedColor.Color := ColorPalette1.SelectedColor;

// Allow the selected color to be changed
procedure TForm1.pnlSelectedColorClick(Sender: TObject);
Var
PDialog: TImageEnPaletteDialog;
Begin
PDialog := TImageEnPaletteDialog.Create(self);
PDialog.SetPalette( ColorPalette1.Palette, ColorPalette1.ColorCount);
if PDialog.Execute then
ColorPalette1.SelectedColor := PDialog.SelCol;
PDialog.free;
End;

See Also

- SelectedIndex

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.SelectedIndex

TIEColorPalette.SelectedIndex

Declaration

property SelectedIndex: integer;

Description

Returns the index of the color cell that is currently selected (down).

Note: TIEColorPalette does not support multiple selection

See Also

- SelectedColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.SortMethod

TIEColorPalette.SortMethod

Declaration

property SortMethod: TIESortMethod;

Description

Specify the order in which colors are displayed.

Note: Use SortOrder to reverse the sorting.

Example

// Display colors in the order that we assign them
IEColorPalette1.SortMethod := iesmNone;

// Sort colors by luminance
IEColorPalette1.SortMethod := iesmHSLLuminance;

// Sort colors by Delphi order
IEColorPalette1.SortMethod := iesmDelphi;


TIEColorPalette.SortOrder

TIEColorPalette.SortOrder

Declaration

property SortOrder: TIESortOrder;

Description

Allow reversing of the sorting method specified by SortMethod.

Note: Has no effect if SortMethod is iesmNone

Example

// Toggle the sort order
if IEColorPalette1.SortOrder = iesoAscending then
IEColorPalette1.SortOrder := iesoDescending
else
IEColorPalette1.SortOrder := iesoAscending;


TIEColorPalette.TransparentStyle

TIEColorPalette.TransparentStyle

Declaration

property TransparentStyle: TIETransparentStyle;

Description

Specify how clTransparent values are displayed in the control.

Example

// Show transparent cell as checkered
IEColorPalette1.TransparentStyle := ietsCheckers;

// Show transparent cell as an empty box with a red line through it
IEColorPalette1.TransparentStyle := ietsRedLine;

// Show transparent cell as box containing a diagonal cross
IEColorPalette1.TransparentStyle := ietsCross;


TIEColorPalette.VertMargin

TIEColorPalette.VertMargin

Declaration

property VertMargin: integer;

Description

Specify the amount of blank space at the top and bottom of the component. If -1 is specified then the color selection is vertically centered in the control.

Default: 3

Example

// Add a 10 pixel margin at the top and bottom
IEColorPalette1.VertMargin := 10;

// Display no margin in the control
IEColorPalette1.HorzMargin := 0;
IEColorPalette1.VertMargin := 0;

// Vertically center the colors
IEColorPalette1.VertMargin := -1;

See Also

- HorzMargin

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.ViewX

TIEColorPalette.ViewX

Declaration

property ViewX: integer; (Read-Only)

Description

ViewX always returns 0 as TIEColorPalette does not support horizontal scrolling.

See also: ViewY.

See Also

- ViewY
- ExtentX
- ExtentY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.ViewY

TIEColorPalette.ViewY

Declaration

property ViewY: integer;

Description

Specifies the first row visible at the top-left corner of the control, in pixels.
You can set ViewY to simulate vertical scrollbar movement.

See also: ViewX.

Example

// Page down one screen
IEColorPalette1.ViewY := IEColorPalette1.ViewY + IEColorPalette.ClientHeight;

See Also

- ViewX
- ExtentX
- ExtentY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorPalette.VisibleRowCount

TIEColorPalette.VisibleRowCount

Declaration

property VisibleRowCount: integer; (Read-Only)

Description

Returns the number of vertical rows of colors currently visible in the control.

Notes:
- Only full rows are included
- The visible column count will always be ColCount because the component does not support horizontal scrolling.

See Also

- RowCount
- ColCount
- ColorCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEColorSpace

TIEColorSpace

Declaration

TIEColorSpace = (iecmsRGB, iecmsBGR, iecmsCMYK, iecmsCMYK6, iecmsCIELab, iecmsGray8, iecmsRGB48, iecmsRGB48_SE, iecmsYCBCR);


TIECommonDialog

TIECommonDialog

Description

The common parent class of TOpenImageEnDialog and TSaveImageEnDialog.

Properties

- FileView
- ExtendedDialog
- ShowPlacesBar

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECommonDialog.ExtendedDialog

TIECommonDialog.ExtendedDialog

Declaration

property ExtendedDialog: Boolean;

Description

Extends the Open/Save dialog with extra features, such as file information.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECommonDialog.FileView

TIECommonDialog.FileView

Declaration

property FileView: TIECommonDialogView;

Description

Overrides the default file view of the Open/Save dialogs, e.g. iedvLargeIcons forces thumbnails, whereas iedvDetails provides a columnar report view.


TIECommonDialog.ShowPlacesBar

TIECommonDialog.ShowPlacesBar

Declaration

property ShowPlacesBar: Boolean;

Description

Whether the standard Windows "Places" bar is shown.


TIECommonDialogView

TIECommonDialogView

Declaration

TIECommonDialogView = (iedvDefault, iedvSmallIcons, iedvMediumIcons, iedvLargeIcons, iedvExtraLargeIcons, iedvTiles, iedvList, iedvDetails);

Description

The default file view for the TOpenImageEnDialog and TSaveImageEnDialog. iedvLargeIcons is the standard thumbnail view. iedvDetails is the standard columnar report view.
Note: On Windows XP iedvLargeIcons and iedvExtraLargeIcons are treated as iedvMediumIcons


TIECompareFunction

TIECompareFunction

Declaration

TIECompareFunction = function(Index1, Index2: integer): integer of object;


TIEConvertColorFunction

TIEConvertColorFunction

Declaration

TIEConvertColorFunction = procedure(InputScanline: pointer; InputColorSpace: TIEColorSpace; OutputScanline: pointer; OutputColorSpace: TIEColorSpace; ImageWidth: integer; IOParams: TIOParams);

Description

Specifies the function used to convert from one color space to another.


TIECopyPasteType

TIECopyPasteType

Declaration

TIECopyPasteType = (iecpAuto, iecpFullImage, iecpSelection, iecpLayer);

Description

Specifies the source for cut and copy operations, or the destination for paste operations.

When the TImageEnProc is attached to a:
Class | Description
TIEBitmap | Only iecpFullImage is relevant (iecpAuto will have the same effect as iecpFullImage. iecpSelection and iecpLayer will always fail)
TImageEnView/TImageEnVect | iecpAuto, iecpFullImage, iecpSelection and iecpLayer are all available
TImageEnMView/TImageEnFolderMView | Only iecpFullImage is relevant (iecpAuto will have the same effect as iecpFullImage. iecpSelection and iecpLayer will always fail)

Used by:
- CanCutToClipboard
- CutToClipboard
- CanCopyToClipboard
- CopyToClipboard
- CanPasteFromClipboard
- PasteFromClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECreateAVIFileResult

TIECreateAVIFileResult

Declaration

TIECreateAVIFileResult = (ieaviOK, ieaviNOCOMPRESSOR, ieaviMEMORY, ieaviUNSUPPORTED);

Description

Value | Description
ieaviOK | No error
ieaviNOCOMPRESSOR | A suitable compressor cannot be found
ieaviMEMORY | There is not enough memory to complete the operation
ieaviUNSUPPORTED | Compression is not supported for this type of data


TIECreateImageEvent

TIECreateImageEvent

Declaration

TIECreateImageEvent = procedure(Sender: TObject; idx: integer) of object;

Description

Used by OnCreateImage whenever (immediately after) a new image is created.


TIECropAlgorithm

TIECropAlgorithm

Declaration

TIECropAlgorithm = (iecaSkewedDocument, iecaAngledPhoto);

Description

Value | Description
iecaSkewedDocument | Works best with documents requiring rotation due to scanning skew (not lined up correctly when scanning) or a previous rotation
iecaAngledPhoto | Works best with photos requiring rotation due camera skew (the camera is not quite horizontal)


TIECropToolInteraction

TIECropToolInteraction

Declaration

TIECropToolInteraction = class(TIEUserInteraction);

Description

A class of TIEUserInteraction that is used to control interaction for the crop tool (when MouseInteract is miCropTool).

The crop tool allows the user to select an area of the image to keep and then click "Enter" to apply the crop. The selection can also be rotated so the image is rotated and then cropped.

In Crop Tool mode:
- User can resize crop box by dragging grips
- User can rotate crop by dragging outside grips
- User can click "Enter" to enact the crop
- User can click "Esc" to cancel the crop

Rotated Crop

Perspective Fix

Example

// Disable guide lines (on image thirds)
ImageEnView1.CropToolInteraction.DrawGuides := False;

// Make larger grips
ImageEnView1.CropToolInteraction.GripSize := 12;

// High quality cropping
ImageEnView1.CropToolInteraction.AntialiasMode := ierBicubic;

// Enable crop mode
ImageEnView1.MouseInteract := [miCropTool];

// Enact crop (same as user clicking "Enter")
ImageEnView1.CropToolInteraction.Crop();

// Cancel crop tool (same as user clicking "Esc")
ImageEnView1.CropToolInteraction.Cancel();

Methods and Properties

General Properties
AntialiasMode
DrawGuides
GripSize
LockAspectRatio
LockWidth
LockHeight
Mode
Options

Selection
BitmapPolygon
Rotation (Same as rotating selection)
RotatedPolygon
ScreenPolygon
Selected
SetBitmapPolygon (Same as resizing selection)

Command Methods
Cancel (Same as clicking "Esc")
Crop (Same as clicking "Enter")

See Also

- TImageEnView Actions

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.AntialiasMode

TIECropToolInteraction.AntialiasMode

Declaration

property AntialiasMode: TIEAntialiasMode;

Description

Specifies the quality of a rotated crop.

Default: ierFast

Example

// High quality cropping
ImageEnView1.CropToolInteraction.AntialiasMode := ierBicubic;


TIECropToolInteraction.BitmapPolygon

TIECropToolInteraction.BitmapPolygon

Declaration

property BitmapPolygon: TIE2DPointArray; (Read-only)

Description

Returns the area of the image the user has selected for cropping.

Note:
- BitmapPolygon does not consider the Rotation
- BitmapPolygon is an array [0..3] of type, TIE2DPoint. Item 0 is Top-Left, item 1 is Top-Right, item 2 is Bottom-Right and item 3 is Bottom-Left

Example

// Show the size of the selection while resizing
procedure TForm1.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if ImageEnView1.MouseCapture then // selection being made or altered
with ImageEnView1.CropToolInteraction do
Caption := 'Selection: ' + IntToStr( abs( Round( BitmapPolygon[2].X - BitmapPolygon[0].X ))) + ' x ' + IntToStr( abs( Round( BitmapPolygon[2].Y - BitmapPolygon[0].Y )));
end;

See Also

- SetBitmapPolygon
- RotatedPolygon
- Rotation

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.Cancel

TIECropToolInteraction.Cancel

Declaration

procedure TIECropToolInteraction.Cancel();

Description

Clears the crop selection. This is the same as the user clicking the "Esc" key.

Example

// "Cancel Crop" button clicked
procedure TMainForm.btnCancelCropClick(Sender: TObject);
begin
ImageEnView1.CropToolInteraction.Cancel();
end;

See Also

- Crop

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.Crop

TIECropToolInteraction.Crop

Declaration

procedure TIECropToolInteraction.Crop();

Description

Crop the image to the selection. This is the same as the user clicking the "Enter" key.

Example

// "Apply Crop" button clicked
procedure TMainForm.btnApplyCropClick(Sender: TObject);
begin
ImageEnView1.CropToolInteraction.Crop();
end;

See Also

- Cancel

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.DrawGuides

TIECropToolInteraction.DrawGuides

Declaration

property DrawGuides: Boolean;

Description

Displays guide lines on the horizontal and vertical thirds of the crop selection.

Note: You must call TImageEnView.Invalidate if you change this property when the crop selection is visible

Default: True

Example

// Disable guide lines
ImageEnView1.CropToolInteraction.DrawGuides := False;


TIECropToolInteraction.GripSize

TIECropToolInteraction.GripSize

Declaration

property GripSize: Integer;

Description

Specifies the size of the grips that appear around the crop selection (which can be dragged to enlarge).

Note: You must call TImageEnView.Invalidate if you change this property when the crop selection is visible

Default: 8

Example

// Make larger grips
ImageEnView1.CropToolInteraction.GripSize := 12;


TIECropToolInteraction.LockAspectRatio

TIECropToolInteraction.LockAspectRatio

Declaration

property LockAspectRatio: Double;

Description

Allows the crop selection to be locked to a specific ratio, e.g. 0.75 for a 4:3 image or 1.77 for a 16:9 image
If LockAspectRatio is -1, the aspect ratio is only locked when the user presses the ALT key
If LockAspectRatio is >0, ImageEn locks the selection to the specified aspect ratio

Note: By default, when dragging the side grips the aspect ratio is not enforced. Add iecoSideGripsRespectLocks to Options to force all grips to respect the ratio

Example

// we want standard behavior
ImageEnView1.CropToolInteraction.LockAspectRatio := -1;

// we want a fixed aspect ratio of 4:3 (standard landscape, i.e. height is 75% of width)
ImageEnView1.CropToolInteraction.LockAspectRatio := 4 / 3;

See Also

- Options
- SelectionAspectRatio
- LockHeight
- LockWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.LockHeight

TIECropToolInteraction.LockHeight

Declaration

property LockHeight: Integer;

Description

Allows the height of the crop selection to be locked to a specific size. e.g. 200 pixels high.

Notes:
- Values refer to bitmap pixels, not a screen dimension
- Can be used independently of LockWidth
- if iecoSizeLocksAreMinimums is specified in Options, then this value is a minimum only
- Has no effect if SelectionAspectRatio > 0 (unless iecoSizeLocksAreMinimums is used)

Example

// we want standard behavior
ImageEnView1.CropToolInteraction.LockHeight := 0;
ImageEnView1.CropToolInteraction.LockHeight := 0;

// Lock the height to 500 pixels (but width can be changed)
ImageEnView1.CropToolInteraction.LockAspectRatio := 0;
ImageEnView1.CropToolInteraction.LockHeight := 500;
ImageEnView1.CropToolInteraction.LockWidth := 0;

// Lock width and height to half the image size
ImageEnView1.CropToolInteraction.LockAspectRatio := 0;
ImageEnView1.CropToolInteraction.LockWidth := ImageEnView1.IEBitmap.Width div 2;
ImageEnView1.CropToolInteraction.LockHeight := ImageEnView1.IEBitmap.Height div 2;

// Do not allow a selection smaller than 100x100 pixels
ImageEnView1.CropToolInteraction.Options := [iecoSizeLocksAreMinimums];
ImageEnView1.CropToolInteraction.LockWidth := 100;
ImageEnView1.CropToolInteraction.LockHeight := 100;

See Also

- LockWidth
- LockAspectRatio
- Options
- SelectionAbsHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.LockWidth

TIECropToolInteraction.LockWidth

Declaration

property LockWidth: Integer;

Description

Allows the width of the crop selection to be locked to a specific size. e.g. 200 pixels wide.

Notes:
- Values refer to bitmap pixels, not a screen dimension
- Can be used independently of LockHeight
- if iecoSizeLocksAreMinimums is specified in Options, then this value is a minimum only
- Has no effect if SelectionAspectRatio > 0 (unless iecoSizeLocksAreMinimums is used)

Example

// we want standard behavior
ImageEnView1.CropToolInteraction.LockWidth := 0;
ImageEnView1.CropToolInteraction.LockHeight := 0;

// Lock the width to 500 pixels (but height can be changed)
ImageEnView1.CropToolInteraction.LockAspectRatio := 0;
ImageEnView1.CropToolInteraction.LockWidth := 500;
ImageEnView1.CropToolInteraction.LockHeight := 0;

// Lock width and height to half the image size
ImageEnView1.CropToolInteraction.LockAspectRatio := 0;
ImageEnView1.CropToolInteraction.LockWidth := ImageEnView1.IEBitmap.Width div 2;
ImageEnView1.CropToolInteraction.LockHeight := ImageEnView1.IEBitmap.Height div 2;

// Do not allow a selection smaller than 100x100 pixels
ImageEnView1.CropToolInteraction.Options := [iecoSizeLocksAreMinimums];
ImageEnView1.CropToolInteraction.LockWidth := 100;
ImageEnView1.CropToolInteraction.LockHeight := 100;

See Also

- LockHeight
- LockAspectRatio
- Options
- SelectionAbsWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.Mode

TIECropToolInteraction.Mode

Declaration

property Mode: TIECropToolInteractionMode;

Description

Specifies the shape of cropping area.
Value | Description
iectmRECTANGLE | The cropping area is rectangular (for standard cropping)
iectmPERSPECTIVE | All corners of the cropping area can be adjusted as a quadrilateral to allow perspective distortion, i.e. the selected quadrilateral will be scaled to a rectangle when cropping is enacted.

Note: You must call TImageEnView.Invalidate if you change this property when the crop selection is visible

Default: iectmRECTANGLE

Example

// Enable perspective correction tool
ImageEnView1.CropToolInteraction.Mode := iectmPERSPECTIVE;
ImageEnView1.Invalidate();


TIECropToolInteraction.Options

TIECropToolInteraction.Options

Declaration

property Options: TIECropToolOptions;

Description

Options that control the behaviour of the crop tool.

Value | Description
iecoAllowResizing | The user can resize the crop selection by dragging the corner or side grips
iecoAllowRotating | The user can rotate the crop selection by dragging outside the corner grips
iecoAllowMoving | The user can move the crop selection by clicking within the selection area
iecoSideGripsRespectLocks | Determines whether the specified aspect ratio lock is enforced when dragging the side, top and bottom grips. If this option is not set then only the corner grips will respect the lock
iecoSizeLocksAreMinimums | If included, then the specified LockWidth or LockHeight are treated as minimum values, i.e. the user can make the selection larger than the specified values, but not smaller

Default: [iecoAllowResizing, iecoAllowRotating, iecoAllowMoving]

Examples

// Do not allow the user to resize the crop tool selection (i.e. only rotation and creation would be allowed)
ImageEnView1.CropToolInteraction.Options := ImageEnView1.CropToolInteraction.Options - [ iecoAllowResizing ];

// Do not allow the user to rotate the crop tool selection (i.e. only resizing and creation would be allowed)
ImageEnView1.CropToolInteraction.Options := ImageEnView1.CropToolInteraction.Options - [ iecoAllowRotating ];

// Do not allow the user to resize or rotate the crop tool selection (i.e. only creation would be allowed)
ImageEnView1.CropToolInteraction.Options := ImageEnView1.CropToolInteraction.Options - [ iecoAllowResizing, iecoAllowRotating ];

// we want a fixed aspect ratio of 4:3, which is enforced even if the user drags the side grips
ImageEnView1.CropToolInteraction.LockAspectRatio := 4 / 3;
ImageEnView1.CropToolInteraction.Options := ImageEnView1.CropToolInteraction.Options + [iecoSideGripsRespectLocks];

// Do not allow a selection smaller than 100x100 pixels
ImageEnView1.CropToolInteraction.Options := [iecoSizeLocksAreMinimums];
ImageEnView1.CropToolInteraction.LockWidth := 100;
ImageEnView1.CropToolInteraction.LockHeight := 100;

See Also

- LockAspectRatio
- LockWidth
- LockHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.RotatedPolygon

TIECropToolInteraction.RotatedPolygon

Declaration

property RotatedPolygon: TIE2DPointArray; (Read-only)

Description

Returns the area of the image the user has selected for cropping with support for rotation (returning the four corners of the rotated polygon)

See Also

- BitmapPolygon
- SetBitmapPolygon
- Rotation

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteraction.Rotation

TIECropToolInteraction.Rotation

Declaration

property Rotation: Double;

Description

The rotation the user has applied to the crop selection (degrees counter-clockwise). This is the programatic equivalent of the user dragging outside the grips of the crop tool selection.

Note: You must call TImageEnView.Invalidate if you change this property when the crop selection is visible

Example

// Change rotation to 45 deg. CCW
ImageEnView1.CropToolInteraction.Rotation := 45;
ImageEnView1.Invalidate();


TIECropToolInteraction.ScreenPolygon

TIECropToolInteraction.ScreenPolygon

Declaration

property ScreenPolygon: TIE2DPointArray; (Read-only)

Description

Returns the area of the image the user has selected for cropping, using screen coordinates.

Note: ScreenPolygon is an array [0..3] of type, TIE2DPoint. Item 0 is Top-Left, item 1 is Top-Right, item 2 is Bottom-Right and item 3 is Bottom-Left


TIECropToolInteraction.Selected

TIECropToolInteraction.Selected

Declaration

property TIECropToolInteraction.Selected: Boolean;

Description

Returns true if a selection is active.


TIECropToolInteraction.SetBitmapPolygon

TIECropToolInteraction.SetBitmapPolygon

Declaration

procedure SetBitmapPolygon(Rect: TRect);

Description

Sets the area of the image selected for cropping. This is the programatic equivalent of the user dragging the grips of the crop tool selection.

Note: You must call TImageEnView.Invalidate if you change this property when the crop selection is visible

Example

// Select 80% of image
ARect := Rect( MulDiv( ImageEnView1.IEBitmap.Width, 10, 100 ),
MulDiv( ImageEnView1.IEBitmap.Height, 10, 100 ),
MulDiv( ImageEnView1.IEBitmap.Width, 90, 100 ),
MulDiv( ImageEnView1.IEBitmap.Height, 90, 100 ));
ImageEnView1.CropToolInteraction.SetBitmapPolygon( ARect );
ImageEnView1.Invalidate();

See Also

- BitmapPolygon
- Rotation

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECropToolInteractionMode

TIECropToolInteractionMode

Declaration

TIECropToolInteractionMode = (iectmRECTANGLE,
iectmPERSPECTIVE);


TIECropToolOptions

TIECropToolOptions

Declaration

TIECropToolOptions = set of (iecoAllowResizing, iecoAllowRotating, iecoAllowMoving, iecoSideGripsRespectLocks, iecoSizeLocksAreMinimums);

Description

Value | Description
iecoAllowResizing | The user can resize the crop selection by dragging the corner or side grips
iecoAllowRotating | The user can rotate the crop selection by dragging outside the corner grips
iecoAllowMoving | The user can move the crop selection by clicking within the selection area
iecoSideGripsRespectLocks | Determines whether the specified aspect ratio lock is enforced when dragging the side, top and bottom grips. If this option is not set then only the corner grips will respect the lock
iecoSizeLocksAreMinimums | If included, then the specified LockWidth or LockHeight are treated as minimum values, i.e. the user can make the selection larger than the specified values, but not smaller

Default: [iecoAllowResizing, iecoAllowRotating, iecoAllowMoving]

Examples

// Do not allow the user to resize the crop tool selection (i.e. only rotation and creation would be allowed)
ImageEnView1.CropToolInteraction.Options := ImageEnView1.CropToolInteraction.Options - [ iecoAllowResizing ];

// Do not allow the user to rotate the crop tool selection (i.e. only resizing and creation would be allowed)
ImageEnView1.CropToolInteraction.Options := ImageEnView1.CropToolInteraction.Options - [ iecoAllowRotating ];

// Do not allow the user to resize or rotate the crop tool selection (i.e. only creation would be allowed)
ImageEnView1.CropToolInteraction.Options := ImageEnView1.CropToolInteraction.Options - [ iecoAllowResizing, iecoAllowRotating ];

// we want a fixed aspect ratio of 4:3, which is enforced even if the user drags the side grips
ImageEnView1.CropToolInteraction.LockAspectRatio := 4 / 3;
ImageEnView1.CropToolInteraction.Options := ImageEnView1.CropToolInteraction.Options + [iecoSideGripsRespectLocks];

// Do not allow a selection smaller than 100x100 pixels
ImageEnView1.CropToolInteraction.Options := [iecoSizeLocksAreMinimums];
ImageEnView1.CropToolInteraction.LockWidth := 100;
ImageEnView1.CropToolInteraction.LockHeight := 100;


TIECSSource

TIECSSource

Declaration

TIECSSource = (iecsScreen, iecsPrimary, iecsForegroundWindow, iecsForegroundWindowClient);

Description

Value | Description
iecsScreen | Captures the entire screen (all screens on a multiple monitor system)
iecsPrimary | Captures the screen of the primary monitor on a multiple monitor system (or the whole screen if there is only one monitor)
iecsForegroundWindow | Captures the active window
iecsForegroundWindowClient | Captures the client area of the active window


TIECurve

TIECurve

Declaration

TIECurve = (iecNone, iecEllipse, iecCosine, iecVertical, iecHorizontal, iecArc);

Description

Value | Description
iecNone | No curve (useful to remove a curve also created with SetObjTextCurve)
iecEllipse | Creates an ellipting curve
iecCosine | Creates a cosine curve
iecVertical | Creates a vertical text
iecHorizontal | Creates an horizontal text
iecArc | Creates an arc


TIECustomMultiBitmap

TIECustomMultiBitmap

Description

TIECustomMultiBitmap is the ancestor class of TIEMultiBitmap and TIEDBMultiBitmap. You should not use it directly.


TIECustomMultiBitmap.LockUpdate

TIECustomMultiBitmap.LockUpdate

Declaration

procedure LockUpdate;

Description

Increments the lock update counter. While LockUpdateCount is greater than zero all updating is disabled.

Use UnLockUpdate to unlock.

Example

// Disable updating
MyDBMultiBitmap.LockUpdate;
try
... Perform activities, e.g. appending many files to database
finally
// Re-enable Updating and refresh view
MyDBMultiBitmap.UnlockUpdate;
end;


TIECustomMultiBitmap.LockUpdateCount

TIECustomMultiBitmap.LockUpdateCount

Declaration

property LockUpdateCount: Integer;

Description

Returns the current state of update locking. A value of 0 means no locking. A value greater than zero means locking is in place (i.e. updating is disabled).

Calling LockUpdate increments LockUpdateCount, UnLockUpdate decrements it.


TIECustomMultiBitmap.Modified

TIECustomMultiBitmap.Modified

Declaration

property Modified: Boolean;

Description

Returns true if the image has changed since loading.

See Also

- OnChanged

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECustomMultiBitmap.OnChanged

TIECustomMultiBitmap.OnChanged

Declaration

property OnChanged: TIEImageNotifyEvent;

Description

Occurs whenever the TIEMultiBitmap is modified, e.g. by appending, inserting or deleting frames, or maniputation of individual frames (e.g. by Rotate).

Note: If an image is modified then idx with a valid index. For frame addition, removal and movement, idx will be -1.

See Also

- Modified

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIECustomMultiBitmap.UnlockUpdate

TIECustomMultiBitmap.UnlockUpdate

Declaration

function UnlockUpdate: integer;

Description

Decrement the lock update counter (use after calling LockUpdate).

If the lock count is zero, then Update is called to refresh the content and view.

Returns the lock count.

Example

// Disable updating
MyDBMultiBitmap.LockUpdate;
try
... Perform activities, e.g. appending many files to database
finally
// Re-enable Updating and refresh view
MyDBMultiBitmap.UnlockUpdate;
end;


TIECustomMultiBitmap.Update

TIECustomMultiBitmap.Update

Declaration

procedure Update;

Description

Updates the TImageEnMView if connected.


TIEDataAccess

TIEDataAccess

Declaration

TIEDataAccess = set of (iedRead, iedWrite);


TIEDBBitmap.AutoLoad

TIEDBBitmap.AutoLoad

Declaration

property AutoLoad: boolean;

Description

If True and the TIEDBBitmap is attached to a TImageEnView then changes to the database table cursor will be reflected in the TImageEnView. In other words, navigating the table will change the selected image in the TImageEnView.
If AutoLoad is false, you will need to call LoadImage to refresh the image when the database cursor changes position.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.Create

TIEDBBitmap.Create

Declaration

constructor Create(); overload;
constructor Create(aDataSource: TDataSource; const sImageBlobField, sFilenameField: string); overload;

Description

Create a new TIEDBBitmap object.
Second overload creates the bitmap and sets DataSource, ImageBlobField and FilenameField.

Examples

// Create DB Aware TImageEnView
procedure TMainForm.FormCreate(Sender: TObject);
begin
... Open a database table ...

fDBBitmap := TIEDBBitmap.create( DataSource1, 'Image', 'Name' );
ImageEnView1.SetExternalBitmap( fDBBitmap );
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBBitmap );
end;

// Extract an image from a database and save it
MyBMP := TIEDBBitmap.Create();
MyBMP.Read( MyTableImageBlob );
MyBmp.Write( 'D:\MyBlobImage.jpeg' );
MyBmp.Free;


TIEDBBitmap.DataSource

TIEDBBitmap.DataSource

Declaration

property DataSource: TDataSource;

Description

Link the bitmap with a dataset. You will also need to set FilenameField or ImageBlobField.

If AutoLoad is enabled the content will automatically update as the attached table changes. Otherwise you can call LoadImage.

Examples

// Display content of a table where images are stored in a blob field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.ImageBlobField := 'ImageBlob';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a blob field and name of image is stored in "ImageName" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.FilenameField := 'ImageName';
fDBBitmap.ImageBlobField := 'ImageBlob';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a folder and their path and filename is referenced by the "ImageFilename" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.FilenameField := 'ImageFilename';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a folder named "My Folder" and their filename is referenced by the "ImageName" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.ImagePath := 'C:\My Folder\';
fDBBitmap.FilenameField := 'ImageName';
ImageEnView1.SetExternalBitmap( fDBBitmap );

Note: Don't forget to free the object...
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBBitmap );
end;


TIEDBBitmap.FilenameField

TIEDBBitmap.FilenameField

Declaration

property FilenameField : string;

Description

Specifies the database field that contains the name or filename of the image. It must be the name of a TStringField.

TIEDBBitmap can be used in two ways:
- Reading images directly from a database blob field, by setting ImageBlobField to a valid field. In this situation FilenameField specifies a display name for the image (and is optional).
- Reading files stored in a local folder and referenced by a database string field, by setting ImageBlobField to ''. In this case FilenameField should either be a full path to a local file, or a name only with the folder specified by ImagePath

Note: Either ImageBlobField or FilenameField must be set (or both).

Examples

// Display content of a table where images are stored in a blob field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.ImageBlobField := 'ImageBlob';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a blob field and name of image is stored in "ImageName" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.FilenameField := 'ImageName';
fDBBitmap.ImageBlobField := 'ImageBlob';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a folder and their path and filename is referenced by the "ImageFilename" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.FilenameField := 'ImageFilename';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a folder named "My Folder" and their filename is referenced by the "ImageName" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.ImagePath := 'C:\My Folder\';
fDBBitmap.FilenameField := 'ImageName';
ImageEnView1.SetExternalBitmap( fDBBitmap );

Note: Don't forget to free the object...
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBBitmap );
end;

See Also

- ImagePath
- ImageBlobField
- ImageStorageMode

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.ImageBlobField

TIEDBBitmap.ImageBlobField

Declaration

property ImageBlobField : string;

Description

Specifies the database blob field that embeds image files. It must be the name of a TBlobField.

TIEDBBitmap can be used in two ways:
- Reading images directly from a database blob field
- Reading files stored in a local folder and referenced by a database string field

If ImageBlobField is not set then images will be loaded locally (using FilenameField)
If ImageBlobField is a valid field, then images will be read from the embedded blob field. The file format will be determined using ImageFormat. You can optionally set FilenameField to specify a field with a display name for the image.

Note: Either ImageBlobField or FilenameField must be set (or both).

Examples

// Display content of a table where images are stored in a blob field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.ImageBlobField := 'ImageBlob';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a blob field and name of image is stored in "ImageName" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.FilenameField := 'ImageName';
fDBBitmap.ImageBlobField := 'ImageBlob';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a folder and their path and filename is referenced by the "ImageFilename" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.FilenameField := 'ImageFilename';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a folder named "My Folder" and their filename is referenced by the "ImageName" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.ImagePath := 'C:\My Folder\';
fDBBitmap.FilenameField := 'ImageName';
ImageEnView1.SetExternalBitmap( fDBBitmap );

Note: Don't forget to free the object...
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBBitmap );
end;

See Also

- ImageFormat
- FilenameField
- ImageStorageMode

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.ImageFormat

TIEDBBitmap.ImageFormat

Declaration

property ImageFormat: TIOFileType;

Description

Specifies the format that images are read and written to the database.
If images are stored in a database blob field (ImageStorageMode = isEmbeddedBlob) ImageFormat specifies their image type. The format will be used when loading, and images will be saved to the database in this format.
For images referenced locally (ImageStorageMode = isLinkedFile) the ImageFormat is used only when saving image changes.
If ImageFormat is ioUnknown then the file content is analyzed to determine the format when loading, and the last detected file type is used when saving.

Default: ioUnknown

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.ImagePath

TIEDBBitmap.ImagePath

Declaration

property ImagePath: string;

Description

If your database table references images that are stored locally as files (i.e. ImageStorageMode = isLinkedFile) then you can use ImagePath to specify the folder where the files are located, i.e. the load path is specified by ImagePath + "Filename Field content".

Example usage:
- If FilenameField is the full path to a local file then set ImagePath to ''
- If FilenameField is only a name or has an invalid path then set ImagePath to the image folder

ImagePath Property Value | Content of Filename Field | Loads Image From...
 | C:\Some Folder\MyImage.jpg | C:\Some Folder\MyImage.jpg
C:\Some Folder\ | MyImage.jpg | C:\Some Folder\MyImage.jpg
C:\Some Folder\ | ..\MyImage.jpg | C:\Some Folder\..\MyImage.jpg
C:\Some Folder\ | D:\FolderX\MyImage.jpg | C:\Some Folder\MyImage.jpg
http://www.imageen.com/images/ | MyImage.jpg | http://www.imageen.com/images/MyImage.jpg
 | http://www.imageen.com/images/MyImage.jpg | http://www.imageen.com/images/MyImage.jpg

Examples

// Display content of a table where images are stored in a folder and their path and filename is referenced by the "ImageFilename" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.FilenameField := 'ImageFilename';
ImageEnView1.SetExternalBitmap( fDBBitmap );

// Display content of a table where images are stored in a folder named "My Folder" and their filename is referenced by the "ImageName" field
fDBBitmap := TIEDBBitmap.create();
fDBBitmap.DataSource := DataSource1;
fDBBitmap.ImagePath := 'C:\My Folder\';
fDBBitmap.FilenameField := 'ImageName';
ImageEnView1.SetExternalBitmap( fDBBitmap );

Note: Don't forget to free the object...
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBBitmap );
end;


TIEDBBitmap.ImageStorageMode

TIEDBBitmap.ImageStorageMode

Declaration

property ImageStorageMode: TIEImageStorageMode; (Read-Only)

Description

Returns the method that images are stored or referenced by the database.
If you have set ImageBlobField then ImageStorageMode will return isEmbeddedBlob. Otherwise it will return isLinkedFile.
Setting FilenameField has no effect on ImageStorageMode, because it can optionally provide a display name for an image stored in a blob field.

Value | Description
isEmbeddedBlob | The image is embedded within a blob field
isLinkedFile | A string field points to the filename of a local file


TIEDBBitmap.JpegQuality

TIEDBBitmap.JpegQuality

Declaration

property JpegQuality: integer;

Description

If database images are saved to JPEG then JpegQuality specifies the save quality (Range: 1 to 100. Higher is better quality, but larger).
This property updates Params.JPEG_Quality.

Default: 80

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.LoadImage

TIEDBBitmap.LoadImage

Declaration

function LoadImage(): boolean;

Description

Loads the image at the current database position into the bitmap (if it has changed). If you have enabled AutoLoad then you do not need to call LoadImage.
Returns False on failure.

Notes:
- This will only work if you have set DataSource and ImageBlobField (images stored in database table) or FilenameField (images stored locally and referenced by the database table).
- This is the same as calling Read() except that loading is skipped if content has not changed

See Also

- AutoLoad
- Read

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.Read

TIEDBBitmap.Read

Declaration

function Read(): boolean; overload;
function Read(aBlobField: TBlobField; FileType: TIOFileType = 0; IOParams: TIOParams = nil): boolean; overload;
function Read(const FileName: string; IOParams: TIOParams = nil): boolean; overload;
function Read(Stream: TStream; FileType: TIOFileType = ioUnknown; IOParams: TIOParams = nil): boolean; overload;
function Read(Buffer: pointer; BufferSize: integer; FileType: TIOFileType = ioUnknown; IOParams: TIOParams = nil): boolean;

Description

Load an image from a blob field, file or stream. This method supports all formats supported by TImageEnIO class.
The Read(); overload reads the image at the current database position using the properties of DataSource, ImageBlobField and/or FilenameField.
When reading from a blob or stream you can optionally specify the Format. If it is not specified ImageEn will determine the file type automatically.
You can optionally pass an TIOParams object for the I/O parameters of the file (see also ParamsEnabled).
Returns False on failure.

Examples

// Extract an image from a database and save it
MyBMP := TIEDBBitmap.Create();
MyBMP.Read( MyTableImageBlob );
MyBmp.Write( 'D:\MyBlobImage.jpeg' );
MyBmp.Free;

// Reduce the size of an image in the database
MyBMP := TIEDBBitmap.Create();
MyBMP.Read( MyTableImageBlobField );
MyBmp.Resample( 800, 600, rfLanczos3, true);
MyBmp.JpegQuality := 75;
MyBmp.Write( MyTableImageBlobField, ioJPEG );
MyBmp.Free;

See Also

- LoadImage
- Write

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.UpdateDatabaseImage

TIEDBBitmap.UpdateDatabaseImage

Declaration

procedure UpdateDatabaseImage();

Description

Writes any changes to the image back to the blob field of the database table (at the current cursor position). Your current settings for DataSource, ImageBlobField, ImageStorageMode and JpegQuality are used.
This method has no effect if images are not stored within the database (i.e. ImageStorageMode must be isEmbeddedBlob).
Raises exception on failure.

Note: This is the same as calling:
MyTable.Edit;
MyDBBitmap.Write();
MyTable.Post;

Example

// Rotate the current image and update the database
MyDBBitmap.Rotate( -90 );
MyDBBitmap.UpdateDatabaseImage();

See Also

- Write

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.UseMemoryStream

TIEDBBitmap.UseMemoryStream

Declaration

property UseMemoryStream: boolean

Description

If True, TIEDBBitmap will use a temporary memory stream to retrieve data from blob stream. Otherwise CreateBlobStream is used.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBBitmap.Write

TIEDBBitmap.Write

Declaration

function Write(): boolean; overload;
function Write(aBlobField: TBlobField; FileType: TIOFileType; IOParams: TIOParams = nil): boolean; overload;
function Write(const FileName: string; IOParams: TIOParams = nil): boolean; overload;
function Write(Stream: TStream; FileType: TIOFileType; IOParams: TIOParams = nil): boolean; overload;

Description

Writes image to a blob field, file or stream. This method supports all formats supported by TImageEnIO class
The Write(); overload sets the image at the current database position using the properties of DataSource, ImageBlobField and/or FilenameField..
If saving to a blob or stream you must specify the FileType
You can optionally specify an TIOParams object containing the I/O parameters of the file (see also ParamsEnabled).
Returns true on success.

Examples

// Rotate the current image in the database (assumes you have set DataSource and ImageBlobField)
fDBBitmap.Rotate( -90 );
MyTable.Edit;
MyTableName.AsString := 'Rotated 90';
fDBBitmap.Write( MyTableImageBlob, ioJPEG );
MyTable.Post;

// Append an image to the database
MyBMP := TIEDBBitmap.Create();
MyBMP.Read( 'D:\MyBlobImage.jpeg' );

MyTable.Append;
MyTableName.AsString := 'My Cool Image';
MyBmp.Write( MyTableImageBlob, ioJPEG );
MyTable.Post;
MyBmp.Free;

See Also

- UpdateDatabaseImage
- Read

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.AppendImage

TIEDBMultiBitmap.AppendImage

Declaration

function AppendImage: Integer;
function AppendImage(Stream: TStream): integer;
function AppendImage(Bitmap: TIEBitmap): integer;
function AppendImage(Bitmap : TBitmap): integer;
function AppendImage(MBitmap : TIECustomMultiBitmap);
function AppendImage(Width, Height: Integer; PixelFormat: TIEPixelFormat = ie24RGB): Integer;
function AppendImage(const FileName: String): integer;

Description

Appends a new image at the end of the database and returns the new image position. The table will be positioned at the new record.

Note: TDataset.Append and TDataset.Post will be called.

Examples

if dlgOpenImage.Execute then
fDBMBitmap.AppendImage( dlgOpenImage.Filename );

// Compare the following...
ImageEnView1.IO.LoadFromFile('C:\000.tif');
MBitmap.AppendImage();
MyTable.Edit;
MBitmap.SetImage( -1, ImageEnView1.Bitmap );
MyTable.Post;

// Which is the same as...
MBitmap.AppendImage( 'C:\000.tif' );

// Append 256 x 256 bitmap
MBitmap.AppendImage( 256, 256, ie24RGB );

// Append a file from the web
MBitmap.AppendImage( 'http://www.imageen.com/graphics/imageen.gif' );

See Also

- InsertImage
- SetImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.Create

TIEDBMultiBitmap.Create

Declaration

constructor Create(); overload;
constructor Create(aDataSource: TDataSource; const sImageBlobField, sFilenameField: string; bFilenameFieldIsUnique: Boolean = False); overload;

Description

Create a new TIEDBMultiBitmap object.
Second overload creates the bitmap and sets DataSource, ImageBlobField, FilenameField and FilenameFieldIsUnique.

Example

// Create DB Aware TImageEnMView
procedure TMainForm.FormCreate(Sender: TObject);
begin
... Open a database table ...

fDBMBitmap := TIEDBMultiBitmap.create( DataSource1, 'Image', 'Name' );
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBMBitmap );
end;


TIEDBMultiBitmap.DataSource

TIEDBMultiBitmap.DataSource

Declaration

property DataSource: TDataSource;

Description

Link the multi-bitmap with a dataset. The content will automatically update as the attached table changes. You will also need to set FilenameField or ImageBlobField.

Note: The maximum images that will be loaded is specified by MaxDisplayRecords

Examples

// Display content of a table where images are stored in a blob field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.ImageBlobField := 'ImageBlob';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a blob field and name of image is stored in "ImageName" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.FilenameField := 'ImageName';
fDBMBitmap.ImageBlobField := 'ImageBlob';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a folder and their path and filename is referenced by the "ImageFilename" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.FilenameField := 'ImageFilename';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a folder named "My Folder" and their filename is referenced by the "ImageName" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.ImagePath := 'C:\My Folder\';
fDBMBitmap.FilenameField := 'ImageName';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

Note: Don't forget to free the object...
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBMBitmap );
end;


TIEDBMultiBitmap.DefaultFilename

TIEDBMultiBitmap.DefaultFilename

Declaration

property DefaultFilename: string;

Description

Specifies a filename to use when an image needs to be saved (if the file already exists a numbered filename will be generated).
If images are stored as local files (ImageStorageMode = isLinkedFile) then when appending bitmaps a file will be saved and then referenced by the database.
For images referenced locally using only FilenameField the is useful only if images do not have a file extension.
If you have set an ImagePath then DefaultFilename need only be a name, such as "Image". Otherwise a full path must be set, e.g. "C:\My Image Folder\Image"

Default: 'Image'

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.DeleteImage

TIEDBMultiBitmap.DeleteImage

Declaration

procedure DeleteImage(idx: integer);

Description

Removes the image, idx from the database table.

Examples

// Delete the selected image in a TImageEnMView attached to a TIEDBMultiBitmap from the database
fDBMBitmap.DeleteImage( ImageEnMView1.SelectedImage );


TIEDBMultiBitmap.Destroy

TIEDBMultiBitmap.Destroy

Declaration

destructor Destroy;

Description

Frees the object.


TIEDBMultiBitmap.FilenameField

TIEDBMultiBitmap.FilenameField

Declaration

property FilenameField : string;

Description

Specifies the database field that contains the name or filename of the image. It must be the name of a TStringField.

TIEDBMultiBitmap can be used in two ways:
- Reading images directly from a database blob field, by setting ImageBlobField to a valid field. In this situation FilenameField specifies a display name for the image (and is optional). It will also improves performance, especially if the filename field is unique.
- Reading files stored in a local folder and referenced by a database string field, by setting ImageBlobField to ''. In this case FilenameField should either be a full path to a local file, or a name only with the folder specified by ImagePath

Notes:
- Either ImageBlobField or FilenameField must be set (or both).
- You should set FilenameFieldIsUnique if the field is unique to improve performance

See Also

- ImagePath
- FilenameFieldIsUnique
- ImageBlobField
- ImageStorageMode

Examples

// Display content of a table where images are stored in a blob field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.ImageBlobField := 'ImageBlob';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a blob field and name of image is stored in "ImageName" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.FilenameField := 'ImageName';
fDBMBitmap.ImageBlobField := 'ImageBlob';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a folder and their path and filename is referenced by the "ImageFilename" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.FilenameField := 'ImageFilename';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a folder named "My Folder" and their filename is referenced by the "ImageName" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.ImagePath := 'C:\My Folder\';
fDBMBitmap.FilenameField := 'ImageName';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

Note: Don't forget to free the object...
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBMBitmap );
end;


TIEDBMultiBitmap.FilenameFieldIsUnique

TIEDBMultiBitmap.FilenameFieldIsUnique

Declaration

property FilenameFieldIsUnique: Boolean;

Description

If the specified filename field, FilenameField, is guaranteed to be unique (i.e. each record has a different name specified) then set FilenameFieldIsUnique to true. This will improve performance and caching.
Also, if you are using ImageStorageMode = isLinkedFile and your filename field contains a full path (ImagePath = '') you can set this to true.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.Flip

TIEDBMultiBitmap.Flip

Declaration

procedure Flip(idx: integer; Dir: TFlipDir);

Description

Flips (mirrors) a frame within the image across the horizontal or vertical axis and updates the image in the database.

Examples

// Rotate the selected image in a TImageEnMView attached to a TIEDBMultiBitmap
fDBMBitmap.Rotate( ImageEnMView1.SelectedImage, -90 );


TIEDBMultiBitmap.FollowDBCursor

TIEDBMultiBitmap.FollowDBCursor

Declaration

property FollowDBCursor: boolean;

Description

If True and the TIEDBMultiBitmap is attached to a TImageEnMView then changes to the database table cursor will be reflected in the TImageEnMView. In other words, navigating the table will change the selected image in the TImageEnMView.

Default: false (the position of the database table cursor is ignored)


TIEDBMultiBitmap.GetTIEBitmap

TIEDBMultiBitmap.GetTIEBitmap

Declaration

function GetTIEBitmap(idx: Integer): TIEBitmap;

Description

Creates a TIEBitmap object from the image at index, idx.
You will need to call ReleaseBitmap to free the TIEBitmap object and optionally update the image in the database

Note: If ParamsEnabled=True then the returned TIEBitmap will have Params.

Example

// Prompt the user to apply effects to a database image
var
bmp: TIEBitmap;
proc: TImageEnProc;
bChanged: Boolean;
begin
if ImageEnMView1.SelectedImage < 0 then
exit;

bmp := fDBMBitmap.GetTIEBitmap( ImageEnMView1.SelectedImage );
proc := TImageEnProc.CreateFromBitmap( bmp );
proc.PreviewsParams := proc.PreviewsParams + [ prppDefaultLockPreview ];
bChanged := proc.DoPreviews();
fDBMBitmap.ReleaseBitmap( ImageEnMView1.SelectedImage, bChanged );
FreeAndNil( proc );
end;


TIEDBMultiBitmap.ImageBlobField

TIEDBMultiBitmap.ImageBlobField

Declaration

property ImageBlobField : string;

Description

Specifies the database blob field that embeds image files. It must be the name of a TBlobField.

TIEDBMultiBitmap can be used in two ways:
- Reading images directly from a database blob field
- Reading files stored in a local folder and referenced by a database string field

If ImageBlobField is not set then images will be loaded locally (using FilenameField)
If ImageBlobField is a valid field, then images will be read from the embedded blob field. The file format will be determined using ImageFormat. You can optionally set FilenameField to specify a field with a display name for the image. Setting FilenameField will also improve performance, especially if the filename field is unique.

Note: Either ImageBlobField or FilenameField must be set (or both).

See Also

- ImageFormat
- FilenameField
- ImageStorageMode

Examples

// Display content of a table where images are stored in a blob field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.ImageBlobField := 'ImageBlob';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a blob field and name of image is stored in "ImageName" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.FilenameField := 'ImageName';
fDBMBitmap.ImageBlobField := 'ImageBlob';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a folder and their path and filename is referenced by the "ImageFilename" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.FilenameField := 'ImageFilename';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a folder named "My Folder" and their filename is referenced by the "ImageName" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.ImagePath := 'C:\My Folder\';
fDBMBitmap.FilenameField := 'ImageName';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

Note: Don't forget to free the object...
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBMBitmap );
end;


TIEDBMultiBitmap.ImageFormat

TIEDBMultiBitmap.ImageFormat

Declaration

property ImageFormat: TIOFileType;

Description

Specifies the format that images are read and written to the database.
If images are stored in a database blob field (ImageStorageMode = isEmbeddedBlob) ImageFormat specifies their image type. The format will be used when loading, and images will be saved to the database in this format.
For images referenced locally (ImageStorageMode = isLinkedFile) the ImageFormat is used only when saving image changes.
If ImageFormat is ioUnknown (Default) then the file content is analyzed to determine the format when loading, and the last detected file type is used when saving.

Default: ioUnknown

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.ImagePath

TIEDBMultiBitmap.ImagePath

Declaration

property ImagePath: string;

Description

If your database table references images that are stored locally as files (i.e. ImageStorageMode = isLinkedFile) then you can use ImagePath to specify the folder where the files are located, i.e. the load path is specified by ImagePath + "Filename Field content".

Example usage:
- If FilenameField is the full path to a local file then set ImagePath to ''
- If FilenameField is only a name or has an erroneous path then set ImagePath to the image folder

ImagePath Property Value | Content of Filename Field | Loads Image From...
 | C:\Some Folder\MyImage.jpg | C:\Some Folder\MyImage.jpg
C:\Some Folder\ | MyImage.jpg | C:\Some Folder\MyImage.jpg
C:\Some Folder\ | ..\MyImage.jpg | C:\Some Folder\..\MyImage.jpg
C:\Some Folder\ | D:\FolderX\MyImage.jpg | C:\Some Folder\MyImage.jpg
http://www.imageen.com/images/ | MyImage.jpg | http://www.imageen.com/images/MyImage.jpg
 | http://www.imageen.com/images/MyImage.jpg | http://www.imageen.com/images/MyImage.jpg

Examples

// Display content of a table where images are stored in a folder and their path and filename is referenced by the "ImageFilename" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.FilenameField := 'ImageFilename';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

// Display content of a table where images are stored in a folder named "My Folder" and their filename is referenced by the "ImageName" field
fDBMBitmap := TIEDBMultiBitmap.create();
fDBMBitmap.DataSource := DataSource1;
fDBMBitmap.ImagePath := 'C:\My Folder\';
fDBMBitmap.FilenameField := 'ImageName';
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );

Note: Don't forget to free the object...
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil( fDBMBitmap );
end;


TIEDBMultiBitmap.ImageStorageMode

TIEDBMultiBitmap.ImageStorageMode

Declaration

property ImageStorageMode: TIEImageStorageMode; (Read-Only)

Description

Returns the method that images are stored or referenced by the database.

If you have set ImageBlobField then ImageStorageMode will return isEmbeddedBlob. Otherwise it will return isLinkedFile.

Setting FilenameField has no effect on ImageStorageMode, because it can optionally provide a display name for an image stored in a blob field.

Value | Description
isEmbeddedBlob | The image is embedded within a blob field
isLinkedFile | A string field points to the filename of a local file


TIEDBMultiBitmap.InsertImage

TIEDBMultiBitmap.InsertImage

Declaration

procedure InsertImage(idx: integer); overload;
procedure InsertImage(Idx : integer; Stream : TStream); overload;
procedure InsertImage(Idx : integer; Bitmap : TIEBitmap); overload;
procedure InsertImage(Idx : integer; Bitmap : TBitmap); overload;
procedure InsertImage(Idx : integer; MBitmap : TIECustomMultiBitmap); overload;
procedure InsertImage(Idx : integer; Width, Height : integer; PixelFormat : TIEPixelFormat = ie24RGB); overload;
procedure InsertImage(Idx : integer; const FileName : string); overload;

Description

Inserts a new image into the database at position, idx (0 is the first). The table will be positioned at the new record.

Note: TDataset.Insert and TDataset.Post will be called

Examples

// Prompt to insert a new image into the database after the selected record
if dlgOpenImage.Execute then
fDBMBitmap.InsertImage( ImageEnMView1.SelectedImage, dlgOpenImage.Filename );

// Compare the following...
ImageEnView1.IO.LoadFromFile('C:\000.tif');
MBitmap.InsertImage( 0 );
MyTable.Edit;
MBitmap.SetImage( -1, ImageEnView1.Bitmap );
MyTable.Post;

// Which is the same as...
MBitmap.InsertImage( 0, 'C:\000.tif' );

// Insert 256 x 256 bitmap
MBitmap.InsertImage(0, 256, 256, ie24RGB);

// Insert a file from the web
MBitmap.InsertImage( 0, 'http://www.imageen.com/graphics/imageen.gif' );

See Also

- AppendImage
- SetImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.JpegQuality

TIEDBMultiBitmap.JpegQuality

Declaration

property JpegQuality: integer;

Description

If database images are saved to JPEG then JpegQuality specifies the save quality (Range: 1 to 100. Higher is better quality, but larger).
This property updates Params.JPEG_Quality.

Default: 80

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.MaxDisplayRecords

TIEDBMultiBitmap.MaxDisplayRecords

Declaration

property MaxDisplayRecords: Integer;

Description

TIEDBMultiBitmap will load all records of your database table into memory up to the maximum specified by MaxDisplayRecords. If your table contains more records than MaxDisplayRecords they will not be displayed, so you should use table filtering to ensure the record count does not become too large and affect performance.
Default: 10,000

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.ReadOnly

TIEDBMultiBitmap.ReadOnly

Declaration

property ReadOnly: Boolean;

Description

Determines whether the user can change the contents of the field using the image control.


TIEDBMultiBitmap.ReleaseBitmap

TIEDBMultiBitmap.ReleaseBitmap

Declaration

procedure ReleaseBitmap(idx: Integer; SaveChanges: Boolean);

Description

Releases the bitmap created with GetBitmap or GetTIEBitmap method.

If saveChanges then your modifications will be written to the database (TDataset.Edit/Post will be called).

Parameter | Description
idx | The image index to release.
saveChanges | If true (default), changes to the bitmap will be written to the database.

Example

// Prompt the user to apply effects to a database image
var
bmp: TIEBitmap;
proc: TImageEnProc;
bChanged: Boolean;
begin
if ImageEnMView1.SelectedImage < 0 then
exit;

bmp := fDBMBitmap.GetTIEBitmap( ImageEnMView1.SelectedImage );
proc := TImageEnProc.CreateFromBitmap( bmp );
proc.PreviewsParams := proc.PreviewsParams + [ prppDefaultLockPreview ];
bChanged := proc.DoPreviews();
fDBMBitmap.ReleaseBitmap( ImageEnMView1.SelectedImage, bChanged );
FreeAndNil( proc );
end;


TIEDBMultiBitmap.Resample

TIEDBMultiBitmap.Resample

Declaration

procedure Resample(idx: integer; ScaleBy: Double; FilterType: TResampleFilter = rfNone);

Description

Resizes a frame of the current image and updates the database. The content of the image changes (stretched to new size).

Parameter | Description
ScaleBy | The amount to scale all images. E.g. 0.5 would halve the size of all images while respecting the proportions
FilterType | Resampling interpolation algorithm

Examples

// Halve the size of the first image in a TImageEnMView attached to a TIEDBMultiBitmap
fDBMBitmap.Resample( 0, 0.5, rfLanczos3 );


TIEDBMultiBitmap.Rotate

TIEDBMultiBitmap.Rotate

Declaration

procedure Rotate(idx: integer; Angle: double; AntialiasMode: TIEAntialiasMode = ierFast; BackgroundColor: TColor = clWhite);

Description

Rotates a frame of the current image by the specified angle (negative or positive degrees counter-clockwise) and updates it in the database.

AntialiasMode specifies the anti-aliasing algorithm that is used to improve rotation quality:
ierNone : No anti-aliasing (lowest quality)
ierFast : Fast but lower quality
ierBilinear : Bilinear, high quality
ierBicubic : Bicubic, highest quality

BackgroundColor specifies a background color to fill new regions (i.e. when not rotating at a 90 degree angle)

Examples

// Rotate the selected image in a TImageEnMView attached to a TIEDBMultiBitmap
fDBMBitmap.Rotate( ImageEnMView1.SelectedImage, -90 );

// Rotate the first frame of an image 45° clockwise at highest quality with a white background color
MBitmap.Rotate( 0, 315, ierBicubic, clWhite );

See Also

- AngleToImageEnRotateAngle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.SetImage

TIEDBMultiBitmap.SetImage

Declaration

procedure SetImage(idx: Integer; srcImage: TIEBaseBitmap); overload;
procedure SetImage(idx: Integer; srcImage: TBitmap); overload;
procedure SetImage(idx: Integer; width, height: Integer; PixelFormat: TIEPixelFormat); overload;
function SetImage(idx: integer; const FileName: WideString; SourceImageIndex: Integer = 0; FileFormat: TIOFileType = ioUnknown): boolean; overload;
function SetImage(idx: Integer; Stream: TStream; SourceImageIndex: Integer = 0; FileFormat: TIOFileType = ioUnknown): Boolean; overload

Description

Updates the current image in the database table. If images are stored in the database (i.e. ImageBlobField is set), the image will be updated in the blob. If images are stored as files referenced by the database (i.e. ImageBlobField is NOT set), the image changes will be saved to file (using DefaultFilename and without an overwrite warning).

NOTE: idx should be set to -1. Unlike TIEMultiBitmap.SetImage, TIEDBMultiBitmap.SetImage always works on the CURRENT database table record.

With overloads 2 and 3 the srcImage bitmap is copied internally; therefore you can free srcImage after calling SetImage.
With overload 4 the image can be a local file or web page based image.
With overloads 3 and 4 use SourceImageIndex to specify the image index if the source file is a multi-frame file (such as a TIFF or AVI). You can also specify the FileFormat if it cannot be determined by the file extension or content.

TDataset.Edit and TDataset.Post are NOT called (Unlike AppendImage and InsertImage)

Examples

ImageEnView1.IO.LoadFromFile('C:\000.tif');
MBitmap.InsertImage( 0 );
MyTable.Edit;
MBitmap.SetImage( -1, ImageEnView1.Bitmap );
MyTable.Post;

MyTable.Edit;
MyTableFilename.AsString := 'My Cool Image.jpg';
ImageEnMView1.SetImage( -1, stream );
MyTable.Post;

MyTable.Edit;
MyTableFilename.AsString := 'myfile.jpg';
ImageEnMView1.SetImage( -1, 'D:\myfile.jpg' );
MyTable.Post;

MyTable.Edit;
MyTableFilename.AsString := 'My Web Image';
ImageEnMView1.SetImage( -1, 'http://www.imageen.com/image.jpg' );
MyTable.Post;

See Also

- InsertImage
- AppendImage
- DefaultFilename

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBMultiBitmap.Update

TIEDBMultiBitmap.Update

Declaration

procedure Update;

Description

Refresh the content of the TIEDBMultiBitmap from the database and update the TImageEnMView if connected.


TIEDBMultiBitmap.UseMemoryStream

TIEDBMultiBitmap.UseMemoryStream

Declaration

property UseMemoryStream: boolean

Description

If True, TIEDBMultiBitmap will use a temporary memory stream to retrieve data from blob stream. Otherwise CreateBlobStream is used.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDBorderStyle

TIEDBorderStyle

Declaration

TIEDBorderStyle = (iepsDefault, iepsCropped, iepsCropShadow, iepsSoftShadow);

Description

Value | Description
iepsDefault | 3D border displayed around the preview box
iepsCropped | 3D border displayed around the image
iepsCropShadow | Shadow is displayed around the image
iepsSoftShadow | Soft (high quality) shadow is displayed around the image


TIEDcimAcquire

TIEDcimAcquire

Description

The TIEDcimAcquire class is used by TIEAcquireParams to retrieve images from connected devices and digital camera cards. It uses the Windows Portable Devices API.

Properties

AcquireFormats
Aborting
OnLog
SelectedSource
Sources
SourceCount

Methods

Create
Destroy
Acquire
CopyImages
Refresh
SourceNameToIndex

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDcimAcquire.Aborting

TIEDcimAcquire.Aborting

Declaration

property Aborting : Boolean; (Read/Write)

Description

Set to false to cancel the current acquisition of images (e.g. during the OnProgress event)


TIEDcimAcquire.Acquire

TIEDcimAcquire.Acquire

Declaration

function Acquire(DestBitmap : TIEBitmap; DestIOParams: TObject = nil) : boolean; overload;
function Acquire(OnGetImage: TIEMultiCallBack; OnProgress: TIEProgressEvent = nil) : boolean; overload;

Description

Retrieve files from the selected source (and all sub-folders).

** Generally you should NOT call this method directly. Use Acquire or Acquire Instead **

Note: Use AcquireFormats to specify the file formats that are retrieved

Acquiring a single image:
function Acquire(DestBitmap : TIEBitmap; DestIOParams: TObject = nil) : boolean;
Parameter | Description
DestBitmap | The TIEBitmap which will be filled with the acquired image
DestIOParams | A TIOParams object which will be filled with the parameters of the acquired image (optional)

Acquiring multiple images:
function Acquire(OnGetImage: TIEMultiCallBack; OnProgress: TIEProgressEvent = nil) : boolean;
Parameter | Description
ImageAcquireCallBack | Event to call for every acquired image
OnProgress | Event to display acquisition progress and allow aborting (optional)

Example

// Retrieve the first image from the first connected camera card
if SourceCount > 0 then
begin
SelectedSource := 0;
Acquire( ImageEnView1.IEBitmap );
ImageEnView1.Update;
end;

// Retrieve all images from the first connected camera card
// Assumes you have created an OnGetImage event that does something with the retrieved images
if SourceCount > 0 then
begin
SelectedSource := 0;
Acquire( OnGetImage );
end;


TIEDcimAcquire.AcquireFormats

TIEDcimAcquire.AcquireFormats

Declaration

property AcquireFormats : String; (Read/Write)

Description

A list of extensions for file types to retrieve when calling Acquire or CopyImages, e.g. '*.jpg;*.jpeg;*.bmp;' or '*.*'

If AcquireFormats is '' then all supported files types (including video types) are retrieved.


TIEDcimAcquire.CopyImages

TIEDcimAcquire.CopyImages

Declaration

function CopyImages(const sDestPath : string; OnProgress: TIEProgressEvent = nil; bDeleteFromSource : Boolean = False) : boolean;

Description

Copy all files from the selected source (and all sub-folders) to the path, sDestPath.
If an OnProgress event is passed then a progress dialog can be displayed to the user and retrieval cancelled by setting Aborting to True.
If bDeleteFromSource is true then the images will be removed from the source after retrieval. Use AcquireFormats to specify the file formats that are retrieved.

Warning: Ensure sDestPath points to a valid path. You should create a new folder for the retrieval as this procedure will OVERWRITE ALL EXISTING FILES WITHOUT WARNING

Example

// Copy all images from the first connected camera card
if Sourcecount > 0 then
begin
SelectedSource := 0;
CheckCreateNewFolder(sNewFolder);
CopyImages(sNewFolder);
end;


TIEDcimAcquire.Create

TIEDcimAcquire.Create

Declaration

constructor Create(Owner: TComponent);


TIEDcimAcquire.Destroy

TIEDcimAcquire.Destroy

Declaration

destructor Destroy; override;


TIEDcimAcquire.OnLog

TIEDcimAcquire.OnLog

Declaration

property OnLog : TIEPortableDeviceLogEvent;

Description

Specify an OnLog handler to receive Windows Portable Devices API debugging information.

Example

procedure TfrmMain.FormShow(Sender: TObject);
begin
ImageEnView1.IO.AcquireParams.DCIMParams.OnLog := AddToLog;
end;

procedure TfrmMain.AddToLog(Sender : TObject; const sMsg : String);
begin
memLog.Lines.Add( sMsg );
end;


TIEDcimAcquire.Refresh

TIEDcimAcquire.Refresh

Declaration

function Refresh() : Boolean;

Description

Rebuilds the source list to detect any newly connected/removed devices.

Result is false if a failure occured.

Example

// Add the name of all sources to our source selector
procedure TfrmMain.btnRefreshClick(Sender: TObject);
var
I : Integer;
begin
fDCIM.Refresh;
cmbSources.Items.Clear;
For I := 0 to fDCIM.SourceCount - 1 do
cmbSources.Items.Add( fDCIM.Sources[ I ];
end;


TIEDcimAcquire.SelectedSource

TIEDcimAcquire.SelectedSource

Declaration

property SelectedSource : Integer; (Read/Write)

Description

The index of the selected source in the source list, which will be used for subsequent calls to Acquire or CopyImages.

See Also

- Sources
- SourceCount
- SourceNameToIndex

Example

// Retrieve all images from the first connected device
SelectedSource := 0;
Acquire( OnGetImage );

// Acquire from the source named, "GT-I8190T Card"
Idx := SourceNameToIndex( 'GT-I8190T Card' );
if Idx > -1 then
begin
SelectedSource := Idx;
Acquire( OnGetImage );
end;

// Display the name of the selected device
edtSource.Text := fDCIM.Sources[ fDCIM.SelectedSource ].Name;


TIEDcimAcquire.SourceCount

TIEDcimAcquire.SourceCount

Declaration

property SourceCount : Integer; (Read-only)

Description

Returns the count of items in the source list.

See Also

- Sources
- SourceNameToIndex

Example

// Add the name of all sources to our source selector
procedure TfrmMain.btnRefreshClick(Sender: TObject);
var
I : Integer;
begin
fDCIM.Refresh;
cmbSources.Items.Clear;
For I := 0 to fDCIM.SourceCount - 1 do
cmbSources.Items.Add( fDCIM.Sources[ I ];
end;


TIEDcimAcquire.SourceNameToIndex

TIEDcimAcquire.SourceNameToIndex

Declaration

function SourceNameToIndex(const sName : string) : Integer;

Description

Return the index of an item in the source list.

sName can be one of the following:
Value | Description
Source Name | A name for the source as returned by Sources.Name, e.g. 'GT-I8190T Card'
Device Name | The device containing a DCIM folder name (as returned by Sources.DeviceName), e.g. 'GT-I8190T'
Path | The path of a DCIM folder, e.g. 'I:\DCIM\'
Drive Letter | The letter of a connected camera card or device containing a DCIM folder, e.g. 'I'
Blank | The default device will be selected

See Also

- SelectedSource

Example

// Acquire from the camera card on H drive
Idx := SourceNameToIndex( 'H' );
if Idx > -1 then
begin
SelectedSource := Idx;
Acquire( OnGetImage );
end;

// Acquire from the card on the device named, GT-I8190T
Idx := SourceNameToIndex( 'GT-I8190T Card' );
if Idx > -1 then
begin
SelectedSource := Idx;
Acquire( OnGetImage );
end;

// Acquire from the first source on the device named, GT-I8190T
Idx := SourceNameToIndex( 'I8190T' );
if Idx > -1 then
begin
SelectedSource := Idx;
Acquire( OnGetImage );
end;


TIEDcimAcquire.Sources

TIEDcimAcquire.Sources

Declaration

property Sources[Index : Integer] : TIEPortableDevicesSource; (Read-only)

Description

Return details of a DCIM source.

Note: Each source represents a DCIM folder on a device, so a device may appear twice in the list if it has multiple DCIM folders.

See Also

- SelectedSource
- SourceCount
- SourceNameToIndex

Example

// Display the name of the selected device
edtSource.Text := fDCIM.Sources[ fDCIM.SelectedSource ].Name;

// Add the name of all sources to our source selector
procedure TfrmMain.btnRefreshClick(Sender: TObject);
var
I : Integer;
begin
fDCIM.Refresh;
cmbSources.Items.Clear;
For I := 0 to fDCIM.SourceCount - 1 do
cmbSources.Items.Add( fDCIM.Sources[ I ];
end;


TIEDefaultFolder

TIEDefaultFolder

Declaration

TIEDefaultFolder = (iedfNone, iedfDesktop, iedfDrives, iedfRootDir, iedfMyDocuments, iedfMyPictures, iedfMyVideos, iedfSpecified);

Description

Value | Description
iedfNone | The control is blank on start-up
iedfDesktop | The Windows Desktop is shown
iedfDrives | "This PC" (Windows 8 or newer) or "My Computer" (Windows XP) is shown
iedfRootDir | The drive containing Windows is shown (usually C:\)
iedfMyDocuments | The user's "Documents" folder is shown
iedfMyPictures | The user's "Pictures" folder is shown
iedfMyVideos | The user's "Videos" folder is shown
iedfSpecified | The path specified in Folder is shown


TIEDeinterlaceMode

TIEDeinterlaceMode

Declaration

TIEDeinterlaceMode = (iedDiscard, iedIntelliMerge);

Description

iedDiscard just discards one row every two.
iedIntelliMerge merges only if the two fields are similar (less movement).


TIEDestroyImageEvent

TIEDestroyImageEvent

Declaration

TIEDestroyImageEvent = procedure(Sender: TObject; idx: integer) of object;

Description

Used by OnDestroyImage whenever (immediately before) an image is destroyed.


TIEDialogBackgroundStyle

TIEDialogBackgroundStyle

Declaration

TIEDialogBackgroundStyle = (iedbDefault, iedbPaper, iedbMetal, iedbCustom);


TIEDialogCenter

TIEDialogCenter

Declaration

TIEDialogCenter = procedure(Wnd: HWnd);


TIEDialogsMeasureUnit

TIEDialogsMeasureUnit

Declaration

TIEDialogsMeasureUnit = (ieduInches, ieduCm, ieduSelectableDefInches, ieduSelectableDefCm);

Description

Value | Description
ieduInches | Use inches (default)
ieduCm | Use centimeters (Cm)
ieduSelectableDefInches | Use inches but allow the user to change it
ieduSelectableDefCm | Use centimeters but allow the user to change it


TIEDialogType

TIEDialogType

Declaration

TIEDialogType = (iedtDialog, iedtMaxi);

Description

iedtDialog : Show a dialog window.
iedtMaxi : Show a maximized window.


TIEDibBitmap

TIEDibBitmap

Description

TIEDibBitmap encapsulates a Windows DIB section.
It inherits from TIEBaseBitmap.

Methods and Properties

- Allocate
- AllocateBits
- Assign
- BitCount
- Bits
- CopyToTBitmap
- DIB
- FreeBits
- HDC
- Height
- Rowlen
- Scanline
- Width

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDibBitmap.Allocate

TIEDibBitmap.Allocate

Declaration

function Allocate(ImageWidth, ImageHeight: integer; ImagePixelFormat: TIEPixelFormat): boolean;

Description

Allocates a new windows DIB section of the specified size and pixel format.
ImagePixelFormat can be ie1g or ie24RGB.
Returns True on success.


TIEDibBitmap.AllocateBits

TIEDibBitmap.AllocateBits

Declaration

function AllocateBits(BmpWidth, BmpHeight, BmpBitCount: dword): boolean;

Description

Allocates a new windows DIB section of the specified size and bitcount.
BmpBitCount can be 1 or 24.
Returns True on success.


TIEDibBitmap.Assign

TIEDibBitmap.Assign

Declaration

procedure Assign(Source: TObject);

Description

Copies the DIB bitmap from a Source TIEDibBitmap object.


TIEDibBitmap.BitCount

TIEDibBitmap.BitCount

Declaration

property BitCount: dword;

Description

Returns the DIB bit count (1 or 24).


TIEDibBitmap.Bits

TIEDibBitmap.Bits

Declaration

property Bits: pointer;

Description

Returns a pointer to bitmap bits.


TIEDibBitmap.CopyToTBitmap

TIEDibBitmap.CopyToTBitmap

Declaration

procedure CopyToTBitmap(Dest: TBitmap);

Description

Copies the DIB bitmap to a TBitmap object.


TIEDibBitmap.DIB

TIEDibBitmap.DIB

Declaration

property DIB: Thandle;

Description

Returns the DIB handle.


TIEDibBitmap.FreeBits

TIEDibBitmap.FreeBits

Declaration

procedure FreeBits;

Description

Frees the allocated DIB section.


TIEDibBitmap.HDC

TIEDibBitmap.HDC

Declaration

property HDC: THandle;

Description

Returns the device context (HDC) handle of this DIB section.


TIEDibBitmap.Height

TIEDibBitmap.Height

Declaration

property Height: dword;

Description

Returns the DIB height.


TIEDibBitmap.PixelFormat

TIEDibBitmap.PixelFormat

Declaration

property PixelFormat: TIEPixelFormat

Description

Specifies the pixel format.


TIEDibBitmap.Rowlen

TIEDibBitmap.Rowlen

Declaration

property Rowlen: integer;

Description

Returns the row length in bytes.


TIEDibBitmap.Scanline

TIEDibBitmap.Scanline

Declaration

property Scanline[row: integer]: pointer;

Description

Returns a pointer to the specified row.


TIEDibBitmap.Width

TIEDibBitmap.Width

Declaration

property Width: dword

Description

Returns the DIB width.


TIEDicomCompression

TIEDicomCompression

Declaration

TIEDicomCompression = (iedcUncompressed_Implicit, // uncompressed, little endian, implicit (IEDICOM_TRANSFERSYNTAX_UNCOMP_LITTLEENDIAN_IMPLICIT)
iedcUncompressed, // uncompressed, little endian, explicit (IEDICOM_TRANSFERSYNTAX_UNCOMP_LITTLEENDIAN_EXPLICIT)
iedcUncompressed_BE, // uncompressed, big endian, explicit (IEDICOM_TRANSFERSYNTAX_UNCOMP_BIGENDIAN_EXPLICIT)
iedcRLE, // RLE
iedcLSJPEG1, // lossless jpeg (IEDICOM_TRANSFERSYNTAX_LOSSLESSJPEG1)
iedcLSJPEG2, // lessless jpeg (IEDICOM_TRANSFERSYNTAX_LOSSLESSJPEG2)
iedcJPEG, // jpeg 8 bit (IEDICOM_TRANSFERSYNTAX_LOSSYJPEG8BIT)
iedcJPEG12Bit, // jpeg 12 bit (IEDICOM_TRANSFERSYNTAX_LOSSYJPEG12BIT)
iedcJPEG2000, // Lossy jpeg 2000 (IEDICOM_TRANSFERSYNTAX_LOSSYJPEG2000)
iedcLosslessJPEG2000, // Lossless jpeg 2000 (IEDICOM_TRANSFERSYNTAX_LOSSLESSJPEG2000)
iedcMPEG); // MPEG (IEDICOM_TRANSFERSYNTAX_MPEG)


TIEDicomInclude

TIEDicomInclude

Declaration

TIEDicomInclude = set of (diDeprecated, diProprietary, diChildTags, diUnknown);

Description

Value | Description
diDeprecated | Include tags that have been retired in the NEMA standard
diProprietary | Include tags that are not in the NEMA standard (vendor specific tags)
diChildTags | Include subordinate tags (children of parent tags)
diUnknown | Include tags even if they do not have a description


TIEDicomRange

TIEDicomRange

Declaration

TIEDicomRange = (iedrAdjust, iedrSetBlackWhite);

Description

Value | Description
iedrAdjust | Adjust pixels values
iedrSetBlackWhite | Set TIEBitmap.WhiteValue and TIEBitmap.BlackValue


TIEDicomTag

TIEDicomTag

Declaration

type TIEDicomTag = record
Group : Word;
Element : Word;
DataType : TIEDicomTagType;
Data : Pointer;
DataLen : Integer;
Children : TObjectList; // Each item must be a TIEDicomTags. If defined then Data = nil and DataLen = 0
end;


TIEDicomTags

TIEDicomTags

Description

Metadata within the Dicom file. You can view a list of tags at: Dicom Tag List

Methods and Properties

AddTag
Clear
Count
DeleteGroup
DeleteTag
FindNestedTag
GetTag
GetTagChildren
GetTagDescription
GetTagNumeric
GetTagString
IndexOf
SetTagByteBuffer
SetTagNumeric
SetTagString
Sorted

Demo

Demos\InputOutput\Dicom\Dicom.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDicomTags.AddTag

TIEDicomTags.AddTag

Declaration

function AddTag(Group: word; Element: word; DataType: TIEDicomTagType; Data: pointer; DataLen: integer; Children: TObjectList = nil): integer;

Description

Adds a new DICOM tag. You can view a list of tags at: Dicom Tag List
Data is the pointer to data buffer (of DataLen length). You must not free this buffer.
Returns the tag position.

Note: For adding and replacing tags it is normally preferable to use SetTagNumeric, SetTagString or SetTagByteBuffer

Example

Children := TObjectList.Create();
SubTags := TIEDicomTags.Create();
SubTags.Sorted := false;

SubTags.SetTagNumeric( $4, $1400, 0, False );
SubTags.SetTagNumeric( $4, $1410, 65535, False );
SubTags.SetTagNumeric( $4, $1420, 0, False );
SubTags.SetTagString( $4, $1430, 'PATIENT', False );

SubTags.SetTagNumeric( $4, $1400, 0, False );
SubTags.SetTagNumeric( $4, $1410, 65535, False );
SubTags.SetTagNumeric( $4, $1420, 0, False );
SubTags.SetTagString( $4, $1430, 'STUDY', False );

SubTags.SetTagNumeric( $4, $1400, 0, False );
SubTags.SetTagNumeric( $4, $1410, 65535, False );
SubTags.SetTagNumeric( $4, $1420, 0, False );
SubTags.SetTagString( $4, $1430, 'SERIES', False );

SubTags.SetTagNumeric( $4, $1400, 0, False );
SubTags.SetTagNumeric( $4, $1410, 65535, False );
SubTags.SetTagNumeric( $4, $1420, 0, False );
SubTags.SetTagString( $4, $1430, 'IMAGE', False );
SubTags.SetTagString( $4, $1500, 'C:\FileName.jpg', False );

Children.Add( SubTags );
ImageEnMView1.MIO.Params[0].DICOM_Tags.AddTag( 4, $1220, dvSQ, nil, -1, Children );


TIEDicomTags.Clear

TIEDicomTags.Clear

Declaration

procedure Clear;

Description

Removes all loaded DICOM tags.


TIEDicomTags.Count

TIEDicomTags.Count

Declaration

property Count: integer;

Description

Returns number of loaded DICOM tags.


TIEDicomTags.DeleteGroup

TIEDicomTags.DeleteGroup

Declaration

procedure DeleteGroup(Group: Word);

Description

Removes all tags belonging to the specified group.


TIEDicomTags.DeleteTag

TIEDicomTags.DeleteTag

Declaration

procedure DeleteTag(Index: integer); overload;
procedure DeleteTag(Group: Word; Element: Word; DeleteAllInstances: boolean = false); overload;

Description

Removes a tag from the Dicom tag list. You can specify it by Group/Element or its index.
If DeleteAllInstances is true, DeleteTag removes all instances of this tag.

Example

// removes patient name
ImageEnView1.IO.Params.DICOM_Tags.DeleteTag( tags.IndexOf($0010, $0010) );

// Or
ImageEnView1.IO.Params.DICOM_Tags.DeleteTag($0010, $0010);


TIEDicomTags.FindNestedTag

TIEDicomTags.FindNestedTag

Declaration

function FindNestedTag(Group: Word; Element: Word; out Index: integer; StartFrom: TIEDicomTags = nil): TIEDicomTags;
function FindNestedTag(Group: Word; Element: Word; out Index: integer; StartFrom: TObjectList): TIEDicomTags;

Description

Returns the index of tag identified by Group and Element. It searches for the tag within nested tags.

You can view a list of tags at: Dicom Tag List

Example

var
Index: integer;
Tags: TIEDicomTags;
begin
ImageEnView1.IO.LoadFromFile('input.dcm');
Tags := imageenview1.IO.Params.DICOM_Tags.FindNestedTag($18, $1042, Index);
if Index > -1 then
ShowMessage( Tags.GetTagString(Index) );
end;


TIEDicomTags.GetTag

TIEDicomTags.GetTag

Declaration

function GetTag(Index: integer): PIEDicomTag; overload;
function GetTag(Group: Word; Element: Word): PIEDicomTag; overload;

Description

Returns a pointer to a raw dicom tag. You can specify it by Group/Element or its index.


TIEDicomTags.GetTagChildren

TIEDicomTags.GetTagChildren

Declaration

function GetTagChildren(Group: Word; Element: Word): TObjectList;
function GetTagChildren(Index: integer): TObjectList;

Description

Returns the children of DICOM tag as TIEDicomTags object. You can specify it by Group/Element or its index.


TIEDicomTags.GetTagDescription

TIEDicomTags.GetTagDescription

Declaration

function GetTagDescription(Index: integer): string; overload;
function GetTagDescription(Index: integer; out TagSource : TIEDicomTagSource): string; overload;
class function GetTagDescription(Group: Word; Element: Word): string; overload;
class function GetTagDescription(Group: Word; Element: Word; out TagSource : TIEDicomTagSource): string; overload;

Description

Returns an English description of specified tag.

The overloads including TagSource allow you to determine if the tag is part of the NEMA standard (dsStandard), has been retired (dsDeprecated), or is vendor specific (dsProprietary).


TIEDicomTags.GetTagNumeric

TIEDicomTags.GetTagNumeric

Declaration

function GetTagNumeric(Index: integer; Default: double = 0.0): double;
function GetTagNumeric(Group: Word; Element: Word; Default: double = 0.0): double;

Description

Returns a DICOM tag as number. You can specify it by Group/Element or its index. You can view a list of tags at: Dicom Tag List

Example

// Output all DICOM tags of image to a memo (same as Dicom_WriteToStrings)
for I := 0 to Dicom_Tag_Count - 1 do
begin
aTagInfo := IEDICOMGetTagInfo( I );

sDescription := aTagInfo.Desc;
sValue := tags.GetTagString( ImageEnView1.IO.Params.DICOM_Tags.IndexOf(aTagInfo.Group, aTagInfo.Element) );

if (sDescription <> '') and (sValue <> '') then
memo1.Lines.Add( sDescription + ': '+ sValue )
end;


TIEDicomTags.GetTagString

TIEDicomTags.GetTagString

Declaration

function GetTagString(Index: integer): AnsiString; overload;
function GetTagString(Group: Word; Element: Word): AnsiString; overload;

Description

Returns a DICOM tag as a string. You can specify it by Group/Element or its index. You can view a list of tags at: Dicom Tag List

Example

ImageType := ImageEnView1.IO.Params.DICOM_Tags.GetTagString( tags.IndexOf($0008, $0008) );
PatientName := ImageEnView1.IO.Params.DICOM_Tags.GetTagString( tags.IndexOf($0010, $0010) );

// Alternatively
ImageType := ImageEnView1.IO.Params.DICOM_Tags.GetTagString($0008, $0008);
PatientName := ImageEnView1.IO.Params.DICOM_Tags.GetTagString($0010, $0010);


TIEDicomTags.IndexOf

TIEDicomTags.IndexOf

Declaration

function IndexOf(Group: word; Element: word): integer;

Description

Returns the index of tag identified by Group and Element.

You can view a list of tags at: Dicom Tag List


TIEDicomTags.SetTagByteBuffer

TIEDicomTags.SetTagByteBuffer

Declaration

procedure SetTagByteBuffer(Group: Word; Element: Word; Buffer: pbyte; Length: integer; ReplaceIfExist: Boolean = True);

Description

Adds or replaces a byte buffer tag.
If the tag does not exist, it will be added. If the tag already exists it will be overwritten if ReplaceIfExist is true, or a second instance of the tag added if ReplaceIfExist = False.

Note: An exception is raised if the tag does not support a byte buffer value.


TIEDicomTags.SetTagNumeric

TIEDicomTags.SetTagNumeric

Declaration

procedure SetTagNumeric(Group: Word; Element: Word; Value: double; ReplaceIfExist: Boolean = True);

Description

Adds or replaces a numeric tag.
If the tag does not exist, it will be added. If the tag already exists it will be overwritten if ReplaceIfExist is true, or a second instance of the tag added if ReplaceIfExist = False.

Note: An exception is raised if the tag does not support a numeric value.

Example

// Add a "Priority" tag to the current Dicom file (or replace tag if it already exists)
ImageEnView1.IO.Params.DICOM_Tags.DICOM_Tags.SetTagNumeric( $0000, $0700, 7 );


TIEDicomTags.SetTagString

TIEDicomTags.SetTagString

Declaration

procedure SetTagString(Group: Word; Element: Word; Value: AnsiString; ReplaceIfExist: Boolean = True);

Description

Adds or replaces a string tag.
If the tag does not exist, it will be added. If the tag already exists it will be overwritten if ReplaceIfExist is true, or a second instance of the tag added if ReplaceIfExist = False.

Note: An exception is raised if the tag does not support a string value.

Example

// Add a "Patient Name" tag to the current Dicom file (or replace tag if it already exists)
ImageEnView1.IO.Params.DICOM_Tags.SetTagString( $0010, $0010, 'Joe Bloggs' );


TIEDicomTags.Sorted

TIEDicomTags.Sorted

Declaration

property Sorted: boolean;

Description

If true, the Dicom tags are sorted by group and element IDs.

Default: True

Set Sorted to false when adding tags if you want to maintain a tag sequence.

Example

Children := TObjectList.Create();
SubTags := TIEDicomTags.Create();
SubTags.Sorted := false;

SubTags.SetTagNumeric( $4, $1400, 0, False );
SubTags.SetTagNumeric( $4, $1410, 65535, False );
SubTags.SetTagNumeric( $4, $1420, 0, False );
SubTags.SetTagString( $4, $1430, 'PATIENT', False );

SubTags.SetTagNumeric( $4, $1400, 0, False );
SubTags.SetTagNumeric( $4, $1410, 65535, False );
SubTags.SetTagNumeric( $4, $1420, 0, False );
SubTags.SetTagString( $4, $1430, 'STUDY', False );

SubTags.SetTagNumeric( $4, $1400, 0, False );
SubTags.SetTagNumeric( $4, $1410, 65535, False );
SubTags.SetTagNumeric( $4, $1420, 0, False );
SubTags.SetTagString( $4, $1430, 'SERIES', False );

SubTags.SetTagNumeric( $4, $1400, 0, False );
SubTags.SetTagNumeric( $4, $1410, 65535, False );
SubTags.SetTagNumeric( $4, $1420, 0, False );
SubTags.SetTagString( $4, $1430, 'IMAGE', False );
SubTags.SetTagString( $4, $1500, 'C:\FileName.jpg', False );

Children.Add( SubTags );
ImageEnMView1.MIO.Params[0].DICOM_Tags.AddTag( 4, $1220, dvSQ, nil, -1, Children );


TIEDicomTagSource

TIEDicomTagSource

Declaration

TIEDicomTagSource = (dsStandard, dsDeprecated, dsProprietary);

Description

The source of Dicom tags:
Type | Description
dsStandard | A tag that is listed in the NEMA DICOM Standard
dsDeprecated | A tag listed in the NEMA standard, but marked as "Retired"
dsProprietary | Other tags that are vendor specific


TIEDicomTagType

TIEDicomTagType

Declaration

TIEDicomTagType = (dvAE, dvAS, dvAT, dvCS, dvDA, dvDS, dvDT, dvFD, dvFL, dvIS, dvLO, dvLT, dvOB, dvOF, dvOW, dvPN, dvSH, dvSL, dvSQ, dvSS, dvST, dvTM, dvUI, dvUL, dvUS, dvUT, dvUSorSS, dvUnknown);

Description

The variable type for Dicom tags:
Type | Description | Detail
dvAE | Application Entity | A string of characters that identifies an Application Entity with leading and trailing spaces (20H) being non-significant
dvAS | Age String | A string of characters with one of the following formats -- nnnD, nnnW, nnnM, nnnY; where nnn shall contain the number of days for D, weeks for W, months for M, or years for Y
dvAT | Attribute Tag | Ordered pair of 16-bit unsigned integers that is the value of a Data Element Tag
dvCS | Code String | A string of characters with leading or trailing spaces (20H) being non-significant
dvDA | Date | A string of characters of the format yyyymmdd; where yyyy shall contain year, mm shall contain the month, and dd shall contain the day
dvDS | Decimal String | A string of characters representing either a fixed point number or a floating point number
dvDT | Date Time | The Date Time common data type. Indicates a concatenated date-time ASCII string in the format: YYYYMMDDHHMMSS.FFFFFF&ZZZZ
dvFL | Floating Point Single | Single precision binary floating point number represented in IEEE 754:1985 32-bit Floating Point Number Format
dvFD | Floating Point Double | Double precision binary floating point number represented in IEEE 754:1985 64-bit Floating Point Number Format
dvIS | Integer String | A string of characters representing an Integer in base-10 (decimal), shall contain only the characters 0 - 9, with an optional leading "+" or "-"
dvLO | Long String | A character string that may be padded with leading and/or trailing spaces
dvLT | Long Text | A character string that may contain one or more paragraphs
dvOB | Other Byte String | A string of bytes where the encoding of the contents is specified by the negotiated Transfer Syntax
dvOF | Other Float String | A string of 32-bit IEEE 754:1985 floating point words
dvOW | Other Word String | A string of 16-bit words where the encoding of the contents is specified by the negotiated Transfer Syntax
dvPN | Person Name | A character string encoded using a 5 component convention
dvSH | Short String | A character string that may be padded with leading and/or trailing spaces
dvSL | Signed Long | Signed binary integer 32 bits long in 2's complement form
dvSQ | Sequence of Items | Value is a Sequence of zero or more Items, as defined in NEMA Documentation, Section 7.5
dvSS | Signed Short | Signed binary integer 16 bits long in 2's complement form
dvST | Short Text | A character string that may contain one or more paragraphs
dvTM | Time | A string of characters of the format hhmmss.frac;
dvUI | Unique Identifier | A character string containing a UID that is used to uniquely identify a wide variety of items
dvUL | Unsigned Long | Unsigned binary integer 32 bits long
dvUN | Unknown | A string of bytes where the encoding of the contents is unknown (see NEMA Documentation, Section 6.2.2)
dvUR | Universal Resource Identifier or Universal Resource Locator (URI/URL) | A string of characters that identifies a URI or a URL as defined in [RFC 3986]. Leading spaces are not allowed. Trailing spaces shall be ignored. Data Elements with this VR shall not be multi-valued
dvUS | Unsigned Short | Unsigned binary integer 16 bits long
dvUT | Unlimited Text | A character string that may contain one or more paragraphs
dvUSorSS | Signed or unsigned Short | ImageEn type: Could be either dvUS or dvSS
dvUnknown | Unsupported | ImageEn type: An unsupported type

Source: http://medical.nema.org/medical/dicom/current/output/html/part05.html#sect_6.2


TIEDictionary

TIEDictionary

Declaration

TIEDictionary = class;

Description

TIEDictionary is a String->Object dictionary (hashmap).
It can import/export key-values in a JSON-like (not fully compatible yet) style.

Methods and Properties

Create
Clear
Count
Dump
Erase
HasKey
Get
GetBoolean
GetDictionary
GetDouble
GetInteger
GetList
GetNext
GetString
Insert
IsEmpty
Parse

Example

var
dict: TIEDictionary;
begin
dict := TIEDictionary.Create();
dict.Insert('doublekey', 10.1);
dict.Insert('integerkey', 100);
dict.Insert('stringkey', 'hello');
dict.Insert('bool_true', true);
dict.Insert('bool_false', false);
dict.Insert('dict', TIEDictionary.Create());
dict.GetDictionary('dict').Insert('one', 1);
dict.GetDictionary('dict').Insert('two', 'two');
dict.Insert('list', TObjectList.Create());
dict.GetList('list').Add( TIEDictionaryValueWideString.Create('mike') );
dict.GetList('list').Add( TIEDictionaryValueWideString.Create('robert') );
dict.GetList('list').Add( TIEDictionaryValueWideString.Create('john') );
dict.GetList('list').Add( TIEDictionaryValueInteger.Create(2013) );

memo1.lines.add(dict.dump());

dict.free;
end;


TIEDictionary.Clear

TIEDictionary.Clear

Declaration

procedure Clear();

Description

Empties the dictionary.


TIEDictionary.Count

TIEDictionary.Count

Declaration

property Count: integer;

Description

Returns the number of entries in the dictionary.


TIEDictionary.Create

TIEDictionary.Create

Declaration

constructor Create(buckets: cardinal; hashFunction: TIEStrHashFunction; caseSensitive: boolean = false); overload;
constructor Create(buckets: cardinal = 103; caseSensitive: boolean = false); overload;

Description

Creates a new instance of TIEDictionary.


TIEDictionary.Dump

TIEDictionary.Dump

Declaration

function Dump(dumpType: TIEDictionaryParserLang): WideString;

Description

Returns a JSON-like or XML representation of the dictionary.
Not all dictionary contents can be dumped to XML and correctly parsed back.

See Also

- Parse

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDictionary.Erase

TIEDictionary.Erase

Declaration

function Erase(key: WideString): boolean;

Description

Remove the specified key.

Parameter | Description
key | A key in this dictionary
freeValue | If True the value is deallocated


TIEDictionary.Get

TIEDictionary.Get

Declaration

function Get(key: WideString; silent: boolean = false; recursive: boolean = true): TObject;

Description

Returns the value to which the key is mapped in this dictionary. If the key doesn't exist returns nil or raises an exception.

Parameter | Description
key | A key in this dictionary
silent | If true no exception is raised if the key doesn't exist
recursive | If true then search this key inside subdictionaries


TIEDictionary.GetBoolean

TIEDictionary.GetBoolean

Declaration

function GetBoolean(key: WideString; recursive: boolean = true): boolean;

Description

Returns the boolean value to which the key is mapped in this dictionary. If the key doesn't exist an exception is raised.

Parameter | Description
key | A key in this dictionary
recursive | If true then search this key inside subdictionaries


TIEDictionary.GetDictionary

TIEDictionary.GetDictionary

Declaration

function GetDictionary(key: WideString; recursive: boolean = true): TIEDictionary;

Description

Returns the TIEDictionary value to which the key is mapped in this dictionary. If the key doesn't exist an exception is raised.

Parameter | Description
key | A key in this dictionary
recursive | If true then search this key inside subdictionaries


TIEDictionary.GetDouble

TIEDictionary.GetDouble

Declaration

function GetDouble(key: WideString; recursive: boolean = true): double;

Description

Returns the double value to which the key is mapped in this dictionary. If the key doesn't exist an exception is raised.

Parameter | Description
key | A key in this dictionary
recursive | If true then search this key inside subdictionaries


TIEDictionary.GetInteger

TIEDictionary.GetInteger

Declaration

function GetInteger(key: WideString; recursive: boolean = true): integer;

Description

Returns the integer value to which the key is mapped in this dictionary. If the key doesn't exist an exception is raised.

Parameter | Description
key | A key in this dictionary
recursive | If true then search this key inside subdictionaries

Examples

// Return the Photoshop Color Mode from the XMP metadata
iColorMode := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetInteger( 'photoshop:ColorMode' );


TIEDictionary.GetList

TIEDictionary.GetList

Declaration

function GetList(key: WideString; recursive: boolean = true): TObjectList;

Description

Returns the TObjectList value to which the key is mapped in this dictionary. If the key doesn't exist an exception is raised.

Parameter | Description
key | A key in this dictionary
recursive | If true then search this key inside subdictionaries


TIEDictionary.GetNext

TIEDictionary.GetNext

Declaration

function GetNext(current: TIEStrStrEnumerator): boolean;

Description

Allows to iterate among all dictionary elements.
Returns true if an element is available.

Parameter | Description
current | An object used to store current enumerator state.

Example

var current: TIEStrStrEnumerator;
current := TIEStrStrEnumerator.Create();
while dict.GetNext(current) do
begin
key := current.item.key;
value := current.item.value;
...
end;
current.Free();


TIEDictionary.GetString

TIEDictionary.GetString

Declaration

function GetString(key: WideString; recursive: boolean = true): WideString;

Description

Returns the string value to which the key is mapped in this dictionary. If the key doesn't exist an exception is raised.

Parameter | Description
key | A key in this dictionary
recursive | If true then search this key inside subdictionaries

Examples

// Return the photo description from the XMP metadata
sDescription := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'dc:description' );

// Return the creation date from the XMP metadata (XMP date strings are formatted the same EXIF date strings)
dtCreateDate := EXIFDateToDateTime( ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'xmp:CreateDate' ));

// Return the creator or author of the asset from the XMP metadata
sCreator := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'dc:creator' );

// Return location information about the content being shown in the image
sLocation := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'photoshop:City' ) + ', ' +
ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'photoshop:State' ) + ', ' +
ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'photoshop:Country' );

// Return the document title from the XMP metadata
sTitle := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'dc:title' );

// Return the document keywords from the XMP metadata
sKeywords := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'dc:subject' );

// Return the document copyright information from the XMP metadata
sCopyright := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'dc:rights' );

// Return the Photoshop Headline from the XMP metadata
sHeadline := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'photoshop:Headline' );

// Return the Windows Rating from the XMP metadata (0 to 5)
sRating := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'xmp:Rating' );


TIEDictionary.HasKey

TIEDictionary.HasKey

Declaration

function HasKey(key: WideString; recursive: boolean = true): boolean;

Description

Returns the true if the key exists.

Parameter | Description
key | A key in this dictionary
recursive | If true then search this key inside subdictionaries


TIEDictionary.Insert

TIEDictionary.Insert

Declaration

procedure Insert(key: WideString; value: TObject); overload;
procedure Insert(key: WideString; value: WideString); overload;
procedure Insert(key: WideString; value: integer); overload;
procedure Insert(key: WideString; value: double); overload;
procedure Insert(key: WideString; value: boolean); overload;
procedure Insert(key: WideString; value: TIEDictionary); overload;
procedure Insert(key: WideString; value: TObjectList); overload;

Description

Maps the specified key to the specified object or value in this dictionary.

Parameter | Description
key | A string key
value | Object/value to store. The dictionary owns the object: it will be automatically disposed.


TIEDictionary.IsEmpty

TIEDictionary.IsEmpty

Declaration

function IsEmpty(): boolean;

Description

Returns True if the dictionary contains no elements.


TIEDictionary.Parse

TIEDictionary.Parse

Declaration

function Parse(text: WideString): boolean;

Description

Parses the JSON-like string and populates the dictionary.
This method doesn't remove existing items.

Parameter | Description
text | A JSON-like text

See Also

- Dump

Example

// dict.Parse('{"string" : "string content", "myinteger": 1234, "mydouble": 123.456, "a_bool_true" : true, "a_bool_false" : false, "subdict" : {"name": "john", "surname" : "mad"}, "array": [1,2,3,4,"hello", {}, {"alfa":"beta"}, [9,10]] }');


TIEDictionaryParserLang

TIEDictionaryParserLang

Declaration

TIEDictionaryParserLang = (ieplJSON, ieplXML);


TIEDirectShow.AudioCodecs

TIEDirectShow.AudioCodecs

Declaration

property AudioCodecs: TStringList;

Description

Contains a list of audio compression codecs available.


TIEDirectShow.AudioInputs

TIEDirectShow.AudioInputs

Declaration

property AudioInputs: TStringList;

Description

Contains a list of audio inputs available.


TIEDirectShow.BufferToTIEBitmap

TIEDirectShow.BufferToTIEBitmap

Declaration

procedure BufferToTIEBitmap(buffer: pbyte; len: integer; DestBitmap: TIEBitmap);

Description

For internal use only. Used only if you use TIEDirectShow as stand alone object.


TIEDirectShow.CaptureMode

TIEDirectShow.CaptureMode

Declaration

property CaptureMode: TIEDSCaptureMode;

Description

Specifies the capture mode to use (preview or capture). Set this property before connect.


TIEDirectShow.ClockErrorTolerance

TIEDirectShow.ClockErrorTolerance

Declaration

property ClockErrorTolerance: integer;

Description

Sets the maximum tolerance, in milliseconds, of the audio renderer. The value must be from 1 to 1000, inclusive.


TIEDirectShow.Connect

TIEDirectShow.Connect

Declaration

procedure Connect;

Description

Connects to the specified video input or multimedia file. This makes a DirectShow graph which needs to be activated with Run in order to make it active.
Several methods and properties work only after Connect has been successfully called.


TIEDirectShow.Connected

TIEDirectShow.Connected

Declaration

property Connected: boolean;

Description

Returns true when connected to the video input or multimedia file.


TIEDirectShow.ConvertTimeFormat

TIEDirectShow.ConvertTimeFormat

Declaration

function ConvertTimeFormat(source: int64; sourceFormat: TIETimeFormat; targetFormat: TIETimeFormat): int64;

Description

Converts from a time format to another one.


TIEDirectShow.Disconnect

TIEDirectShow.Disconnect

Declaration

procedure Disconnect;

Description

Disconnects from the specified video input or multimedia file.


TIEDirectShow.Duration

TIEDirectShow.Duration

Declaration

property Duration: int64;

Description

Returns the duration of the stream (multimedia file) in a format specified by TimeFormat property.
Duration measured in 100-nanosecond per unit (when time is selected).


TIEDirectShow.DVDActivateButton

TIEDirectShow.DVDActivateButton

Declaration

procedure DVDActivateButton;

Description

Press a button in DVD menu. To select a position call DVDSelectAt.
In order to play DVD inside Delphi IDE please disable "Integrated Debugging".

Example

procedure TForm1.ImageEnView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ImageEnView1.IO.DShowParams.DVDActivateButton();
end;

Demo

Demos\Display\VMR_DVD\VMR_DVD.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow.DVDGetProperty

TIEDirectShow.DVDGetProperty

Declaration

function DVDGetProperty(Prop: AnsiString; SubProp: AnsiString): AnsiString;

Description

Read a property from current DVD. This method can return current DVD position and some other properties like number of titles and chapters.

Value | Description
NumOfVolumes | Returns number of volumes
Volume | Returns current used volume
Side | Returns current side (1 or 2)
NumOfTitles | Returns number of titles
DiscID | Returns system-generated 64-bit "unique" identification number for the specified DVD
NumOfChapters | Returns number of chapters of the specified title (specify title in SubProp parameter)
Title | Returns current title
Chapter | Returns current chapter
Time | Returns current time using format like "HH:MM:SS:FF", where FF is frame in current second.
TotalTitleTime | Retrieves the total playback time for the current title.

Example

// gets number of titles
NumOfTitles := StrToIntDef(ImageEnView1.IO.DShowParams.DVDGetProperty('NumOfTitles'), 0);
// gets number of chapters in title '1'
NumOfChapters := StrToIntdef(ImageEnView1.IO.DShowParams.DVDGetProperty('NumOfChapters', '1'), 0);

Demo

Demos\Display\VMR_DVD\VMR_DVD.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow.DVDInputPath

TIEDirectShow.DVDInputPath

Declaration

property DVDInputPath: WideString;

Description

Specifies the driver letter of DVD reader. You can set 'Default' to select default DVD reader.
You can also specify a path to VIDEO_TS directory, which contains video data. For example "C:\mydvd\VIDEO_TS".
In order to play DVD inside Delphi IDE please disable "Integrated Debugging".

Example

with ImageEnView1.IO.DShowParams do
begin
DVDInputPath := 'Default';
RenderVideo := true;
RenderAudio := true;
Connect;
// Set bitmap size
GetVideoRenderNativeSize(w, h);
ImageEnView1.Proc.ImageResize(w, h);
Run;
end;

Demo

Demos\Display\VMR_DVD\VMR_DVD.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow.DVDPlayAdvanced

TIEDirectShow.DVDPlayAdvanced

Declaration

procedure DVDPlayAdvanced(PlayForward: boolean; Speed: double);

Description

Change the speed and direction of playing.
Setting PlayForward=true the DVD plays forward at the specified speed from the current location.
Setting playForward=false the DVD plays backward at the specified speed from the current location.
Speed specifies the playback speed. This value is a multiplier, where 1.0 is the authored speed, so a value of 2.5 plays at two and one-half times the authored speed, while a value of 0.5 plays at half the authored speed. The actual speed of playback depends on the capabilities of the video decoder. Values below 0.00001 are converted to 0.00001.


TIEDirectShow.DVDPlayAt

TIEDirectShow.DVDPlayAt

Declaration

procedure DVDPlayAt(Title: integer; Chapter: integer);
procedure DVDPlayAt(Title: integer; Hours, Minutes, Seconds, Frames: integer);

Description

Starts playback from the beginning of the specified chapter of the specified title.
You can access the number of Chapters and Titles (and the current position) by calling DVDGetProperty.

The second overload allows you to specify the exact time inside the specified title.

Example

// playes chapter 1 in title 5
ImageEnView1.IO.DShowParams.DVDPlayAt(5, 1);

// playes title 1, after 10 minutes
ImageEnView1.IO.DShowParams.DVDPlayAt(1, 0, 10, 0, 0);

Demo

Demos\Display\VMR_DVD\VMR_DVD.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow.DVDSelectAt

TIEDirectShow.DVDSelectAt

Declaration

procedure DVDSelectAt(x, y: integer);

Description

Select a button in DVD menu, at specified position. To actually press the button call DVDActivateButton.
In order to play DVD inside Delphi IDE please disable "Integrated Debugging".

Example

procedure TForm1.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
ImageEnView1.IO.DShowParams.DVDSelectAt(x, y);
end;

Demo

Demos\Display\VMR_DVD\VMR_DVD.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow.DVDShowMenu

TIEDirectShow.DVDShowMenu

Declaration

procedure DVDShowMenu(Menu: TIEDVDMenu);

Description

Displays the specified menu, if available.

Example

ImageEnView1.IO.DShowParams.DVDShowMenu(iedmROOT);

Demo

Demos\Display\VMR_DVD\VMR_DVD.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow.EnableSampleGrabber

TIEDirectShow.EnableSampleGrabber

Declaration

property EnableSampleGrabber: boolean;

Description

If EnableSampleGrabber is True, then an event occurs whenever a new frame is available.
The event is OnDShowNewFrame (unless you use SetNotifyWindow and use TIEDirectShow as stand alone object).


TIEDirectShow.EndOfStream

TIEDirectShow.EndOfStream

Declaration

property EndOfStream: boolean;

Description

EndOfStream tests whether the file position is at the end of a file.
This field is updated only when parent of TIEDirectShow is IO.TImageEnView and OnDShowEvent is not handled.


TIEDirectShow.FileInput

TIEDirectShow.FileInput

Declaration

property FileInput: AnsiString;

Description

If you don't want get video from a capture card, but just from a file, you must set FileInput property with a full path name and a multimedia file.


TIEDirectShow.FileOutput

TIEDirectShow.FileOutput

Declaration

property FileOutput: AnsiString;

Description

Specifies the full path of the output multimedia file.


TIEDirectShow.GetAverageTimePerFrame

TIEDirectShow.GetAverageTimePerFrame

Declaration

function GetAverageTimePerFrame: int64;

Description

Returns, when available, the number of milliseconds for each frame.

Example

function AverageTimePerFrameForFile(const Filename: string): int64;
var
dshow: TIEDirectShow;
begin
Result := -1;
dshow := TIEDirectShow.Create;
try
dshow.FileInput := AnsiString(FileName);
dshow.EnableSampleGrabber := true;
dshow.Connect;
dshow.Pause;

dshow.TimeFormat := tfTime;
if dshow.Duration = 0 then
exit;
Result := dshow.GetAverageTimePerFrame;
dshow.Disconnect;
finally
FreeAndNil(dshow);
end;
end;


TIEDirectShow.GetCurrentVideoFormat

TIEDirectShow.GetCurrentVideoFormat

Declaration

procedure GetCurrentVideoFormat(var width, height: integer; var format: AnsiString);

Description

Allows you to set read the video format. You can read supported formats with the VideoFormats property.
The format parameter is equivalent to VideoFormats.Format. Or you can simply pass an empty string.


TIEDirectShow.GetEventCode

TIEDirectShow.GetEventCode

Declaration

function GetEventCode(var Event: integer): boolean;

Description

Read current event obtained from DirectShow.

A OnDShowEvent occurs whenever there is an event available.
Common events are:

IEEC_ACTIVATE = $0013;
IEEC_BUFFERING_DATA = $0011;
IEEC_BUILT = $0300;
IEEC_CLOCK_CHANGED = $000D;
IEEC_CLOCK_UNSET = $0051;
IEEC_CODECAPI_EVENT = $0057;
IEEC_COMPLETE = $0001;
IEEC_DEVICE_LOST = $001F;
IEEC_DISPLAY_CHANGED = $0016;
IEEC_END_OF_SEGMENT = $001C;
IEEC_ERROR_STILLPLAYING = $0008;
IEEC_ERRORABORT = $0003;
IEEC_EXTDEVICE_MODE_CHANGE = $0031;
IEEC_FULLSCREEN_LOST = $0012;
IEEC_GRAPH_CHANGED = $0050;
IEEC_LENGTH_CHANGED = $001E;
IEEC_NEED_RESTART = $0014;
IEEC_NOTIFY_WINDOW = $0019;
IEEC_OLE_EVENT = $0018;
IEEC_OPENING_FILE = $0010;
IEEC_PALETTE_CHANGED = $0009;
IEEC_PAUSED = $000E;
IEEC_PREPROCESS_COMPLETE = $0056;
IEEC_QUALITY_CHANGE = $000B;
IEEC_REPAINT = $0005;
IEEC_SEGMENT_STARTED = $001D;
IEEC_SHUTTING_DOWN = $000C;
IEEC_SNDDEV_IN_ERROR = $0200;
IEEC_SNDDEV_OUT_ERROR = $0201;
IEEC_STARVATION = $0017;
IEEC_STATE_CHANGE = $0032;
IEEC_STEP_COMPLETE = $0024;
IEEC_STREAM_CONTROL_STARTED = $001B;
IEEC_STREAM_CONTROL_STOPPED = $001A;
IEEC_STREAM_ERROR_STILLPLAYING = $0007;
IEEC_STREAM_ERROR_STOPPED = $0006;
IEEC_TIMECODE_AVAILABLE = $0030;
IEEC_UNBUILT = $0301;
IEEC_USERABORT = $0002;
IEEC_VIDEO_SIZE_CHANGED = $000A;
IEEC_VMR_RENDERDEVICE_SET = $0053;
IEEC_VMR_SURFACE_FLIPPED = $0054;
IEEC_VMR_RECONNECTION_FAILED = $0055;
IEEC_WINDOW_DESTROYED = $0015;
IEEC_WMT_EVENT = $0252;
IEEC_WMT_INDEX_EVENT = $0251;
IEEC_USER = $8000;

// DVD events
IEEC_DVD_DOMAIN_CHANGE = ($0100 + $01)
IEEC_DVD_TITLE_CHANGE = ($0100 + $02)
IEEC_DVD_CHAPTER_START = ($0100 + $03)
IEEC_DVD_AUDIO_STREAM_CHANGE = ($0100 + $04)
IEEC_DVD_SUBPICTURE_STREAM_CHANGE = ($0100 + $05)
IEEC_DVD_ANGLE_CHANGE = ($0100 + $06)
IEEC_DVD_BUTTON_CHANGE = ($0100 + $07)
IEEC_DVD_VALID_UOPS_CHANGE = ($0100 + $08)
IEEC_DVD_STILL_ON = ($0100 + $09)
IEEC_DVD_STILL_OFF = ($0100 + $0a)
IEEC_DVD_CURRENT_TIME = ($0100 + $0b)
IEEC_DVD_ERROR = ($0100 + $0c)
IEEC_DVD_WARNING = ($0100 + $0d)
IEEC_DVD_CHAPTER_AUTOSTOP = ($0100 + $0e)
IEEC_DVD_NO_FP_PGC = ($0100 + $0f)
IEEC_DVD_PLAYBACK_RATE_CHANGE = ($0100 + $10)
IEEC_DVD_PARENTAL_LEVEL_CHANGE = ($0100 + $11)
IEEC_DVD_PLAYBACK_STOPPED = ($0100 + $12)
IEEC_DVD_ANGLES_AVAILABLE = ($0100 + $13)
IEEC_DVD_PLAYPERIOD_AUTOSTOP = ($0100 + $14)
IEEC_DVD_BUTTON_AUTO_ACTIVATED = ($0100 + $15)
IEEC_DVD_CMD_START = ($0100 + $16)
IEEC_DVD_CMD_END = ($0100 + $17)
IEEC_DVD_DISC_EJECTED = ($0100 + $18)
IEEC_DVD_DISC_INSERTED = ($0100 + $19)
IEEC_DVD_CURRENT_HMSF_TIME = ($0100 + $1a)
IEEC_DVD_KARAOKE_MODE = ($0100 + $1b)
IEEC_DVD_PROGRAM_CELL_CHANGE = ($0100 + $1c)
IEEC_DVD_TITLE_SET_CHANGE = ($0100 + $1d)
IEEC_DVD_PROGRAM_CHAIN_CHANGE = ($0100 + $1e)
IEEC_DVD_VOBU_Offset = ($0100 + $1f)
IEEC_DVD_VOBU_Timestamp = ($0100 + $20)
IEEC_DVD_GPRM_Change = ($0100 + $21)
IEEC_DVD_SPRM_Change = ($0100 + $22)
IEEC_DVD_BeginNavigationCommands = ($0100 + $23)
IEEC_DVD_NavigationCommand = ($0100 + $24)


TIEDirectShow.GetSample

TIEDirectShow.GetSample

Declaration

procedure GetSample(DestBitmap: TIEBitmap; resample: boolean = true);

Description

Copies current sample to the specified bitmap.
You can call this method inside a OnDShowNewFrame event or anywhere you want (for example, on response to a TTimer event).

If resample is true and input is VMR then the image is resampled to the original bitmap size.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow.GetSupportedTVStandards

TIEDirectShow.GetSupportedTVStandards

Declaration

function GetSupportedTVStandards: TIETVStandards;

Description

Returns a set of supported tv standards (NTSC, Pal,...).
This function is useful to know supported standard before call SetTVStandard.


TIEDirectShow.GetVideoRenderNativeSize

TIEDirectShow.GetVideoRenderNativeSize

Declaration

procedure GetVideoRenderNativeSize(var Width: integer; var Height: integer);

Description

Returns the video frame size when RenderVideo is true.
You should set the background bitmap to the same size.

Example

TImageEnView.IO.DShowParams.GetVideoRenderNativeSize(w, h);
TImageEnView.Proc.ImageResize(w, h);


TIEDirectShow.GetVideoRenderRect

TIEDirectShow.GetVideoRenderRect

Declaration

procedure GetVideoRenderRect(var SrcRect: TRect; var DstRect: TRect);

Description

Used internally by TImageEnView in order to get source and destination rectangle when RenderVideo is true.


TIEDirectShow.NotifyWindow

TIEDirectShow.NotifyWindow

Declaration

property NotifyWindow: THandle;

Description

Returns current notification window handle.


TIEDirectShow.Pause

TIEDirectShow.Pause

Declaration

procedure Pause();

Description

This is used to pause the graph.


TIEDirectShow.Position

TIEDirectShow.Position

Declaration

property Position: int64;

Description

Returns the stream (multimedia file) position in a format specified by TimeFormat property.
Position measured in 100-nanosecond per unit (when time is selected).


TIEDirectShow.Rate

TIEDirectShow.Rate

Declaration

property Rate: double;

Description

Specifies the frame rate where Rate is:
1 = normal speed
2 = double speed
0.5 = half speed
Not all devices support this property. Important. The Rate does NOT set or get the number of frames per second (FPS).
To save a movie originally shot at 30 fps to.15 fps set the rate to 0.5.

The Rate can only be set if the if the file is running or is paused..


TIEDirectShow.ReferenceClock

TIEDirectShow.ReferenceClock

Declaration

property ReferenceClock: TIEReferenceClock;

Description

Specifies the source of reference clock.
You should change it when audio and video aren't synchronized.
When RenderAudio and RenderVideo are true, it is suggested to set ReferenceClock=rcAudioOutput.


TIEDirectShow.RenderAudio

TIEDirectShow.RenderAudio

Declaration

property RenderAudio: boolean

Description

If True renders the audio stream to the default audio renderer.
Sometimes audio is not synchronized with video. To get audio/video synchronized we should interact directly with hardware devices, but this will loss compatibility.
Anyway you could try to play with ReferenceClock and ClockErrorTolerance properties to get better synchronization.


TIEDirectShow.RenderVideo

TIEDirectShow.RenderVideo

Declaration

property RenderVideo: boolean;

Description

When true the video input (from capture card, file or dvd) is displayed inside the component area.

Demos

Demos\VideoCapture\VMR_Capture\VMR_Capture.dpr
Demos\VideoCapture\VMR_Camera\VMR_Camera.dpr
Demos\Display\VMR_DVD\VMR_DVD.dpr
Demos\Display\VMR_Video\VMR_Video.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEDirectShow.RepaintVideo

TIEDirectShow.RepaintVideo

Declaration

procedure RepaintVideo(hwnd: THandle; hdc: THandle);

Description

Used internally by TImageEnView in order to repaint display when RenderVideo is true.


TIEDirectShow.Run

TIEDirectShow.Run

Declaration

procedure Run(): TIEDSRunResult;

Description

After calling Connect you must run the graph. This starts video capture or file capture.


TIEDirectShow.SaveGraph

TIEDirectShow.SaveGraph

Declaration

procedure SaveGraph(filename: AnsiString);

Description

This method is useful to debug the filter graph built using Connect.
The file must have 'grf' extension and can be read using GraphEdit utility (you can get this from the Microsoft DirectShow SDK).


TIEDirectShow.SetAudioCodec

TIEDirectShow.SetAudioCodec

Declaration

procedure SetAudioCodec(idx: integer);

Description

Specifies the audio compression codec. You can get an index from AudioCodecs property.


TIEDirectShow.SetAudioInput

TIEDirectShow.SetAudioInput

Declaration

procedure SetAudioInput(idx: integer; instanceIndex: integer = 0);

Description

Allows selection of an audio input. You can get an index from AudioInputs property.
InstanceIndex specifies the audio input on the same device.


TIEDirectShow.SetCurrentVideoFormat

TIEDirectShow.SetCurrentVideoFormat

Declaration

procedure SetCurrentVideoFormat(width, height: integer; format: AnsiString = '');

Description

Allows you to set the video format. You can read supported formats with the VideoFormats property.
The format parameter is equivalent to VideoFormats.Format. Or you can simply pass an empty string.

Please, to set frame resolution on webcams use additional parameters of SetVideoInput instead of SetCurrentVideoFormat.


TIEDirectShow.SetNotifyWindow

TIEDirectShow.SetNotifyWindow

Declaration

procedure SetNotifyWindow(WindowHandle: THandle; NewFrameMessage: integer; EventMessage: integer);

Description

For internal use only. Used only if you use TIEDirectShow as stand alone object.


TIEDirectShow.SetTVStandard

TIEDirectShow.SetTVStandard

Declaration

procedure SetTVStandard(Value: TIETVStandard);

Description

Sets the input tv standard. To know supported tv standards use GetSupportedTVStandards.


TIEDirectShow.SetVCRHorizontalLocking

TIEDirectShow.SetVCRHorizontalLocking

Declaration

procedure SetVCRHorizontalLocking(Value: boolean);

Description

When false assumes input from broadcast source (better synchronization pulses), when true tells the decoder to relas its standards (typically used from a tape source).


TIEDirectShow.SetVideoCodec

TIEDirectShow.SetVideoCodec

Declaration

procedure SetVideoCodec(idx: integer);

Description

Specifies the video compression codec. You can get an index from VideoCodecs property.


TIEDirectShow.SetVideoInput

TIEDirectShow.SetVideoInput

Declaration

procedure SetVideoInput(idx: integer; instanceIndex: integer = 0; width: integer = 0; height: integer = 0; format: AnsiString = ''; bitRate: integer = 0);

Description

Allows selection of a video input. You can get an index from VideoInputs property.

Parameter | Description
idx | Index of video input.
InstanceIndex | specifies the video input on the same device.
width | Width of video frame.
height | Height of video frame.
format | Video format (ie. 'YUY2',...).
bitRate | Bit rate in bits per second (0 = use the highest available).

Example

ImageEnView.IO.DShowParams.SetVideoInput(0, 0, 640, 480); // captures at 640x480


TIEDirectShow.SetVideoRenderRect

TIEDirectShow.SetVideoRenderRect

Declaration

procedure SetVideoRenderRect(SrcRect, DstRect: TRect);

Description

Used internally by TImageEnView in order to set source and destination rectangle when RenderVideo is true.


TIEDirectShow.ShowPropertyPages

TIEDirectShow.ShowPropertyPages

Declaration

function ShowPropertyPages(proppages: TIEPropertyPages; proptype: TIEPropertyPagesType; checkOnly: boolean=false): boolean;

Description

Shows a dialog for the specified filter of the filter graph.

proppages: Specifies the filter
proptype: Whether the dialog is for input, output or common filter properties
checkOnly: If True, the dialog will not be displayed, only determines if it is available (i.e. check the return value to know whether the dialog is available)

Return False if it fails.


TIEDirectShow.State

TIEDirectShow.State

Declaration

function State: TIEDirectShowState;

Description

State function returns the current state of the graph.


TIEDirectShow.Step

TIEDirectShow.Step

Declaration

procedure Step(frames: integer);

Description

Go forward for frames steps.


TIEDirectShow.Stop

TIEDirectShow.Stop

Declaration

procedure Stop();

Description

This is used to stop the graph's execution.


TIEDirectShow.TimeFormat

TIEDirectShow.TimeFormat

Declaration

property TimeFormat: TIETimeFormat;

Description

Specifies the time format for Position and Duration properties.


TIEDirectShow.TunerChannel

TIEDirectShow.TunerChannel

Declaration

property TunerChannel: integer;

Description

Sets the channel when the video input source is a TV Tuner.


TIEDirectShow.TunerFindSignal

TIEDirectShow.TunerFindSignal

Declaration

function TunerFindSignal: boolean;

Description

Returns True when a channel contains a TV signal.


TIEDirectShow.VideoCodecQuality

TIEDirectShow.VideoCodecQuality

Declaration

property VideoCodecQuality: double;

Description

Specifies the video compression codec quality. Not all codecs support this property.


TIEDirectShow.VideoCodecs

TIEDirectShow.VideoCodecs

Declaration

property VideoCodecs: TStringList;

Description

Contains a list of video compression codecs.


TIEDirectShow.VideoFormats

TIEDirectShow.VideoFormats

Declaration

property VideoFormats[i: integer]: TIEVideoFormat;

Description

VideoFormats contains a list of available video formats.
A video format specifies the frame width, height and other info.


TIEDirectShow.VideoFormatsCount

TIEDirectShow.VideoFormatsCount

Declaration

property VideoFormatsCount: integer;

Description

VideoFormatsCount specifies the VideoFormats list size.


TIEDirectShow.VideoInputs

TIEDirectShow.VideoInputs

Declaration

property VideoInputs: TStringList;

Description

Contains a list of available video inputs (video capture inputs).


TIEDirectShow.VideoInputSource

TIEDirectShow.VideoInputSource

Declaration

property VideoInputSource: integer;

Description

Specifies the video input source. A video input source is a line input, like Video-Composite, Tuner, etc.
You can get an index from VideoInputSources property.


TIEDirectShow.VideoInputSources

TIEDirectShow.VideoInputSources

Declaration

property VideoInputSources: TStringList;

Description

Contains a list of video input sources available for the selected video input.
A video input source is a line input, like Video-Composite, Tuner, etc.


TIEDirectShowState

TIEDirectShowState

Declaration

TIEDirectShowState = (gsStopped, gsPaused, gsRunning);


TIEDitherMethod

TIEDitherMethod

Declaration

TIEDitherMethod = (ieOrdered, ieThreshold, ieDithering);


TIEDitherType

TIEDitherType

Declaration

TIEDitherType = (iedtSolid, iedtOrdered4x4, iedtOrdered8x8, iedtOrdered16x16, iedtSpiral4x4,
iedtSpiral8x8, iedtDualSpiral4x4, iedtDualSpiral8x8, iedtErrorDiffusion);

Description

Value | Description
iedtSolid | A solid color algorithm without dither.
iedtOrdered4x4 | A 4x4 ordered dither algorithm.
iedtOrdered8x8 | An 8x8 ordered dither algorithm.
iedtOrdered16x16 | A 16x16 ordered dither algorithm.
iedtSpiral4x4 | A 4x4 spiral dither algorithm.
iedtSpiral8x8 | An 8x8 spiral dither algorithm.
iedtDualSpiral4x4 | A 4x4 dual spiral dither algorithm.
iedtDualSpiral8x8 | An 8x8 dual spiral dither algorithm.
iedtErrorDiffusion | An error diffusion algorithm.


TIEDoPreviewsEvent

TIEDoPreviewsEvent

Declaration

TIEDoPreviewsEvent = procedure(Sender: TObject; var Handled: boolean) of object;


TIEDoubleList

TIEDoubleList

Declaration

TIEDoubleList = class(TIEList);

Description

TIEDoubleList is a list of double values. You can handle this object as a standard TList object.
An ImageEn list contains an array of values, a current value (not an index of the array), and an allowed range of values.

Methods and Properties

Add
Clear
CurrentValue
IndexOf
Insert
Items
RangeMax
RangeMin
RangeStep
Changed (inherited from TIEList)


TIEDoubleList.Add

TIEDoubleList.Add

Declaration

function Add(v: double): integer;

Description

Adds a new value to the list.


TIEDoubleList.Clear

TIEDoubleList.Clear

Declaration

procedure Clear;

Description

Removes all items.


TIEDoubleList.CurrentValue

TIEDoubleList.CurrentValue

Declaration

property CurrentValue: double;

Description

CurrentValue returns the current value of the list. It isn't an index of Items, but a "powerup" value.
No control is made to values assigned to CurrentValue, but it should be one of the values in Items or inside of RangeMin and RangeMax (regarding RangeStep also).


TIEDoubleList.IndexOf

TIEDoubleList.IndexOf

Declaration

function IndexOf(v: double): integer;

Description

IndexOf returns the index of v value. Returns -1 if not found.


TIEDoubleList.Insert

TIEDoubleList.Insert

Declaration

procedure Insert(idx: integer; v: double);

Description

Insert a new value inside idx position.


TIEDoubleList.Items

TIEDoubleList.Items

Declaration

property Items[index]: double;

Description

Items returns the double value of index element.


TIEDoubleList.RangeMax

TIEDoubleList.RangeMax

Declaration

property RangeMax: double;

Description

RangeMax is the max value that you can assign to CurrentValue.


TIEDoubleList.RangeMin

TIEDoubleList.RangeMin

Declaration

property RangeMin: double;

Description

RangeMin is the minimum value that you can assign to CurrentValue.


TIEDoubleList.RangeStep

TIEDoubleList.RangeStep

Declaration

property RangeStep: double;

Description

RangeStep defines the step from RangeMin to RangeMax.


TIEDrawingInfo

TIEDrawingInfo

Declaration

TIEDrawingInfo = record
XDst: integer; // Destination x (output canvas)
YDst: integer; // Destination y (output canvas)
WidthDst: integer; // Destination width (output canvas)
HeightDst: integer; // Destination height (output canvas)
XSrc: integer; // Source x (input bitmap)
YSrc: integer; // Source y (input bitmap)
WidthSrc: integer; // Source width (input bitmap)
HeightSrc: integer; // Source height (input bitmap)
RotatedDest: array [0..3] of TPoint; // destination rotated points (output canvas)
end;


TIEDrawLayerBoxEvent

TIEDrawLayerBoxEvent

Declaration

TIEDrawLayerBoxEvent = procedure (Sender: TObject; ABitmap: TBitmap; LayerIndex: integer) of object;


TIEDrawLayerEvent

TIEDrawLayerEvent

Declaration

TIEDrawLayerEvent = procedure(Sender: TObject; dest: TIEBitmap; LayerIndex: Integer) of object;


TIEDrawLayerGrip

TIEDrawLayerGrip

Declaration

TIEDrawLayerGrip = procedure (Sender: TObject; ABitmap: TBitmap; LayerIndex: integer; Grip: Integer; Rect: TRect) of object;


TIEDrawObjectEvent

TIEDrawObjectEvent

Declaration

TIEDrawObjectEvent = procedure(Sender: TObject; hobj: integer; destination: TIEBitmap; destCanvas: TIECanvas; destRect: TRect; drawingAlpha: boolean; var handled: boolean) of object;

Description

Parameter | Description
hobj | The object to draw.
destination | Destination bitmap. Applications should not draw over canvases created from this bitmap.
destCanvas | Destination canvas. Applications should draw on this canvas.
destRect | Destination rectangle for this object.
drawingAlpha | This call is used to draw the alpha channel. You should set pen and brush colors as gray scale values.
handled | If applications set True, ImageEn will not draw the object.


TIEDRect

TIEDRect

Declaration

TIEDRect = record
Left: double;
Top: double;
Right: double;
Bottom: double;
end;


TIEDRectangle

TIEDRectangle

Declaration

TIEDRectangle = array [0..1] of TIE2DPoint;


TIEDropFilesEvent

TIEDropFilesEvent

Declaration

TIEDropFilesEvent = procedure(Sender: TObject; ssFiles: TStrings; var DropEffect: Integer) of object;

Description

Used by OnDropFiles whenever files are dropped onto the control.

ssFiles is a list of files that have been dropped.
DropEffect is the action that will be performed on the files. It can be modified to override the default handling. Supported values are: DROPEFFECT_NONE (0), DROPEFFECT_COPY (1) or DROPEFFECT_MOVE (2)

Example

function TMyForm.IEFolderMView1DropFiles(Sender: TObject; ssFiles: TStrings; var DropEffect: Integer);
begin
// Do not allow multiple files to be dropped
if ssFiles.Count > 1 then
begin
DropEffect := DROPEFFECT_NONE;
MessageBeep( MB_ERROR );
end;
end;


TIEDRotatedRectangle

TIEDRotatedRectangle

Declaration

TIEDRotatedRectangle = array [0..3] of TIE2DPoint;


TIEDSCapturemode

TIEDSCapturemode

Declaration

TIEDSCapturemode = (iedscCapture, iedscPreview);

Description

Value | Description
iedscCapture | Use Capture pin of video capture device
iedscPreview | Use preview pin of video capture device


TIEDSRunResult

TIEDSRunResult

Declaration

TIEDSRunResult = (iedsSuccess, iedsError, iedsBusy);

Description

Value | Description
iedsSuccess | Run succeeded
iedsError | Generic failure
iedsBusy | Device was busy


TIEDVDMenu

TIEDVDMenu

Declaration

TIEDVDMenu = (iedmTITLE, iedmROOT, iedmSUBPICTURE, iedmAUDIO, iedmANGLE, iedmCHAPTER);


TIEEdit

TIEEdit

Declaration

TIEEdit=class(TEdit)

Description

Handles iekTEXT objects editing.


TIEEncryptionAlgorithm

TIEEncryptionAlgorithm

Declaration

TIEEncryptionAlgorithm = (ieeaTEA, // simple TEA algorithm
ieeaTEA2); // TEA algorithm with pseudorandom key


TIEEquirectangularRenderer

TIEEquirectangularRenderer

Declaration

TIEEquirectangularRenderer = class(TIEVirtualBitmapProvider);

Description

Use TIEEquirectangularRenderer as bitmap provider for VirtualBitmapProvider property to display equirectangular images (Google Android PhotoSphere 360° panoramic images).

Methods and Properties

Create
CamFov
CamHeading
CamPitch
Quality

Demo

Demos\Other\Photosphere\Photosphere.dpr

Example

ImageEnViewContainer.IO.LoadFromFile('panoimage.jpg');
ImageEnViewDisplayer.LegacyBitmap := false;
ImageEnViewDisplayer.IEBitmap.VirtualBitmapProvider := TIEEquirectangularRenderer.Create(ImageEnViewContainer.IEBitmap, ImageEnViewContainer.IO.Params, false);
ImageEnViewDisplayer.Update();


TIEEquirectangularRenderer.CamFov

TIEEquirectangularRenderer.CamFov

Declaration

property CamFov: double;

Description

Specifies the camera FOV (Field Of View) in degrees, from 0 up to 90.

Default: 90

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEEquirectangularRenderer.CamHeading

TIEEquirectangularRenderer.CamHeading

Declaration

property CamHeading: double;

Description

Specifies the camera heading (horizontal movement) in degrees.

Range: 0 to 360 degrees

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEEquirectangularRenderer.CamPitch

TIEEquirectangularRenderer.CamPitch

Declaration

property CamPitch: double;

Description

Specifies the camera pitch (vertical movement) in degrees.

Range: 0 (looking straight up) to 180 (looking straight down).


TIEEquirectangularRenderer.Create

TIEEquirectangularRenderer.Create

Declaration

constructor Create(Source: TIEBitmap; IOParams: TObject; OwnSource: boolean); overload;
constructor Create(SourceView: TObject); overload;

Description

Creates a new instance of the TIEEquirectangularRenderer class.

Parameter | Description
Source | The source equirectangular TIEBitmap or TImageEnView
IOParams | I/O parameters where to get XMP tags. Must be a TIOParams objects
OwnSource | If True, the Source bitmap is freed on destroy

Example

// ImageEnView1 contains the equirectangular image, while ImageEnView2 will display it
ImageEnView2.IEBitmap.VirtualBitmapProvider := TIEEquirectangularRenderer.Create(ImageEnView1.IEBitmap, ImageEnView1.IO.Params, false);
ImageEnView2.Update();

// Same as above
ImageEnView2.IEBitmap.VirtualBitmapProvider := TIEEquirectangularRenderer.Create(ImageEnView1);
ImageEnView2.Update();


TIEEquirectangularRenderer.Quality

TIEEquirectangularRenderer.Quality

Declaration

property Quality: TIEEquirectangularRendererQuality;

Description

Specifies the rendering quality. Lowest quality speedup rendering.

Default: ierqLow

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEEquirectangularRendererQuality

TIEEquirectangularRendererQuality

Declaration

TIEEquirectangularRendererQuality = (ierqLow, ierqHigh);


TIEEXIFInteroperabilityIndexUsage

TIEEXIFInteroperabilityIndexUsage

Declaration

TIEEXIFInteroperabilityIndexUsage = (ieiiNone, ieiiApplyOnly, ieiiApplyAndReset);


TIEEXIFMakerNotesHandling

TIEEXIFMakerNotesHandling

Declaration

TIEEXIFMakerNotesHandling = (iemhDiscard, iemhDecodeOrDiscardRaw, iemhDecodeOrMaintainRaw, iemhDecodeAndSaveRaw);

Description

Don't load EXIF MakerNotes tag
Property | Description
iemhDiscard |
iemhDecodeOrDiscardRaw | Decode or discard RAW on unknown MakerNotes (default)
iemhDecodeOrMaintainRaw | Decode and maintain RAW, even on unknown MakerNotes. Saved decoded MakerNotes. Can produce corrupted jpegs on unknown MakerNotes!
iemhDecodeAndSaveRaw | Decode and maintain original RAW MakerNotes on save. Can produce corrupted jpegs!


TIEFastDrawing

TIEFastDrawing

Declaration

TIEFastDrawing = (iefFast, iefDelayed, iefNormal);

Description

Item | Description
iefFast | Layer draw quality is reduced to speed up display (only affects drawing)
iefDelayed | Fast drawing (iefFast) is used while rotating, moving or resizing layers. After a delay, layers are then drawn at normal quality (iefNormal)
iefNormal | Layers are drawn at normal quality


TIEFileDlgPreviewEvent

TIEFileDlgPreviewEvent

Declaration

TIEFileDlgPreviewEvent = procedure(Sender: TObject; Viewer: TObject; FileName: String; ParamsOnly: Boolean) of object;

Description

Occurs when the Open File Dialog needs to load an image for preview or get the parameters (file details) from an image.
Viewer will be a TImageEnVect object for single-frame images or a TImageEnMView object for multi-frame images or videos.
FileName contains the file name to load.
ParamsOnly is true when the Preview Checkbox is not checked, so the user doesn't want to display the image.


TIEFileDragDrop

TIEFileDragDrop

Declaration

TIEFileDragDrop = class(TInterfacedObject, IDropTarget, IDropSource)
public
property ActivateDropping : Boolean;
property DropActions : TIEFileDragDropActions ;
constructor Create(Control: TWinControl; OnFileDrop : TIEFileDropEvent);
destructor Destroy; override;
procedure InitiateDragging(ssFilenames : TStrings; DragActions: TIEFileDragDropActions);
end;

Description

Class to provide support for dragging and dropping files from/to Windows Explorer (and other applications). Used by TImageEnFolderMView.

See iexFolderMView.pas for example usage.


TIEFileDragDropActions

TIEFileDragDropActions

Declaration

TIEFileDragDropActions = set of (ieddCopy, ieddMove);

Description

Used by AutoDragFiles and AutoDropFiles.


TIEFileDropEvent

TIEFileDropEvent

Declaration

TIEFileDropEvent = procedure(Sender: TObject; ssFiles : TStrings; dwEffect: Integer) of object;


TIEFileFormatInfo

TIEFileFormatInfo

Declarations

TIEFileFormatInfo=class
FileType : TIOFileType;
FullName : string;
Extensions : string;
SuitableExtension : string;
InternalFormat : boolean;
DialogPage : TPreviewParams;
ReadFunction : TIEReadImageStream;
WriteFunction : TIEWriteImageStream;
TryFunction : TIETryImageStream;
end;

Description

Value | Description
FileType | The file type class, e.g. ioJPEG
FullName | A description of the file type, e.g. 'JPEG Bitmap'
Extensions | All extensions of this format WITHOUT the period, e.g. 'jpg;jpeg;jpe'
SuitableExtension | A single extension that is suitable for this format WITHOUT the period, e.g. 'jpeg'
InternalFormat | True for native ImageEn formats, false for custom formats
DialogPage | The page that is used to display properties for this type in DoPreviews
ReadFunction | The function used for reading this file type (nil if it cannot be read)
WriteFunction | The function used for saving this file type (nil if it is read-only)
TryFunction | The function used to determine if a file is of this type (used only when ImageEn is checking for the image type without considering its file extension)


TIEFileOperationOptions

TIEFileOperationOptions

Declaration

TIEFileOperationOptions = set of (ieioShowConfirmation, ieioShowProgress, ieioVerboseErrors, ieioSendToRecycleBin, ieioRenameOnCollision);

Description

Value | Description
ieioShowConfirmation | A confirmation dialog is displayed to confirm file operations. Otherwise it automatically responds with "Yes to All" for any dialog box
ieioShowProgress | Displays the standard Windows progress dialog. Otherwise it is silent
ieioVerboseErrors | Displays an error message if a failure occurs. Otherwise failures are not reported
ieioSendToRecycleBin | Files are moved to the Recycle Bin rather than deleted
ieioRenameOnCollision | If a file already exists in the destination folder when moving or copying a new name will be given to the current file

Default: [ieioShowConfirmation, ieioShowProgress, ieioVerboseErrors, ieioSendToRecycleBin]


TIEFilterPresets

TIEFilterPresets

Declaration

TIEFilterPresets = integer;


TIEFindFormatMethod

TIEFindFormatMethod

Declaration

type TIEFindFormatMethod = (ffContentOnly, ffVerifyByExtension, ffFallbackToExtension);

Description

Methods used by FindFileFormat to determine the type of an image:
Value | Description
ffContentOnly | Only the content of the file is examined. The filename is ignored (No extension checking)
ffVerifyByExtension | The content is examined to determine the type. This is then compared to the file extension and ioUnknown is returned if the type does not match (Strict extension checking)
ffFallbackToExtension | The content is examined to determine the type. If it cannot be determined (which can happen with some Dicom and Raw formats), then the type is guessed by the file extension (Optimistic extension checking)

Example

// Determine the file type only by examining the file header/content
if FindFileFormat( sFilename, ffContentOnly ) = ioJPEG then
ShowMessage( 'File content is JPEG' );

// Determine the file type by examining the file header/content, check it has the correct file extension
if FindFileFormat( sFilename, ffVerifyByExtension ) = ioJPEG then
ShowMessage( 'File content is JPEG and it has a JPEG extension' );

// Determine the file type by examining the file header/content. If that fails use the correct file extension
if FindFileFormat( sFilename, ffFallbackToExtension ) = ioDICOM then
ShowMessage( 'File appears to be a DICOM' );


TIEFinishSmoothTaskEvent

TIEFinishSmoothTaskEvent

Declaration

TIEFinishSmoothTaskEvent = procedure(Sender: TObject; Task: TIESmoothTask) of object;

Description

Event called when a smooth task has finished (smooth scroll, smooth zoom, etc...).


TIEFolderChangeEvent

TIEFolderChangeEvent

Declaration

TIEFolderChangeEvent = procedure(Sender: TObject; var sNewFolder: String; var bAllow: boolean) of object;

Description

Used by OnFolderChanging whenever the Folder is being changed.

sNewFolder specifies the new folder. Set bAllow to false to prevent the folder being opened.

Example

function TMyForm.IEFolderMView1FolderChanging(Sender: TObject; var sNewFolder: String; var bAllow: boolean);
begin
// Do not allow user to change from C:\
if pos( 'C:\', Uppercase( sNewFolder )) = 0 then
begin
bAllow := False;
MessageBeep( MB_ERROR );
end;
end;


TIEFolderFileTypes

TIEFolderFileTypes

Declaration

TIEFolderFileTypes = (iefAllImages, iefAllImagesAndVideos, iefAllFiles, iefCustom);

Description

Specifies which files types to retrieve
Value | Description
iefAllImages | Retrieves all supported image types of ImageEn
iefAllImagesAndVideos | Retrieves all supported image and video types of ImageEn
iefAllFiles | Retrieves all files
iefCustom | The file types to retrieve are specified by FileTypesMask


TIEFolderImageType

TIEFolderImageType

Declaration

type TIEFolderImageType = (ieftSupportedImage, ieftFile, ieftFolder);

Description

Returns the type of file for a frame/thumbnail.

Value | Description
ieftSupportedImage | The frame is a supported image (or video) type
ieftFile | The frame is for an unknown file type
ieftFolder | The frame is a system folder or drive


TIEFolderInteractOptions

TIEFolderInteractOptions

Declaration

TIEFolderInteractOptions = set of (ieboOpenFoldersOnDblClick, ieboLaunchImagesOnDblClick, ieboLaunchFilesOnDblClick, ieboEnableFolderShortcuts, ieboEnableFileShortcuts, ieboClickToSortColumns);

Description

Value | Description
ieboOpenFoldersOnDblClick | If ShowFolders has been enabled to show folders, then ieboOpenFoldersOnDblClick allows the user to double click or press enter to open a folder
ieboLaunchImagesOnDblClick | If a user double clicks a supported image type (or selects one and clicks the enter key) then it will be launched to the default windows handle for that file type
ieboLaunchFilesOnDblClick | If a user double clicks an unknown file type (or selects one and clicks the enter key) then it will be launched to the default windows handle for that file type
ieboEnableFolderShortcuts | If ShowFolders has been enabled to show folders, then Backspace or Alt+Up will open the parent folder. F5 will refresh the file listing
ieboEnableFileShortcuts | Clicking Ctrl+X/C/V will Cut, Copy or Paste files to/from Windows Explorer. Clicking Delete will move files to the Recycle Bin. Shift+Delete will permanently delete files
ieboClickToSortColumns | When Style is iemsColumns, then a header row is shown for each column. Clicking the header allows sorting by that column

Default: [ieboOpenFoldersOnDblClick, ieboEnableFolderShortcuts, ieboClickToSortColumns]


TIEFolderWatch

TIEFolderWatch

Declaration

TIEFolderWatch = class
public
constructor Create;
destructor Destroy; override;
procedure Start;
procedure Stop;
function Running: Boolean;
property WatchSubTree: Boolean;
property WatchOptions: TWatchOptions;
property WatchActions: TWatchActions;
property BufferSize: Integer;
property Path: string;
property OnNotify: TFileChangeNotifyEvent;
property OnChange: TNotifyEvent;
property OnError: TOnError;
end;

Description

Class that automatically notifies changes to files within a specified folder. Used by TImageEnFolderMView.

See iexFolderMView.pas for example usage.

Attribution

Based on Cromis.DirectoryWatch by Iztok Kacin, Cromis (iztok.kacin@gmail.com).

www.cromis.net


TIEFontQuality

TIEFontQuality

Declaration

TIEFontQuality = (iefqAntialiased, iefqClearType, iefqClearTypeNatural, iefqDefault, iefqDraft, iefqNonAntialiased, iefqProof);

Description

Value | Description
iefqAntialiased | Font is always antialiased if the font supports it and the size of the font is not too small or too large.
iefqClearType | If set, text is rendered (when possible) using ClearType antialiasing method (XP/Vista Only)
iefqClearNatural | Undocumented.
iefqDefault | Appearance of the font does not matter.
iefqDraft | Appearance of the font is less important than when iefqProof is used.
iefqNonAntialiased | Font is never antialiased.
iefqProof | Character quality of the font is more important than exact matching of the logical-font attributes.


TIEFtImageType

TIEFtImageType

Declaration

TIEFtImageType = (ieitUnknown, ieitRGB, ieitGrayscale);


TIEGestureFlags

TIEGestureFlags

Declaration

TIEGestureFlags = set of (iegfBegin, iegfInertia, iegfEnd);


TIEGestureID

TIEGestureID

Declaration

TIEGestureID = (iegiBegin, iegiEnd, iegiZoom, iegiPan, iegiRotate, iegiTwoFingerTap, iegiPressAndTap);


TIEGestureLayerMoveOptions

TIEGestureLayerMoveOptions

Description

Specifies options for the layer movement gesture.

Note: Inherites from the TIEGestureOptions class.

Methods and Properties

BoundingBox
Enabled
Inertia
Multiplier
SnapValues
SnapDelta

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGestureLayerMoveOptions.BoundingBox

TIEGestureLayerMoveOptions.BoundingBox

Declaration

property BoundingBox: TRect;

Description

Contains the minimum/maximum values for the left, top and right and bottom.


TIEGestureLayerRotateOptions

TIEGestureLayerRotateOptions

Description

Specifies options for the layer rotation gesture.

Note: Inherites from the TIEGestureOptions class.

Methods and Properties

Min
Max
Enabled
Inertia
Multiplier
SnapValues
SnapDelta

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGestureLayerRotateOptions.Max

TIEGestureLayerRotateOptions.Max

Declaration

property Max: double;

Description

Specify the maximum allowed Zoom.


TIEGestureLayerRotateOptions.Min

TIEGestureLayerRotateOptions.Min

Declaration

property Min: double;

Description

Specify the minimum allowed Zoom.


TIEGestureOptions

TIEGestureOptions

Description

Options for ImageEn gesture support.

Methods and Properties

Enabled
Inertia
Multiplier
SnapValues
SnapDelta

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGestureOptions.Enabled

TIEGestureOptions.Enabled

Declaration

property Enabled: boolean;

Description

Enables/disables the gesture.


TIEGestureOptions.Inertia

TIEGestureOptions.Inertia

Declaration

property Inertia: boolean;

Description

Whether the gesture supports "inertia". When inertia is enabled and a gesture is performed with sufficient speed then it will continue for a time even after the actual movement ends.


TIEGestureOptions.Multiplier

TIEGestureOptions.Multiplier

Declaration

property Multiplier: double;

Description

Specifies a multiplier for the controlled viewer property.


TIEGestureOptions.SnapDelta

TIEGestureOptions.SnapDelta

Declaration

property SnapDelta: double;

Description

Specifies the amount to snap values by when SnapValues is enabled.


TIEGestureOptions.SnapValues

TIEGestureOptions.SnapValues

Declaration

property SnapValues: boolean;

Description

If enabled, then values will change only in amounts specified by the SnapDelta. For example, when performing a small rotation of less than a SnapDelta of 90 degrees, it will "snap" to 90.


TIEGesturePanOptions

TIEGesturePanOptions

Description

Specify options for the Zoom gesture.

Note: Inherites from the TIEGestureOptions class.

Methods and Properties

BoundingBox
Enabled
Inertia
Multiplier
PanWithSingleFingerHorizontally
PanWithSingleFingerVertically
SnapValues
SnapDelta

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGesturePanOptions.BoundingBox

TIEGesturePanOptions.BoundingBox

Declaration

property BoundingBox: TRect;

Description

Contains the minimum/maximum values for the left, top and right and bottom.


TIEGesturePanOptions.PanWithSingleFingerHorizontally

TIEGesturePanOptions.PanWithSingleFingerHorizontally

Declaration

property PanWithSingleFingerHorizontally: Boolean;

Description

Enables/disables horizontal pans with one finger.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGesturePanOptions.PanWithSingleFingerVertically

TIEGesturePanOptions.PanWithSingleFingerVertically

Declaration

PanWithSingleFingerVertically: Boolean;

Description

Enables/disables vertical pans with one finger.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGestureZoomOptions

TIEGestureZoomOptions

Description

Specifies options for the Zoom gesture.

Note: Inherites from the TIEGestureOptions class.

Methods and Properties

Max
Min
Enabled
Inertia
Multiplier
SnapValues
SnapDelta

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGestureZoomOptions.Max

TIEGestureZoomOptions.Max

Declaration

property Max: double;

Description

Specify the maximum allowed Zoom.


TIEGestureZoomOptions.Min

TIEGestureZoomOptions.Min

Declaration

property Min: double;

Description

Specify the minimum allowed Zoom.


TIEGetHintTextEvent

TIEGetHintTextEvent

Declaration

TIEGetHintTextEvent = procedure (AColor: TColor; Index: integer; var HintStr: string) of object;


TIEGetTextEvent

TIEGetTextEvent

Declaration

type TIEGetTextEvent = procedure(Sender: TObject; Index: integer; Position : TIEMTextPos; var Text: WideString) of object;

Description

Occurs before text is output when drawing a thumbnail allowing you to insert or modify the displayed text (by specifying a new value for Text).

Position | Description
iemtpTop | Overrides the text specified for ImageTopText
iemtpInfo | Overrides the text specified for ImageInfoText
iemtpBottom | Overrides the text specified for ImageBottomText

Note:
- Ensure that you have set UpperGap/BottomGap to allow space for the text
- Setting Text only modifies the text that is displayed, not the value in ImageTopText/ImageInfoText/ImageBottomText

Example

// Note: In form create we set IEFolderMView.UpperGap := 20;

// Display the file index above the frame
procedure TForm1.IEFolderMViewGetText(Sender: TObject; Index: Integer; Position: TIEMTextPos; var Text: WideString);
begin
if Position = iemtpTop then
Text := 'File #' + IntToStr(Index + 1);
end;


TIEGetTextExEvent

TIEGetTextExEvent

Declaration

type TIEGetTextExEvent = procedure(Sender: TObject; Index: integer; Position : TIEMTextPos; var Text: WideString;
Font : TFont; var BackgroundStyle: TBrushStyle; var BackgroundColor: TColor;
var TruncSide: TIEMTruncSide) of object;

Description

Occurs before text is output when drawing a thumbnail allowing you to insert or modify the displayed text or change its formatting.

Position | Description
iemtpTop | Overrides the text specified for ImageTopText
iemtpInfo | Overrides the text specified for ImageInfoText
iemtpBottom | Overrides the text specified for ImageBottomText

Note:
- Ensure that you have set UpperGap/BottomGap to allow space for the text
- Setting Text only modifies the text that is displayed, not the value in ImageTopText/ImageInfoText/ImageBottomText
- Font.Color cannot be overriden for selected or disabled frames

Example

// Display the file as bold if it is JPEG
procedure TForm1.IEFolderMViewGetTextEx(Sender: TObject; Index: Integer; Position: TIEMTextPos; var Text: WideString;
Font : TFont; var BackgroundStyle: TBrushStyle; var BackgroundColor: TColor;
var TruncSide: TIEMTruncSide);
begin
if Position <> iemtpBottom then
exit;
sFileExt := ExtractFileExt( Text );
if IEExtToFileFormat( sFileExt ) = ioJPEG then
Font.Style := [fsBold]
else
Font.Style := [];
end;

// Give text on every thumb a random background color
procedure TForm1.IEFolderMViewGetTextEx(Sender: TObject; Index: Integer; Position: TIEMTextPos; var Text: WideString;
Font : TFont; var BackgroundStyle: TBrushStyle; var BackgroundColor: TColor;
var TruncSide: TIEMTruncSide);
begin
BackgroundColor := RGB(Random(255), Random(255), Random(255));;
BackgroundStyle := bsSolid;
end;


TIEGIFAction

TIEGIFAction

Declaration

TIEGIFAction = (
ioGIF_None,
ioGIF_DontRemove,
ioGIF_DrawBackground,
ioGIF_RestorePrev);


TIEGradientBar.BeginColor

TIEGradientBar.BeginColor

Declaration

property BeginColor: TColor;

Description

First color of the gradient bar.


TIEGradientBar.Color

TIEGradientBar.Color

Declaration

property Color: TColor;

Description

The color the user has selected.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGradientBar.ColorIndex

TIEGradientBar.ColorIndex

Declaration

property ColorIndex: integer;

Description

ColorIndex is the color index that user has selected. It can be 0 (BeginColor) up to 255 (EndColor).


TIEGradientBar.Direction

TIEGradientBar.Direction

Declaration

property Direction: TIEGradientDir;

Description

Direction is gdHorizontal for a horizontal bar or gdVertical for a vertical bar.


TIEGradientBar.EndColor

TIEGradientBar.EndColor

Declaration

property EndColor: TColor;

Description

Final color of the gradient bar.


TIEGradientBar.MouseInteract

TIEGradientBar.MouseInteract

Declaration

property MouseInteract: TIEMouseInteractGr;

Description

Specify the automatic interactions with mouse (user).

MouseInteract can be migDragGrip to select a color (or an index).


TIEGradientBar.OnChange

TIEGradientBar.OnChange

Declaration

property OnChange: TNotifyEvent;

Description

Occurs when the user selects a color.


TIEGradientBar.RGB

TIEGradientBar.RGB

Declaration

property RGB: TRGB;

Description

The color the user has selected.

Read-only

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEGradientDir

TIEGradientDir

Declaration

TIEGradientDir = (gdHorizontal, gdVertical);


TIEGridKind

TIEGridKind

Declaration

TIEGridKind = (iedgNone, iedgPixelGrid, iedgGuideLines);

Description

Item | Description
iedgNone | No guide lines are shown
iedgPixelGrid | A grid is shown marking each pixel when the image is zoomed in (e.g. for pixel editing in an image editor)
iedgGuideLines | Guide lines are shown horizontally and vertically over the image (e.g. to help align objects when rotating)


TIEGrip

TIEGrip

Declaration

TIEGrip = (ieNone, ieTopLeft, ieTopRight, ieBottomRight, ieBottomLeft, ieLeftSide, ieRightSide, ieTopSide, ieBottomSide, ieRotationCenter);


TIEGripShape

TIEGripShape

Declaration

TIEGripShape = (iegsBox, iegsCircle);


TIEHAlign

TIEHAlign

Declaration

TIEHAlign = (iehLeft, iehCenter, iehRight);


TIEHashAlgorithm

TIEHashAlgorithm

Declaration

TIEHashAlgorithm = (
iehaMD2, // MD2 hashing algorithm. This algorithm is supported by the Microsoft Base Cryptographic Provider.
iehaMD4, // MD4 hashing algorithm.
iehaMD5, // MD5 hashing algorithm. This algorithm is supported by the Microsoft Base Cryptographic Provider.
iehaSHA // SHA hashing algorithm. This algorithm is supported by the Microsoft Base Cryptographic Provider.
);


TIEHashStream.Create

TIEHashStream.Create

Declaration

constructor Create(Algorithm: TIEHashAlgorithm = iehaMD5; Buffered: boolean = true);

Description

Creates a TIEHashStream which will use specified hash algorithm.
If Buffered is true the stream data is written in a temporary memory stream. This is necessary when Seek and Read methods are necessary.

Example

// saves the file with an unique name (create hash from the jpeg content and use it as file name)
var
hashStream: TIEHashStream;
begin
ImageEnView1.IO.LoadFromFile('input.jpg');
hashStream := TIEHashStream.Create(iehaMD5);
try
ImageEnView1.IO.SaveToStreamJpeg(hashStream);
hashStream.SaveToFile(hashStream.GetHash()+'.jpg');
finally
hashStream.Free;
end;
end;


TIEHashStream.GetHash

TIEHashStream.GetHash

Declaration

function GetHash: AnsiString;

Description

Calculates the hash and returns the string representation of the hash.

Example

// saves the file with an unique name (create hash from the jpeg content and use it as file name)
var
hashStream: TIEHashStream;
begin
ImageEnView1.IO.LoadFromFile('input.jpg');
hashStream := TIEHashStream.Create(iehaMD5);
try
ImageEnView1.IO.SaveToStreamJpeg(hashStream);
hashStream.SaveToFile(hashStream.GetHash()+'.jpg');
finally
hashStream.Free;
end;
end;


TIEHashStream.LoadFromFile

TIEHashStream.LoadFromFile

Declaration

procedure LoadFromFile(const filename: WideString);

Description

Loads data to hash from specified file.
It is necessary to create the stream as "buffered" to use this method.


TIEHashStream.LoadFromStream

TIEHashStream.LoadFromStream

Declaration

procedure LoadFromStream(Stream: TStream);

Description

Loads data to hash from specified stream.
It is necessary to create the stream as "buffered" to use this method.


TIEHashStream.Read

TIEHashStream.Read

Declaration

function Read(var Buffer; Count: longint): Longint;

Description

Reads data in the hash stream. It is necessary to create the stream as "buffered" to use this method.


TIEHashStream.SaveToFile

TIEHashStream.SaveToFile

Declaration

procedure TIEHashStream.SaveToFile(const filename: WideString);

Description

Saves the stream to file (this is the actual data written, not the hash). This is useful to save the hashed data one time.
It is necessary to create the stream as "buffered" to use this method.

See also: SaveToStream

Example

// saves the file with an unique name (create hash from the jpeg content and use it as file name)
var
hashStream: TIEHashStream;
begin
ImageEnView1.IO.LoadFromFile('input.jpg');
hashStream := TIEHashStream.Create(iehaMD5);
try
ImageEnView1.IO.SaveToStreamJpeg(hashStream);
hashStream.SaveToFile(hashStream.GetHash()+'.jpg');
finally
hashStream.Free;
end;
end;


TIEHashStream.SaveToStream

TIEHashStream.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream);

Description

Saves data to stream (this is the actual data written, not the hash). This is useful to save the hashed data one time.
It is necessary to create the stream as "buffered" to use this method.

See also: SaveToFile.


TIEHashStream.Seek

TIEHashStream.Seek

Declaration

function Seek(const Offset: int64; Origin: TSeekOrigin): int64;

Description

Seeks data in the hash stream. It is necessary to create the stream as "buffered" to use this method.


TIEHashStream.Write

TIEHashStream.Write

Declaration

function Write(const Buffer; Count: longint): longint;

Description

Writes data in the hash stream.


TIEHistogram

TIEHistogram

Declaration

TIEHistogram = array of THistogramItem;


TIEHistogramContent

TIEHistogramContent

Declaration

TIEHistogramContent = set of (iehcRed, iehcGreen, iehcBlue, iehcGray, iehcHue);


TIEHorizontalFlow.CurrentImageZoom

TIEHorizontalFlow.CurrentImageZoom

Declaration

property CurrentImageZoom: double;

Description

Specifies the zoom (0..1) for central image.

Default: 1.0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEHorizontalFlow.HorizontalDistance

TIEHorizontalFlow.HorizontalDistance

Declaration

property HorizontalDistance: integer;

Description

Specifies the horizontal distance among images, in pixels.

Default: 80

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEHorizontalFlow.ImagesHorizontalPercentage

TIEHorizontalFlow.ImagesHorizontalPercentage

Declaration

property ImagesHorizontalPercentage: double;

Description

Specifies the percentage (1..100) of view-width used by a single image.

Default: 40

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEHorizontalFlow.ImagesVerticalPercentage

TIEHorizontalFlow.ImagesVerticalPercentage

Declaration

property ImagesVerticalPercentage: double;

Description

Specifies the percentage (1..100) of view-height used by a single image.

Default: 80

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEHorizontalFlow.ImagesZoom

TIEHorizontalFlow.ImagesZoom

Declaration

property ImagesZoom: double;

Description

Specifies the zoom (0..1) for non-central images.

Default: 0.7

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEHorizontalFlow.RotateAngle

TIEHorizontalFlow.RotateAngle

Declaration

property RotateAngle: double;

Description

Specifies the rotation in degrees (0..359) of the non-central images.

Default: 40 degrees

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEHorizontalPos

TIEHorizontalPos

Declaration

TIEHorizontalPos = (iehpLeft, iehpCenter, iehpRight);

Description

Value | Description
iehpLeft | Image is aligned to the left-hand side
iehpCenter | Image is horizontally centered
iehpRight | Image is aligned to the right-hand side


TIEICC Supported Color Formats

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

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEICC.Apply

TIEICC.Apply

Declaration

function Apply(SourceBitmap: TIEBaseBitmap; SourceFormat: integer; DestinationBitmap: TIEBaseBitmap; DestinationFormat: integer; DestinationProfile: TIEICC; Intent: integer; Flags: integer): boolean;

Description

Transforms a bitmap from current profile to the destination profile. See Transform for the parameter description.
You must call FreeTransform after the whole image has been transformed.
Returns False if it cannot perform the transformation.

See Also

- TIEICC Supported Color Formats

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEICC.Apply2

TIEICC.Apply2

Declaration

function Apply2(Bitmap: TIEBaseBitmap; SourceFormat: integer; DestinationFormat: integer; DestinationProfile: TIEICC; Intent: integer; Flags: integer): boolean;

Description

Transforms the same bitmap from current profile to the destination profile. See Transform for the parameter description.
You must call FreeTransform after the whole image has been transformed.
Returns False if it cannot perform the transformation.

See Also

- TIEICC Supported Color Formats

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEICC.Assign

TIEICC.Assign

Declaration

procedure Assign(source: TIEICC);

Description

Copies a profile from source.


TIEICC.Assign_AdobeRGB1998

TIEICC.Assign_AdobeRGB1998

Declaration

procedure Assign_AdobeRGB1998();

Description

Loads the pre-defined AdobeRGB1998 profile.


TIEICC.Assign_CMYKProfile

TIEICC.Assign_CMYKProfile

Declaration

procedure Assign_CMYKProfile();

Description

Loads the pre-defined CMYK profile, based on public domain 'Fogra27L CMYK Coated Press' color profile.


TIEICC.Assign_LabProfile

TIEICC.Assign_LabProfile

Declaration

procedure Assign_LabProfile(WhitePoint_x, WhitePoint_y, WhitePoint_Y_: double);

Description

Creates a new Lab profile based on specified white points.

Note: Available only when ImageEn is compiled with IEINCLUDECMS defined in ie.inc.


TIEICC.Assign_LabProfileD50

TIEICC.Assign_LabProfileD50

Declaration

procedure Assign_LabProfileD50();

Description

Creates a new Lab D59 color profile.

Note: Available only when ImageEn is compiled with IEINCLUDECMS defined in ie.inc.


TIEICC.Assign_LabProfileFromTemp

TIEICC.Assign_LabProfileFromTemp

Declaration

procedure Assign_LabProfileFromTemp(TempK: integer);

Description

Creates a new Lab color profile based on specified temperature.

Note: Available only when ImageEn is compiled with IEINCLUDECMS defined in ie.inc.


TIEICC.Assign_sRGBProfile

TIEICC.Assign_sRGBProfile

Declaration

procedure Assign_sRGBProfile;

Description

Loads the pre-defined sRGB profile.


TIEICC.Assign_XYZProfile

TIEICC.Assign_XYZProfile

Declaration

procedure Assign_XYZProfile();

Description

Creates a XYZ color profile.

Note: Available only when ImageEn is compiled with IEINCLUDECMS defined in ie.inc.


TIEICC.CheckTransform

TIEICC.CheckTransform

Declaration

function CheckTransform(InputFormat: TIEColorSpace): boolean; overload;
function CheckTransform(InputFormat: integer): boolean; overload;

Description

Returns true if this color profile accepts the specified color space.

See Also

- TIEICC Supported Color Formats
- TIEColorSpace

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEICC.Clear

TIEICC.Clear

Declaration

procedure Clear;

Description

Close the profile and free all allocated buffers.


TIEICC.ConvertBitmap

TIEICC.ConvertBitmap

Declaration

function ConvertBitmap(Bitmap: TIEBaseBitmap; DestPixelFormat: TIEPixelFormat; DestProfile: TIEICC): boolean;

Description

Transforms the same bitmap from current profile to the destination profile.
Returns False if it cannot perform the transformation.


TIEICC.Copyright

TIEICC.Copyright

Declaration

property Copyright: AnsiString;

Description

Returns the copyright string found inside the ICC profile.


TIEICC.Description

TIEICC.Description

Declaration

property Description: AnsiString;

Description

Returns the profile description found inside the ICC profile.


TIEICC.FreeTransform

TIEICC.FreeTransform

Declaration

procedure FreeTransform;

Description

Free memory allocated to perform Transform, Apply or Apply2.


TIEICC.InitTransform

TIEICC.InitTransform

Declaration

function InitTransform(Destination: TIEICC; InputFormat: integer; OutputFormat: integer; Intent: integer; Flags: integer): boolean;

Description

Initialize a transform from current profile to the destination profile. You must call FreeTransform after the whole image has been transformed.
Returns False if it cannot perform the transformation.
InputFormat and OutputFormat : The color format for the input and the output. See below for a list of supported color formats.
Intent: The ICC intent to apply. If an appropiate tag for this intent is not found, no error is raised and the intent is reverted to perceptual.
INTENT_PERCEPTUAL
INTENT_RELATIVE_COLORIMETRIC
INTENT_SATURATION
INTENT_ABSOLUTE_COLORIMETRIC
Flags: This value commands on how to handle the whole process. Some or none of this values can be joined via the 'or' operator.
cmsFLAGS_MATRIXINPUT | CLUT ignored on input profile, matrix-shaper used instead (for speed, and debugging purposes)
cmsFLAGS_MATRIXOUTPUT | Same as anterior, but for output profile only.
cmsFLAGS_NOTPRECALC | By default, lcms smelt luts into a device-link CLUT. This speedup whole transform greatly. If you don't wanna this, and wish every value to be translated to PCS and back to output space, include this flag.
cmsFLAGS_NULLTRANFORM | Don't transform anyway, only apply pack/unpack routines (usefull to deactivate color correction but keep formatting capabilities)
cmsFLAGS_HIGHRESPRECALC | Use 48 points instead of 33 for device-link CLUT precalculation. Not needed but for the most extreme cases of mismatch of "impedance" between profiles.
cmsFLAGS_LOWRESPRECALC | Use lower resolution table. Usefull when memory is a preciated resource.
cmsFLAGS_BLACKPOINTCOMPENSATION | Use BPC algorithm.

See Also

- TIEICC Supported Color Formats

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEICC.InputColorSpace

TIEICC.InputColorSpace

Declaration

property InputColorSpace: AnsiString;

Description

Contains the signature of the data color space used.

Allowed signatures:
Color space | Signature
XYZData | 'XYZ '
labData | 'Lab '
luvData | 'Luv '
YCbCrData | 'YCbr'
YxyData | 'Yxy '
rgbData | 'RGB '
grayData | 'GRAY'
hsvData | 'HSV '
hlsData | 'HLS '
cmykData | 'CMYK'
cmyData | 'CMY '
2colorData | '2CLR'
3colorData (if not listed above) | '3CLR'
4colorData (if not listed above) | '4CLR'
5colorData | '5CLR'
6colorData | '6CLR'
7colorData | '7CLR'
8colorData | '8CLR'
9colorData | '9CLR'
10colorData | 'ACLR'
11colorData | 'BCLR'
12colorData | 'CCLR'
13colorData | 'DCLR'
14colorData | 'ECLR'
15colorData | 'FCLR'


TIEICC.IsApplied

TIEICC.IsApplied

Declaration

property IsApplied: boolean;

Description

Returns True if Transform, Apply or Apply2 have been called since the profile was loaded.


TIEICC.IsValid

TIEICC.IsValid

Declaration

function IsValid: boolean;

Description

Returns true if the currently loaded ICC profile is valid.


TIEICC.LoadFromBuffer

TIEICC.LoadFromBuffer

Declaration

procedure LoadFromBuffer(buffer: pointer; bufferlen: integer);

Description

Loads the ICC profile from the specified buffer. This is called automatically when loading an image from file.


TIEICC.LoadFromFile

TIEICC.LoadFromFile

Declaration

procedure LoadFromFile(const FileName: string);

Description

Loads an ICC from the file. The file should have an .icc extension.


TIEICC.LoadFromStream

TIEICC.LoadFromStream

Declaration

procedure LoadFromStream(Stream: TStream; StandardICC: boolean);

Description

Loads an ICC from the stream. If StandardICC is False an header is expected to know the ICC block size.


TIEICC.OutputColorSpace

TIEICC.OutputColorSpace

Declaration

property OutputColorSpace: AnsiString;

Description

Returns the profile connection space field (output color space).

Allowed signatures:
Color space | Signature
XYZData | 'XYZ '
labData | 'Lab '


TIEICC.SaveToStream

TIEICC.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream; StandardICC: boolean);

Description

Saves the current ICC to a stream. If StandardICC is False a header which specifies the ICC block size is added. Otherwise saves as standard ICC.


TIEICC.Transform

TIEICC.Transform

Declaration

function Transform(Destination: TIEICC; InputFormat: integer; OutputFormat: integer; Intent: integer; Flags: integer; InputBuffer: pointer; OutputBuffer: pointer; ImageWidth: integer): boolean;

Description

Transforms a row from current profile to the destination profile. You must call FreeTransform after the whole image has been transformed.
Returns False if it cannot perform the transformation.
InputFormat and OutputFormat : The color format for the input and the output. See below for a list of supported color formats.
Intent: The ICC intent to apply. If an appropiate tag for this intent is not found, no error is raised and the intent is reverted to perceptual.
INTENT_PERCEPTUAL
INTENT_RELATIVE_COLORIMETRIC
INTENT_SATURATION
INTENT_ABSOLUTE_COLORIMETRIC
Flags: This value commands on how to handle the whole process. Some or none of this values can be joined via the 'or' operator.
cmsFLAGS_MATRIXINPUT | CLUT ignored on input profile, matrix-shaper used instead (for speed, and debugging purposes)
cmsFLAGS_MATRIXOUTPUT | Same as anterior, but for output profile only.
cmsFLAGS_NOTPRECALC | By default, lcms smelt luts into a device-link CLUT. This speedup whole transform greatly. If you don't wanna this, and wish every value to be translated to PCS and back to output space, include this flag.
cmsFLAGS_NULLTRANFORM | Don't transform anyway, only apply pack/unpack routines (usefull to deactivate color correction but keep formatting capabilities)
cmsFLAGS_HIGHRESPRECALC | Use 48 points instead of 33 for device-link CLUT precalculation. Not needed but for the most extreme cases of mismatch of "impedance" between profiles.
cmsFLAGS_LOWRESPRECALC | Use lower resolution table. Usefull when memory is a preciated resource.
cmsFLAGS_BLACKPOINTCOMPENSATION | Use BPC algorithm.

See Also

- TIEICC Supported Color Formats

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageAddEvent

TIEImageAddEvent

Declaration

type TIEImageAddEvent = procedure(Sender : TObject;
idx : integer;
const sFilename : string;
bFolder : boolean;
bHiddenFile : boolean;
iFileSizeBytes : Int64;
CreateDate : TDateTime;
EditDate : TDateTime;
var bAllow : Boolean) of object;

Description

Occurs whenever an image is added to a TImageEnFolderMView or when using TImageEnMView.FillFromDirectory.

Set bAllow to skip the addition of certain files.

Value | Description
Sender | The TImageEnFolderMView or TImageEnMView
idx | The new position for this file
sFilename | The full path of the file or folder
bFolder | True for folders, false for files
bHiddenFile | True for files marked hidden in file properties
iFileSizeBytes | Size of the file in bytes
CreateDate | Date the file was created
EditDate | Date the file was last modified
bAllow | Defaults to false. Set to true to skip the addition of this file

Examples

procedure TfMain.ImageEnMView1ImageAdd(Sender : TObject; idx : integer; const sFilename : string; bFolder : boolean; bHiddenFile : boolean; iFileSizeBytes : Int64; CreateDate : TDateTime; EditDate : TDateTime; var bAllow : Boolean);
const
ONE_MB = 1024 * 1024;
begin
// Don't add files larger than one MB
if iFileSizeBytes > ONE_MB then
bAllow := False;
end;

procedure TfMain.ImageEnMView1ImageAdd(Sender : TObject; idx : integer; const sFilename : string;
bFolder : boolean; bHiddenFile : boolean; iFileSizeBytes : Int64;
CreateDate : TDateTime; EditDate : TDateTime; var bAllow : Boolean);
const
ONE_YEAR = 365;
begin
// Don't add files more than a year old
if EditDate < Now - ONE_YEAR then
bAllow := False;
end;


TIEImageAtPosEvent

TIEImageAtPosEvent

Declaration

TIEImageAtPosEvent = procedure(Sender: TObject; var idx: integer; x, y: Integer) of object;

Description

Used by the OnImageAtPos event to check if the specified coordinates are inside a thumbnail.
idx contains the proposed image thumbnail index. You can change this value or set it to -1 for no thumbnail.


TIEImageDraw2Event

TIEImageDraw2Event

Declaration

TIEImageDraw2Event = procedure(Sender: TObject; idx: integer; Left, Top: integer; ImageRect: TRect; Canvas: TCanvas) of object;

Description

idx is the index of the image being painted
Left is the X coordinate of the top-left corner of the thumbnail
Top is the Y coordinate of the top-left corner of the thumbnail.
ImageRect is the actual image rectangle.
Canvas is the canvas to draw to.


TIEImageDrawEvent

TIEImageDrawEvent

Declaration

TIEImageDrawEvent = procedure(Sender: TObject; idx: integer; Left, Top: integer; Canvas: TCanvas) of object;

Description

idx is the index of the image being painted
Left is the X coordinate of the top-left corner of the thumbnail
Top is the Y coordinate of the top-left corner of the thumbnail.
Canvas is the canvas to draw to.


TIEImageDrawEventEx

TIEImageDrawEventEx

Declaration

TIEImageDrawEventEx = procedure(Sender: TObject; idx: integer; Left, Top: integer; Dest: TBitmap; var ThumbRect: TRect) of object;


TIEImageEnAnnot

TIEImageEnAnnot

Description

Contains the TImageEnVect objects loaded (or to save) from a TIFF or JPEG.
Using a TIEImageEnAnnot object you can create new objects, copy to or from a TImageEnVect (as vectorial objects) or TImageEnView (as layers), or just draw onto the bitmap.

Methods and Properties

- Clear
- CopyToTImageEnVect
- CopyFromTImageEnView
- CopyFromTImageEnVect
- CopyToTImageEnView
- DrawToBitmap
- IsEmpty
- ObjectsCount
- HasVectorialObjects

Example

// Save image and layers in TImageEnView to 'jpeg_with_layers.jpg'
ImageEnView1.IO.Params.ImageEnAnnot.CopyFromTImageEnView();
ImageEnView1.IO.SaveToFile('jpeg_with_layers.jpg');

// Load image and layers in 'jpeg_with_layers.jpg' to TImageEnView
ImageEnView1.IO.LoadFromFile('jpeg_with_layers.jpg');
ImageEnView1.IO.Params.ImageEnAnnot.CopyToTImageEnView();


TIEImageEnAnnot.Clear

TIEImageEnAnnot.Clear

Declaration

procedure Clear();

Description

Removes all vectorial objects from TIEImageEnAnnot.

Example

// load a jpeg with TImageEnVect objects, remove objects, and save back
ImageEnView1.IO.LoadFromFile('input.jpg');
ImageEnView1.IO.Params.ImageEnAnnot.Clear();
ImageEnView1.IO.SaveToFile('output.jpg');


TIEImageEnAnnot.CopyFromTImageEnVect

TIEImageEnAnnot.CopyFromTImageEnVect

Declaration

procedure CopyFromTImageEnVect(Target: TObject = nil);

Description

Copies vectorial objects from a TImageEnVect object.
If Target is nil then the parent TImageEnVect is given.

Notes:
- The EXIF marker block has a maximum size of 65KB, so CopyFromTImageEnVect will raise an exception if the data size of all layers exceeds this
- The TIOParams.ImageEnAnnot format is proprietary to ImageEn. If you need annotations in a format supported by other applications, see ImagingAnnot

Example

// save image and vectorial objects in TImageEnVect to 'jpeg_with_objects.jpg'
ImageEnVect1.IO.Params.ImageEnAnnot.CopyFromTImageEnVect();
ImageEnVect1.IO.SaveToFile('jpeg_with_objects.jpg');

See Also

- CopyToTImageEnVect
- TIEImagingAnnot.CopyFromTImageEnVect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnAnnot.CopyFromTImageEnView

TIEImageEnAnnot.CopyFromTImageEnView

Declaration

procedure CopyFromTImageEnView(Target: TObject = nil);

Description

Copies layers from a TImageEnView object.
If Target is nil then the parent TImageEnView is given.

Notes:
- The EXIF marker block has a maximum size of 65KB, so CopyFromTImageEnView will ignore any TIEImageLayerimage layers
- An exception is raised if the data block exceeds 65KB
- The TIOParams.ImageEnAnnot format is proprietary to ImageEn.

Example

// save image and layers in TImageEnView to 'jpeg_with_layers.jpg'
ImageEnView1.IO.Params.ImageEnAnnot.CopyFromTImageEnView();
ImageEnView1.IO.SaveToFile('jpeg_with_layers.jpg');

See Also

- CopyToTImageEnView
- TIEImagingAnnot.CopyFromTImageEnView

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnAnnot.CopyToTImageEnVect

TIEImageEnAnnot.CopyToTImageEnVect

Declaration

procedure CopyToTImageEnVect(Target: TObject = nil);

Description

Copies vectorial objects in TIEImageEnAnnot into the specified TImageEnVect.
If Target is nil then the parent TImageEnVect is given.

Example

// load image and vectorial objects in 'jpeg_with_objects.jpg' to TImageEnVect
ImageEnVect1.IO.LoadFromFile('jpeg_with_objects.jpg');
ImageEnVect1.IO.Params.ImageEnAnnot.CopyToTImageEnVect();

See Also

- CopyFromTImageEnVect
- TIEImagingAnnot.CopyToTImageEnVect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnAnnot.CopyToTImageEnView

TIEImageEnAnnot.CopyToTImageEnView

Declaration

procedure CopyToTImageEnView(Target: TObject = nil);

Description

Copies layers in TIEImageEnAnnot into the specified TImageEnView.
If Target is nil then the parent TImageEnView is given.

Example

// load image and layers in 'jpeg_with_layers.jpg' to TImageEnView
ImageEnView1.IO.LoadFromFile('jpeg_with_layers.jpg');
ImageEnView1.IO.Params.ImageEnAnnot.CopyToTImageEnView();

See Also

- CopyFromTImageEnView
- TIEImagingAnnot.CopyToTImageEnView

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnAnnot.DrawToBitmap

TIEImageEnAnnot.DrawToBitmap

Declaration

procedure DrawToBitmap(target: TIEBitmap; Antialias: boolean);

Description

Draws all annotations to the specified bitmap.

Example

ImageEnView.IO.ImageEnAnnot.DrawToBitmap( ImageEnView.IEBitmap, true );
ImageEnView.Update();


TIEImageEnAnnot.HasVectorialObjects

TIEImageEnAnnot.HasVectorialObjects

Declaration

property HasVectorialObjects: Boolean; (Read-only)

Description

Returns true if the TIEImageEnAnnot object contains <TImageEnVect> objects (i.e. CopyFromTImageEnVect was used). Returns False if it contains TImageEnView layers (i.e. CopyFromTImageEnView was used).


TIEImageEnAnnot.IsEmpty

TIEImageEnAnnot.IsEmpty

Declaration

function IsEmpty(): boolean;

Description

Returns True if the TIEImageEnAnnot object contains no objects.

Example

ImageEnView.IO.LoadFromFile('input.jpg');
if ImageEnVIew1.IO.Params.ImageEnAnnot.IsEmpty() then
ShowMessage('input.jpg contains no vectorial objects');


TIEImageEnAnnot.ObjectsCount

TIEImageEnAnnot.ObjectsCount

Declaration

property ObjectsCount: integer;

Description

Returns the number of annotation objects contained in the TIEImageEnAnnot object.
If CopyFromTImageEnVect was used, the result will be the count of TImageEnVect Objects.
If CopyFromTImageEnView was used, the result will be the count of TImageEnView Layers.

Note: Calculating objects count can be time and memory intensive.


TIEImageEnGestureEvent

TIEImageEnGestureEvent

Declaration

TIEImageEnGestureEvent = procedure(Sender: TObject; Flags: TIEGestureFlags; ID: TIEGestureID; Location: TSmallPoint; Value: integer; InertiaX: integer; InertiaY: integer; PressAndTapDistance: integer; var Handled: boolean) of object;

Description

Used by the OnImageEnGesture event.


TIEImageEnGlobalSettings.ApplyColorProfileOnRendering

TIEImageEnGlobalSettings.ApplyColorProfileOnRendering

Declaration

property ApplyColorProfileOnRendering: Boolean;

Description

Applies ColorProfile when the image is displayed.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.AutoFragmentBitmap

TIEImageEnGlobalSettings.AutoFragmentBitmap

Declaration

property AutoFragmentBitmap: boolean;

Description

If true, TIEBitmap will try to allocate chunks of memory instead of a single buffer to contain the image.
This is useful when memory is fragmented.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.AutoLocateOnDisk

TIEImageEnGlobalSettings.AutoLocateOnDisk

Declaration

property AutoLocateOnDisk: boolean;

Description

If true, TIEBitmap will allocate the image on disk if it fails to allocate on memory.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.BlueToGrayCoef

TIEImageEnGlobalSettings.BlueToGrayCoef

Declaration

property BlueToGrayCoef: integer;

Description

Specify the blue coefficient used to convert from color to gray scale. The conversion formula is:
gray := (Red * RedToGrayCoef + Green * GreenToGrayCoef + Blue * BlueToGrayCoef) div 100;

Defaults: 21 (Red), 71 (Green) and 8 (Blue)


TIEImageEnGlobalSettings.BorderX

TIEImageEnGlobalSettings.BorderX

Declaration

property BorderX: integer;

Description

Returns the System border horizontal edge.


TIEImageEnGlobalSettings.BorderY

TIEImageEnGlobalSettings.BorderY

Declaration

property BorderY: integer;

Description

Returns the System border vertical edge.


TIEImageEnGlobalSettings.BufferedReadStreamSize

TIEImageEnGlobalSettings.BufferedReadStreamSize

Declaration

property BufferedReadStreamSize: integer;

Description

Specifies the size of read buffered streams. Setting 0 disables streams buffering.
At the moment this applies to loading images, loading parameters and detection of RAW file format.

Default: 1024

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.ColorReductionAlgorithm

TIEImageEnGlobalSettings.ColorReductionAlgorithm

Declaration

property ColorReductionAlgorithm: integer;

Description

Specifies the algorithm used when converting from true color (24 bit) to color mapped images.
Color reduction algorithm are used, for example, when you save to a GIF.
-1 = automatically select
0 = Kohonen algorithm (See also: ColorReductionQuality)
1 = Median cut

Default: -1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.ColorReductionQuality

TIEImageEnGlobalSettings.ColorReductionQuality

Declaration

property ColorReductionQuality: integer;

Description

When ColorReductionAlgorithm is 0, this field specifies the quality. 0=minimum quality, 100=maximum quality.
-1 means "automatically calculated"

Default: -1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.ConvertColorFunction

TIEImageEnGlobalSettings.ConvertColorFunction

Declaration

property ConvertColorFunction: TIEConvertColorFunction;

Description

Specifies the function used to convert from a color space to another.


TIEImageEnGlobalSettings.CustomHintTimeout

TIEImageEnGlobalSettings.CustomHintTimeout

Declaration

property CustomHintTimeout: Integer;

Description

Specifies the number of milliseconds that custom hints are displayed. Custom hints are those that change when hovering over content, such as ShowThumbnailHint and HintFormat.

Default: 10000 (10 seconds)

Examples

// Display custom hints for 5 seconds
IEGlobalSettings().CustomHintTimeout := 5000;


TIEImageEnGlobalSettings.DefaultCoresCount

TIEImageEnGlobalSettings.DefaultCoresCount

Declaration

property DefaultCoresCount: integer;

Description

Specifies the total amount of processor's cores to use.

Default: -1 (returns the value from the operating system)

See also: IEGetCoresCount.


TIEImageEnGlobalSettings.DefaultDialogFont

TIEImageEnGlobalSettings.DefaultDialogFont

Declaration

property DefaultDialogFont: TFont;

Description

Don't use directly as it may be uninitialized, use IEGetDefaultDialogFont().


TIEImageEnGlobalSettings.DefaultDPIX

TIEImageEnGlobalSettings.DefaultDPIX

Declaration

property DefaultDPIX: integer;

Description

Specify the default DPI X value assigned when a loaded image doesn't contain this information.

Default: 300 (both X and Y)


TIEImageEnGlobalSettings.DefaultDPIY

TIEImageEnGlobalSettings.DefaultDPIY

Declaration

property DefaultDPIY: integer;

Description

Specify the default DPI Y value assigned when a loaded image doesn't contain this information.

Default: 300 (both X and Y)


TIEImageEnGlobalSettings.DefaultLayerText

TIEImageEnGlobalSettings.DefaultLayerText

Declaration

property DefaultLayerText: string;

Description

Specifies the text that is displayed when creating new text layers in a TImageEnView.

Default: ''

Note: This can be overridden by LayerDefaults

Examples

// Add default text for new text layers
IEGlobalSettings().DefaultLayerText := 'Double-click to edit text';


TIEImageEnGlobalSettings.DefaultPreviewHistogramScale

TIEImageEnGlobalSettings.DefaultPreviewHistogramScale

Declaration

property DefaultPreviewHistogramScale: THistogramScale;

Description

Default histogram plot scale for image processing dialog.

Default: iehsLinearClipped

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.DefaultPreviewsZoomFilter

TIEImageEnGlobalSettings.DefaultPreviewsZoomFilter

Declaration

property DefaultPreviewsZoomFilter: TResampleFilter;

Description

Default zoom (resampling) filter for previews.

Default: rfFastLinear

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.DefaultResampleFilter

TIEImageEnGlobalSettings.DefaultResampleFilter

Declaration

property DefaultResampleFilter: TResampleFilter;

Description

The default resampling filter is used when no filter is specified and no other default resampling filters are used, e.g. when using DoPreviews([peResize]).

Default: rfFastLinear

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.DefaultRotateAntiAlias

TIEImageEnGlobalSettings.DefaultRotateAntiAlias

Declaration

property DefaultRotateAntiAlias: TIEAntialiasMode;

Description

Used when rotating images and an anti-alias algorithm cannot be specified, e.g. when using DoPreviews([peRotate]).

Default: ierFast

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.DefDialogCenter

TIEImageEnGlobalSettings.DefDialogCenter

Declaration

property DefDialogCenter: TIEDialogCenter;

Description

Specify a function called when open/save dialogs needs to be centered.


TIEImageEnGlobalSettings.DefMinFileSize

TIEImageEnGlobalSettings.DefMinFileSize

Declaration

property DefMinFileSize: int64;

Description

Specifies the default value for MinFileSize property.
MinFileSize specifies the minimum memory needed by the image to allow use of memory mapped file.
If the memory needed by the image is less than MinFileSize, the image will be stored in memory (also if the Location is ieFile). If the global variable DefMinFileSize is not -1, it overrides the property MinFileSize value.

Default: -1

See Also

- MinFileSize
- Location

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.DefTempPath

TIEImageEnGlobalSettings.DefTempPath

Declaration

property DefTempPath: string;

Description

Specifies the directory where ImageEn stores temporary files. If specified as '' the default system temporary directory is used.

Default: '' (use system temp directory)

Applications should set DefTempPath inside 'initialization' block, before that the ImageEn components are created.
For TImageEnMView component, you can change DefTempPath at any time, just call after the Clear method.

Example

Initialization
IEGlobalSettings().DefTempPath := 'G:\temp';

...or...

// Set ImageEnMView1 to use disk G: and ImageEnMView2 to disk H:
IEGlobalSettings().DefTempPath := 'G:\';
ImageEnMView1.Clear;
IEGlobalSettings().DefTempPath := 'H:\';
ImageEnMView2.Clear;


TIEImageEnGlobalSettings.DialogBackgroundImage

TIEImageEnGlobalSettings.DialogBackgroundImage

Declaration

property DialogBackgroundImage: TBitmap;

Description

Specify an image to use as the background of open/save dialogs. Set to nil to use the default background.

Default: nil

Example

// Load an image to use as a background
MyIEBitmap := TIEBitmap.create;
MyIEBitmap.Read( 'D:\MyTileBackground.jpeg' );
IEGlobalSettings().DialogBackgroundStyle := iedbCustom;
if not assigned( IEGlobalSettings().DialogBackgroundImage ) then
IEGlobalSettings().DialogBackgroundImage := TBitmap.Create;
IEGlobalSettings().DialogBackgroundImage.Assign( MyIEBitmap.VclBitmap );
MyIEBitmap.Free;

// Clear an existing custom background
IEGlobalSettings().DialogBackgroundStyle := iedbDefault;
// This is not necessary, but frees up some memory
if assigned( IEGlobalSettings().DialogBackgroundImage ) then
begin
IEGlobalSettings().DialogBackgroundImage.Free;
IEGlobalSettings().DialogBackgroundImage := nil;
end;

See Also

- DialogBackgroundStyle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.DialogBackgroundStyle

TIEImageEnGlobalSettings.DialogBackgroundStyle

Declaration

property DialogBackgroundStyle: TIEDialogBackgroundStyle;

Description

The style of the window for ImageEn dialog such as Editing Previews, IO Previews and printing. If DialogBackgroundStyle is iedbCustom then you must specify DialogBackgroundImage

Default: iedbDefault

Example

// Set background of dialog windows to "Metal"
IEGlobalSettings().DialogBackgroundStyle := iedbMetal;

// Reset the background
IEGlobalSettings().DialogBackgroundStyle := iedbDefault;

See Also

- DialogBackgroundImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.EdgeX

TIEImageEnGlobalSettings.EdgeX

Declaration

property EdgeX: integer;

Description

Returns the System border horizontal edge (3D).


TIEImageEnGlobalSettings.EdgeY

TIEImageEnGlobalSettings.EdgeY

Declaration

property EdgeY: integer;

Description

Returns the System border vertical edge (3D).


TIEImageEnGlobalSettings.EnableCMS

TIEImageEnGlobalSettings.EnableCMS

Declaration

property EnableCMS: boolean;

Description

Enables a Color Management System. Default CMS is provided by Windows.

Default: False (no color profile is applied).

See: Color Management System.


TIEImageEnGlobalSettings.EnableTheming

TIEImageEnGlobalSettings.EnableTheming

Declaration

property EnableTheming: boolean;

Description

When enabled, VCL Themed colors will be used for ImageEn visual controls.

Affected TImageEnView/TImageEnVect Properties
- Background
- GradientEndColor
- RulerParams.Color
- RulerParams.Font.Color
- RulerParams.GripColorDefault
- RulerParams.GripPenColor
- RulerParams.MeasureColor

Affected TImageEnMView/TImageEnFolderMView Properties
- Background
- GradientEndColor
- TopTextFont.Color
- InfoTextFont.Color
- BottomTextFont.Color
- TextBackgroundColor
- SelectedFontColor
- SelectionColor
- ThumbnailsBackground
- ThumbnailsBackgroundSelected
- ThumbnailsBorderColor

Other Affected Properties
- PreviewImageBackgroundColor
- RulerColor
- GripColorDefault
- GripPenColor

Note: Only system colors will be themed, e.g. clWindow, clWindowText, clBtnFace, clGrayText, etc. Controls with fixed colors such as clBlue, clBlack, $$00FCFCFC will not be themed.

Default: False (specified colors are used)

Demo

Demos\Other\ImageEn_Theming\VclStylesDemo.dpr

Examples

// Enable VCL theme colors in ImageEn
IEGlobalSettings().EnableTheming := True;
ImageEnView1.Update();
ImageEnMView1.Update();

// Compare the following...
IEGlobalSettings().EnableTheming := True;
ImageEnView1.Background := clBtnFace; // Background will be a themed color
ImageEnView1.Background := clBlue; // Background will be blue


TIEImageEnGlobalSettings.EXIFInteroperabilityIndexUsage

TIEImageEnGlobalSettings.EXIFInteroperabilityIndexUsage

Declaration

property EXIFInteroperabilityIndexUsage: TIEEXIFInteroperabilityIndexUsage;

Description

When this property is ieiiApplyOnly or ieiiApplyAndReset and EnableCMS is True then EXIF interoperability index (EXIF_InteropIndex) is applied.
If this property contains ieiiApplyAndReset then after applied EXIF_InteropIndex is reset (emptied).

When EXIFInteroperabilityIndexUsage is ieiiApplyAndReset then ImageEn follows these rules:
- If EXIF_InteropIndex = 'R03' and there isn't an embedded profile then the AdobeRGB1998 profile is applied. Content of EXIF_InteropIndex field is emptied.
- If EXIF_InteropIndex = 'R03' and there is an embedded profile then the embedded profile is applied. Content of EXIF_InteropIndex field is emptied.
- If EXIF_InteropIndex <> 'R03' and there isn't an embedded profile no profile is applied. Content of EXIF_InteropIndex remains untouched.
- If EXIF_InteropIndex <> 'R03' and there is an embedded profile then the embedded profile is applied. Content of EXIF_InteropIndex field is emptied.

When this property is ieiiNone then EXIF_InteropIndex is read but not modified or applied in any way.

Default: ieiiApplyAndReset

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.EXIFMakerNotesHandling

TIEImageEnGlobalSettings.EXIFMakerNotesHandling

Declaration

property EXIFMakerNotesHandling: TIEEXIFMakerNotesHandling;

Description

This property decides how to handle EXIF MakerNotes tag when loading or saving images.

Default: iemhDecodeOrDiscardRaw

See Also

- EXIF_MakerNote

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.GreenToGrayCoef

TIEImageEnGlobalSettings.GreenToGrayCoef

Declaration

property GreenToGrayCoef: integer;

Description

Specify the green coefficient used to convert from color to gray scale. The conversion formula is:
gray := (Red * RedToGrayCoef + Green * GreenToGrayCoef + Blue * BlueToGrayCoef) div 100;

Defaults: 21 (Red), 71 (Green) and 8 (Blue)


TIEImageEnGlobalSettings.GridMajorStep

TIEImageEnGlobalSettings.GridMajorStep

Declaration

property GridMajorStep: integer;

Description

If a value other than zero is specified then every nth grid line will be an inversion of the grid pen color ((when DisplayGridKind is not iedgNone).

Default: 0

Note: if GridPen.Mode = pmCopy, then for inverted grid lines it will be pnNotCopy, otherwise inverted grid lines are always set to pmCopy (i.e. the GridPen.Color will be used)

Examples

// Silver grid lines with almost black major grid lines
IEGlobalSettings().MinZoomDisplayGrid := 200;
IEGlobalSettings().GridPen.Color := clSilver;
IEGlobalSettings().GridPen.Mode := pmCopy;
IEGlobalSettings().GridMajorStep := 10;
ImageEnView1.DisplayGridKind := iedgPixelGrid;
ImageEnView1.Update;

// Grid lines are inversion of background color (mode = pmNot), major grid lines are red
IEGlobalSettings().MinZoomDisplayGrid := 200;
IEGlobalSettings().GridPen.Color := clRed;
IEGlobalSettings().GridPen.Mode := pmNot;
IEGlobalSettings().GridMajorStep := 10;
ImageEnView1.DisplayGridKind := iedgPixelGrid;
ImageEnView1.Update;

See Also

- GridPen
- MinZoomDisplayGrid

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.GridPen

TIEImageEnGlobalSettings.GridPen

Declaration

property GridPen: TPen;

Description

Specifies the pen used to draw the grid on a TImageEnView (when DisplayGridKind is not iedgNone).

Examples

// Draw a grid to show pixels when we zoom above 500%
IEGlobalSettings().GridPen.Color := clSilver;
IEGlobalSettings().GridPen.Style := psSolid;
IEGlobalSettings().GridPen.Mode := pmNot;
IEGlobalSettings().MinZoomDisplayGrid := 500;
ImageEnView1.DisplayGridKind := iedgPixelGrid;

// Enable guide lines to help line up images when manually rotating
IEGlobalSettings().GridPen.Color := clSilver;
IEGlobalSettings().GridPen.Style := psDot;
IEGlobalSettings().GridPen.Mode := pmCopy;
IEGlobalSettings().GuidelineCount := 4;
ImageEnView1.DisplayGridKind := iedgGuideLines;

See Also

- GridMajorStep
- MinZoomDisplayGrid

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.GuidelineCount

TIEImageEnGlobalSettings.GuidelineCount

Declaration

property GuidelineCount: integer;

Description

Specifies the minimum number of guide lines to draw in each dimension (when DisplayGridKind is iedgGuideLines).

Default: 5

Note: Guidelines always have equal horizontal and vertical spacing (i.e. are square) so there will generally be more lines in one dimension than the other. E.g. if GuidelineCount=10 then for a portrait image there will be 10 horizontal lines and 13 vertical lines.

Example

// Enable guide lines to help line up images when manually rotating
IEGlobalSettings().GridPen.Color := clSilver;
IEGlobalSettings().GridPen.Style := psDot;
IEGlobalSettings().GridPen.Mode := pmCopy;
IEGlobalSettings().GuidelineCount := 4;
ImageEnView1.DisplayGridKind := iedgGuideLines;

See Also

- GridPen
- GridMajorStep

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.HScrollHeight

TIEImageEnGlobalSettings.HScrollHeight

Declaration

property HScrollHeight: integer;

Description

Returns the System scrollbar height.


TIEImageEnGlobalSettings.ImageProcMaxThreads

TIEImageEnGlobalSettings.ImageProcMaxThreads

Declaration

property ImageProcMaxThreads: Integer;

Description

Specifies the maximum number of threads to use during image processing operations.

Default: 4

See Also

- ImageProcThreadsMinSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.ImageProcThreadsMinSize

TIEImageEnGlobalSettings.ImageProcThreadsMinSize

Declaration

property ImageProcThreadsMinSize: int64;

Description

Specifies the minimum size (in terms of Width x Height) of an image before multithreaded processing is used.

Default: 65536 (256 x 256 pixels), i.e. for a value of 65536 images smaller than 256 x 256 will not use multithreading when being edited.

See Also

- ImageProcMaxThreads

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.IOPreviewsDialogHeight

TIEImageEnGlobalSettings.IOPreviewsDialogHeight

Declaration

property IOPreviewsDialogHeight: Integer;

Description

The ClientHeight of the "Advanced" dialog in the ImageEn Save dialog, or when calling DoPreviews or DoPreviews.
If 0 the default size will be used. After display it will always have a valid value (to store the users preferred size during a session).

Default: 0

See Also

- IOPreviewsDialogWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.IOPreviewsDialogWidth

TIEImageEnGlobalSettings.IOPreviewsDialogWidth

Declaration

property IOPreviewsDialogWidth: Integer;

Description

The ClientWidth of the "Advanced" dialog in the ImageEn Save dialog, or when calling DoPreviews or DoPreviews.
If 0 the default size will be used. After display it will always have a valid value (to store the users preferred size during a session).

Default: 0

See Also

- IOPreviewsDialogHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.IsInsideTwain

TIEImageEnGlobalSettings.IsInsideTwain

Declaration

property IsInsideTwain: Boolean;

Description

Returns True if this thread is inside a Twain handling function (e.g. handling an event).


TIEImageEnGlobalSettings.IsRemoteSession

TIEImageEnGlobalSettings.IsRemoteSession

Declaration

property IsRemoteSession: boolean;

Description

Returns true if the application is being run within a RDP session


TIEImageEnGlobalSettings.MaxImageEMFSize

TIEImageEnGlobalSettings.MaxImageEMFSize

Declaration

property MaxImageEMFSize: integer;

Description

Specifies the maximum width or height of imported EMF/WMF image.

Default: 8000 pixels (wide or high)

Example

// we want maximum 1024x??? imported image
IEGlobalSettings().MaxImageEMFSize := 1024;
ImageEnView1.IO.LoadFromFile('input.wmf');


TIEImageEnGlobalSettings.MeasureUnits

TIEImageEnGlobalSettings.MeasureUnits

Declaration

MeasureUnits: TIEMeasureUnits;

Description

Specifies how measure units are displayed as strings.

Example

IEGlobalSettings().MeasureUnits[ieuNANOMETERS] := 'uM';


TIEImageEnGlobalSettings.MemoShortCuts

TIEImageEnGlobalSettings.MemoShortCuts

Declaration

MemoShortCuts: TIEMemoShortCuts;

Description

Contains all key shortcuts used in Memo objects. Defaults are:

MemoShortCuts[iesLEFTALIGN] := ShortCut(Word('L'), [ssCtrl]);
MemoShortCuts[iesCENTERALIGN] := ShortCut(Word('E'), [ssCtrl]);
MemoShortCuts[iesRIGHTALIGN] := ShortCut(Word('R'), [ssCtrl]);
MemoShortCuts[iesJUSTIFIED] := ShortCut(Word('J'), [ssCtrl]);
MemoShortCuts[iesCOPY] := ShortCut(Word('C'), [ssCtrl]);
MemoShortCuts[iesCUT] := ShortCut(Word('X'), [ssCtrl]);
MemoShortCuts[iesPASTE] := ShortCut(Word('V'), [ssCtrl]);
MemoShortCuts[iesFONTSELECT] := ShortCut(Word('F'), [ssCtrl]);
MemoShortCuts[iesBOLD] := ShortCut(Word('B'), [ssCtrl]);
MemoShortCuts[iesITALIC] := ShortCut(Word('I'), [ssCtrl]);
MemoShortCuts[iesUNDERLINE] := ShortCut(Word('U'), [ssCtrl]);
MemoShortCuts[iesBACKCOLORSELECT] := ShortCut(Word('G'), [ssCtrl]);

Change one of above lines to set your custom short cut.

The following table specifies the default key map:
Shortcut | Function
F2 | Increase font size
F1 | Decrease font size
CTRL - L | Left align
CTRL - E | Center align
CTRL - R | Right align
CTRL - J | Justified
CTRL - C | Copy
CTRL - X | Cut
CTRL - V | Paste
CTRL - F | Open font dialog
CTRL - B | Bold
CTRL - I | Italic
CTRL - U | Underline
CTRL - G | Set background color (open dialog)


TIEImageEnGlobalSettings.MinZoomDisplayGrid

TIEImageEnGlobalSettings.MinZoomDisplayGrid

Declaration

property MinZoomDisplayGrid: integer;

Description

Specifies the minimum value of zoom to display a grid (when DisplayGridKind is not iedgPixelGrid).

Default: 400

Example

// Draw a grid to show pixels when we zoom above 500%
IEGlobalSettings().GridPen.Color := clSilver;
IEGlobalSettings().GridPen.Style := psSolid;
IEGlobalSettings().GridPen.Mode := pmNot;
IEGlobalSettings().MinZoomDisplayGrid := 500;
ImageEnView1.DisplayGridKind := iedgPixelGrid;

See Also

- GridPen
- GridMajorStep

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.MMX

TIEImageEnGlobalSettings.MMX

Declaration

property MMX: boolean;

Description

Returns true if the CPU supports MMX.


TIEImageEnGlobalSettings.ModelessSelectTwainSource

TIEImageEnGlobalSettings.ModelessSelectTwainSource

Declaration

property ModelessSelectTwainSource: Boolean;

Description

If True the Twain source selection dialog is modeless (can lose focus). If False the selection dialog is modal.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.MsgLanguage

TIEImageEnGlobalSettings.MsgLanguage

Declaration

property MsgLanguage: TMsgLanguage;

Description

This property sets the language for ImageEn dialogs and messages.

Default: msSystem

Note: The UpdateLanguage method of IIELanguageUpdatable interface is called whenever MsgLanguage is updated.

Example

IEGlobalSettings().MsgLanguage := msItalian;


TIEImageEnGlobalSettings.MViewExplorerThumbnailExts

TIEImageEnGlobalSettings.MViewExplorerThumbnailExts

Declaration

property MViewExplorerThumbnailExts: string;

Description

A list of file extensions delimited by semi-colons for which ImageEnMView will retrieve thumbnails from Windows Explorer. This can be any format that displays a thumbnail in Explorer, including images and videos.

Default: '*.AVI;*.MPG;*.MPE;*.MPEG;*.WMV;*.ASF;*.IVF;*.WM;*.MP4;*.MOV;*.QT;*.RM;*.M2TS;*.MTS;*.MOD;'

Example

IEGlobalSettings().MViewExplorerThumbnailExts := '*.AVI;*.MPG;*.MPE;*.MPEG;*.WMV;*.ASF;*.IVF;*.WM;*.MP4;*.MOV;*.QT;*.RM;*.M2TS;*.MTS;*.MOD;';


TIEImageEnGlobalSettings.ObjectsTIFFTag

TIEImageEnGlobalSettings.ObjectsTIFFTag

Declaration

property ObjectsTIFFTag: integer;

Description

Specifies the TIFF tag used to read/write embedded vectorial objects.

Default: 40101

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.OpSys

TIEImageEnGlobalSettings.OpSys

Declaration

property OpSys: TIEOpSys;

Description

Returns the detected operating system.


TIEImageEnGlobalSettings.PanZoomQualityFilter

TIEImageEnGlobalSettings.PanZoomQualityFilter

Declaration

property PanZoomQualityFilter: TResampleFilter = rfNone;

Description

Specifies zoom filter for iettPanZoom transition effect.

Default: rfNone

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.PreviewAdditionalMultipageExts

TIEImageEnGlobalSettings.PreviewAdditionalMultipageExts

Declaration

property PreviewAdditionalMultipageExts: string;

Description

Additional multipage extensions (ex. 'mpg,mpeg,wmv,avi') for open/save dialogs. Files of the extensions specified will be treated as "multipage" files and their frames can be previewed.

Default: 'mpg,mpeg,wmv,avi'

Example

// Add XYZ files as a multipage format
IEGlobalSettings().PreviewAdditionalMultipageExts := 'mpg,mpeg,wmv,avi,xyz';


TIEImageEnGlobalSettings.PreviewImageBackgroundColor

TIEImageEnGlobalSettings.PreviewImageBackgroundColor

Declaration

property PreviewImageBackgroundColor: TColor;

Description

Specify the background color for image preview in open/save dialogs, print preview and image editing dialogs.

Note: This value may be overridden if EnableTheming is enabled.

Default: clBtnFace

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.PreviewImageBackgroundStyle

TIEImageEnGlobalSettings.PreviewImageBackgroundStyle

Declaration

property PreviewImageBackgroundStyle: TIEBackgroundStyle;

Description

Specify the background style for image preview in open/save dialogs, print preview and image editing dialogs.

Default: iebsSolid

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.PrintDialogMarginsIncrement

TIEImageEnGlobalSettings.PrintDialogMarginsIncrement

Declaration

property PrintDialogMarginsIncrement: double;

Description

Specifies the floating point increment/decrement for Left, Top, Right and Bottom margins.

Default: 0.01

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.PrintDialogMarginsMinValue

TIEImageEnGlobalSettings.PrintDialogMarginsMinValue

Declaration

property PrintDialogMarginsMinValue: double;

Description

Specifies the floating point allowed minimal value for Left, Top, Right and Bottom margins.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.ProxyAddress

TIEImageEnGlobalSettings.ProxyAddress

Declaration

property ProxyAddress: string;

Description

Specifies the proxy address and port when using LoadFromURL and LoadFromURL. The syntax is: 'domain:port'.

Example

IEGlobalSettings().ProxyAddress := '10.2.7.2:8080';
ImageEnView1.IO.LoadFromURL('http://www.imageen.com/image.gif');

See Also

- ProxyUser
- ProxyPassword

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.ProxyPassword

TIEImageEnGlobalSettings.ProxyPassword

Declaration

property ProxyPassword: string;

Description

Specifies the proxy password when using LoadFromURL and LoadFromURL.

Example

IEGlobalSettings().ProxyAddress := '10.2.7.2:8080';
IEGlobalSettings().ProxyUser := 'testuser';
IEGlobalSettings().ProxyPassword := 'testpassword';
ImageEnView1.IO.LoadFromURL('http://www.imageen.com/image.gif');

See Also

- ProxyAddress
- ProxyUser

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.ProxyUser

TIEImageEnGlobalSettings.ProxyUser

Declaration

property ProxyUser: string;

Description

Specifies the proxy userid when using LoadFromURL and LoadFromURL.

Example

IEGlobalSettings().ProxyAddress := '10.2.7.2:8080';
IEGlobalSettings().ProxyUser := 'testuser';
IEGlobalSettings().ProxyPassword := 'testpassword';
ImageEnView1.IO.LoadFromURL('http://www.imageen.com/image.gif');

See Also

- ProxyAddress
- ProxyPassword

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.RedToGrayCoef

TIEImageEnGlobalSettings.RedToGrayCoef

Declaration

property RedToGrayCoef: integer;

Description

Specify the red coefficient used to convert from color to gray scale. The conversion formula is:
gray := (Red * RedToGrayCoef + Green * GreenToGrayCoef + Blue * BlueToGrayCoef) div 100;

Defaults: 21 (Red), 71 (Green) and 8 (Blue)


TIEImageEnGlobalSettings.ReleaseTwainResources

TIEImageEnGlobalSettings.ReleaseTwainResources

Declaration

property ReleaseTwainResources: Boolean;

Description

Forces ImageEn to free Twain resources when not being used.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.SelectionGridColor

TIEImageEnGlobalSettings.SelectionGridColor

Declaration

property SelectionGridColor: TColor;

Description

Specifies the color of the selection grid drawn by use of SelectionGridSize, SelectionGridWidth or SelectionGridHeight

Default: $00A0A0A0 (Gray)


TIEImageEnGlobalSettings.SystemColors

TIEImageEnGlobalSettings.SystemColors

Declaration

property SystemColors: integer;

Description

Returns the bits per pixel of the display.


TIEImageEnGlobalSettings.SystemDPIX

TIEImageEnGlobalSettings.SystemDPIX

Declaration

property SystemDPIX: integer;

Description

Returns the X value of the System DPI.


TIEImageEnGlobalSettings.SystemDPIY

TIEImageEnGlobalSettings.SystemDPIY

Declaration

property SystemDPIY: integer;

Description

Returns the Y value of the System DPI.


TIEImageEnGlobalSettings.ThumbnailSize

TIEImageEnGlobalSettings.ThumbnailSize

Declaration

property ThumbnailSize: Integer;

Description

Specifies the size of the shortest dimension (width or height) for the embedded thumbnails when saving to IEN format.
Embedded thumbnails are used by TImageEnMView to speed up display.
Set to 0 to disable thumbnail saving.

Default: 250

Example

// Thumbnails will not created
IEGlobalSettings().ThumbnailSize := 0;

// Portrait images will have thumbnails of 500 px wide and >500 px high
// Landscape images will have thumbnails of 500 px high and >500 px wide
IEGlobalSettings().ThumbnailSize := 500;

See Also

- GetThumbnail

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.TransitionsDrawAlternative

TIEImageEnGlobalSettings.TransitionsDrawAlternative

Declaration

property TransitionsDrawAlternative: boolean;

Description

Set to True to use an alternative drawing style for some transitions, in some cases this will improve performance on lower spec systems, but usually it is only an aesthetic change.
Default: False

The specific effect upon each transition is as follows:
Transition | Effect of TransitionsDrawAlternative
iettCubeRotateFromLeft iettCubeRotateFromRight iettCubeRotateFromTop iettCubeRotateFromBottom iettCubeRotateFromLeft2iettCubeRotateFromRight2 iettCubeRotateFromTop2 iettCubeRotateFromBottom2 | Setting to true will disable darkening of partially shown cube faces
iettPageFlip iettReversePageFlip | Setting to true will disable darkening of partially shown pages
iettPageFlip2iettReversePageFlip2 | Setting to true will disable drawing of a centre line
iettRandomBoxes | Set to true for double-size boxes
iettSoftWipeFromLeft iettSoftWipeFromRight iettSoftWipeFromTop iettSoftWipeFromBottom | Set to true for extra soft blending
iettSweepClockwise iettSweepCounterClockwiseiettFullSweepClockwiseiettExpandingSweepClockwise | When set to true it rotates through a completely black state
iettRandomPuzzlePieces | Set to true for half-sized puzzle pieces
iettRandomBoxesWithWordiettRandomBigBoxes | Set to true for double-size boxes
iettTriangularWipeiettWordHalfSweepiettWordFullSweep | Set to true for anti-clockwise rotation
iettShreddedFromLeft iettShreddedFromRight iettShreddedFromTop iettShreddedFromBottom iettShreddedFromTopAndLeft iettShreddedFromTopAndRight iettShreddedFromBottomAndLeftiettShreddedFromBottomAndRight iettShreddedFromHorizonAndLeft iettShreddedFromHorizonAndRight iettShreddedFromTopAndVerticalCenter iettShreddedFromBottomAndVerticalCenter iettShreddedFromCenter iettShreddedToCenter iettShreddedInToHorizon iettShreddedInToVerticalCenter iettShreddedOutFromHorizon iettShreddedOutFromVerticalCenter | Set to true for larger shreds
iettBarsInFromLeftiettBarsInFromRightiettBarsFromTopiettBarsFromBottomiettBarsLeftThenRightiettBarsRightThenLeftiettBarsTopThenBottomiettBarsBottomThenTopiettBarsFrombothSidesiettBarsFromTopAndBottomiettCrisscrossWipeFromTopLeftiettCrisscrossWipeFromTopRightiettCrisscrossWipeFromBottomLeftiettCrisscrossWipeFromBottomRightiettCrisscrossWipeBounceFromTopLeftiettCrisscrossWipeBounceFromTopRightiettCrisscrossWipeBounceFromBottomLeftiettCrisscrossWipeBounceFromBottomRightiettCrisscrossWipeFromLeftRightAndTopiettCrisscrossWipeFromLeftRightAndBottomiettCrisscrossWipeFromLeftTopAndBottomiettCrisscrossWipeFromTopLeftRightAndBottomiettCrisscrossWipeFromRightTopAndBottomiettCrisscrossWipeFromBottomLeftTopRightiettRectanglesFromTheLeftiettRectanglesFromTheRightiettRectanglesFromTheTopiettRectanglesFromTheBottom | Set to true for wider bars
iettSpeckledWipeFromLeft iettSpeckledWipeFromRight iettSpeckledWipeFromTopiettSpeckledWipeFromBottom | Set to true for smaller speckles
iettExpandingExplosionsiettExpandingLightningBoltsiettExplosionWipeOutiettExplosionWipeIniettExplosionWipeInAndOut | Change to horizontally flip the shape
iettHeartWipeInAndOutiettRandomHeartsiettExpandingHeartsiettHeartWipeOutiettHeartWipeIn | Set to true for "Double hearts" instead of a single one
iettLeftRight2 iettRightLeft2iettUpDown2iettDownUp2 | If false, the wipe line is red. If true, a wider gray line is used
iettRandomPoints | Set to true for "static" rather than dots
iettExpandingTriangles | Set to true to invert the triangle
iettExpandFromLeft iettExpandFromRight iettExpandFromTop iettExpandFromBottom | Setting to true will disable darkening of the image being covered
iettRandomWordiettExpandingWord iettWordWipeOutiettWordWipeIniettWordWipeInAndOut | Set to true for larger words (i.e. greater coverage)
iettZigzagWipeFromHorizoniettZigzagWipeFromVerticalCenteriettZigzagWipeToHorizoniettZigzagWipeToVerticalCenter | Set to true for bigger teeth
iettPacmanFromLeftiettPacmanFromRightiettPacman3RowiettPacman4RowiettPacman2SimRowiettPacman4SimRowiettPacman6SimRow | Setting to true will disable drawing of "Pills"
iettRandomStar6siettExpandingStar6iettStar6WipeIniettStar6WipeOutiettStar6WipeInAndOut | Rotates the shape by 90 degrees CW (See also: TransitionsDrawShape)

Example

// Display an alternative view of the next transition
IEGlobalSettings().TransitionsDrawAlternative := True;

See Also

- TransitionsDrawShape

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.TransitionsDrawShape

TIEImageEnGlobalSettings.TransitionsDrawShape

Declaration

property TransitionsDrawShape: TIEShape;

Description

Specifies the shape for the following transition effects: iettRandomStar6s, iettExpandingStar6, iettStar6WipeIn, iettStar6WipeOut, iettStar6WipeInAndOut
Default: iesStar6

Example

// Display an expanding Pentagon effect
IEGlobalSettings().TransitionsDrawShape := iesPentagon;
ImageEnView1.PrepareTransition;
ImageEnView1.io.LoadFromFile( NextImage );
ImageEnView1.RunTransition( iettExpandingStar6 , 3000 );

See Also

- TransitionsDrawAlternative

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.TwainTransferBufferSize

TIEImageEnGlobalSettings.TwainTransferBufferSize

Declaration

property TwainTransferBufferSize: DWord;

Description

Specifies the default buffer size used to transfer images from Twain devices (in Bytes). A large buffer size can improve performance.
Set to 0 to force usage of the device's recommended value.

Default: 1048576 (One MB)

Example

// Acquire from the first Twain device using its recommended transfer buffer
IEGlobalSettings().TwainTransferBufferSize := 0;
if ImageEnView1.IO.SetSource( ieaTwain, 0 ) then
ImageEnView1.IO.Acquire;


TIEImageEnGlobalSettings.UnicodeOS

TIEImageEnGlobalSettings.UnicodeOS

Declaration

property UnicodeOS: boolean;

Description

Returns true if the system has a Unicode operating system, otherwise returns false (i.e. Win98/WinME).


TIEImageEnGlobalSettings.UseButtonGlyphsInDialogs

TIEImageEnGlobalSettings.UseButtonGlyphsInDialogs

Declaration

property UseButtonGlyphsInDialogs: boolean;

Description

When true ImageEn's dialogs will show a glyph (image) on buttons. When false the buttons only show text.

Default: False

Note: This applies to DoPrintPreviewDialog, DoPrintPreviewDialog, SelectAcquireSource, SelectAcquireSource, DoPreviews and clicking the Advanced button in TSaveImageEnDialog

Example

IEGlobalSettings().UseButtonGlyphsInDialogs := True;
ImageEnView1.IO.DoPrintPreviewDialog;


TIEImageEnGlobalSettings.UseCMYKProfile

TIEImageEnGlobalSettings.UseCMYKProfile

Declaration

property UseCMYKProfile: boolean;

Description

When true, ImageEn uses an internal ICC profile to convert to and from CMYK to RGB.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.UseDefaultFileExists

TIEImageEnGlobalSettings.UseDefaultFileExists

Declaration

property UseDefaultFileExists: boolean;

Description

When enabled ImageEn uses the standard FileExists function. Otherwise a different method is used which does not require Windows "listing" rights.

Default: false

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.UseGDIPlus

TIEImageEnGlobalSettings.UseGDIPlus

Declaration

property UseGDIPlus: boolean;

Description

If True, ImageEn used GDIPlus instead of GDI, when available.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.UseRelativeStreams

TIEImageEnGlobalSettings.UseRelativeStreams

Declaration

property UseRelativeStreams: boolean;

Description

By default ImageEn uses absolute streams. This means that the image must be contained from position zero of the stream.
Setting UseRelativeStreams=true, you can put the image in any offset of the stream.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageEnGlobalSettings.VScrollWidth

TIEImageEnGlobalSettings.VScrollWidth

Declaration

property VScrollWidth: integer;

Description

Returns the System scrollbar width.


TIEImageEnGlobalSettings.WordTransitionParams

TIEImageEnGlobalSettings.WordTransitionParams

Declaration

property WordTransitionParams: TIEWordTransitionParams;

Description

Properties for customizing the "Word" transition effects such as iettRandomWord and iettExpandingWord.

Property | Description
Word | The text that is displayed during the transition. It can be a single character, e.g. a letter or a symbol from Wingdings or a whole word. If it is a word then each letter of the word is displayed in turn. To display a whole word without cycling, enclose it in quotes (default: 'A')
FontName | The font to use to display the text, e.g. "Arial" or "Wingdings". Ensure you specify a font that is available on the destination system (default: "Arial")
Style | The style that is used to display the text, can include fsBold, fsItalic, fsUnderline and/or fsStrikeOut (default: [fsBold])
Quality | The smoothness of the text. The value specifies the height in pixels of the bitmap used to create each letter. A high value will give performance issues on some systems, whereas a low value will give the letter a blocky apperance. Practical range is 20 - 2000; default is 200

Example

// Display snowflakes in random positions
IEGlobalSettings().WordTransitionParams.Word := 'T'; // Snowflake in the Wingdings font
IEGlobalSettings().WordTransitionParams.FontName := 'Wingdings';
IEGlobalSettings().WordTransitionParams.Style := [fsBold];

ImageEnView1.PrepareTransition;
ImageEnView1.IO.LoadFromFile(GetImageOfIndex(FCurrentImage));
ImageEnView1.RunTransition(iettRandomWord, 2000);

// Transition, showing each letter of the word "ImageEn" in turn
IEGlobalSettings().WordTransitionParams.Word := 'ImageEn';
ImageEnView1.PrepareTransition;
ImageEnView1.IO.LoadFromFile(GetImageOfIndex(FCurrentImage));
ImageEnView1.RunTransition(iettWordWipeInAndOut, 5000);

// Transition wiping the screen with the word "GO!"
IEGlobalSettings().WordTransitionParams.Word := '"GO!"'; // Enclose in quotes to avoid cyling. Small words are best
ImageEnView1.PrepareTransition;
ImageEnView1.IO.LoadFromFile(GetImageOfIndex(FCurrentImage));
ImageEnView1.RunTransition(iettWordWipeInAndOut, 5000);


TIEImageEnMViewDefaultText

TIEImageEnMViewDefaultText

Declaration

type TIEImageEnMViewDefaultText = (iedtNone, iedtFilename, iedtFilenameNoExt, iedtFilePath, iedtImageDimensions, iedtImageDimAndSize, iedtFileSize, iedtFileCreateDate, iedtFileCreateDateTime, iedtFileCreateDateAndSize, iedtFileEditDate, iedtFileEditDateTime, iedtFileEditDateAndSize, iedtFileType, iedtFileExt)

Description

Default values for ImageTopText, ImageInfoText and ImageBottomText

Value | Uses Field | Displays | Example
iedtNone |  | Caption will be blank, by default |
iedtFilename | IEM_Filename | Name of the file (without path) | 'MyImage.jpg'
iedtFilenameNoExt | IEM_FilenameNoExt | Name of the file without its extension (or path) | 'MyImage'
iedtFilePath | IEM_FilePath | Path of the file | 'C:\Data\My Pictures\'
iedtImageDimensions | IEM_ImageDimensions | Dimensions and color depth of images (Nothing is shown for non-images) | '1200 x 800'
iedtImageDimAndSize | IEM_ImageDimAndSize | Dimensions of images with the file size | '1200 x 800, 3,900 KB'
iedtFileSize | IEM_FileSize | Size of the file on disk | '3,900 KB'
iedtFileCreateDate | IEM_FileCreateDate | The date that the file was created | '7/5/13'
iedtFileCreateDateTime | IEM_FileCreateDateTime | The date and time that the file was created | '7/5/13 8:03am'
iedtFileCreateDateAndSize | IEM_FileCreateDateAndSize | The create date of the file and its size | '7/5/13, 3,900 KB'
iedtFileEditDate | IEM_FileEditDate | The date that the file was last edited | '7/5/13'
iedtFileEditDateTime | IEM_FileEditDateTime | The date and time that the file was last edited | '7/5/13 8:03am'
iedtFileEditDateAndSize | IEM_FileEditDateAndSize | The last edit date of the file and its size | '7/5/13, 3,900 KB'
iedtFileType | IEM_FileType | The ImageEn type for this file | 'JPEG Image'
iedtFileExt | IEM_FileExt | The extension only of the file, e.g. JPEG for 'MyImage.jpeg' | 'JPEG'

Example

// Display the filename and dimensions for each image in C:\Images
IEFolderMView1.DefaultImageInfoText := iedtImageDimensions;
IEFolderMView1.DefaultImageBottomText := iedtFilename;
IEFolderMView1.RefreshFileList;
end;


TIEImageEnMViewIconSize

TIEImageEnMViewIconSize

Declaration

TIEImageEnMViewIconSize = (ieicStandardSize, ieicDoubleSize, ieicStretchHD, ieicStretchAll);

Description

Value | Description
ieicStandardSize | Displays a 32x32 icon in the centre of the thumbnail box
ieicDoubleSize | Stretches the icon to 64x64 and displays it in the centre of the thumbnail box
ieicStretchHD | Under Windows Vista and newer, high quality icons are stretched to the display size, Low quality icons are shown at double size (ieicDoubleSize). On XP and older versions of Windows it functions the same as _icoDoubleSize.
ieicStretchAll | Under Windows Vista and newer, all icons (low and high quality) are stretched to the display size. On XP and older versions of Windows it functions the same as _icoDoubleSize.


TIEImageEnMViewSortBy

TIEImageEnMViewSortBy

Declaration

TIEImageEnMViewSortBy = (iesbFilename, iesbTopText, iesbBottomText, iesbInfoText, iesbImageSize, iesbFilenameWithoutPath, iesbFileExtension, iesbFileSize, iesbCreateDate, iesbEditDate, iesbFileType, iesbNone);

Description

Value | Description
iesbFilename | Sorts by the full file path (using ImageFileName)
iesbTopText | Alphabetical sort on ImageTopText
iesbBottomText | Alphabetical sort on ImageBottomText
iesbInfoText | Alphabetical sort on ImageInfoText
iesbImageSize | Sorting by the image dimensions (ImageOriginalWidth x ImageOriginalHeight)
iesbFilenameWithoutPath | Sorts only on the name portion of the file (i.e. excluding the file path)
iesbFileExtension | Sorts by the extension of the file (e.g. .jpeg or .tiff)
iesbFileSize | Sorting by the size of the files on disk
iesbCreateDate | Sorting by the date that the files were created (Note: If the image contains an EXIF date, it is used rather than the file date for improved accuracy)
iesbEditDate | Sorting by the date that the files were last modified
iesbFileType | Sorting by the file type
iesbCustom | TImageEnFolderMView only: Sorts using the event, OnCustomSortCompare (has no effect in TImageEnMView)
iesbNone | No sorting


TIEImageEnMViewSortCompare

TIEImageEnMViewSortCompare

Declaration

TIEImageEnMViewSortCompare = function(Item1, Item2: integer): Integer;

Description

A comparison function that indicates how the items are to be ordered.

Return a value below 0 if Item1 is less than Item2
Return 0 if they are equal
Return a value above 0 if Item1 is greater than Item2


TIEImageEnMViewSortCompareEx

TIEImageEnMViewSortCompareEx

Declaration

TIEImageEnMViewSortCompareEx = function(Item1, Item2: integer): Integer of object;

Description

A comparison function that indicates how the items are to be ordered.

Return a value below 0 if Item1 is less than Item2
Return 0 if they are equal
Return a value above 0 if Item1 is greater than Item2


TIEImageIDRequestEvent

TIEImageIDRequestEvent

Declaration

type TIEImageIDRequestEvent = procedure(Sender: TObject; Index, ID: integer; var Bitmap: TBitmap) of object;

Description

Occurs when an image is required if you have specified a value for the ImageID property.

Index is the index of the image being displayed (i.e. 0 for first image in the grid, 1 for second, etc.)
ID is the value you have specified in ImageID property.
Bitmap is the image to display. The bitmap is copied in TImageEnMView, and then automatically freed.


TIEImageIDRequestExEvent

TIEImageIDRequestExEvent

Declaration

type TIEImageIDRequestExEvent = procedure(Sender: TObject; Index, ID: integer; var Bitmap: TIEBitmap) of object;

Description

Occurs when an image is required if you have specified a value for the ImageID property.

Index is the index of the image being displayed (i.e. 0 for first image in the grid, 1 for second, etc.)
ID is the value you have specified in ImageID property
Bitmap is the image to display. The bitmap is copied in TImageEnMView, and then automatically freed.


TIEImageLayer

TIEImageLayer

Description

TImageEnView supports multiple layers, allowing the creation of a single image from multiple source images (which can be resized, rotated, moved, etc).
TIEImageLayer is a descendent of TIELayer which contains an image.

Review the Layer Documentation for a full description of layer support.

Methods and Properties

AspectRatioLocked
Assign
AlphaEdgeFeathering
Bitmap
BorderColor
BorderWidth
Clear
ClientAreaBox
ConvXBmp2Scr
ConvXScr2Bmp
ConvYBmp2Scr
ConvYScr2Bmp
CopyToBitmap
CropAlpha
Cropped
DrawingInfo
DrawOuter
ExecuteOpenDialog
GetIndex
GetLayerMask
GetProperties
Guid
GroupIndex
Height
IsMask
Kind
Locked
Modified
Magnify
Name
Opacity
Operation
PosX
PosY
PreferredAspectRatio
ResampleFilter
RestoreAspectRatio
RestoreSize
Rotate
RotateCenterX
RotateCenterY
Selectable
Selected
SetProperties
Swap
SupportsFeature
Tag
Transparency
UserData
UserDataLen
UseResampleFilter [image] /C>
Visible
VisibleBox
Width

Unique to TIEImageLayer

Example

// Load an image layer and assign a pink border
ImageEnView1.LayersAdd( ielkImage ); // Append an image layer
ImageEnView1.IO.LoadFromFile('C:\New Zealand.jpg'); // Load image into the new/active layer
ImageEnView1.CurrentLayer.BorderColor := $008000FF;
ImageEnView1.CurrentLayer.BorderWidth := 3;
ImageEnView1.Update();

// Fix the aspect ratio of an image (that has been resized)
if ImageEnView1.CurrentLayer is TIEImageLayer then
ImageEnView1.CurrentLayer.RestoreAspectRatio();
ImageEnView1.Update();

See Also

- LayersAdd
- LayersInsert
- TIELayerKind

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageLayer.BorderColor

TIEImageLayer.BorderColor

Declaration

property BorderColor: TColor;

Description

The color of the frame around the image.
By default, image layers do not show a border (i.e. BorderColor = clNone). Set a valid color for BorderColor to show a border.

Default: clNone

Example

// Add a thick pink border to the image layer
TIEImageLayer( ImageEnView1.CurrentLayer ).BorderColor := $008000FF;
TIEImageLayer( ImageEnView1.CurrentLayer ).BorderWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.BorderColor
- BorderWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageLayer.BorderWidth

TIEImageLayer.BorderWidth

Declaration

property BorderWidth: Integer;

Description

The width of the frame around the image.

Note: By default, image layers do not show a border. Set a valid color for BorderColor to show a border.

Default: 1

Example

// Add a thick pink border to the image layer
TIEImageLayer( ImageEnView1.CurrentLayer ).BorderColor := $008000FF;
TIEImageLayer( ImageEnView1.CurrentLayer ).BorderWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.BorderWidth
- BorderColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageLayer.Clear

TIEImageLayer.Clear

Declaration

procedure Clear(FillColor: TColor = clWhite; Width: Integer = 1; Height: Integer = 1);

Description

Removes any transparent area on the edge of the layer bitmap, repositioning and resizing the resulting layer to the visible rectangle.
Result is true if the bitmap was cropped (i.e. alpha was removed).

Example

// Clear the current image, but maintain its existing size
if ImageEnView1.CurrentLayer is TIEImageLayer then
TIEImageLayer( ImageEnView1.CurrentLayer ).Clear( clWhite, ImageEnView1.CurrentLayer.Width, ImageEnView1.CurrentLayer.Height );
ImageEnView1.Update();


TIEImageLayer.CropAlpha

TIEImageLayer.CropAlpha

Declaration

function CropAlpha(): Boolean;

Description

Removes any transparent area on the edge of the layer bitmap, repositioning and resizing the resulting layer to the visible rectangle.
Result is true if the bitmap was cropped (i.e. alpha was removed).

Example

if ImageEnView1.CurrentLayer is TIEImageLayer then
TIEImageLayer( ImageEnView1.CurrentLayer ).CropAlpha();
ImageEnView1.Update();

See Also

- CropAlpha
- CropTransparentBorder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageLayer.ExecuteOpenDialog

TIEImageLayer.ExecuteOpenDialog

Declaration

function ExecuteOpenDialog(): Boolean;

Description

Displays an open image dialog (using ExecuteOpenDialog) to allow the user to browse for an image. It is applied to the current layer.

Example

if ImageEnView1.CurrentLayer is TIEImageLayer then
TIEImageLayer( ImageEnView1.CurrentLayer ).ExecuteOpenDialog();


TIEImageLayer.IsMask

TIEImageLayer.IsMask

Declaration

property IsMask: Boolean;

Description

If True this is a layer mask. A layer mask contains a gray scale image (ie8g) which is connected to the upper layer (i.e. if Layer 3 is a mask, then it will apply to layer 2).
The layer mask specifies what parts of the upper layer is visible (i.e. mask pixels of 0 will hide the underlying image. Whereas, pixels of 255 will be fully visible).
A layer mask should be invisible (Visible=False).

// This is an example of a mask image (right-click to save to file). The black areas will become fully transparent in the underlying image. The gray will have 50% transparency and the white will be fully opaque.

Default: False

Notes:
- This property is only valid for image layers
- Mask layers will only affect image layers

Example

// Clear and load our image into Layer 0
ImageEnView1.ClearAll();
ImageEnView1.IO.LoadFromFile( 'C:\Image.jpg' );

// Now add our mask layer
ImageEnView1.LayersAdd( ielkImage );
ImageEnView1.IO.LoadFromFile( 'C:\Mask.png' );
TIEImageLayer( ImageEnView1.CurrentLayer ).IsMask := True;
ImageEnView1.CurrentLayer.Visible := False;
ImageEnView1.CurrentLayer.PosX := 0;
ImageEnView1.CurrentLayer.PosY := 0;
ImageEnView1.CurrentLayer.Width := ImageEnView1.Layers[0].Width;
ImageEnView1.CurrentLayer.Height := ImageEnView1.Layers[0].Height;

Source Image:

Mask Image:

Result (on a white TImageEnView):


TIEImageLayer.Magnify

TIEImageLayer.Magnify

Declaration

property Magnify: TIELayerMagnification

Description

Set properties if the layer is a magnification layer.

Note: Only available to TIEImageLayer

Demo

Demos\Display\Magnify2\Magnify2.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageLayer.ResampleFilter

TIEImageLayer.ResampleFilter

Declaration

property ResampleFilter: TResampleFilter;

Description

When UseResampleFilter is true, this property specifies a resample filter to use instead of default to improve the quality of images.
The default display filter is specified by ZoomFilter. The filter used when merging layers is specified by LayersMergeFilter.

Default: rfFastLinear

Note: Only available to TIEImageLayer. To improve the display quality of other layers, use AntiAlias.

Example

// Use rfTriangle for just the current layer
TIEImageLayer( ImageEnView1.CurrentLayer ).ResampleFilter := rfTriangle;
TIEImageLayer( ImageEnView1.CurrentLayer ).UseResampleFilter := True;
ImageEnView1.Update();

See Also

- UseResampleFilter
- AntiAlias
- ZoomFilter
- LayersMergeFilter
- LayersFastDrawing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageLayer.RestoreSize

TIEImageLayer.RestoreSize

Declaration

procedure RestoreSize();

Description

Sizes the layer to original dimensions (i.e. display at 100% zoom).

Example

if ImageEnView1.CurrentLayer is TIEImageLayer then
ImageEnView1.CurrentLayer.RestoreSize();
ImageEnView1.Update();

See Also

- RestoreAspectRatio

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageLayer.UseResampleFilter

TIEImageLayer.UseResampleFilter

Declaration

property UseResampleFilter: boolean;

Description

Enables the usage of the quality filter specified by ResampleFilter instead of the default.
The default display filter is specified by ZoomFilter. The filter used when merging layers is specified by LayersMergeFilter.

Default: False

Note: Only available to TIEImageLayer. To improve the display quality of other layers, use AntiAlias.

Example

// Use rfTriangle for just the current layer
TIEImageLayer( ImageEnView1.CurrentLayer ).ResampleFilter := rfTriangle;
TIEImageLayer( ImageEnView1.CurrentLayer ).UseResampleFilter := True;
ImageEnView1.Update();

See Also

- ResampleFilter
- AntiAlias
- ZoomFilter
- LayersMergeFilter
- LayersFastDrawing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImageList.AppendImageRef

TIEImageList.AppendImageRef

Declaration

function AppendImageRef(image: TIEBitmap; filename: WideString): integer;

Description

Appends the specified image. This method doesn't copy the bitmap, just takes ownership of the image object.

Parameter | Description
image | Image to append.
filename | Filename of the image.


TIEImageList.Clear

TIEImageList.Clear

Declaration

procedure Clear();

Description

Removes all images.


TIEImageList.Filename

TIEImageList.Filename

Declaration

property Filename[index: integer]: WideString;

Description

Represents the filename of the specified image.


TIEImageList.FillFromDirectory

TIEImageList.FillFromDirectory

Declaration

procedure FillFromDirectory(const Directory: WideString; Limit : integer = -1; AllowUnknownFormats : boolean = false; const ExcludeExtensions : WideString = '';
DetectFileFormat : boolean = false; const FilterMask : WideString = ''; IncludeVideoFiles : Boolean = False);

Description

Automatically loads all known images found in a folder.

Parameter | Description
Directory | Folder to search for files
Limit | The maximum number of images to load. -1 means no limit.
AllowUnknownFormats | If false (default) only known and supported file formats are loaded. Otherwise all files are loaded
ExcludeExtensions | A comma separated list of file extensions to skip (e.g. 'lyr,all,iev')
DetectFileFormat | If true then the image type is detected by reading the header (which can be slow). Otherwise ImageEn only checks the file extension
FilterMask | Limits the fill to file extensions found in a comma separated list (e.g. 'jpg,jpeg,jpe'). Empty string means "all supported extensions"
bIncludeVideoFiles | If AllowUnknownFormats is false then by default video files are not included. Set to true to include supported video file types such as AVI and MPEG


TIEImageList.Image

TIEImageList.Image

Declaration

property Image[index: integer]: TIEBitmap;

Description

Gets/sets the image at the specified index.


TIEImageList.ImageCount

TIEImageList.ImageCount

Declaration

property ImageCount: integer;

Description

Returns the number of images in the list.
Read-only.


TIEImageList.Remove

TIEImageList.Remove

Declaration

procedure Remove(imageIndex: integer);

Description

Removes the specified image.


TIEImageNotifyEvent

TIEImageNotifyEvent

Declaration

type TIEImageNotifyEvent = procedure(Sender: TObject; idx: integer) of object;

Description

Used by OnChanged. idx is the index of the relevant image.


TIEImageOutEvent

TIEImageOutEvent

Declaration

TIEImageOutEvent = procedure(Sender: TObject; idx: integer; OutBitmap: TIEBitmap) of object;

Description

Used by OnImageOut during thumbnail drawing, just prior to the drawing of the image.

idx specifies the image index. OutBitmap is the image to be drawn.


TIEImageSelectEvent

TIEImageSelectEvent

Declaration

type TIEImageSelectEvent = procedure(Sender: TObject; idx: integer) of object;

Description

Occurs whenever the user selects or deselects an image
idx is the index of the selected image.


TIEImageStorageMode

TIEImageStorageMode

Declaration

type TIEImageStorageMode = (isEmbeddedBlob, isLinkedFile);

Description

The method that images are stored or referenced by the database.

Value | Description
isEmbeddedBlob | The image is embedded within a blob field
isLinkedFile | A string field points to the filename of a local file


TIEImagingAnnot

TIEImagingAnnot

Description

Contains the (Wang) imaging annotations loaded (or to save) from a TIFF.
Using a TIEImagingAnnot object you can create new objects, copy to or from a TImageEnVect (as vectorial objects) or TImageEnView (as layers), or just draw onto the bitmap.

Note: TIEImagingAnnot supports only a subset of TImageEnVect objects. For full TImageEnVect support, use TIEImageEnAnnot instead (available as the ImageEnAnnot property).

Methods and Properties

- Assign
- Clear
- CopyFromTImageEnVect
- CopyFromTImageEnView
- CopyToTImageEnVect
- CopyToTImageEnView
- DrawToBitmap
- LoadFromStandardBuffer
- LoadFromStream
- Objects
- ObjectsCount
- SaveToStandardBuffer
- SaveToStream

Example

// Save image and layers in TImageEnView to 'TIFF_with_layers.tiff'
ImageEnView1.IO.Params.ImagingAnnot.CopyFromTImageEnView();
ImageEnView1.IO.SaveToFile('TIFF_with_layers.tiff');

// Load image and layers in 'TIFF_with_layers.tiff' to TImageEnView
ImageEnView1.IO.LoadFromFile('TIFF_with_layers.tiff');
ImageEnView1.IO.Params.ImagingAnnot.CopyToTImageEnView();


TIEImagingAnnot.Assign

TIEImagingAnnot.Assign

Declaration

procedure Assign(Source: TIEImagingAnnot);

Description

Copy annotations from another TIEImagingAnnot object.


TIEImagingAnnot.Clear

TIEImagingAnnot.Clear

Declaration

procedure Clear;

Description

Removes all annotations.


TIEImagingAnnot.CopyFromTImageEnVect

TIEImagingAnnot.CopyFromTImageEnVect

Declaration

procedure CopyFromTImageEnVect(Target: TObject=nil);

Description

Copy vectorial objects from a TImageEnVect object.
If Target is nil then the parent TImageEnVect is given.

Note: Only the following object kinds are supported: iekBITMAP, iekLINE, iekPOLYLINE, iekBOX, iekMEMO, iekTEXT. Use ImageEnAnnot to support all TImageEnVect object types

Example

// save image and vectorial objects in TImageEnVect to 'TIFF_with_objects.tiff'
ImageEnVect1.IO.Params.ImagingAnnot.CopyFromTImageEnVect();
ImageEnVect1.IO.SaveToFile('TIFF_with_objects.tiff');

See Also

- CopyToTImageEnVect
- TIEImageEnAnnot.CopyToTImageEnVect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImagingAnnot.CopyFromTImageEnView

TIEImagingAnnot.CopyFromTImageEnView

Declaration

procedure CopyFromTImageEnView(Target: TObject=nil);

Description

Copy layers from a TImageEnView object.
If Target is nil then the parent TImageEnView is given.

Example

// save image and layers in TImageEnView to 'TIFF_with_layers.tiff'
ImageEnView1.IO.Params.ImagingAnnot.CopyFromTImageEnView();
ImageEnView1.IO.SaveToFile('TIFF_with_layers.tiff');

See Also

- CopyToTImageEnView
- TIEImageEnAnnot.CopyToTImageEnView

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImagingAnnot.CopyToTImageEnVect

TIEImagingAnnot.CopyToTImageEnVect

Declaration

procedure CopyToTImageEnVect(Target: TObject=nil);

Description

Copy to a TImageEnVect object (as vectorial objects).
If Target is nil then the parent TImageEnVect is given.

Example

// load image and vectorial objects in 'TIFF_with_objects.tiff' to TImageEnVect
ImageEnVect1.IO.LoadFromFile('TIFF_with_objects.tiff');
ImageEnVect1.IO.Params.ImagingAnnot.CopyToTImageEnVect();

See Also

- CopyFromTImageEnVect
- TIEImageEnAnnot.CopyToTImageEnVect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImagingAnnot.CopyToTImageEnView

TIEImagingAnnot.CopyToTImageEnView

Declaration

procedure CopyToTImageEnView(Target: TObject=nil);

Description

Copy to a TImageEnView object (as layers).
If Target is nil then the parent TImageEnView is given.

Example

// load image and layers in 'TIFF_with_layers.tiff' to TImageEnView
ImageEnView1.IO.LoadFromFile('TIFF_with_layers.tiff');
ImageEnView1.IO.Params.ImagingAnnot.CopyToTImageEnView();

See Also

- CopyFromTImageEnView
- TIEImageEnAnnot.CopyToTImageEnView

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEImagingAnnot.DrawToBitmap

TIEImagingAnnot.DrawToBitmap

Declaration

procedure DrawToBitmap(target: TIEBitmap; Antialias: boolean);

Description

Draws all annotations to the specified bitmap.

Example

ImageEnView.IO.ImagingAnnot.DrawToBitmap( ImageEnView.IEBitmap, true );
ImageEnView.Update;


TIEImagingAnnot.LoadFromStandardBuffer

TIEImagingAnnot.LoadFromStandardBuffer

Declaration

procedure LoadFromStandardBuffer(buffer: pointer; buflen: integer);

Description

Loads imaging annotations from the specified buffer.
Used when ImageEn loads image files, to extract imaging annotations.


TIEImagingAnnot.LoadFromStream

TIEImagingAnnot.LoadFromStream

Declaration

procedure LoadFromStream(Stream: TStream);

Description

For internal use only.


TIEImagingAnnot.Objects

TIEImagingAnnot.Objects

Declaration

property Objects[idx: integer]: TIEImagingObject;

Description

Contains the internal representation of an object.


TIEImagingAnnot.ObjectsCount

TIEImagingAnnot.ObjectsCount

Declaration

property ObjectsCount: integer;

Description

Returns the count of annotations.


TIEImagingAnnot.SaveToStandardBuffer

TIEImagingAnnot.SaveToStandardBuffer

Declaration

procedure SaveToStandardBuffer(var Buffer: pointer; var BufferLength: integer);

Description

Saves imaging objects to buffer. You must free the buffer.
This method is used to embed imaging annotations inside image files.


TIEImagingAnnot.SaveToStream

TIEImagingAnnot.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream);

Description

For internal use only.


TIEImagingObject

TIEImagingObject

Declaration

TIEImagingObject = class;

Description

Internal representation of an imaging object.


TIEIntegerList

TIEIntegerList

Declaration

TIEIntegerList = class(TIEList);

Description

TIEIntegerList is a list of integer values. You can handle this object as a standard TList object.
An ImageEn list contains an array of values, a current value (not an index of the array), and an allowed range of values.

Methods and Properties

Add
Clear
CurrentValue
IndexOf
Insert
Items
RangeMax
RangeMin
RangeStep
Changed (inherited from TIEList)


TIEIntegerList.Add

TIEIntegerList.Add

Declaration

function Add(v: integer): integer;

Description

Adds a new value to the list.


TIEIntegerList.Clear

TIEIntegerList.Clear

Declaration

procedure Clear;

Description

Removes all items.


TIEIntegerList.CurrentValue

TIEIntegerList.CurrentValue

Declaration

property CurrentValue: integer;

Description

CurrentValue returns the current value of the list. It isn't an index of Items, but a "powerup" value.

No control is made to values assigned to CurrentValue, but it should be one of the values in Items or inside of RangeMin and RangeMax (regarding RangeStep also).


TIEIntegerList.IndexOf

TIEIntegerList.IndexOf

Declaration

function IndexOf(v: integer): integer;

Description

IndexOf returns the index of v value. Returns -1 if not found.


TIEIntegerList.Insert

TIEIntegerList.Insert

Declaration

procedure Insert(idx: integer; v: integer);

Description

Insert a new value inside idx position.


TIEIntegerList.Items

TIEIntegerList.Items

Declaration

property Items[index]: integer;

Description

Items returns the value of index element.


TIEIntegerList.RangeMax

TIEIntegerList.RangeMax

Declaration

property RangeMax: integer;

Description

RangeMax is the maximum value you may assign to CurrentValue.


TIEIntegerList.RangeMin

TIEIntegerList.RangeMin

Declaration

property RangeMin: integer;

Description

RangeMin is the minimum value that you may assign to CurrentValue.


TIEIntegerList.RangeStep

TIEIntegerList.RangeStep

Declaration

property RangeStep: integer;

Description

RangeStep specifies the step from RangeMin to RangeMax.


TIEIOPreviewEvent

TIEIOPreviewEvent

Declaration

TIEIOPreviewEvent = procedure(Sender: TObject; PreviewForm: TForm) of object;


TIEIPTCInfoList

TIEIPTCInfoList

Description

A list of all the IPTC information contained in a file. It is available via the TImageEnIO property Params.IPTC_Info

IPTC records can contains text, objects and images. Applications can read/write information from IPTC_Info using string objects or a memory buffer.
Each IPTC_Info item has a record number and a dataset number. These values specify the type of data contained in the item, according to IPTC - NAA Information Interchange Model Version 4 (See: www.iptc.org).
For JPEG files ImageEn can read/write IPTC fields from the APP13 marker.
ImageEn can also read/write IPTC textual information of PhotoShop (access In Photoshop under "File Info"). View a list IPTC Photoshop items.

Note: A set of IPTC helper functions are available in iexMetaHelpers

Methods and Properties

AddBufferItem
AddStringItem
Assign
Clear
Count
DataSet
DeleteItem
GetItemData
GetItemLength
IndexOf
InsertStringItem
LoadFromStandardBuffer
LoadFromStream
RecordNumber
SaveToStandardBuffer
SaveToStream
StringItem

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEIPTCInfoList.AddBufferItem

TIEIPTCInfoList.AddBufferItem

Declaration

function AddBufferItem(RecordNumber: integer; DataSet: integer; Buffer: pointer; BufferLength: integer): integer;

Description

Adds a memory buffer (non-textual information) with the specified RecordNumber and DataSet.
Result is the index of the new item, where the first item in the list has an index of 0.


TIEIPTCInfoList.AddStringItem

TIEIPTCInfoList.AddStringItem

Declaration

function AddStringItem(RecordNumber: integer; DataSet: integer; Value: AnsiString): integer;

Description

Adds a string (textual information) with the specified RecordNumber and DataSet.
Result is the index of the new item, where the first item in the list has an index of 0.


TIEIPTCInfoList.Assign

TIEIPTCInfoList.Assign

Declaration

procedure Assign(Source: TIEIPTCInfoList);

Description

Copy all items from Source.


TIEIPTCInfoList.Clear

TIEIPTCInfoList.Clear

Declaration

procedure Clear;

Description

Remove all items from the array.


TIEIPTCInfoList.Count

TIEIPTCInfoList.Count

Declaration

property Count: integer;

Description

Returns the item count.


TIEIPTCInfoList.DataSet

TIEIPTCInfoList.DataSet

Declaration

property DataSet[idx: integer]: integer;

Description

Returns the dataset number associated with the item, idx.


TIEIPTCInfoList.DeleteItem

TIEIPTCInfoList.DeleteItem

Declaration

procedure DeleteItem(idx: integer);

Description

Remove the item, idx.


TIEIPTCInfoList.GetItemData

TIEIPTCInfoList.GetItemData

Declaration

function GetItemData(idx: integer): pointer;

Description

Returns the raw data associated with the item, idx.


TIEIPTCInfoList.GetItemLength

TIEIPTCInfoList.GetItemLength

Declaration

function GetItemLength(idx: integer): integer;

Description

Returns the raw data length associated with the item, idx.


TIEIPTCInfoList.IndexOf

TIEIPTCInfoList.IndexOf

Declaration

function IndexOf(RecordNumber: integer; DataSet: integer): integer;

Description

Finds the first item that matches the RecordNumber and DataSet parameters and return its index.
Result is -1 if the item is not in the list.


TIEIPTCInfoList.InsertStringItem

TIEIPTCInfoList.InsertStringItem

Declaration

procedure InsertStringItem(idx: integer; RecordNumber: integer; DataSet: integer; Value: AnsiString);

Description

Add an item to the middle of the item array. The idx parameter is a zero-based index.


TIEIPTCInfoList.LoadFromStandardBuffer

TIEIPTCInfoList.LoadFromStandardBuffer

Declaration

function LoadFromStandardBuffer(Buffer: pointer; BufferLength: integer): boolean;

Description

Loads IPTC from the specified buffer. Use to extract IPTC data from an image file.


TIEIPTCInfoList.LoadFromStream

TIEIPTCInfoList.LoadFromStream

Declaration

procedure LoadFromStream(Stream: TStream);

Description

Loads all IPTC info from stream.

Note: This method cannot load IPTC data from an image files, use ParamsFromFile.


TIEIPTCInfoList.RecordNumber

TIEIPTCInfoList.RecordNumber

Declaration

property RecordNumber[idx: integer]: integer;

Description

Returns the record number associated with the item, idx.


TIEIPTCInfoList.SaveToStandardBuffer

TIEIPTCInfoList.SaveToStandardBuffer

Declaration

procedure SaveToStandardBuffer(var Buffer: pointer; var BufferLength: integer; WriteHeader: boolean);

Description

Saves IPTC in a buffer. You must free the buffer.
This method is used to embed IPTC data in an image file.


TIEIPTCInfoList.SaveToStream

TIEIPTCInfoList.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream);

Description

Save IPTC info in the Stream.

Note: Do not use this method to embed IPTC data in image files, use InjectJpegIPTC.


TIEIPTCInfoList.StringItem

TIEIPTCInfoList.StringItem

Declaration

property StringItem[idx: integer]: string;

Description

Returns the string associated with item, idx. The item must be of string type.


TIEJob

TIEJob

Declaration

TIEJob = (iejNOTHING, // no job / end of work
iejGENERALPROCESSING, // generic processing
iejVIDEOCAP_CONNECTING // Video capture - connecting...
);


TIEJobEvent

TIEJobEvent

Declaration

type TIEJobEvent = procedure(Sender: TObject; job: TIEJob; per: integer) of object;

Description

A TIEJobEvent is called during ImageEn processing.

job is the job type in progress.
per is percentage of performed work related to job.

The job parameter can be one of these values:

iejNOTHING : No job / end of work
iejGENERALPROCESSING : generic job
iejVIDEOCAP_CONNECTING : video capture - connecting to video capture card


TIEJpegCopyMarkers

TIEJpegCopyMarkers

Declaration

TIEJpegCopyMarkers = (jcCopyNone, jcCopyComments, jcCopyAll);

Description

Specify how the extra markers in a source file should be transfered to the destination file:
Value | Description
jcCopyNone | Copy no extra markers from the source file. This setting suppresses all comments and other excess data present in the source file
jcCopyComments | Copy only comment markers. This setting copies only the comments from the source file, discarding all other inessential data
jcCopyAll | Copy all extra markers. This setting preserves miscellaneous markers found in the source file, such as JFIF thumbnails and Photoshop settings. In some files these extra markers can be sizable


TIEJpegTransform

TIEJpegTransform

Declaration

TIEJpegTransform = (jtNone, jtCut, jtHorizFlip, jtVertFlip, jtTranspose, jtTransverse, jtRotate90, jtRotate180, jtRotate270);

Description

Lossless JPEG transformation functions:
Value | Description
jtNone | No transformation
jtCut | Crops the image (i.e. only a portion of the image is kept)
jtHorizFlip | Mirrors the image horizontally (left-right)
jtVertFlip | Mirrors the image vertically (top-bottom)
jtTranspose | Transposes the image (across UL-to-LR axis)
jtTransverse | Transverse transpose (across UR-to-LL axis)
jtRotate90 | Rotates the image 90 degrees clockwise
jtRotate180 | Rotates the image 180 degrees
jtRotate270 | Rotates the image 270 degrees clockwise (i.e. 90° CCW)


TIELabelBorder

TIELabelBorder

Declaration

TIELabelBorder = (ielNone, ielRectangle, ielRoundRect, ielEllipse);

Description

Value | Description
ielNone | No border
ielRectangle | Shows a rectangle border
ielRoundRect | Shows a rounded rectangle border
ielEllipse | Shows an elliptic border


TIELabelPos

TIELabelPos

Declaration

TIELabelPos = (ielBegin, ielEnd);

Description

Value | Description
ielBegin | Shows the text at the beginning of the line
ielEnd | Shows the text at the end of the line


TIELayer Property Consts

TIELayer Property Consts

Property consts used by GetProperties and SetProperties:
Const | Value | Property
IELP_Width | 'IELP_Width' | Width
IELP_Height | 'IELP_Height' | Height
IELP_Visible | 'IELP_Visible' | Visible
IELP_VisibleBox | 'IELP_VisibleBox' | VisibleBox
IELP_Selectable | 'IELP_Selectable' | Selectable
IELP_Transparency | 'IELP_Transparency' | Transparency
IELP_Opacity | 'IELP_Opacity' | Opacity
IELP_PosX | 'IELP_PosX' | PosX
IELP_PosY | 'IELP_PosY' | PosY
IELP_Cropped | 'IELP_Cropped' | Cropped
IELP_Locked | 'IELP_Locked' | Locked
IELP_Operation | 'IELP_Operation' | Operation
IELP_Name | 'IELP_Name' | Name
IELP_IsMask | 'IELP_IsMask' | IsMask
IELP_DrawOuter | 'IELP_DrawOuter' | DrawOuter
IELP_AlphaEdgeFeathering | 'IELP_AlphaEdgeFeathering,' | AlphaEdgeFeathering
IELP_GroupIndex | 'IELP_GroupIndex' | GroupIndex
IELP_Selected | 'IELP_Selected' | Selected
IELP_AspectRatioLocked | 'IELP_AspectRatioLocked' | AspectRatioLocked
IELP_BorderColor | 'IELP_BorderColor' | BorderColor
IELP_BorderWidth | 'IELP_BorderWidth' | BorderWidth
IELP_FillColor | 'IELP_FillColor' | FillColor
IELP_FillColor2 | 'IELP_FillColor2' | FillColor2
IELP_FillGradient | 'IELP_FillGradient' | FillGradient
IELP_Rotate | 'IELP_Rotate' | Rotate
IELP_RotateCenterX | 'IELP_RotateCenterX' | RotateCenterX
IELP_RotateCenterY | 'IELP_RotateCenterY' | RotateCenterY
IELP_SoftShadowEnabled | 'IELP_SoftShadowEnabled' | SoftShadow.Enabled
IELP_SoftShadowRadius | 'IELP_SoftShadowRadius' | SoftShadow.Radius
IELP_SoftShadowOffsetX | 'IELP_SoftShadowOffsetX' | SoftShadow.OffsetX
IELP_SoftShadowOffsetY | 'IELP_SoftShadowOffsetY' | SoftShadow.OffsetY
IELP_SoftShadowIntensity | 'IELP_SoftShadowIntensity' | SoftShadow.Intensity
IELP_SoftShadowColor | 'IELP_SoftShadowColor' | SoftShadow.ShadowColor
IELP_ImageResampleFilter | 'IELP_ImageResampleFilter' | ResampleFilter
IELP_ImageUseResampleFilter | 'IELP_ImageUseResampleFilter' | UseResampleFilter
IELP_Shape | 'IELP_Shape' | Shape
IELP_ShapeModifier | 'IELP_ShapeModifier' | ShapeModifier
IELP_LineColor | 'IELP_LineColor' | LineColor
IELP_LineWidth | 'IELP_LineWidth' | LineWidth
IELP_LineFillColor | 'IELP_LineFillColor' | FillColor
IELP_LabelText | 'IELP_LabelText' | LabelText
IELP_LabelAlignment | 'IELP_LabelAlignment' | LabelAlignment
IELP_LabelPosition | 'IELP_LabelPosition' | LabelPosition
IELP_LineEndShape | 'IELP_LineEndShape' | EndShape
IELP_LineShapeSize | 'IELP_LineShapeSize' | ShapeSize
IELP_LineStartShape | 'IELP_LineStartShape' | StartShape
IELP_LineLength | 'IELP_LineLength' | LineLength
IELP_PolylinePoints | 'IELP_PolylinePoints' | Points
IELP_PolylineClosed | 'IELP_PolylineClosed' | PolylineClosed
IELP_FontName | 'IELP_FontName' | Font.Name, LabelFont.Name
IELP_FontSize | 'IELP_FontSize' | Font.Size, LabelFont.Size
IELP_FontColor | 'IELP_FontColor' | Font.Color, LabelFont.Color
IELP_BorderShape | 'IELP_BorderShape' | BorderShape, LabelShape
IELP_Text | 'IELP_Text' | Text
IELP_AutoSize | 'IELP_AutoSize' | AutoSize
IELP_ReadOnly | 'IELP_ReadOnly' | ReadOnly, ReadOnly
IELP_TextAlignment | 'IELP_TextAlignment' | Alignment
IELP_TextLayout | 'IELP_TextLayout' | Layout
IELP_AntiAlias | 'IELP_AntiAlias' | AntiAlias
IELP_SizeToFit | 'IELP_SizeToFit' | Calls either SizeToFit or SizeToText
IELP_RestoreSize | 'IELP_RestoreSize' | Calls RestoreSize
IELP_RestoreAspectRatio | 'IELP_RestoreAspectRatio' | Calls RestoreAspectRatio(False)
IELP_RestorePreferredAspectRatio | 'IELP_RestorePreferredAspectRatio' | Calls RestoreAspectRatio(True)


TIELayer.AlphaEdgeFeathering

TIELayer.AlphaEdgeFeathering

Declaration

property AlphaEdgeFeathering: Integer;

Description

If the layer has an alpha channel then edges of the image will be "feathered." Feathering softens the edges of an image by applying alpha transparency at a rate that is proportional to the distance to the edge (specifically, adding a gradient in the alpha channel).
The value (0 to 255) indicates the depth in pixels of the feather effect.

Default: 0 (no edge feathering)

See Also

- Opacity
- LayersFastDrawing

Example

// Apply alpha edge feathering to all selected layers
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Selected then
ImageEnView1.Layers[ I ].AlphaEdgeFeathering := 5;
ImageEnView1.Update();


TIELayer.AntiAlias

TIELayer.AntiAlias

Declaration

property AntiAlias: Boolean;

Description

Improves the quality of layer drawing by using anti-aliasing.

Notes:
- Does not apply to TIEImageLayer. For display quality of TIEImageLayer, see UseResampleFilter
- Anti-Alias is not applied if LayersFastDrawing is active

Default: True

Example

// Disable anti-aliasing
ImageEnView1.CurrentLayer.AntiAlias := False;
ImageEnView1.Update();


TIELayer.AspectRatioLocked

TIELayer.AspectRatioLocked

Declaration

property AspectRatioLocked: Boolean;

Description

When enabled the PreferredAspectRatio for the layer will be enforced regardless of the setting for LayersResizeAspectRatio.

Default: False

Example

// Force aspect ratio locking if the object prefers it
ImageEnView1.CurrentLayer.AspectRatioLocked := ImageEnView1.CurrentLayer.PreferredAspectRatio <> 0;
ImageEnView1.Update();


TIELayer.Assign

TIELayer.Assign

Declaration

procedure Assign(Source: TIELayer);

Description

Copy the content of a layer to the current one.

Example

// Assign layers from one ImageEnView to another
// Note: ImageEnView2.assign( ImageEnView1 ) will assign all content including layers
for I := 0 to ImageEnView1.LayersCount - 1 do
begin
iLayer := ImageEnView2.LayersAdd; // append a new layer
ImageEnView2.Layers[ iLayer ].Assign( ImageEnView1.Layers[ i ] );
end;
ImageEnView2.Update();


TIELayer.Bitmap

TIELayer.Bitmap

Declaration

property Bitmap: TIEBitmap;

Description

If the layer is a TIEImageLayer then Bitmap provides read/write access to the image and alpha channel of the layer.
For other TIELayer types, Bitmap provides read-only access to the layer content (e.g. to display an icon for the layer in a TImageEnMView).

Example 1

// Replace the image of the current layer with a bitmap
TIEImageLayer( ImageEnView1.CurrentLayer ).Bitmap.Assign( MyBitmap );
ImageEnView1.Update();

Example 2

// REFRESH LAYER VIEWER (Show thumbnails of all layers in a TImageEnMView - same as TImageEnMView.AssignLayers method)
procedure Tfmain.RefreshLayerViewer;
var
i, idx: integer;
begin
// Fill ImageEnMView1 with all layers of ImageEnView1
ImageEnMView1.Clear;
for i := 0 to ImageEnView1.LayersCount - 1 do
begin
idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImage( idx, ImageEnView1.Layers[i].Bitmap );
ImageEnMView1.ImageTopText[i] := 'Layer ' + inttostr(i);
end;

// Mark selected layers and highlight the current layer
ImageEnMView1.BeginSelectImages;
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ i ].Selected then
ImageEnMView1.SelectedImage := I;
ImageEnMView1.SelectedImage := ImageEnView1.LayersCurrent; // Make it the active image
ImageEnMView1.EndSelectImages;
end;


TIELayer.BorderColor

TIELayer.BorderColor

Declaration

property BorderColor: TColor;

Description

Provides generic access to the color of the border/line of the layer.

BorderColor accesses the following properties:
Class | Property
TIEImageLayer | BorderColor
TIEShapeLayer | BorderColor
TIELineLayer | LineColor (also sets LabelBorderColor)
TIEPolylineLayer | LineColor
TIETextLayer | BorderColor

Examples

// Load an image layer and assign a pink border
ImageEnView1.LayersAdd( ielkImage ); // Append an image layer
ImageEnView1.IO.LoadFromFile('C:\New Zealand.jpg'); // Load image into the new/active layer
ImageEnView1.CurrentLayer.BorderColor := $008000FF;
ImageEnView1.CurrentLayer.BorderWidth := 3;
ImageEnView1.Update();

// Set style properties to an orange border with yellow fill
ImageEnView1.CurrentLayer.BorderColor := $004080FF;
ImageEnView1.CurrentLayer.BorderWidth := 2;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.Update();

// Remove the border...
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

See Also

- TIELayer.BorderWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.BorderWidth

TIELayer.BorderWidth

Declaration

property BorderWidth: Integer;

Description

Provides generic access to the width of the border/line of the layer.

BorderWidth accesses the following properties:
Class | Property
TIEImageLayer | BorderWidth
TIEShapeLayer | BorderWidth
TIELineLayer | LineWidth (also sets LabelBorderWidth)
TIEPolylineLayer | LineWidth
TIETextLayer | BorderWidth

Example

// Load an image layer and assign a pink border
ImageEnView1.LayersAdd( ielkImage ); // Append an image layer
ImageEnView1.IO.LoadFromFile('C:\New Zealand.jpg'); // Load image into the new/active layer
ImageEnView1.CurrentLayer.BorderColor := $008000FF;
ImageEnView1.CurrentLayer.BorderWidth := 3;
ImageEnView1.Update();

// Set style properties to an orange border with yellow fill
ImageEnView1.CurrentLayer.BorderColor := $004080FF;
ImageEnView1.CurrentLayer.BorderWidth := 2;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.Update();

// Remove the border...
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

See Also

- TIELayer.BorderColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.ClientAreaBox

TIELayer.ClientAreaBox

Declaration

property ClientAreaBox: TRect; (Read-Only)

Description

Returns the drawing area of the layer. The coordinates are relative to the component client area.


TIELayer.ConvertToImageLayer

TIELayer.ConvertToImageLayer

Declaration

procedure ConvertToImageLayer(QualityFactor: Double = 2; CropAlpha: Boolean = True);

Description

Changes the Kindtype of the current layer to TIEImageLayer.
This will change it from a vector-based layer to a standard bitmap layer. Bitmap layers can be edited using standard image modification features, but the quality will be lost if you resize the layer.
QualityFactor determines the size that the layer bitmap is created. A QualityFactor of 1 will create the bitmap at the current display size, whereas a QualityFactor of 2 would create it at double the display size (allowing it to be zoomed up 200% without loss of quality).
If CropAlpha is true, then it remove any alpha from the edges of the layer.

Note:
- For text layers, a QualityFactor of 1 usually works best
- To convert multiple layers, use LayersConvertToImageLayers

Example

// Convert the current layer to an image, and apply a Negative effect
ImageEnView1.CurrentLayer.ConvertToImageLayer();
ImageEnView1.Proc.Negative();


TIELayer.ConvXBmp2Scr

TIELayer.ConvXBmp2Scr

Declaration

function ConvXBmp2Scr(x: Integer): Integer;

Description

Converts bitmap coordinates to screen coordinates, with consideration to the layer position and size.

See Also

- XBmp2Scr
- ConvYBmp2Scr
- ConvXScr2Bmp
- ConvYScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.ConvXScr2Bmp

TIELayer.ConvXScr2Bmp

Declaration

function ConvXScr2Bmp(x: Integer): Integer;

Description

Converts screen coordinates to bitmap coordinates, with consideration to the layer position and size.

See Also

- XScr2Bmp
- ConvYScr2Bmp
- ConvXBmp2Scr
- ConvYBmp2Scr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.ConvYBmp2Scr

TIELayer.ConvYBmp2Scr

Declaration

function ConvYBmp2Scr(y: Integer): Integer;

Description

Converts bitmap coordinates to screen coordinates, with consideration to the layer position and size.

See Also

- YBmp2Scr
- ConvXBmp2Scr
- ConvXScr2Bmp
- ConvYScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.ConvYScr2Bmp

TIELayer.ConvYScr2Bmp

Declaration

function ConvYScr2Bmp(y: Integer): Integer;

Description

Converts screen coordinates to bitmap coordinates, with consideration to the layer position and size.

See Also

- YScr2Bmp
- ConvXScr2Bmp
- ConvXBmp2Scr
- ConvYBmp2Scr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.CopyToBitmap

TIELayer.CopyToBitmap

Declaration

procedure CopyToBitmap(var Dest: TIEBitmap; CreateWidth : Integer = -1; CreateHeight : Integer = -1; EnableAlpha: Boolean = True; UseDisplayAR: Boolean = True); virtual; abstract;

Description

Creates a bitmap representation of the current layer.
You do not need to create Dest. It will be automatically created and sized as required.
If CreateWidth and CreateHeight are not specified, the bitmap will be created at the current size of the layer.
Set EnableAlpha to false if you do not want as alpha channel applied to Dest.
If UseDisplayAR is true, then the image will be returned with the same aspect ratio it is displayed, If false, it is stretched to the specified CreateWidth and CreateHeight dimensions.

Note: You must free Dest

Example

// Save the current layer as an image
var
bmp: TIEBitmap;
Begin
ImageEnView1.CurrentLayer.CopyToBitmap( bmp );
bmp.Write( 'D:\MyLayer.jpg' );
bmp.Free;
end;

// Assign Layer 1 to another ImageEnView
var
bmp: TIEBitmap;
begin
bmp := TIEBitmap.create;
ImageEnView1.Layers[1].CopyToBitmap( bmp, ImageEnView2.ClientWidth, ImageEnView2.ClientHeight );
ImageEnView2.IEBitmap.Assign( bmp );
ImageEnView2.Update;
bmp.Free();
end;

// Show a preview in ImageEnView2 of the layer selected in ImageEnView1
procedure Tfmain.ImageEnView1LayerSelectionChange(Sender: TObject);
var
bmp: TIEBitmap;
begin
bmp := ImageEnView2.IEBitmap;
ImageEnView1.CurrentLayer.CopyToBitmap( bmp, ImageEnView2.IdealImageWidth, ImageEnView2.IdealImageWidth );
ImageEnView2.Update();
end;


TIELayer.Cropped

TIELayer.Cropped

Declaration

property Cropped: Boolean;

Description

When enabled, any part of the layer that is outside the background image (layer 0) area will not be displayed.

If this value is false, then LayersCropped controls whether layers are cropped to the background.

Default: False

Example

// Crop the display of only the current layer
ImageEnView1.LayersCropped := False;
ImageEnView1.CurrentLayer.Cropped := True;
ImageEnView1.Update();

// Crop the display of all layers
ImageEnView1.LayersCropped := True;
ImageEnView1.Update();

// Don't crop the display of any layers
ImageEnView1.UnlockUpdate();
ImageEnView1.LayersCropped := False;
for i := 0 to ImageEnView1.LayersCount - 1 do
ImageEnView1.Layers[ I ].Cropped := False;
ImageEnView1.LockUpdate();


TIELayer.DrawingInfo

TIELayer.DrawingInfo

Declaration

property DrawingInfo: TIEDrawingInfo; (read-only)

Description

Specifies the source and destination rectangle recorded on last drawing.


TIELayer.DrawOuter

TIELayer.DrawOuter

Declaration

property DrawOuter: Boolean;

Description

If True, the unselected layers are drawn as "grayed". The current layer is drawn normally.

Default: False

Note: Only the current layer is shown as ungrayed. All other layers, even if there are multiple selected layers

Example

// Grey areas outside of current layer
ImageEnView1.CurrentLayer.DrawOuter := True;
ImageEnView1.Update();


TIELayer.FillColor

TIELayer.FillColor

Declaration

property FillColor: TColor;

Description

Provides generic access to the fill color of the layer. Set to clNone for no fill (i.e. transparent background)

FillColor accesses the following properties:
Class | Property
TIEImageLayer | N/A
TIEShapeLayer | FillColor
TIELineLayer | FillColor (also sets LabelFillColor)
TIEPolylineLayer | FillColor
TIETextLayer | FillColor

Example

// Set fill color for a shape to yellow
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.Update();

// Remove fill color from shape
ImageEnView1.CurrentLayer.FillColor := clNone;
ImageEnView1.Update();

See Also

- TIELayer.FillColor2
- TIELayer.FillGradient

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.FillColor2

TIELayer.FillColor2

Declaration

property FillColor2: TColor;

Description

Provides generic access to the secondary gradient fill color of the layer.
If FillColor2 is clNone, the layer is filled by a solid color specified by FillColor. If FillColor2 is different from FillColor it is drawn as a gradient.
The direction of the gradient is specified by FillGradient.

FillColor2 accesses the following properties:
Class | Property
TIEImageLayer | N/A
TIEShapeLayer | FillColor2
TIELineLayer | LabelFillColor2
TIEPolylineLayer | N/A
TIETextLayer | FillColor2

Example

// Set a vertical gradient fill for an ellipse
ImageEnView1.CurrentLayer.FillColor2 := clRed;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.CurrentLayer.FillGradient := clVertical;
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

// Set a horizontal gradient fill for the label of a line layer
ImageEnView1.CurrentLayer.FillColor := clRed;
ImageEnView1.CurrentLayer.FillColor2 := clYellow;
ImageEnView1.CurrentLayer.FillGradient := clHorizontal;
ImageEnView1.CurrentLayer.BorderColor := clBlack;
ImageEnView1.CurrentLayer.BorderWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.FillColor
- TIELayer.FillGradient

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.FillGradient

TIELayer.FillGradient

Declaration

property FillGradient: TIEGradientDir;

Description

Provides generic access to the gradient fill direction for the layer.

FillGradient accesses the following properties:
Class | Property
TIEImageLayer | N/A
TIEShapeLayer | FillGradient
TIELineLayer | LabelFillGradient
TIEPolylineLayer | N/A
TIETextLayer | FillGradient

Example

// Set a vertical gradient fill for an ellipse
ImageEnView1.CurrentLayer.FillColor2 := clRed;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.CurrentLayer.FillGradient := clVertical;
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

// Set a horizontal gradient fill for the label of a line layer
ImageEnView1.CurrentLayer.FillColor := clRed;
ImageEnView1.CurrentLayer.FillColor2 := clYellow;
ImageEnView1.CurrentLayer.FillGradient := clHorizontal;
ImageEnView1.CurrentLayer.BorderColor := clBlack;
ImageEnView1.CurrentLayer.BorderWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.FillColor
- TIELayer.FillColor2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.GetIndex

TIELayer.GetIndex

Declaration

function GetIndex(): integer;

Description

Returns the index of this layer inside the Layers list. Returns -1 if not found.


TIELayer.GetLayerMask

TIELayer.GetLayerMask

Declaration

function GetLayerMask(): TIELayer;

Description

Returns the layer mask associated with this layer. Returns "nil" if no layer mask exists.


TIELayer.GetProperties

TIELayer.GetProperties

Declaration

procedure GetProperties(Props: TStrings);

Description

Returns all properties of the layer as a list of Name=Value pairs.
Names will be drawn from the TIELayer Property Consts. Changes made to the list can be applied using SetProperties.

Sample Output

IELP_BorderColor=clNone
IELP_BorderWidth=0
IELP_FillColor=clYellow
IELP_FillColor2=clRed
IELP_FillGradient=1
IELP_Rotate=0

Example

// Save properties of the current layer to a file
ss := TStringList.create();
ImageEnView1.CurrentLayer.GetProperties( ss );
ss.SaveToFile( 'D:\CurrentLayer.txt' );
ss.Free();

See Also

- SetProperties
- LayerDefaults

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.GroupIndex

TIELayer.GroupIndex

Declaration

property GroupIndex: Integer;

Description

Specifies the Group ID of the layer. When a layer is selected all other layers with the same group ID are automatically selected too.
GroupIndex can be any value. A GroupIndex of 0 means the layer is not grouped.

Note: GroupIndex is only valid if multiple layer selection is enabled.

Example

// Group all layers (except background)
ImageEnView1.LockUpdate();
for i := 1 to ImageEnView1.LayersCount - 1 do
ImageEnView1.Layers[ I ].GroupIndex := Random( Max_Int );
ImageEnView1.UnlockUpdate();

// Ungroup all layers
ImageEnView1.LockUpdate();
for i := 0 to ImageEnView1.LayersCount - 1 do
ImageEnView1.Layers[ I ].GroupIndex := 0;
ImageEnView1.UnlockUpdate();

See Also

- LayersGroup
- LayersUngroup

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.Guid

TIELayer.Guid

Declaration

property Guid: TGuid;

Description

A unique identifier for this layer.


TIELayer.Height

TIELayer.Height

Declaration

property Height: Integer;

Description

Specifies the layer size (i.e. display height when zoom is 100%).

Example

// Make all selected layers 1/3 size
ImageEnView1.LockUpdate;
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Selected then
begin
ImageEnView1.Layers[ I ].Width := ImageEnView1.Layers[ I ].Width div 3;
ImageEnView1.Layers[ I ].Height := ImageEnView1.Layers[ I ].Height div 3;
end;
ImageEnView1.LayersFixSizes( LYR_SELECTED_LAYERS );
ImageEnView1.UnlockUpdate;

See Also

- LayersSizeAll
- SizeToText
- SizeToFit

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.Kind

TIELayer.Kind

Declaration

property Kind: TIELayerKind;

Description

Returns the kind of layer.

Read-Only

Example 1

if ImageEnView1.CurrentLayer.Kind = ielkImage then
TIEImageLayer( ImageEnView1.CurrentLayer ).ResampleFilter := rfLanczos3;
ImageEnView1.Update();

// Which is the same as...
if ImageEnView1.CurrentLayer is TIEImageLayer then
TIEImageLayer( ImageEnView1.CurrentLayer ).ResampleFilter := rfLanczos3;
ImageEnView1.Update();

Example 2

// Hide labels of all line layers when user clicks a check box
procedure Tfmain.chkShowLabelsClick(Sender: TObject);
var
I: integer;
begin
ImageEnView1.LockUpdate();
for I := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Kind = ielkLine then
begin
if chkShowLabels.Checked then
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpAtEnd
else
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpHide;
end;
ImageEnView1.UnlockUpdate();
end;


TIELayer.Locked

TIELayer.Locked

Declaration

property Locked: Boolean;

Description

When False the user can move or resize the layer. Also enables display of the layer border and resizing grips.

Default: False

Example

// Prevent movement of current layer
ImageEnView1.CurrentLayer.Locked := True;


TIELayer.Modified

TIELayer.Modified

Declaration

property Modified: Boolean;

Description

Returns true if the layer has been changed since it was created or loaded.

Example

// Get list of changed layers
changedLayers := '';
for I := 0 to ImageEnView1.LayersCount -1 do
if ImageEnView1.Layers[I].Modified then
changedLayers := changedLayers + IntToStr( I ) + ', ';

// Mark all layers as unmodified
for I := 0 to ImageEnView1.LayersCount -1 do
ImageEnView1.Layers[I].Modified := False;


TIELayer.Name

TIELayer.Name

Declaration

property Name: String;

Description

Specifes a name for the layer. This is not used by ImageEn.

Example

procedure TfrmMain.ievMainLayerNotify(Sender: TObject; layer: Integer; event: TIELayerEvent);
begin
// Give each later a date based name
ievMain.Layers[layer].Name := 'Layer created at ' + DateTimeToStr( now );
end;


TIELayer.Opacity

TIELayer.Opacity

Declaration

property Opacity: double;

Description

Set the overall opacity of the layer in the range from 0 (fully transparent) to 1.0 (totally opaque).
Use Opacity instead of Transparency when the image has an alpha channel.

Default: 1.0 (fully opaque)

See Also

- Transparency
- AlphaEdgeFeathering

Example

// Make all selected layers 50% opacity
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Selected then
ImageEnView1.Layers[ I ].Opacity := 0.5;
ImageEnView1.Update();


TIELayer.Operation

TIELayer.Operation

Declaration

property Operation: TIERenderOperation;

Description

Specifies the color operation to execute between this layer and the background layer.

Default: ielNormal

Example

// Average current layer with background
ImageEnView1.CurrentLayer.Operation := ielAverage;
ImageEnView1.Update();


TIELayer.PosX

TIELayer.PosX

Declaration

property PosX: Integer;

Description

Specifies the horizontal position of the layer relative to the background image (layer 0).

These consts are also supported:
Const | Description
IELayer_Pos_Left | Adjust PosX so layer is aligned to the left of the background layer
IELayer_Pos_HCenter | Adjust PosX so layer is aligned to the horizontal center of the background layer
IELayer_Pos_Right | Adjust PosX so layer is aligned to the right of the background layer

Example

// Apply a "Paid" stamp to image
with ImageEnView1 do
begin
LayersAdd( 'PAID', 'Arial Black', 42, clRed, [fsBold] );
CurrentLayer.Rotate := 30;
TIETextLayer( CurrentLayer ).SizeToText();
CurrentLayer.PosX := IELayer_Pos_HCenter;
CurrentLayer.PosY := IELayer_Pos_VCenter;
LayersMergeAll();
end;

See Also

- LayersRepositionAll

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.PosY

TIELayer.PosY

Declaration

property PosY: Integer;

Description

Specifies the vertical position of the layer relative to the background image (layer 0).

These consts are also supported:
Const | Description
IELayer_Pos_Top | Adjust PosY so layer is aligned to the top of the background layer
IELayer_Pos_VCenter | Adjust PosY so layer is aligned to the vertical center of the background layer
IELayer_Pos_Bottom | Adjust PosY so layer is aligned to the bottom of the background layer

Example

// Apply a "Paid" stamp to image
with ImageEnView1 do
begin
LayersAdd( 'PAID', 'Arial Black', 42, clRed, [fsBold] );
CurrentLayer.Rotate := 30;
TIETextLayer( CurrentLayer ).SizeToText();
CurrentLayer.PosX := IELayer_Pos_HCenter;
CurrentLayer.PosY := IELayer_Pos_VCenter;
LayersMergeAll();
end;

See Also

- LayersRepositionAll

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.PreferredAspectRatio

TIELayer.PreferredAspectRatio

Declaration

function PreferredAspectRatio(): Double;

Description

Returns the best ratio of Width/Height to display this layer.
Some layer types look best at their original aspect ratio (i.e. the ratio of Height:Width).
This is particularly true of images and some shapes.
Result is 0 if this layer type does not have a preferred aspect ratio.

Typical results:
Portrait image: 0.67
Landscape image: 1.33
Star shape: 1
Text box: 0 (i.e. no preferred ratio)

Example

// Force aspect ratio locking if the object prefers it
ImageEnView1.CurrentLayer.AspectRatioLocked := ImageEnView1.CurrentLayer.PreferredAspectRatio <> 0;

See Also

- AspectRatioLocked
- RestoreAspectRatio
- LayersResizeAspectRatio

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.RestoreAspectRatio

TIELayer.RestoreAspectRatio

Declaration

procedure RestoreAspectRatio(PreferredOnly: Boolean = True);

Description

Sizes the layer to restore its preferred or original aspect ratio (i.e. the ratio of Height:Width).
Some layer types look best at their original aspect ratio. This is particularly true of images and some shapes.
Calling RestoreAspectRatio will resize it (reducing its display size) to display it correctly.

If PreferredOnly = True then it is only sized if it has a PreferredAspectRatio.
If PreferredOnly = False and it does not have a PreferredAspectRatio then it is restored to its design size.

Example

// Fix the aspect ratio for the selected layer if it is an image
if ImageEnView1.CurrentLayer is TIEImageLayer then
ImageEnView1.CurrentLayer.RestoreAspectRatio();
ImageEnView1.Update();

// Create a layer at 50,50 and display an image (maintaining its aspect ratio)
ImageEnView1.LockUpdate();
ImageEnView1.LayersAdd( 100, 100, ie24RGB, 50, 50 );
ImageEnView1.IO.LoadFromFile( 'D:\image.jpeg' );
ImageEnView1.CurrentLayer.RestoreAspectRatio();
ImageEnView1.UnlockUpdate();

See Also

- RestoreSize
- AspectRatioLocked
- PreferredAspectRatio
- LayersResizeAspectRatio

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.Rotate

TIELayer.Rotate

Declaration

property Rotate: Double;

Description

Specifies the layer rotation angle in degrees counter-clockwise.
Rotation and Resize cannot be used at the same time.

To allow resize after a layer rotation, it must be enacted, i.e. actually rotate the bitmap.
Conversely to allow rotation after a resize, the resizing must be enacted, actually resizing the bitmap.
To enact layer rotation, call LayersFixRotations.
To enact layer resizing, call LayersFixSizes.
Finally, multiple rotations can cause the bitmap to add an external, transparent border. To remove this border call LayersFixBorders.

Note: When rotation is handled by MouseInteract (setting miRotateLayers), you don't need to call LayersFixRotations, LayersFixSizes and LayersFixBorders.

Examples

// Rotate a line
ImageEnView1.CurrentLayer.Rotate := 235;
ImageEnView1.Update();

// Set rotation of all selected layers
ImageEnView1.LockUpdate;
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Selected then
ImageEnView1.Layers[ I ].Rotate := 90;
ImageEnView1.LayersFixRotations( LYR_SELECTED_LAYERS );
ImageEnView1.UnlockUpdate;

// Apply a "Paid" stamp to image
with ImageEnView1 do
begin
LayersAdd( 'PAID', 'Arial Black', 42, clRed, [fsBold] );
CurrentLayer.Rotate := 30;
TIETextLayer( CurrentLayer ).SizeToText();
CurrentLayer.PosX := IELayer_Pos_HCenter;
CurrentLayer.PosY := IELayer_Pos_VCenter;
LayersMergeAll();
end;

Demos

Demos\ImageEditing\Layers\Layers.dpr
Demos\ImageEditing\Layers_AllTypes\Layers.dpr
Demos\ImageEditing\RotateLayers\RotateLayers.dpr

See Also

- LayersRotateAll
- SupportsFeature

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.RotateCenterX

TIELayer.RotateCenterX

Declaration

property RotateCenterX: Double;

Description

Specifies the horizontal rotation center, in percentage of layer size.
0.5 means center (default), while 0 is left side and 1 is right side.
Also allowed are values less than 0 and greater than 1 (e.g. 2 would rotate at one width to the right of the image).
This value (and RotateCenterY) is modified when user moves the central grip, when layers rotation is active.

Note: Applies only to TIEImageLayer

Default: 0.5

Example

// Move rotation center to 25% in from top-left corner
ImageEnView1.CurrentLayer.RotateCenterX := 0.25;
ImageEnView1.CurrentLayer.RotateCenterY := 0.25;
ImageEnView1.Update();

See Also

- RotateCenterY
- Rotate

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.RotateCenterY

TIELayer.RotateCenterY

Declaration

property RotateCenterY: Double;

Description

Specifies the vertical rotation center, in percentage of layer size.
0.5 means center (default), while 0 is top side and 1 is bottom side.
Also allowed are values less than 0 and greater than 1 (e.g. 2 would rotate at one height below the image).
This value (and RotateCenterX) is modified when user moves the central grip, when layers rotation is active.

Note: Applies only to TIEImageLayer

Default: 0.5

Example

// Move rotation center to 25% in from top-left corner
ImageEnView1.CurrentLayer.RotateCenterX := 0.25;
ImageEnView1.CurrentLayer.RotateCenterY := 0.25;
ImageEnView1.Update();

See Also

- RotateCenterX
- Rotate

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.Selectable

TIELayer.Selectable

Declaration

property Selectable: boolean;

Description

If true, the layer is selectable by the user.

A selected text layer:

Default: True

Example

// Prevent selection of current layer
ImageEnView1.CurrentLayer.Selectable := True;


TIELayer.Selected

TIELayer.Selected

Declaration

property Selected: boolean;

Description

True if the layer is currently selected.

A selected text layer:


TIELayer.SetProperties

TIELayer.SetProperties

Declaration

procedure GetProperties(Props: TStrings);

Description

Sets properties of the layer using a list of Name=Value pairs.
Names will be drawn from the TIELayer Property Consts. Properties can be retrieved using GetProperties.

Sample Input

IELP_BorderColor=clNone
IELP_BorderWidth=0
IELP_FillColor=clYellow
IELP_FillColor2=clRed
IELP_FillGradient=1
IELP_Rotate=0

Examples

// Set properties of the current using a file
ss := TStringList.create();
ss.LoadFromFile( 'D:\CurrentLayer.txt' );
ImageEnView1.CurrentLayer.SetProperties( ss );
ImageEnView1.Update();
ss.Free();

// Apply a thick green border to all selected layers
ss := TStringList.create();
ss.Add( IELP_BorderColor + '=clGreen' );
ss.Add( IELP_BorderWidth + '=10' );
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Selected then
ImageEnView1.Layers[ I ].SetProperties( ss );
ImageEnView1.Update();
ss.Free();

See Also

- GetProperties
- LayerDefaults
- LayersSetProperties

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.SoftShadow

TIELayer.SoftShadow

Declaration

property SoftShadow: TIEVSoftShadow;

Description

Enables and sets the properties of the layer shadow.

Note: Shadows cannot be enabled for the background layer (layer 0)

Example

// Display a soft shadow effect for the current layer
ImageEnView1.CurrentLayer.SoftShadow.Enabled := True;
ImageEnView1.Update();

See Also

- LayersFastDrawing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.SupportsFeature

TIELayer.SupportsFeature

Declaration

function SupportsFeature(Feature: TIELayerFeatures): Boolean;

Description

Returns true if the specified feature is supported by this Kindlayer type
Kind | Description | Supported By
ielfBorder | Layer has a border or line that can be adjusted using BorderColor and BorderWidth | All
ielfFill | Layer has a solid fill that can be adjusted using FillColor | TIEShapeLayer, TIELineLayer (only if label or end shapes are visible), TIEPolylineLayer (only if PolylineClosed=True), TIETextLayer
ielfGradient | If the solid fill can be gradiated using FillColor2 and FillGradient | TIEShapeLayer, TIELineLayer (only if LabelText is set), TIETextLayer
ielfRotation | Can be rotated by setting Rotate or using miRotateLayers | All
ielfMoveRotationCenter | The center of layer rotation can be moved by setting RotateCenterX or moving the center grip with miRotateLayers | TIEImageLayer
ielfTextEditing | The layer has a text property and is not set to read-only | TIETextLayer, TIELineLayer (only if LabelText is set)

Example

// Show border color selector if layer type supports it
btnSelBorder.Enabled := ImageEnView1.CurrentLayer.SupportsFeature( ielfBorder );

// Show fill color selector if layer type supports it
btnSelFill.Enabled := ImageEnView1.CurrentLayer.SupportsFeature( ielfFill );

// Show gradient selector if layer type supports it
btnGradient.Enabled := ImageEnView1.CurrentLayer.SupportsFeature( ielfGradient );

// Determine if the current layer type can be rotated
canRotate := ImageEnView1.CurrentLayer.SupportsFeature( ielfRotation );

// Determine if the current layer type can be rotated
canRotate := ImageEnView1.CurrentLayer.SupportsFeature( ielfRotation );

// Text can currently be edited for this layer
edtText.Enabled := ImageEnView1.CurrentLayer.SupportsFeature( ielfTextEditing );


TIELayer.Swap

TIELayer.Swap

Declaration

procedure Swap(OtherLayer: TIELayer);

Description

Swaps the content of two layers.

Note: Both layers must be of the same Kindlayer type

Example

// Swap the current layer with the second one
ImageEnView1.CurrentLayer.Swap( ImageEnView1.Layers[ 1 ]);
ImageEnView1.Update();


TIELayer.Tag

TIELayer.Tag

Declaration

property Tag: Integer;

Description

An integer value that you can use for your own purposes.

Example

procedure TfrmMain.ievMainLayerNotify(Sender: TObject; layer: Integer; event: TIELayerEvent);
begin
// Assign date to each layer
ievMain.Layers[layer].Tag := Trunc( now );
end;


TIELayer.Transparency

TIELayer.Transparency

Declaration

property Transparency: integer;

Description

Set the overall transparency of the layer in the range from 0 (fully transparent) to 255 (totally opaque).
Use Opacity instead of Transparency when the image has an alpha channel.

Default: 255 (fully opaque)

See Also

- Opacity

Example

// Make all selected layers 50% transparency
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Selected then
ImageEnView1.Layers[ I ].Transparency := 128;
ImageEnView1.Update();


TIELayer.UserData

TIELayer.UserData

Declaration

property UserData: pointer;

Description

Contains a pointer to a user data buffer. This can be used for your own purposes to store information about the layer.

Example

type
TMyRecord = record
SourceText: array[0..255] of AnsiChar;
SourceWidth: integer;
SourceHeight: integer;
end;
PMyRecord = ^TMyRecord;

var
rc: PMyRecord;
begin
New( rc )
With rc^ do
begin
Width := ...;
Height := ...;
Text := ...;
end;
ImageEnView1.CurrentLayer.UserData := rc;
ImageEnView1.CurrentLayer.UserDataLen := SizeOf( PMyRecord );
end;

See Also

- UserDataLen.


TIELayer.UserDataLen

TIELayer.UserDataLen

Declaration

property UserDataLen: Integer;

Description

Specifies the length of UserData buffer.

If this value is greater than zero:
- When you save the layer (LayersSaveTo..) the content of UserData buffer is saved (and restored with LayersLoadFrom..)
- The user data is freed when the layer is destroyed

Example

type
TMyRecord = record
SourceText: array[0..255] of AnsiChar;
SourceWidth: integer;
SourceHeight: integer;
end;
PMyRecord = ^TMyRecord;

var
rc: PMyRecord;
begin
New( rc )
With rc^ do
begin
Width := ...;
Height := ...;
Text := ...;
end;
ImageEnView1.CurrentLayer.UserData := rc;
ImageEnView1.CurrentLayer.UserDataLen := SizeOf( PMyRecord );
end;

See Also

- UserData

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayer.Visible

TIELayer.Visible

Declaration

property Visible: Boolean;

Description

Set to True to make the layer visible, or False to hide it.

Default: True

Example

// Toggle visibility of current layer
ImageEnView1.CurrentLayer.Visible := not ImageEnView1.CurrentLayer.Visible;
ImageEnView1.Update();


TIELayer.VisibleBox

TIELayer.VisibleBox

Declaration

property VisibleBox: boolean;

Description

Display a selection box around the layer.
If VisibleBox is disabled, there is no visual indication that the layer is selected.

A selected text layer:

Default: True

Also, see: LayersDrawBox

Example

// Toggle box of current layer
ImageEnView1.CurrentLayer.VisibleBox := not ImageEnView1.CurrentLayer.VisibleBox;
ImageEnView1.Update();


TIELayer.Width

TIELayer.Width

Declaration

property Width: Integer;

Description

Specifies the layer size (i.e. display width when zoom is 100%).

Example

// Make all selected layers 1/3 size
ImageEnView1.LockUpdate;
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Selected then
begin
ImageEnView1.Layers[ I ].Width := ImageEnView1.Layers[ I ].Width div 3;
ImageEnView1.Layers[ I ].Height := ImageEnView1.Layers[ I ].Height div 3;
end;
ImageEnView1.LayersFixSizes( LYR_SELECTED_LAYERS );
ImageEnView1.UnlockUpdate;

See Also

- LayersSizeAll
- SizeToText
- SizeToFit

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELayerEvent

TIELayerEvent

Declaration

TIELayerEvent = (ielSelected, ielMoved, ielResized, ielMoving, ielResizing, ielRotating, ielRotated, ielBeginResizing, ielBeginMoving, ielDeselected, ielEdited, ielBeginCreating, ielCreating, ielCreated, ielAction);

Description

Value | Description
ielSelected | User selected the layer
ielMoved | User moved the layer
ielResized | User resized the layer
ielMoving | User is moving the layer
ielResizing | User is resizing the layer
ielRotating | User is rotating the layer
ielRotated | User rotated the layer
ielBeginResizing | User began to resize the layer (click down)
ielBeginMoving | User began to move the layer (click down)
ielDeselected | User deselected the layer
ielEdited | User edited the text of a layer
ielBeginMoving | User began creating a layer (click down)
ielCreating | User is creating a layer
ielCreated | User had created a new layer
ielAction | User has used an ImageEn Action that has changed the layers


TIELayerFeatures

TIELayerFeatures

Declaration

TIELayerFeatures = (ielfBorder, ielfFill, ielfGradient, ielfRotation, ielfMoveRotationCenter, ielfTextEditing);

Description

Kind | Description | Supported By
ielfBorder | Layer has a border or line that can be adjusted using BorderColor and BorderWidth | All
ielfFill | Layer has a solid fill that can be adjusted using FillColor | TIEShapeLayer, TIELineLayer (only if LabelText is set), TIEPolylineLayer (only if PolylineClosed=True), TIETextLayer
ielfGradient | If the solid fill can be gradiated using FillColor2 and FillGradient | TIEShapeLayer, TIELineLayer (only if LabelText is set), TIETextLayer
ielfRotation | Can be rotated by setting Rotate or using miRotateLayers | All
ielfMoveRotationCenter | The center of layer rotation can be moved by setting RotateCenterX or moving the center grip with miRotateLayers | TIEImageLayer
ielfTextEditing | The layer has a text property and is not set to read-only | TIETextLayer, TIELineLayer (only if LabelText is set)

Example

// Show border color selector if layer type supports it
btnSelBorder.Enabled := ImageEnView1.CurrentLayer.SupportsFeature( ielfBorder );

// Show fill color selector if layer type supports it
btnSelFill.Enabled := ImageEnView1.CurrentLayer.SupportsFeature( ielfFill );

// Show gradient selector if layer type supports it
btnGradient.Enabled := ImageEnView1.CurrentLayer.SupportsFeature( ielfGradient );

// Determine if the current layer type can be rotated
canRotate := ImageEnView1.CurrentLayer.SupportsFeature( ielfRotation );

// Determine if the current layer type can be rotated
canRotate := ImageEnView1.CurrentLayer.SupportsFeature( ielfRotation );

// Text can currently be edited for this layer
edtText.Enabled := ImageEnView1.CurrentLayer.SupportsFeature( ielfTextEditing );


TIELayerKind

TIELayerKind

Declaration

TIELayerKind = (ielkImage, ielkShape, ielkLine, ielkPolyline, ielkText);

Description

Returns the type of a TIELayer.
Kind | Class | Description
ielkImage | TIEImageLayer | Layer that contains an image
ielkShape | TIEShapeLayer | Layer that displays standard shapes (rectangles, ellipses, stars, etc)
ielkLine | TIELineLayer | Layer that displays a single line, optionally including a text label and start and ending arrows
ielkPolyline | TIEPolylineLayer | Layer that displays a polyline or polgon comprising of multiple points
ielkText | TIETextLayer | Layer that displays text

Example 1

if ImageEnView1.CurrentLayer.Kind = ielkImage then
TIEImageLayer( ImageEnView1.CurrentLayer ).ResampleFilter := rfLanczos3;

// Which is the same as...
if ImageEnView1.CurrentLayer is TIEImageLayer then
TIEImageLayer( ImageEnView1.CurrentLayer ).ResampleFilter := rfLanczos3;

Example 2

// Hide labels of all line layers when user clicks a check box
procedure Tfmain.chkShowLabelsClick(Sender: TObject);
var
I: integer;
begin
for I := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Kind = ielkLine then
begin
if chkShowLabels.Checked then
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpAtEnd
else
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpHide;
end;
ImageEnView1.Update();
end;


TIELayerMagnification

TIELayerMagnification

Declaration

TIELayerMagnification = record
Enabled: boolean;
Rate: double;
Style: TIEMagnifyStyle;
Source: TIEMagnifySource;
end;

Description

Properties allowing a layer to be used for magnification.
Field | Description
Enabled | If true this is a magnify layer. The bitmap of the layer is filled with the background zoomed according to Rate field. This property doesn't apply to layer 0. Default: False
Rate | The rate of the magnify layer (magnification). Allowed values greather than 1. Valid only if Enabled=True. This property doesn't apply to layer 0. Default: 2
Style | The magnify layer shape. Valid only if Enabled=True. This property doesn't apply to layer 0. Default: iemRectangle
Source | The magnify layer source. Default: iemCanvas


TIELayerMoveSizeEvent

TIELayerMoveSizeEvent

Declaration

TIELayerMoveSizeEvent = procedure(Sender: TObject; layer: integer; event: TIELayerEvent; var PosX, PosY, Width, Height: Double) of object;

Description

Value | Description
layer | The layer index that is moved or resized (it will be -1 for ielCreating).
event | The event type (will be ielMoving, ielResizing or ielCreating).
PosX, PosY | The new left and top position of the layer
Width, Height | The new width and height of the layer

Example

// Force all layers to be created at 200 x 200
procedure TfrmMain.ImageEnView1MoveSizeLayer(Sender: TObject; layer: integer; event: TIELayerEvent; var PosX, PosY, Width, Height: Double);
begin
if event = ielCreating then
begin
Width := 200;
Height := 200;
end;
end;

// Force all layers to be centered on the image horizon
procedure TfMain.ImageEnView1MoveSizeLayer(Sender: TObject; layer: integer; event: TIELayerEvent; var PosX, PosY, Width, Height: Double);
begin
PosY := ( ImageEnView1.Layers[0].Height - Height ) / 2;
end;


TIELayerNotify

TIELayerNotify

Declaration

TIELayerNotify = procedure(Sender: TObject; layer: integer; event: TIELayerEvent) of object;

Description

layer is the layer index that is selected, moved or resized.
event specifies the event type.

Notes:
- This event only occurs once for each change, even if multiple layers are selected. You should review the list of selected layers to determine which changed
- To avoid incompatibility, events of ielBeginCreating and ielCreating do NOT occur unless IEIncludeDeprecatedInV6 has been undefined in ie.inc. If available, layer will return -1

Example

// Log all resizing of layers
procedure TfrmMain.IEView1LayerNotify(Sender: TObject; layer: integer; event: TIELayerEvent);
var
ALayer: TIELayer;
i: Integer;
sChangedLayers: string;
begin
if event = ielResized then
begin
sChangedLayers := '';
for i := 0 to IEView1.LayersCount - 1 do
begin
ALayer := IEView1.Layers[ I ];
if ( ALayer.Locked = False ) and ALayer.Selected then
sChangedLayers := sChangedLayers + IntToStr( i ) +',';
end;
if sChangedLayers <> '' then
begin
SetLength( sChangedLayers, Length( sChangedLayers ) - 1 ); // Remove final comma
memLog.Lines.Add( 'Layers Resized: ' + sChangedLayers );
end;
end;
end;


TIELayerOptions

TIELayerOptions

Declaration

TIELayerOptions = set of (loAllowMultiSelect, loAutoSelectMask, loAutoUndoChangesByUser, loAutoUndoChangesByCode, loAutoPromptForImage, loFitToLayersWhenZooming, loAutoFixBorders, loAutoFixRotation, loDynamicCanvas);

Description

Options to control layer behavior:
Value | Description
loAllowMultiSelect | If enabled, users can select multiple layers by holding down the Shift key. Moving, resizing, rotation, and other methods will apply to all selected layers
loAutoSelectMask | If you have enabled a IsMaskmask for a layer, then when selecting the layer the mask will also be selected (so that any resizing actions apply to the mask layer too)
loAutoUndoChangesByUser | If you have enabled AutoUndo, then changes to layers made by users (using layer interactions<L> or layer TActions<L>) will be saved to the undo stack
loAutoUndoChangesByCode | If you have enabled AutoUndo, then programmatic changes to layers will be saved to the undo stack. This applies to the methods: LayersAdd, LayersInsert, LayersCreateFromSelection, LayersCreateFromFile, LayersCreateFromEdge, LayersCreateFromAlpha, LayersRemove, LayersMerge, LayersMergeAll, LayersAlign, LayersMove, LayersRotateAll, LayersGroup, LayersUngroup, LayersCropBackground
loAutoPromptForImage | When setting MouseInteract to miCreateImageLayers, the user can drag select to create an TIEImageLayer If loAutoPromptForImage is enabled, then the user will be prompted to browse for an image file when after completing the selection. If the user cancels, the image layer is not added.
loAutoFixBorders | If enabled, LayersFixBorders will be called prior to rotation to removes any transparency around the edges of the image.
loAutoFixRotation | If enabled, LayersFixRotations will be called after rotation to lock in the rotation angle of image layers.
loDynamicCanvas | If enabled, ImageEn will align the view to the bounds of all layers (i.e. by LayersRect). You will be able to scroll to access layers that have been pushed beyond the bounds of Layer 0. However this may cause the view to scroll when moving layers around (so is best paired with Center=False). When not enabled, the view is aligned with Layer 0, and any layers pushed outside of the bounds of layer 0 may be inaccessible if they are off-screen.

Examples

// Enable automatic mask selection
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAutoSelectMask ];

// Enable automatic undo for all image changes including layer changes
ImageEnView1.Proc.AutoUndo := True;
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAutoUndoChangesByUser ];

// Disable multiple selection of layers
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions - [ loAutoSelectMask ];

// Allow users to create image layers. Prompt for an image file after selection
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAutoPromptForImage ];
ImageEnView1.MouseInteract := [ miCreateImageLayers ];


TIELayersResizeAspectRatio

TIELayersResizeAspectRatio

Declaration

TIELayersResizeAspectRatio = (iearDisabled, iearALTKey, iearAlways, iearAlwaysOnCornerGrip, iearLayerDefaultOnCornerGrip);

Description

Value | Description
iearDisabled | Doesn't maintain the aspect ratio even when pressing ALT or setting ForceALTKey)
iearALTKey | Maintains the aspect ratio only when pressing ALT or setting ForceALTKey
iearAlways | The aspect ratio is always maintained (using any grips)
iearAlwaysOnCornerGrip | The aspect ratio is always maintained if the corner grips are used
iearLayerDefaultOnCornerGrip | If the layer has a preferred aspect ratio then dragging the corner grip will maintain the aspect ratio, for side grips and other layer types the aspect ratio is not maintained


TIELayout

TIELayout

Declaration

TIELayout = (ielTop, ielBottom, ielCenter);


TIELineEndShape

TIELineEndShape

Declaration

type TIELineEndShape = (ieesNone, ieesArrow, ieesCircle);

Description

Value | Description
ieesNone | No shape
ieesArrow | Arrow
ieesCircle | Circle

Example

// Add yellow filled arrows and circle ends to our current line layer
TIELineLayer( ImageEnView1.CurrentLayer ).StartShape := ieesArrow;
TIELineLayer( ImageEnView1.CurrentLayer ).EndShape := ieesCircle;
TIELineLayer( ImageEnView1.CurrentLayer ).FillColor := clYellow;
TIELineLayer( ImageEnView1.CurrentLayer ).ShapeSize := 25;
ImageEnView1.Update();


TIELineLabelPos

TIELineLabelPos

Declaration

TIELineLabelPos = (ielpHide, ielpAtStart, ielpAtEnd);

Description

Value | Description
ielpHide | Does not show the text label even if text has been specified
ielpAtStart | Shows the text label at the start of the line
ielpAtEnd | Shows the text label at the end of the line

Examples

// Move the label to the start of the line
TIELineLayer( ImageEnView1.CurrentLayer ).LabelPosition := ielpAtStart;

// Hide labels of all line layers when user clicks a check box
procedure Tfmain.chkShowLabelsClick(Sender: TObject);
var
I: integer;
begin
for I := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Kind = ielkLine then
begin
if chkShowLabels.Checked then
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpAtEnd
else
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpHide;
end;
ImageEnView1.Update();
end;


TIELineLayer

TIELineLayer

Description

TImageEnView supports multiple layers, allowing the creation of a single image from multiple source images (which can be resized, rotated, moved, etc).
TIELineLayer is a descendent of TIELayer that displays a single line. It can optionally display a text label and starting and ending arrows.

Review the Layer Documentation for a full description of layer support.

Methods and Properties

ActivateEditor
AntiAlias
AspectRatioLocked
Assign
AlphaEdgeFeathering
ClientAreaBox
ConvertToImageLayer
ConvXBmp2Scr
ConvXScr2Bmp
ConvYBmp2Scr
ConvYScr2Bmp
CopyToBitmap
Cropped
DrawingInfo
DrawOuter
EndShape
FillColor
GetIndex
GetLayerMask
GetProperties
Guid
GroupIndex
Height
Kind
LabelAlignment
LabelBorderColor
LabelBorderWidth
LabelFillColor
LabelFillColor2
LabelFillGradient
LabelFont
LabelPosition
LabelShape
LabelText
LineColor
LineLength
LinePoints
LineWidth
Locked
Modified
Name
Opacity
Operation
PosX
PosY
PreferredAspectRatio
RestoreAspectRatio
ReadOnly
Rotate
Selectable
Selected
SetProperties
SizeToFit
ShapeSize
StartShape
Swap
SupportsFeature
Tag
Transparency
UserData
UserDataLen
Visible
VisibleBox
Width

Unique to TIELineLayer

Examples

// Add a layer with yellow filled arrows and circle ends
ImageEnView1.LayersAdd( ielkLine );
TIELineLayer( ImageEnView1.CurrentLayer ).StartShape := ieesArrow;
TIELineLayer( ImageEnView1.CurrentLayer ).EndShape := ieesCircle;
TIELineLayer( ImageEnView1.CurrentLayer ).FillColor := clYellow;
TIELineLayer( ImageEnView1.CurrentLayer ).ShapeSize := 25;
ImageEnView1.Update();

// Hide labels of all line layers when user clicks a check box
procedure Tfmain.chkShowLabelsClick(Sender: TObject);
var
I: integer;
begin
ImageEnView1.LockUpdate();
for I := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Kind = ielkLine then
begin
if chkShowLabels.Checked then
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpAtEnd
else
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpHide;
end;
ImageEnView1.UnlockUpdate();
end;

See Also

- LayersAdd
- LayersInsert
- TIELayerKind

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.ActivateEditor

TIELineLayer.ActivateEditor

Declaration

procedure ActivateEditor();

Description

Activates editing of the text label by the user (i.e. user can begin typing to change the text)

Note: Has no effecr if the label is not visible

Example

// Display the text editor for the current layer
if Layer is TIELineLayer
TIELineLayer( ImageEnView1.CurrentLayer ).ActivateEditor()
else
if Layer is TIETextLayer
TIETextLayer( ImageEnView1.CurrentLayer ).ActivateEditor();

See Also

- LayersCancelEditor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.EndShape

TIELineLayer.EndShape

Declaration

property EndShape: TIELineEndShape;

Description

Specifies the shape that is displayed at the end of the line.

Notes:
- The border width and color of the arrow will be the same as the line (i.e. specified by LineColor and LineWidth)
- The fill is specified by FillColor (Gradients are not supported)
- If a label is displayed and = ielpAtEnd, then the EndShape will not be shown

Default: ieesNone

Example

// Add yellow filled arrows and circle ends to our current line layer
TIELineLayer( ImageEnView1.CurrentLayer ).StartShape := ieesArrow;
TIELineLayer( ImageEnView1.CurrentLayer ).EndShape := ieesCircle;
TIELineLayer( ImageEnView1.CurrentLayer ).FillColor := clYellow;
TIELineLayer( ImageEnView1.CurrentLayer ).ShapeSize := 25;
ImageEnView1.Update();

See Also

- StartShape
- ShapeSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.FillColor

TIELineLayer.FillColor

Declaration

property FillColor: TColor;

Description

The fill for the StartShape and EndShape.

Notes:
- The border style is the same as for the line (LineColor and LineWidth
- Gradients are not supported

Default: clWhite

Example

// Add yellow filled arrows and circle ends to our current line layer
TIELineLayer( ImageEnView1.CurrentLayer ).StartShape := ieesArrow;
TIELineLayer( ImageEnView1.CurrentLayer ).EndShape := ieesCircle;
TIELineLayer( ImageEnView1.CurrentLayer ).FillColor := clYellow;
TIELineLayer( ImageEnView1.CurrentLayer ).ShapeSize := 25;
ImageEnView1.Update();

See Also

- TIELayer.FillColor
- LabelFillColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelAlignment

TIELineLayer.LabelAlignment

Declaration

property LabelAlignment: TIEAlignment;

Description

Specifies the alignment of the text label.

Notes: iejJustify is unsupported for TIELineLayers

Default: iejLeft

Example

// Center the text for the label of the current line
TIELineLayer( ImageEnView1.CurrentLayer ).LabelAlignment := iejCenter;
ImageEnView1.Update();

See Also

- LabelFont
- LabelPosition
- LabelShape
- LabelText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelBorderColor

TIELineLayer.LabelBorderColor

Declaration

property LabelBorderColor: TColor;

Description

The color of the frame around the text label.
To hide the border set BorderColor to clNone or LabelBorderWidth to 0.

Default: clBlack

Example

// Add text label to our arrow (with black border and gradient fill)
TIELineLayer( ImageEnView1.CurrentLayer ).LabelPosition := ielpAtEnd;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor := clRed;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor2 := clYellow;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillGradient := clHorizontal;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderColor := clBlack;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.BorderColor
- LabelBorderWidth
- LineWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelBorderWidth

TIELineLayer.LabelBorderWidth

Declaration

property LabelBorderWidth: Integer;

Description

The width of the frame around the text label.
To hide the border, set LabelBorderColor to clNone or LabelBorderWidth to 0.

Default: 1

Example

// Add text label to our arrow (with black border and gradient fill)
TIELineLayer( ImageEnView1.CurrentLayer ).LabelPosition := ielpAtEnd;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor := clRed;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor2 := clYellow;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillGradient := clHorizontal;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderColor := clBlack;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.BorderWidth
- LabelBorderColor
- LineColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelFillColor

TIELineLayer.LabelFillColor

Declaration

property LabelFillColor: TColor;

Description

The color of the text label.
The fill color must be valid (i.e. clNone is not supported). If LabelFillColor is different from LabelFillColor2 it will be drawn as a gradient.

Default: clWhite

Example

// Add text label to our arrow (with black border and gradient fill)
TIELineLayer( ImageEnView1.CurrentLayer ).LabelPosition := ielpAtEnd;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor := clRed;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor2 := clYellow;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillGradient := clHorizontal;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderColor := clBlack;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.FillColor
- LabelFillColor2
- LabelFillGradient
- FillColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelFillColor2

TIELineLayer.LabelFillColor2

Declaration

property LabelFillColor2: TColor;

Description

The end color for the text label gradient.
If LabelFillColor2 is clNone, the text box is filled by a solid color specified by LabelFillColor. If LabelFillColor2 is different from LabelFillColor it is drawn as a gradient.
The direction of the gradient is specified by LabelFillGradient.

Default: clNone

Example

// Set a horizontal gradient fill for the label of a line layer
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor := clRed;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor2 := clYellow;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillGradient := clHorizontal;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderColor := clBlack;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderWidth := 3;
ImageEnView1.Update();

// Which is the same as...
ImageEnView1.CurrentLayer.FillColor := clRed;
ImageEnView1.CurrentLayer.FillColor2 := clYellow;
ImageEnView1.CurrentLayer.FillGradient := clHorizontal;
ImageEnView1.CurrentLayer.BorderColor := clBlack;
ImageEnView1.CurrentLayer.BorderWidth := 3;
ImageEnView1.Update();

// Disable the gradient fill of the label
TIELineLayer( ImageEnView1.CurrentLayer ).LabelFillColor2 := clNone;
ImageEnView1.Update();

See Also

- TIELayer.FillColor2
- LabelFillColor
- LabelFillGradient

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelFillGradient

TIELineLayer.LabelFillGradient

Declaration

property LabelFillGradient: TIEGradientDir;

Description

The direction of the gradient used for the text label fill.
If LabelFillColor is different from LabelFillColor2 the text box is filled with a gradient. LabelFillGradient specifies the direction.

Default: gdVertical

Example

// Set a horizontal gradient fill for the label of a line layer
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor := clRed;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor2 := clYellow;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillGradient := clHorizontal;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderColor := clBlack;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderWidth := 3;
ImageEnView1.Update();

// Which is the same as...
ImageEnView1.CurrentLayer.FillColor := clRed;
ImageEnView1.CurrentLayer.FillColor2 := clYellow;
ImageEnView1.CurrentLayer.FillGradient := clHorizontal;
ImageEnView1.CurrentLayer.BorderColor := clBlack;
ImageEnView1.CurrentLayer.BorderWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.FillGradient
- LabelFillColor
- LabelFillColor2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelFont

TIELineLayer.LabelFont

Declaration

property LabelFont: TFont;

Description

Specifies the font of the label text.

Example

// Sets 'Arial' as font type for the current line layer
TIELineLayer( ImageEnView1.CurrentLayer ).LabelFont.Name := 'Arial';
ImageEnView1.Update();

See Also

- LabelAlignment
- LabelPosition
- LabelShape
- LabelText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelPosition

TIELineLayer.LabelPosition

Declaration

property LabelPosition: TIELineLabelPos;

Description

Specifies the position and visibility of the text label.
Value | Description
ielpHide | Does not show the text label even if text has been specified
ielpAtStart | Shows the text label at the start of the line
ielpAtEnd | Shows the text label at the end of the line

Default: ielpAtEnd

Examples

// Move the label to the start of the line
TIELineLayer( ImageEnView1.CurrentLayer ).LabelPosition := ielpAtStart;

// Hide labels of all line layers when user clicks a check box
procedure Tfmain.chkShowLabelsClick(Sender: TObject);
var
I: integer;
begin
ImageEnView1.LockUpdate();
for I := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1.Layers[ I ].Kind = ielkLine then
begin
if chkShowLabels.Checked then
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpAtEnd
else
TIELineLayer( ImageEnView1.Layers[ I ]).LabelPosition := ielpHide;
end;
ImageEnView1.UnlockUpdate();
end;

See Also

- LabelAlignment
- LabelFont
- LabelShape
- LabelText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelShape

TIELineLayer.LabelShape

Declaration

property LabelShape: TIEShape;

Description

The shape of the text label.

Note: Only the following shapes are supported: iesRectangle, iesRoundRect, iesEllipse

Default: iesRectangle

Example

// Add a circular "Here" label
ImageEnView1.LayersAdd( ielkLine );
TIELineLayer( ImageEnView1.CurrentLayer ).LabelShape := iesEllipse;
TIELineLayer( ImageEnView1.CurrentLayer ).LabelText := 'Here';
ImageEnView1.Update();

// Add rectangular text label to our line
TIELineLayer( ImageEnView1.CurrentLayer ).LabelPosition := ielpAtEnd;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor := clRed;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillColor2 := clYellow;
TIELineLayer(ImageEnView1.CurrentLayer).LabelFillGradient := clHorizontal;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderColor := clBlack;
TIELineLayer(ImageEnView1.CurrentLayer).LabelBorderWidth := 3;
ImageEnView1.Update();

See Also

- LabelAlignment
- LabelFont
- LabelPosition
- LabelText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LabelText

TIELineLayer.LabelText

Declaration

property LabelText: String;

Description

When a value is specified for LabelText, a text label will be displayed at the end of the line.

Example

TIELineLayer( ImageEnView1.CurrentLayer ).LabelPosition := ielpAtEnd;
TIELineLayer( ImageEnView1.CurrentLayer ).LabelText := 'Test Label';
ImageEnView1.Update();

See Also

- LabelAlignment
- LabelFont
- LabelPosition
- LabelShape

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LineColor

TIELineLayer.LineColor

Declaration

property LineColor: TColor;

Description

The color of the line and the border of StartShape and EndShape.

Default: clBlack

Example

// Add a thick green line layer
ImageEnView1.LayersAdd( ielkLine );
TIELineLayer( ImageEnView1.CurrentLayer ).LineColor := clGreen;
TIELineLayer( ImageEnView1.CurrentLayer ).LineWidth := 5;
ImageEnView1.Update();

See Also

- TIELayer.BorderColor
- LineWidth
- LabelBorderColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LineLength

TIELineLayer.LineLength

Declaration

property LineLength: Integer;

Description

Provides an alternative way to set the size of the line (other than setting the rectangle via Width and Height).

Comparison

TIELineLayer provides three ways to position the line depending on your requirements. All the following create a 45 deg. line from 100,100 to 300,300

1. Standard TIELayer methods

ImageEnView1.CurrentLayer.PosX := 100;
ImageEnView1.CurrentLayer.PosY := 100;
ImageEnView1.CurrentLayer.Width := 200;
ImageEnView1.CurrentLayer.Height := 200;

2. Setting starting and end points

TIELineLayer( ImageEnView1.CurrentLayer ).LinePoints := Rect( 100, 100, 300, 300 );

2. Setting line length

TIELineLayer( ImageEnView1.CurrentLayer ).AutoSize := False;
ImageEnView1.CurrentLayer.PosX := 100;
ImageEnView1.CurrentLayer.PosY := 100;
ImageEnView1.CurrentLayer.Rotate := -45;
TIELineLayer( ImageEnView1.CurrentLayer ).LineLength := 280;

Example

// Create a layer 100 pixels long at 45 degrees
ImageEnView1.LayersAdd( ielkLine );
TIELineLayer( ImageEnView1.CurrentLayer ).LineLength := 100;
TIELineLayer( ImageEnView1.CurrentLayer ).Rotate := 45;
ImageEnView1.Update();

See Also

- LinePoints

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LinePoints

TIELineLayer.LinePoints

Declaration

property LineLength: TRect;

Description

Provides an alternate method to set the position of a line, by specifying its two end points. The points are expressed within a rect, i.e. Point 1 is (Left, Top) and Point 2 is (Right, Bottom).

Note: When setting LinePoints, <TIELineLayer.EndShape>end shapes and <TIELineLayer.LabelText>label are not taken into account

Comparison

TIELineLayer provides three ways to position the line depending on your requirements. All the following create a 45 deg. line from 100,100 to 300,300

1. Standard TIELayer methods

ImageEnView1.CurrentLayer.PosX := 100;
ImageEnView1.CurrentLayer.PosY := 100;
ImageEnView1.CurrentLayer.Width := 200;
ImageEnView1.CurrentLayer.Height := 200;

2. Setting starting and end points

TIELineLayer( ImageEnView1.CurrentLayer ).LinePoints := Rect( 100, 100, 300, 300 );

2. Setting line length

TIELineLayer( ImageEnView1.CurrentLayer ).AutoSize := False;
ImageEnView1.CurrentLayer.PosX := 100;
ImageEnView1.CurrentLayer.PosY := 100;
ImageEnView1.CurrentLayer.Rotate := -45;
TIELineLayer( ImageEnView1.CurrentLayer ).LineLength := 280;

Example

// Create a line from 100,100 to 200,200
ImageEnView1.LayersAdd( ielkLine );
TIELineLayer( ImageEnView1.CurrentLayer ).LinePoints := Rect( 100, 100, 200, 200 );
ImageEnView1.Update();

// Display points of the current line layer
with TIELineLayer( ImageEnView1.CurrentLayer ) do
begin
lblPoint1.Caption := Format( 'Point 1: %d, %d', [ LinePoints.Left, LinePoints.Top ]);
lblPoint2.Caption := Format( 'Point 2: %d, %d', [ LinePoints.Right, LinePoints.Bottom ]);
end;

See Also

- LineLength

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.LineWidth

TIELineLayer.LineWidth

Declaration

property LineWidth: Integer;

Description

The width of the line and the border of StartShape and EndShape.

Default: 1

Example

// Add a thick green line layer
ImageEnView1.LayersAdd( ielkLine );
TIELineLayer( ImageEnView1.CurrentLayer ).LineColor := clGreen;
TIELineLayer( ImageEnView1.CurrentLayer ).LineWidth := 5;
ImageEnView1.Update();

See Also

- TIELayer.BorderWidth
- LineColor
- LabelBorderWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.ReadOnly

TIELineLayer.ReadOnly

Declaration

property ReadOnly: Boolean;

Description

Prevents the user from editing the text of the label.
When ReadOnly is false, the user can double-click the label or click F2 to start editing of the label text. ReadOnly prevents the user from editing the text.

Default: False

Example

// Prevent editing of the current layer text
TIELineLayer( ImageEnView1.CurrentLayer ).ReadOnly := False;


TIELineLayer.ShapeSize

TIELineLayer.ShapeSize

Declaration

property ShapeSize: integer;

Description

Specifies the size of the arrows at the start and end of the line.

Notes:
- The border width and color of the arrow will be the same as the line (i.e. specified by LineColor and LineWidth)
- The fill is specified by FillColor (Gradients are not supported)

Default: 20

Example

// Enlarge the arrows
TIELineLayer( ImageEnView1.CurrentLayer ).ShapeSize := 25;
ImageEnView1.Update();

See Also

- StartShape
- EndShape

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIELineLayer.SizeToFit

TIELineLayer.SizeToFit

Declaration

procedure TIELineLayer.SizeToFit();

Description

Updates the size of the layer to fit the displayed angle.
This is useful if you have manually set the width/height of the layer.

Example

with ImageEnView1 do
begin
LayersAdd( ielkLine );
CurrentLayer.Rotate := 30;
CurrentLayer.Width := 500;
CurrentLayer.Height := 500;
TIELineLayer( CurrentLayer ).SizeToFit();
Update();
end;


TIELineLayer.StartShape

TIELineLayer.StartShape

Declaration

property StartShape: TIELineEndShape;

Description

Specifies the shape that is displayed at the start of the line.

Notes:
- The border width and color of the arrow will be the same as the line (i.e. specified by LineColor and LineWidth)
- The fill is specified by FillColor (Gradients are not supported)
- If a label is displayed and = ielpAtStart, then the StartShape will not be shown

Default: ieesNone

Example

// Add yellow filled arrows and circle ends to our current line layer
TIELineLayer( ImageEnView1.CurrentLayer ).StartShape := ieesArrow;
TIELineLayer( ImageEnView1.CurrentLayer ).EndShape := ieesCircle;
TIELineLayer( ImageEnView1.CurrentLayer ).FillColor := clYellow;
TIELineLayer( ImageEnView1.CurrentLayer ).ShapeSize := 25;
ImageEnView1.Update();

See Also

- EndShape
- ShapeSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEList

TIEList

Description

This is the abstract class for TIEDoubleList and TIEIntegerList.

Implemented Methods

Clear
Delete
Sort
ExchangeItems

Implemented Properties

Changed
Count

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEList.Changed

TIEList.Changed

Declaration

property Changed: TIEListChanges;

Description

Changed is True whenever the items array, Range or CurrentValue changes.


TIEList.Clear

TIEList.Clear

Declaration

procedure Clear;

Description

Clear empties the Items array.


TIEList.Count

TIEList.Count

Declaration

property Count: integer;

Description

Count contains the number of items in the Items array.


TIEList.Delete

TIEList.Delete

Declaration

procedure Delete(idx: integer);

Description

Delete the idx value from the list.


TIEList.ExchangeItems

TIEList.ExchangeItems

Declaration

procedure ExchangeItems(idx1, idx2: integer);

Description

Swap the position of items at idx1 and idx2.


TIEList.Sort

TIEList.Sort

Declaration

procedure Sort(const Compare: TIEListSortCompareFunc);

Description

Sorts the values of the list

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEListSortCompareFunc

TIEListSortCompareFunc

Declaration

TIEListSortCompareFunc = function(Item1, Item2: Pointer): Integer of object;


TIELocation

TIELocation

Declaration

TIELocation = (ieMemory, ieFile, ieTBitmap);

Description

Value | Description
ieMemory | Uses standard memory. Canvas not available. Used for fast and little images.
ieFile | Uses memory mapped files. Canvas not available. Used for big images.
ieTBitmap | Uses TBitmap VCL object. Canvas available. Used for drawing and compatibility. Location can be assigned before or after Allocate. Assigning Location on a existing image it converts the image to new location.

Example

// Optimize TImageEnView to handle very large images
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Location := ieFile;

See Also

- MinFileSize
- Location
- UndoLocation

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMagicWandMode

TIEMagicWandMode

Declaration

TIEMagicWandMode=(iewInclusive, iewExclusive, iewGlobal);

Description

Value | Description
iewInclusive | the selection is a closed polygon
iewExclusive | the selection includes only points that match the initial pixel, similar to a flood fill
iewGlobal | the selection includes all points that match the initial pixel, examining all pixels of the image


TIEMagnifySource

TIEMagnifySource

Declaration

TIEMagnifySource = (iemBackgroundLayer, iemCanvas);

Description

iemBackgroundLayer: gets data from the background layer.
iemCanvas: gets data from the painted background.

To magnify the layer 0 image by getting the pixels directly from the bitmap, use iemBackgroundLayer.


TIEMagnifyStyle

TIEMagnifyStyle

Declaration

TIEMagnifyStyle = (iemRectangle, iemEllipse);


TIEMarkerList

TIEMarkerList

Description

TIEMarkerList contains the list of markers loaded from a jpeg.

Methods and properties

AddMarker
Assign
Clear
Count
DeleteMarker
DeleteMarkerInstances
IndexOf
InsertMarker
LoadFromStream
MarkerData
MarkerLength
MarkerStream
MarkerType
SaveToStream
SetMarker

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMarkerList.AddMarker

TIEMarkerList.AddMarker

Declaration

function AddMarker(marker: byte; data: PAnsiChar; datalen: word): integer;

Description

Adds a new marker to the list. Marker can be from JPEG_APP0 to JPEG_APP15 and JPEG_COM.
AddMarker returns the index of the new marker, where the first marker in the list has an index of 0.
A single JPEG file can contains multiple instances of the same marker.


TIEMarkerList.Assign

TIEMarkerList.Assign

Declaration

procedure Assign(Source: TIEMarkerList);

Description

Assign all markers from Source.


TIEMarkerList.Clear

TIEMarkerList.Clear

Declaration

procedure Clear;

Description

Remove all markers.


TIEMarkerList.Count

TIEMarkerList.Count

Declaration

property Count: integer;

Description

Returns the markers count.


TIEMarkerList.DeleteMarker

TIEMarkerList.DeleteMarker

Declaration

procedure DeleteMarker(idx: integer);

Description

Remove marker, idx.


TIEMarkerList.DeleteMarkerInstances

TIEMarkerList.DeleteMarkerInstances

Declaration

procedure DeleteMarkerInstances(markerType: byte);

Description

Remove all markers of the specified marker type.

Example

// removes ICC jpeg profile (APP2 markers)
ImageEnView.IO.Params.JPEG_MarkerList.DeleteMarkerInstances(M_APP2);


TIEMarkerList.IndexOf

TIEMarkerList.IndexOf

Declaration

function IndexOf(marker: byte): integer;

Description

Finds the first marker and return its index. If a marker is not in the list, IndexOf returns -1.


TIEMarkerList.InsertMarker

TIEMarkerList.InsertMarker

Declaration

procedure InsertMarker(idx: integer; data: PAnsiChar; marker: byte; datalen: word);

Description

Call InsertMarker to add a marker to the middle of the marker array. The idx parameter is a zero-based index.


TIEMarkerList.LoadFromStream

TIEMarkerList.LoadFromStream

Declaration

procedure LoadFromStream(Stream: TStream);

Description

Load all markers from stream.


TIEMarkerList.MarkerData

TIEMarkerList.MarkerData

Declaration

property MarkerData[idx: integer]: PAnsiChar;

Description

Get data buffer pointer of marker, idx.


TIEMarkerList.MarkerLength

TIEMarkerList.MarkerLength

Declaration

property MarkerLength[idx: integer]: word;

Description

Get marker length (65,535 bytes max).


TIEMarkerList.MarkerStream

TIEMarkerList.MarkerStream

Declaration

property MarkerStream[idx: integer]: TStream;

Description

Get data stream of marker, idx.


TIEMarkerList.MarkerType

TIEMarkerList.MarkerType

Declaration

property MarkerType[idx: integer]: byte;

Description

Get marker type (JPEG_APP0 to JPEG_APP15 and JPEG_COM).


TIEMarkerList.SaveToStream

TIEMarkerList.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream);

Description

Saves all markers in the stream. Only LoadFromStream can reload data.


TIEMarkerList.SetMarker

TIEMarkerList.SetMarker

Declaration

procedure SetMarker(idx: integer; marker: byte; data: PAnsiChar; datalen: word);

Description

Replace the marker, idx.


TIEMask.AllocateBits

TIEMask.AllocateBits

Declaration

procedure AllocateBits(width, height: integer; bitsperpixel: integer);

Description

Allocates memory for the map. Memory is zero filled.
bitsperpixel can be 1 or 8.


TIEMask.Assign

TIEMask.Assign

Declaration

procedure Assign(Source: TIEMask); overload;
procedure Assign(Source: TIEBitmap); overload;

Description

Assigns Source mask or creates a mask from a TIEBitmap.

Note: When creating a mask from a TIEBitmap, the image is reduced to 8bit gray scale and the intensity of each pixel determining the selection mask value.

Example

// Select the non-alpha areas of an image
// Same as TImageEnView.SelectNonAlpha
ImageEnView1.SelectionMask.Assign( ImageEnView1.AlphaChannel );
ImageEnView1.SelectCustom();


TIEMask.Bits

TIEMask.Bits

Declaration

property Bits: pbyte;

Description

Contains the raw buffer of the selection mask.


TIEMask.BitsPerPixel

TIEMask.BitsPerPixel

Declaration

property BitsPerPixel: integer;

Description

Returns the color depth (bits per pixels) of the mask. ImageEn supports:
- 1 bit mask: 0 is a non-selected pixel, while 1 is selected.
- 8 bit mask: 0 is non-selected pixel, 1-254 is a "semi" selected pixel, and 255 is fully selected pixel.


TIEMask.CombineWithAlpha

TIEMask.CombineWithAlpha

Declaration

procedure CombineWithAlpha(SourceAlpha: TIEBitmap; ox, oy: integer; SynchronizeBoundingRect: boolean);

Description

Only for internal use.


TIEMask.CopyBitmap

TIEMask.CopyBitmap

Declaration

procedure CopyBitmap(Dest, Source: TBitmap; dstonlymask, srconlymask: boolean);

Description

For internal use only.


TIEMask.CopyIEBitmap

TIEMask.CopyIEBitmap

Declaration

procedure CopyIEBitmap(Dest, Source: TIEBitmap; dstonlymask, srconlymask: boolean; UseAlphaChannel: boolean);

Description

For internal use only.


TIEMask.CopyIEBitmapAlpha

TIEMask.CopyIEBitmapAlpha

Declaration

procedure CopyIEBitmapAlpha(Dest, Source: TIEBitmap; dstonlymask, srconlymask: boolean);

Description

For internal use only.


TIEMask.DrawOuter

TIEMask.DrawOuter

Declaration

procedure DrawOuter(Dest: TBitmap; xDst, yDst, dxDst, dyDst: integer; xMask, yMask, dxMask, dyMask: integer; AlphaBlend: integer; Color: TColor);

Description

For internal use only.


TIEMask.DrawOutline

TIEMask.DrawOutline

Declaration

procedure DrawOutline(Dest: TCanvas; xDst, yDst, dxDst, dyDst: integer; xMask, yMask, dxMask, dyMask: integer; AniCounter: integer; Color1, Color2: TColor; actualRect: PRect = nil);

Description

For internal use only.


TIEMask.DrawPolygon

TIEMask.DrawPolygon

Declaration

procedure DrawPolygon(Alpha: integer; SelPoly: PPointArray; SelPolyCount: integer);

Description

Draw specified polygon in the mask, using Alpha value for all pixels. Valid range 0 (fully transparent) to 255 (fully opaque).


TIEMask.Empty

TIEMask.Empty

Declaration

procedure Empty;

Description

Fills the entire mask with zeros.


TIEMask.Fill

TIEMask.Fill

Declaration

procedure Fill(Alpha: integer = 255);

Description

Fills the entire mask using the Alpha value. Valid range 0 (fully transparent) to 255 (fully opaque).


TIEMask.FreeBits

TIEMask.FreeBits

Declaration

procedure FreeBits;

Description

Free the allocated mask.


TIEMask.Full

TIEMask.Full

Declaration

property Full: boolean;

Description

True when the mask contains all 1 values (i.e. the image has all pixels selected).


TIEMask.GetPixel

TIEMask.GetPixel

Declaration

function GetPixel(x, y: integer): integer;

Description

Return the value of the pixel at x, y coordinates.


TIEMask.Height

TIEMask.Height

Declaration

property Height: integer;

Description

Returns the height of the selection mask. It must be equal to the image height. (read-only)


TIEMask.Intersect

TIEMask.Intersect

Declaration

procedure Intersect(x1, y1, x2, y2: integer);

Description

For internal use only.


TIEMask.InvertCanvas

TIEMask.InvertCanvas

Declaration

procedure InvertCanvas(Dest: TCanvas; xDst, yDst, dxDst, dyDst: integer; xMask, yMask, dxMask, dyMask: integer);

Description

For internal use only.


TIEMask.IsEmpty

TIEMask.IsEmpty

Declaration

function IsEmpty: boolean;

Description

Returns True if the mask contains all zeros.


TIEMask.IsPointInside

TIEMask.IsPointInside

Declaration

function IsPointInside(x, y: integer): boolean;

Description

Return true if the x, y pixel is not 0.


TIEMask.Negative

TIEMask.Negative

Declaration

procedure Negative(MaxVal: integer);

Description

For internal use only.


TIEMask.Resize

TIEMask.Resize

Declaration

procedure Resize(NewWidth, NewHeight: integer);

Description

Resizes this selection map.


TIEMask.Rowlen

TIEMask.Rowlen

Declaration

property Rowlen: int64;

Description

Returns the length of a row in bytes.


TIEMask.ScanLine

TIEMask.ScanLine

Declaration

property ScanLine[row: integer]: pointer;

Description

This is equivalent to the Scanline property of TBitmap. It allows you to get/set the mask by hand.

Example

// Set all pixels within selection as red
// Same as ImageEnView1.SetSelectedPixelsColor
var
x, y: Integer;
pSel: pbyte;
pPix: PRGB;
begin
if ImageEnView1.SelectionMask.IsEmpty then
raise Exception.create( 'Nothing selected' );

if ImageEnView1.IEBitmap.PixelFormat <> ie24RGB then
raise Exception.create( 'Not 24bit' );

// Process selected area
for y := 0 to ImageEnView1.SelectionMask.Height - 1 do
begin
pSel := ImageEnView1.SelectionMask.ScanLine[ y ];
pPix := ImageEnView1.IEBitmap.ScanLine[ y ];

case ImageEnView1.SelectionMask.BitsPerPixel of
1:
for x := 0 to ImageEnView1.SelectionMask.Width - 1 do
begin
// 1 Bit mask (values are 0 or 1)
if (pbytearray(pSel)^[x shr 3] and iebitmask1[x and $7]) <> 0 then
begin
pPix^.R := 255;
pPix^.G := 0;
pPix^.B := 0;
end;
inc( pPix );
end;
8:
for x := 0 to ImageEnView1.SelectionMask.Width - 1 do
begin
// 8 Bit mask (values are 0 to 255)
if pSel^ <> 0 then
begin
pPix^.R := 255;
pPix^.G := 0;
pPix^.B := 0;
end;
inc( pSel );
inc( pPix );
end;
end;
end;
ImageEnView1.Update();
end;


TIEMask.SetEllipse

TIEMask.SetEllipse

Declaration

procedure SetEllipse(CenterX, CenterY, Width, Height: integer; Alpha: integer);

Description

Set an elliptical selection. A pixel with mask 1 or >0 is selected.

Parameter | Description
CenterX | Ellipse horizontal center.
CenterY | Ellipse vertical center.
Width | Ellipse width.
Height | Ellipse height.
Alpha | Alpha value (0 = not selected, >0 selected).

Example

// Select an ellipse (10, 10 - 14, 14)
ImageEnView1.SelectionMask.SetEllipse(10, 10, 14, 14);
ImageEnView1.SelectCustom();


TIEMask.SetPixel

TIEMask.SetPixel

Declaration

procedure SetPixel(x, y: integer; Alpha: integer);

Description

Set a single pixel selection at x, y coordinates. A pixel with mask 1 or >0 is selected.


TIEMask.SetRectangle

TIEMask.SetRectangle

Declaration

procedure SetRectangle(Rect: TRect; Alpha: integer);
procedure SetRectangle(x1, y1, x2, y2: integer; Alpha: integer);

Description

Set a rectanglular selection. A pixel with mask 1 or >0 is selected.

Parameter | Description
Rect | Rectangle to select.
Alpha | Alpha value (0 = not selected, >0 selected).

Example

// Select rectangle (10, 10 - 14, 14)
ImageEnView1.SelectionMask.SetRectangle(Rect(10, 10, 14, 14), 1);
ImageEnView1.SelectCustom();


TIEMask.SyncFull

TIEMask.SyncFull

Declaration

procedure SyncFull;

Description

Sets Full to True if all values are 255.


TIEMask.SyncRect

TIEMask.SyncRect

Declaration

procedure SyncRect;

Description

Adjusts X1, Y1, X2 and Y2 to enclose the bounding box of the selected pixels.


TIEMask.TranslateBitmap

TIEMask.TranslateBitmap

Declaration

procedure TranslateBitmap(var ox, oy: integer; CutSel: boolean);

Description

Translates (moves) the mask of ox, oy pixels. Set CutSel to true if the mask can go out of mask margins.


TIEMask.Width

TIEMask.Width

Declaration

property Width: integer;

Description

Returns the width of the selection mask. It must be equal to the image width. (read-only)


TIEMask.X1

TIEMask.X1

Declaration

property X1: integer;

Description

Specifies the upper-left side of the non-empty selection (an empty mask has 1).


TIEMask.X2

TIEMask.X2

Declaration

property X2: integer;

Description

Specifies the bottom-right side of the non-empty selection.


TIEMask.Y1

TIEMask.Y1

Declaration

property Y1: integer;

Description

Specifies the upper-left side of the non-empty selection (an empty mask has 1).


TIEMask.Y2

TIEMask.Y2

Declaration

property Y2: integer;

Description

Specifies the bottom-right side of the non-empty selection.


TIEMCheckboxPos

TIEMCheckboxPos

Declaration

TIEMCheckboxPos = (iecpTopLeft, iecpTopRight, iecpBottomLeft, iecpBottomRight);

Description

Value | Description
iecpTopLeft | Checkboxes display in the top left of the thumbnail box
iecpTopRight | Checkboxes display in the top right of the thumbnail box
iecpBottomLeft | Checkboxes display in the bottom left of the thumbnail box
iecpBottomRight | Checkboxes display in the bottom right of the thumbnail box


TIEMCheckboxType

TIEMCheckboxType

Declaration

TIEMCheckboxType = (iecbNone, iecbShowOnHover, iecbAlways);

Description

Value | Description
iecbNone | Checkboxes are not shown/supported
iecbShowOnHover | Checkboxes are shown when a thumbnail is selected, checked, or when hovered over with the mouse
iecbAlways | Checkboxes are always shown on thumbnails


TIEMDisplayMode

TIEMDisplayMode

Declaration

type TIEMDisplayMode = (mdGrid, mdSingle);

Description

Value | Description
mdGrid | Thumbnail view: Images are shown in a grid (of GridWidth columns)
mdSingle | Frame view: Only one image is shown at a time (specified by VisibleFrame property)


TIEMeasureUnits

TIEMeasureUnits

Declaration

TIEMeasureUnits = array [TIEUnits] of string;


TIEMedFilType

TIEMedFilType

Declaration

TIEMedFilType = (mfMedianFilter, mfSharpen, mfEdgeExtract);

Description

The effect of MedianFilter:
mfMedianFilter | Substitute median if central point differs from median by a threshold amount
mfSharpen | High pass sharpening
mfEdgeExtract | Edge extraction


TIEMediaFoundationAudioRenderer

TIEMediaFoundationAudioRenderer

Declaration

type TIEMediaFoundationAudioRenderer = class(TInterfacedObject, IIEMediaFoundationReaderNotifyReceiver);

Description

A wrapper for the Media Foundation audio renderer.

Applications can add a TIEMediaFoundationAudioRenderer as a notification receiver (see PushNotifyReceiver method) in order to automatically render the audio stream.

Notes:
- Using TIEMediaFoundationAudioRenderer with TIEMediaFoundationSourceReader may produce audio out of synchronization.
- The Audio renderer supports only PCM or Float media types, so applications should set the appropriate media type (see example).

Example

// Add the audio renderer
audioStreamindex := ImageEnView1.IO.MediaFoundationSourceReader.IndexOfFirstStream(mmf_AUDIO_STREAM);
ImageEnView1.IO.MediaFoundationSourceReader.SetSelectedStreams(audioStreamIndex, true);
ImageEnView1.IO.MediaFoundationSourceReader.SetMediaTypeAudio(audioStreamIndex, 'PCM');
ImageEnView1.IO.MediaFoundationSourceReader.PushNotifyReceiver( TIEMediaFoundationAudioRenderer.Create(audioStreamIndex) );
ImageEnView1.IO.MediaFoundationSourceReader.StartCapture();

// Remove the audio renderer
ImageEnView1.IO.MediaFoundationSourceReader.StopCapture();
ImageEnView1.IO.MediaFoundationSourceReader.PopNotifyReceiver();

See Also

- PopNotifyReceiver
- PushNotifyReceiver

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationNotifyEvent

TIEMediaFoundationNotifyEvent

Declaration

TIEMediaFoundationNotifyEvent = procedure(Sender: TObject; MediaFoundationObject: TObject; NotifyType: TIEMediaFountationNotifyType) of object;

Description

Parameter | Description
Sender | Sender object. For OnMediaFoundationNotify this is a TImageEnView object
MediaFoundationObject | Media foundation object. This could be a TIEMediaFoundationSourceReader object
NotifyType | Notification type


TIEMediaFoundationSourceReader.Capturing

TIEMediaFoundationSourceReader.Capturing

Declaration

property Capturing: boolean;

Description

Returns True if capturing is underway.
Capturing is True after ResumeCapture or StartCapture is called.
Capturing is False after PauseCapture or StopCapture is called.

This property is read-only.

See Also

- PauseCapture
- ResumeCapture
- StartCapture
- StopCapture

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.ClearNotifyReceivers

TIEMediaFoundationSourceReader.ClearNotifyReceivers

Declaration

procedure ClearNotifyReceivers();

Description

Removes all notify receivers.

See Also

- PopNotifyReceiver
- PushNotifyReceiver

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.DiscardAudioSamples

TIEMediaFoundationSourceReader.DiscardAudioSamples

Declaration

property DiscardAudioSamples: boolean;

Description

If True, only video samples are sent back to the OnMediaFoundationNotify event.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.Duration

TIEMediaFoundationSourceReader.Duration

Declaration

property Duration: int64;

Description

Returns the duration of a source media file, in 100 nanosecond units (There are 1 billion nanoseconds to a second).

Example 1

// Get the source duration as a 'HH:MM:SS:DD' string
duration := IEMediaFoundationTimeToStr(ImageEnView1.IO.MediaFoundationSourceReader.Duration);

Example 2

// Display length in seconds
if IEMediaFoundationTimeToSec(ImageEnView1.IO.MediaFoundationSourceReader.Duration) < 1 then
lblLength.Caption := '< 1 Sec.'
else
lblLength.Caption := format('%d Sec.', [Round(IEMediaFoundationTimeToSec(ImageEnView1.IO.MediaFoundationSourceReader.Duration))]);

See Also

- IEMediaFoundationTimeToStr
- IEMediaFoundationTimeToSec

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.Flush

TIEMediaFoundationSourceReader.Flush

Declaration

procedure Flush();

Description

Discards all received samples. After this the next call to GetNextSample will fail.


TIEMediaFoundationSourceReader.GetCurrentMediaType

TIEMediaFoundationSourceReader.GetCurrentMediaType

Declaration

function GetCurrentMediaType(streamIndex: integer): TIEDictionary;
function GetCurrentMediaType(streamType: WideString): TIEDictionary;

Description

Returns the actual media type for the specified stream.
Applications should call GetCurrentMediaType to check the actual selected media type after a call to SetMediaTypeXXX or SelectMediaType.
See GetMediaType for the list of keys in the resulting dictionary.

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1
streamType | A string representing the stream type. Only the first stream of this type will be considered. Can be any one of the values accepted by GetStreamType

Example

// Get the actual video format (ie MJPEG may be converted to YUY2)
with ImageEnView1.IO.MediaFoundationSourceReader.GetCurrentMediaType(mmf_VIDEO_STREAM) do
begin
Label4.Caption := Format('Actual video format: %d x %d %.1f fps %s',
[GetInteger(IEFRAMEWIDTH_DICT_KEY), // width
GetInteger(IEFRAMEHEIGHT_DICT_KEY), // height
GetDouble(IEFRAMERATE_DICT_KEY), // frame rate
GetString(IESUBTYPE_DICT_KEY) // subtype = color space
]);
end;

See Also

- GetMediaType
- GetMediaTypesCount
- SelectMediaType
- SetMediaTypeAudio
- SetMediaTypeCustom
- SetMediaTypeVideo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.GetMediaType

TIEMediaFoundationSourceReader.GetMediaType

Declaration

function GetMediaType(streamIndex: integer; mediaTypeIndex: integer): TIEDictionary;
function GetMediaType(streamType: WideString; mediaTypeIndex: integer): TIEDictionary;

Description

Returns the media type for the specified stream and media type index.
Each source stream can support several media types (ie. frame size, frame format, etc..) so GetMediaType provides details about them.

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1
streamType | A string representing the stream type. Only the first stream of this type will be considered. Can be any one of the values accepted by GetStreamType
mediaTypeIndex | Index of the media type, in the range of 0 to GetMediaTypesCount - 1

The resulting object is a dictionary which contains following media type attributes:
Dictionary key | Type | Description
IEMAJORTYPE_DICT_KEY | string | Contains major stream type. See GetStreamType for a list of stream types. The Media Foundation Type is MF_MT_MAJOR_TYPE
IESUBTYPE_DICT_KEY | string | Contains the media sub type. See below for a list of common values. The Media Foundation Type is MF_MT_SUBTYPE
IECOMPRESSED_DICT_KEY | boolean | If this attribute is True, the media type is a compressed format. The Media Foundation Type is MF_MT_COMPRESSED
IEAVGBITRATE_DICT_KEY | integer | Approximate data rate of the video stream, in bits per second. The Media Foundation Type is MF_MT_AVG_BITRATE
IEDEFAULTSTRIDE_DICT_KEY | integer | The number of bytes needed to go from one row of pixels to the next. The Media Foundation Type is MF_MT_DEFAULT_STRIDE
IEFRAMERATE_DICT_KEY | double | Frame rate of a video media type, in frames per second. The Media Foundation Type is MF_MT_FRAME_RATE
IEFRAMERATEMAX_DICT_KEY | double | The maximum frame rate that is supported by a video capture device, in frames per second. The Media Foundation Type is MF_MT_FRAME_RATE_RANGE_MAX
IEFRAMERATEMIN_DICT_KEY | double | The minimum frame rate that is supported by a video capture device, in frames per second. The Media Foundation Type is MF_MT_FRAME_RATE_RANGE_MIN
IEFRAMEWIDTH_DICT_KEY | integer | Width of a video frame, in pixels. The Media Foundation Type is MF_MT_FRAME_SIZE (high dword)
IEFRAMEHEIGHT_DICT_KEY | integer | Height of a video frame, in pixels. The Media Foundation Type is MF_MT_FRAME_SIZE (low dword)
IEINTERLACEMODE_DICT_KEY | string | Describes how the frames in a video media type are interlaced. The Media Foundation Type is MF_MT_INTERLACE_MODE
IEVIDEOLIGHTING_DICT_KEY | string | Specifies the optimal lighting conditions for a video media type. Allowed values are: 'Bright', 'Office', 'Dim' and 'Dark'. The Media Foundation Type is MF_MT_VIDEO_LIGHTING
IEAUDIOBITSPERSAMPLE_DICT_KEY | integer | Number of bits per audio sample in an audio media type. The Media Foundation Type is MF_MT_AUDIO_BITS_PER_SAMPLE
IEAUDIOFLOATSAMPLESPERSECOND_DICT_KEY | double | Number of audio samples per second. The Media Foundation Type is MF_MT_AUDIO_FLOAT_SAMPLES_PER_SECOND
IEAUDIONUMCHANNELS_DICT_KEY | integer | Number of audio channels. The Media Foundation Type is MF_MT_AUDIO_NUM_CHANNELS
IEAUDIOSAMPLESPERSECOND_DICT_KEY | integer | Number of audio samples per second. The Media Foundation Type is MF_MT_AUDIO_SAMPLES_PER_SECOND
IEAUDIOBLOCKALIGNMENT_DICT_KEY | integer | Block alignment, in bytes. For PCM audio formats, the block alignment is equal to the number of audio channels multiplied by the number of bytes per audio sample. The Media Foundation Type is MF_MT_AUDIO_BLOCK_ALIGNMENT
IEALLSAMPLESINDEPENDENT_DICT_KEY | boolean | Specifies for a media type whether each sample is independent of the other samples. The Media Foundation Type is MF_MT_ALL_SAMPLES_INDEPENDENT
IEAUDIOAVGBYTESPERSECOND_DICT_KEY | integer | Average number of bytes per second. The Media Foundation Type is MF_MT_AUDIO_AVG_BYTES_PER_SECOND

The Video media sub types (IESUBTYPE_DICT_KEY) are: 'RGB8', 'RGB555', 'RGB565', 'RGB24', 'RGB32', 'ARGB32', 'AI44', 'AYUV', 'YUY2', 'YVYU', 'YVU9', 'UYVY', 'NV11', 'NV12', 'YV12', 'I420', 'IYUV', 'Y210', 'Y216',
'Y410', 'Y416', 'Y41P', 'Y41T', 'Y42T', 'P210', 'P216', 'P010', 'P016', 'v210', 'v216', 'v410', 'MP43', 'MP4S', 'M4S2', 'MP4V', 'WMV1', 'WMV2', 'WMV3', 'WVC1', 'MSS1', 'MSS2',
'MPG1', 'dvsl', 'dvsd', 'dvhd', 'dv25', 'dv50', 'dvh1', 'dvc ', 'H264', 'MJPG'.

The Audio media sub types (IESUBTYPE_DICT_KEY) are: 'PCM', 'Float', 'DTS', 'Dolby_AC3_SPDIF', 'DRM', 'WMAudioV8', 'WMAudioV9', 'WMAudio_Lossless', 'WMASPDIF', 'MSP1', 'MP3', 'MPEG', 'AAC', 'ADTS'.

The interlace modes (IEINTERLACEMODE_DICT_KEY) are: 'Progressive', 'FieldInterleavedUpperFirst', 'FieldInterleavedLowerFirst', 'FieldSingleUpper', 'FieldSingleLower', 'MixedInterlaceOrProgressive'.

Example

// Fill supported formats listbox
ListBox1.Clear();
with ImageEnView1.IO.MediaFoundationSourceReader do
begin
SetVideoInput(ComboBox1.ItemIndex);
for i := 0 to GetMediaTypesCount(mmf_VIDEO_STREAM) - 1 do
begin
mediaType := GetMediaType(mmf_VIDEO_STREAM, i);
ListBox1.Items.Add(Format('%d x %d %.1f fps (min fps: %.1f max fps: %.1f) %s',
[mediaType.GetInteger(IEFRAMEWIDTH_DICT_KEY), // width
mediaType.GetInteger(IEFRAMEHEIGHT_DICT_KEY), // height
mediaType.GetDouble(IEFRAMERATE_DICT_KEY), // default frame rate
mediaType.GetDouble(IEFRAMERATEMIN_DICT_KEY), // minimum frame rate
mediaType.GetDouble(IEFRAMERATEMAX_DICT_KEY), // maximum frame rate
mediaType.GetString(IESUBTYPE_DICT_KEY) // subtype = color space
]));
end;
end;

See Also

- StreamCount
- GetMediaTypesCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.GetMediaTypesCount

TIEMediaFoundationSourceReader.GetMediaTypesCount

Declaration

function GetMediaTypesCount(streamIndex: integer): integer;
function GetMediaTypesCount(streamType: WideString): integer;

Description

Returns the number of media types for the specified stream.

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1
streamType | A string representing the stream type. Only the first stream of this type will be considered. Can be any one of the values accepted by GetStreamType

See Also

- StreamCount
- GetMediaType

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.GetNextSample

TIEMediaFoundationSourceReader.GetNextSample

Declaration

function GetNextSample(): TIEMFReceivedSample;

Description

Retrieve the next sample from the samples buffer.

Note: Applications should free the received sample.

Example

// Handler for TImageEnView.OnMediaFoundatioNotify event
procedure TForm1.ImageEnVect1MediaFoundationNotify(Sender, MediaFoundationObject: TObject; NotifyType: TIEMediaFountationNotifyType);
var
sample: TIEMFReceivedSample;
begin
if NotifyType = iemfnFRAME then // is this a frame?
begin
sample := ImageEnView1.IO.MediaFoundationSourceReader.GetNextSample(); // retrieve frame sample
try
sample.DecodeSample(ImageEnView1.IEBitmap); // convert frame sample to bitmap
ImageEnView1.Update(); // update TImageEnView to show the new bitmap
finally
sample.Free(); // free the sample
end;
end;
end;

See Also

- Capturing
- StartCapture
- StopCapture

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.GetStreamType

TIEMediaFoundationSourceReader.GetStreamType

Declaration

function GetStreamType(streamIndex: integer): WideString;

Description

Returns a string representing the type of the specified stream.

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1

Stream type can be one of the following values:
mmf_AUDIO_STREAMmmf_VIDEO_STREAMmmf_PROTECTED_STREAMmmf_SAMI_STREAMmmf_SCRIPT_STREAMmmf_IMAGE_STREAMmmf_HTML_STREAMmmf_BINARY_STREAMmmf_FILETRANSFER_STREAM
Return value | Description | Const
'Audio' | Audio stream
'Video' | Video stream
'Protected' | Protected media
'SAMI' | Synchronized Accessible Media Interchange (SAMI) captions
'Script' | Script stream
'Image' | Still image stream
'HTML' | HTML stream
'Binary' | Binary stream
'FileTransfer' | A stream that contains data files
'Unknown' | None of the above

See Also

- StreamCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.IndexOfFirstStream

TIEMediaFoundationSourceReader.IndexOfFirstStream

Declaration

function IndexOfFirstStream(streamType: WideString): integer;

Description

Returns the index of first stream of the specified type, or -1 if the stream type is not found.

Parameter | Description
streamType | A string representing the stream type. Can be any one of the values accepted by GetStreamType

Example

// Search for audio stream and enables audio renderer for that stream
audioStreamIndex := ImageEnView1.IO.MediaFoundationSourceReader.IndexOfFirstStream(mmf_AUDIO_STREAM);
ImageEnView1.IO.MediaFoundationSourceReader.SetSelectedStreams(audioStreamIndex, true);
ImageEnView1.IO.MediaFoundationSourceReader.SetMediaTypeAudio(audioStreamIndex, 'PCM');
ImageEnView1.IO.MediaFoundationSourceReader.PushNotifyReceiver( TIEMediaFoundationAudioRenderer.Create(audioStreamIndex) );

See Also

- GetStreamType
- StreamCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.IsAvailable

TIEMediaFoundationSourceReader.IsAvailable

Declaration

property IsAvailable: boolean;

Description

Returns True if Media Foundation is available.

TIEMediaFoundationSourceReader has been tested to work with Windows 7, 8.1 and 10.


TIEMediaFoundationSourceReader.PauseCapture

TIEMediaFoundationSourceReader.PauseCapture

Declaration

function PauseCapture(): boolean;

Description

Suspends capturing of sample. Call ResumeCapture to restart capturing.
Returns the capture state before pausing (True = was capturing, False = was not capturing).

See Also

- Capturing
- PauseCapture
- ResumeCapture
- StartCapture
- StopCapture

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.PopNotifyReceiver

TIEMediaFoundationSourceReader.PopNotifyReceiver

Declaration

procedure PopNotifyReceiver();

Description

Removes the last added notify receiver.

Applications can use this method to remove the audio renderer after capture ends.

Example

// Add the audio renderer
audioStreamindex := ImageEnView1.IO.MediaFoundationSourceReader.IndexOfFirstStream(mmf_AUDIO_STREAM);
ImageEnView1.IO.MediaFoundationSourceReader.PushNotifyReceiver( TIEMediaFoundationAudioRenderer.Create(audioStreamIndex) );
ImageEnView1.IO.MediaFoundationSourceReader.StartCapture();

// Remove the audio renderer
ImageEnView1.IO.MediaFoundationSourceReader.StopCapture();
ImageEnView1.IO.MediaFoundationSourceReader.PopNotifyReceiver();

See Also

- ClearNotifyReceivers
- PushNotifyReceiver
- TIEMediaFoundationAudioRenderer

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.PushNotifyReceiver

TIEMediaFoundationSourceReader.PushNotifyReceiver

Declaration

procedure PushNotifyReceiver(notifyReceiver: IIEMediaFoundationReaderNotifyReceiver);

Description

Adds a notify receiver. A notify receiver receives notifications like "start capturing", "new frame", "end of stream".

Applications can use this method to add an audio renderer before capture begins.

Note: TImageEnView is setup as receiver of TIEMediaFoundationSourceReader in order to deliver OnMediaFoundationNotify events.

Example

// Add the audio renderer
audioStreamindex := ImageEnView1.IO.MediaFoundationSourceReader.IndexOfFirstStream(mmf_AUDIO_STREAM);
ImageEnView1.IO.MediaFoundationSourceReader.PushNotifyReceiver( TIEMediaFoundationAudioRenderer.Create(audioStreamIndex) );
ImageEnView1.IO.MediaFoundationSourceReader.StartCapture();

// Remove the audio renderer
ImageEnView1.IO.MediaFoundationSourceReader.StopCapture();
ImageEnView1.IO.MediaFoundationSourceReader.PopNotifyReceiver();

See Also

- PopNotifyReceiver
- PushNotifyReceiver
- TIEMediaFoundationAudioRenderer

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.ResumeCapture

TIEMediaFoundationSourceReader.ResumeCapture

Declaration

procedure ResumeCapture();

Description

Resumes capturing of the sample. Call PauseCapture to pause capturing.

See Also

- Capturing
- PauseCapture
- ResumeCapture
- StartCapture
- StopCapture

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SamplesBufferSize

TIEMediaFoundationSourceReader.SamplesBufferSize

Declaration

property SamplesBufferSize: integer;

Description

Specifies how many samples can be stored waiting to be displayed or processed.

Default: 30

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SelectMediaType

TIEMediaFoundationSourceReader.SelectMediaType

Declaration

function SelectMediaType(streamIndex: integer; mediaTypeIndex: integer): boolean;
function SelectMediaType(streamType: WideString; mediaTypeIndex: integer): boolean;

Description

Select one of the native media types of the specified stream.
If the media type is not natively supported by ImageEn a compatible one is automatically selected (e.g. 'MJPG->YUY2').
Returns False if the media type is not accepted (or a suitable conversion is not available).

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1
streamType | A string representing the stream type. Only the first stream of this type will be considered. Can be any one of the values accepted by GetStreamType
mediaTypeIndex | Index of native media type to select

Example

ImageEnView1.IO.MediaFoundationSourceReader.SelectMediaType(mmf_VIDEO_STREAM, ListBox1.ItemIndex);

See Also

- GetMediaType
- GetMediaTypesCount
- SetMediaTypeAudio
- SetMediaTypeCustom
- SetMediaTypeVideo
- GetCurrentMediaType

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SetFileInput

TIEMediaFoundationSourceReader.SetFileInput

Declaration

function SetFileInput(filename: WideString): boolean;

Description

Specifies a file as the video/audio source.

Parameter | Description
filename | Full path of the input file

Example

// Set 'input.mp4' as the video/audio source
ImageEnView1.IO.MediaFoundationSourceReader.SetFileInput('D:\input.mp4');

See Also

- SetVideoInput
- SetURLInput

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SetMediaTypeAudio

TIEMediaFoundationSourceReader.SetMediaTypeAudio

Declaration

function SetMediaTypeAudio(streamIndex: integer; subTypeStr: WideString): boolean;
function SetMediaTypeAudio(subTypeStr: WideString): boolean;

Description

Creates and selects a new audio media type. Media Foundation will provide a decoder to convert from native media type.
Returns False if the media type is not accepted (or a suitable conversion is not available).

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1
streamType | A string representing the stream type. Only the first stream of this type will be considered. Can be any one of the values accepted by GetStreamType
subTypeStr | Specifies the audio subtype

Audio subtypes are: 'PCM', 'Float', 'DTS', 'Dolby_AC3_SPDIF', 'DRM', 'WMAudioV8', 'WMAudioV9', 'WMAudio_Lossless', 'WMASPDIF', 'MSP1', 'MP3', 'MPEG', 'AAC', 'ADTS'

Example

audioStreamIndex := ImageEnView1.IO.MediaFoundationSourceReader.IndexOfFirstStream(mmf_AUDIO_STREAM);
ImageEnView1.IO.MediaFoundationSourceReader.SetSelectedStreams(audioStreamIndex, true);
ImageEnView1.IO.MediaFoundationSourceReader.SetMediaTypeAudio(audioStreamIndex, 'PCM');
ImageEnView1.IO.MediaFoundationSourceReader.PushNotifyReceiver( TIEMediaFoundationAudioRenderer.Create(audioStreamIndex) );

See Also

- GetMediaType
- GetMediaTypesCount
- SetMediaTypeCustom
- SetMediaTypeVideo
- SelectMediaType
- GetCurrentMediaType

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SetMediaTypeCustom

TIEMediaFoundationSourceReader.SetMediaTypeCustom

Declaration

function SetMediaTypeCustom(streamIndex: integer; jsonDescription: WideString): boolean;
function SetMediaTypeCustom(streamType: WideString; jsonDescription: WideString): boolean;

Description

Creates and selects a new audio/video media type. Media Foundation will provide a decoder to convert from native media type.
Returns False if the media type is not accepted (or a suitable conversion is not available).

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1
streamType | A string representing the stream type. Only the first stream of this type will be considered. Can be any one of the values accepted by GetStreamType
jsonDescription | JSON description of the media type

See Also

- GetMediaType
- GetMediaTypesCount
- SetMediaTypeVideo
- SetMediaTypeAudio
- SelectMediaType
- GetCurrentMediaType

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SetMediaTypeVideo

TIEMediaFoundationSourceReader.SetMediaTypeVideo

Declaration

function SetMediaTypeVideo(streamIndex: integer; subTypeStr: WideString; frameWidth: integer; frameHeight: integer; frameRate: double; videoLighting: WideString): boolean;
function SetMediaTypeVideo(subTypeStr: WideString; frameWidth: integer; frameHeight: integer; frameRate: double; videoLighting: WideString): boolean;

Description

Creates and selects a new video media type. Media Foundation will provide a decoder to convert from native media type.
Returns False if the media type is not accepted (or a suitable conversion is not available).

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1
streamType | A string representing the stream type. Only the first stream of this type will be considered. Can be any one of the values accepted by GetStreamType
subTypeStr | Specifies the video subtype
frameWidth | Width of a video frame, in pixels
frameHeight | Height of a video frame, in pixels
frameRate | Frame rate of a video media type, in frames per second
videoLighting | Specifies the optimal lighting conditions for a video media type. Allowed values are: 'Bright', 'Office', 'Dim' and 'Dark'

The Video media sub types (IESUBTYPE_DICT_KEY) are: 'RGB8', 'RGB555', 'RGB565', 'RGB24', 'RGB32', 'ARGB32', 'AI44', 'AYUV', 'YUY2', 'YVYU', 'YVU9', 'UYVY', 'NV11', 'NV12', 'YV12', 'I420', 'IYUV', 'Y210', 'Y216',
'Y410', 'Y416', 'Y41P', 'Y41T', 'Y42T', 'P210', 'P216', 'P010', 'P016', 'v210', 'v216', 'v410', 'MP43', 'MP4S', 'M4S2', 'MP4V', 'WMV1', 'WMV2', 'WMV3', 'WVC1', 'MSS1', 'MSS2',
'MPG1', 'dvsl', 'dvsd', 'dvhd', 'dv25', 'dv50', 'dvh1', 'dvc ', 'H264', 'MJPG'.

Example

ImageEnView1.IO.MediaFoundationSourceReader.SetMediaTypeVideo('RGB32', 640, 480, 30);

See Also

- GetMediaType
- GetMediaTypesCount
- SetMediaTypeCustom
- SetMediaTypeAudio
- SelectMediaType
- GetCurrentMediaType

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SetPosition

TIEMediaFoundationSourceReader.SetPosition

Declaration

procedure SetPosition(position: int64);

Description

Seeks a new position in the media source.

Parameter | Description
position | The Media Foundation position in 100 nanosecond units

Example 1

var
duration: int64;
begin
duration := ImageEnView1.IO.MediaFoundationSourceReader.Duration;
ImageEnView1.IO.MediaFoundationSourceReader.SetPosition( trunc(duration / ScrollBarPosition.Max * ScrollBarPosition.Position) );
end;

Example 2

// Move one minute into the sample
ImageEnView1.IO.MediaFoundationSourceReader.SetPosition( IESecToMediaFoundationTime(60) );

See Also

- Duration
- IESecToMediaFoundationTime

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SetSelectedStreams

TIEMediaFoundationSourceReader.SetSelectedStreams

Declaration

procedure SetSelectedStreams(streamIndex: integer; selected: boolean);
procedure SetSelectedStreams(streamType: WideString; selected: boolean);

Description

Specifies which streams are enabled. An enabled stream sends samples to the receiver (i.e. to the OnMediaFoundationNotify event).

Parameter | Description
streamIndex | Index of the stream, in the range of 0 to StreamCount - 1
streamType | A string representing the stream type. Only the first stream of this type will be considered. Can be any one of the values accepted by GetStreamType
selected | Must be True in order to select the stream

Example

// Enable both audio and video streams (first streams of these types)
ImageEnView1.IO.MediaFoundationSourceReader.SetSelectedStreams(mmf_AUDIO_STREAM, true);
ImageEnView1.IO.MediaFoundationSourceReader.SetSelectedStreams(mmf_VIDEO_STREAM, true);

See Also

- GetStreamType
- StreamCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SetURLInput

TIEMediaFoundationSourceReader.SetURLInput

Declaration

function SetURLInput(URL: WideString): boolean;

Description

Specifies a URL as the video/audio source.

Parameter | Description
URL | Web link to a video/audio source

Example

ImageEnView1.IO.MediaFoundationSourceReader.SetURLInput('http://avideos.5min.com//29/5181029/518102846_4.mp4');

See Also

- SetVideoInput
- SetFileInput

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.SetVideoInput

TIEMediaFoundationSourceReader.SetVideoInput

Declaration

function SetVideoInput(index: Integer): boolean;
function SetVideoInput(name: WideString): boolean;

Description

Select one of the VideoInputs devices as the video source.

Parameter | Description
index | Index of the video input device. Ranges from 0 up to VideoInputs.Count - 1
name | Name of the video input device. Must be one of VideoInputs values

Example

// Select first video input (first webcam)
ImageEnView1.IO.MediaFoundationSourceReader.SetVideoInput(0);

See Also

- VideoInputs
- SetFileInput
- SetURLInput

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.StartCapture

TIEMediaFoundationSourceReader.StartCapture

Declaration

function StartCapture(): boolean;

Description

Starts capturing of the sample. Applications can stop capturing by calling StopCapture.
Returns True on success.

See Also

- Capturing
- PauseCapture
- ResumeCapture
- StartCapture
- StopCapture

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.StopCapture

TIEMediaFoundationSourceReader.StopCapture

Declaration

procedure StopCapture();

Description

Terminates capturing of the sample. Applications can start capturing by calling StartCapture.

See Also

- Capturing
- PauseCapture
- ResumeCapture
- StartCapture
- StopCapture

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.StreamCount

TIEMediaFoundationSourceReader.StreamCount

Declaration

property StreamCount: integer;

Description

Returns the number of streams for the selected source.

Example

var
i: integer;
mediaType: TIEDictionary;
begin
// Fill streams listbox
ListBoxStreams.Clear();
with ImageEnView1.IO.MediaFoundationSourceReader do
begin
for i := 0 to StreamCount - 1 do
begin
mediaType := GetMediaType(i, 0);
ListBoxStreams.Items.Add(Format('%s', [mediaType.GetString(IEMAJORTYPE_DICT_KEY)]));
end;
end;
end;

See Also

- GetStreamType
- SetSelectedStreams

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.UpdateVideoInputs

TIEMediaFoundationSourceReader.UpdateVideoInputs

Declaration

procedure UpdateVideoInputs();

Description

Reloads the video input list.

This method is automatically called the first time the VideoInputs property is read. Applications should call UpdateVideoInputs() whenever a new device is added or removed.

See Also

- VideoInputs

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.VideoInputs

TIEMediaFoundationSourceReader.VideoInputs

Declaration

property VideoInputs: TStringList;

Description

Contains a list of video input device names.

Applications can refresh this list by calling UpdateVideoInputs.

Example

// Fill ComboBoxVideoInputs with the list of video inputs
ComboBoxVideoInputs.Items.Assign(ImageEnView1.IO.MediaFoundationSourceReader.VideoInputs);

See Also

- UpdateVideoInputs

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationSourceReader.VideoProcessor

TIEMediaFoundationSourceReader.VideoProcessor

Declaration

property VideoProcessor: TIEMediaFoundationVideoProcessor;

Description

Use this property to setup the Media Foundation Video Processor. Applications can set rotations, mirrors, source and destination rectangles.

This property is read-only.
Only for Windows 8 and newer, or Windows 2012 Server.

Example

// setup horizontal flip and automatic rotation
ImageEnView1.IO.MediaFoundationSourceReader.VideoProcessor.SetMirror(mfpmHorizontal);
ImageEnView1.IO.MediaFoundationSourceReader.VideoProcessor.SetRotation(mfprNormal);


TIEMediaFoundationVideoProcessor

TIEMediaFoundationVideoProcessor

Declaration

type TIEMediaFoundationVideoProcessor = class

Description

A wrapper for the Media Foundation Video Processor.

Example

// setup horizontal flip and automatic rotation
ImageEnView1.IO.MediaFoundationSourceReader.VideoProcessor.SetMirror(mfpmHorizontal);
ImageEnView1.IO.MediaFoundationSourceReader.VideoProcessor.SetRotation(mfprNormal);
ImageEnView1.IO.MediaFoundationSourceReader.StartCapture();

See Also

- VideoProcessor

Methods and Properties

IsAvailable
SetDestinationRectangle
SetMirror
SetRotation
SetSourceRectangle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMediaFoundationVideoProcessor.IsAvailable

TIEMediaFoundationVideoProcessor.IsAvailable

Declaration

property IsAvailable: boolean;

Description

This property is true when Media Foundation Video Processor is available. This should always be true on Windows 8 and newer, or Windows 2012 Server.


TIEMediaFoundationVideoProcessor.SetDestinationRectangle

TIEMediaFoundationVideoProcessor.SetDestinationRectangle

Declaration

procedure SetDestinationRectangle(rect: TRect);

Description

Sets the destination rectangle. The destination rectangle is the portion of the output surface where the source rectangle is blitted.


TIEMediaFoundationVideoProcessor.SetMirror

TIEMediaFoundationVideoProcessor.SetMirror

Declaration

procedure SetMirror(mirror: TIEMediaFoundationVideoProcessorMirror);

Description

Specifies whether to flip the video image.


TIEMediaFoundationVideoProcessor.SetRotation

TIEMediaFoundationVideoProcessor.SetRotation

Declaration

procedure SetRotation(rotation: TIEMediaFoundationVideoProcessorRotation);

Description

Specifies whether to rotate the video to the correct orientation.


TIEMediaFoundationVideoProcessor.SetSourceRectangle

TIEMediaFoundationVideoProcessor.SetSourceRectangle

Declaration

procedure SetSourceRectangle(rect: TRect);

Description

Sets the source rectangle. The source rectangle is the portion of the input frame that is blitted to the destination surface.


TIEMediaFoundationVideoProcessorMirror

TIEMediaFoundationVideoProcessorMirror

Declaration

type TIEMediaFoundationVideoProcessorMirror = (mfpmNone = 0, mfpmHorizontal = 1, mfpmVertical = 2);

Value | Description
mfpmNone | Do not flip the image.
mfpmHorizontal | Flip the image horizontally.
mfpmVertical | Flip the image vertically.


TIEMediaFoundationVideoProcessorRotation

TIEMediaFoundationVideoProcessorRotation

Declaration

type TIEMediaFoundationVideoProcessorRotation = (mfprNone = 0, mfprNormal = 1);

Value | Description
mfprNone | Do not rotate the image.
mfprNormal | Rotate the image to the correct viewing orientation.


TIEMediaFoundationVideoSampleDecoder

TIEMediaFoundationVideoSampleDecoder

Declaration

type TIEMediaFoundationVideoSampleDecoder = class
public
function GetSubType(): WideString; virtual; abstract;
function Decode(width: DWORD; height: DWORD; stride: integer; buffer: pointer; bufferLen: DWORD; destBitmap: TIEBitmap): boolean; virtual; abstract;
end;

Description

Applications can add new decoders by using IEMediaFoundationGetVideoSampleDecoders and implementing this abstract class.


TIEMediaFountationNotifyType

TIEMediaFountationNotifyType

Declaration

TIEMediaFountationNotifyType = (iemfnFRAME, iemfnSTARTINGCAPTURE, iemfnENDOFSTREAM);


TIEMediaReader.FrameCount

TIEMediaReader.FrameCount

Declaration

property FrameCount: int64;

Description

Returns the number of frames (samples).


TIEMediaReader.FrameHeight

TIEMediaReader.FrameHeight

Declaration

property FrameHeight: integer;

Description

Returns the frame bitmap height.


TIEMediaReader.FrameRate

TIEMediaReader.FrameRate

Declaration

property FrameRate: double;

Description

Returns the frame rate.


TIEMediaReader.FrameWidth

TIEMediaReader.FrameWidth

Declaration

property FrameWidth: integer;

Description

Returns the frame bitmap width.


TIEMediaReader.GetSample

TIEMediaReader.GetSample

Declaration

procedure GetSample(frame: int64; OutBitmap: TIEBitmap);

Description

Copies the sample indexed by frame to OutBitmap.


TIEMediaReader.Length

TIEMediaReader.Length

Declaration

property Length: double;

Description

Returns the video length;


TIEMemoEditCharInfo

TIEMemoEditCharInfo

Declaration

// specifies the char info (font, color, alignment)
TIEMemoEditCharInfo = class
Font: TFont;
Align: TIEAlignment;
constructor Create;
destructor Destroy; override;
end;


TIEMemoryAllocator

TIEMemoryAllocator

Declaration

TIEMemoryAllocator = (iemaVCL, iemaSystem, iemaAuto);


TIEMemoShortCut

TIEMemoShortCut

Declaration

TIEMemoShortCut = (iesLEFTALIGN, iesCENTERALIGN, iesRIGHTALIGN, iesJUSTIFIED, iesCOPY, iesCUT, iesPASTE, iesFONTSELECT, iesBOLD, iesITALIC, iesUNDERLINE, iesBACKCOLORSELECT);


TIEMemoShortCuts

TIEMemoShortCuts

Declaration

TIEMemoShortCuts = array [TIEMemoShortCut] of TShortCut;


TIEMFReceivedSample

TIEMFReceivedSample

Description

Represents a Media Foundation sample (video or audio).

Methods and Properties

DecodeSample
MediaType
Sample
StreamIndex
StreamFlags
StreamType
TimeStamp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMFReceivedSample.DecodeSample

TIEMFReceivedSample.DecodeSample

Declaration

function DecodeSample(destBitmap: TIEBitmap): boolean;

Description

Decodes a video sample, filling the specified bitmap with the converted data.

Presently the following conversions are possible:
RGB24 -> RGB24 (copy only)
RGB32 -> RGB24
YUY2 -> RGB24
I420 -> RGB24
NV12 -> RGB24

Parameter | Description
destBitmap | The destination bitmap for the decoded video sample

Returns True on success. Returns False if the sample is not a video sample or if no decoder is found.

Example 1

// Handler for TImageEnView.OnMediaFoundatioNotify event
procedure TForm1.ImageEnVect1MediaFoundationNotify(Sender, MediaFoundationObject: TObject; NotifyType: TIEMediaFountationNotifyType);
var
sample: TIEMFReceivedSample;
begin
if NotifyType = iemfnFRAME then // is this a frame?
begin
sample := ImageEnView1.IO.MediaFoundationSourceReader.GetNextSample(); // retrieve frame sample
try
sample.DecodeSample(ImageEnView1.IEBitmap); // convert frame sample to bitmap
ImageEnView1.Update(); // update TImageEnView to show the new bitmap
finally
sample.Free(); // free the sample
end;
end;
end;

Applications add new decoders by using the IEMediaFoundationGetVideoSampleDecoders function and implementing the TIEMediaFoundationVideoSampleDecoder abstract class.

Example 2

IEMediaFoundationGetVideoSampleDecoders().Add(TIEMediaFoundationVideoSampleDecoder_YOURFORMAT.Create());


TIEMFReceivedSample.MediaType

TIEMFReceivedSample.MediaType

Declaration

MediaType: IE_IMFMediaType;

Description

Media Foundation sample type. See the MSDN documentation for more info.


TIEMFReceivedSample.Sample

TIEMFReceivedSample.Sample

Declaration

Sample: IE_IMFSample;

Description

Contains the Media Foundation sample interface. See the MSDN documentation for more info.


TIEMFReceivedSample.StreamFlags

TIEMFReceivedSample.StreamFlags

Declaration

StreamFlags: DWORD;

Description

Media Foundation sample flags. See the MSDN documentation for more info.


TIEMFReceivedSample.StreamIndex

TIEMFReceivedSample.StreamIndex

Declaration

StreamIndex: DWORD;

Description

Contains the index of stream from where this sample comes.


TIEMFReceivedSample.StreamType

TIEMFReceivedSample.StreamType

Declaration

StreamType: WideString;

Description

Returns a string representing the type of the stream. Can be any one of the values accepted by GetStreamType.


TIEMFReceivedSample.TimeStamp

TIEMFReceivedSample.TimeStamp

Declaration

TimeStamp: int64;

Description

The time stamp of the sample in 100 nanosecond units (There are 1 billion nanoseconds to a second).

See Also

- IEMediaFoundationTimeToStr
- IEMediaFoundationTimeToSec

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMIOOptionsEx

TIEMIOOptionsEx

Declaration

type TIEMIOOptionsEx = set of (ieixLoadOnlyByFileExt, ieixWantParams, ieixRemoveCorrupted);

Description

Value | Description
ieixLoadOnlyByFileExt | By default, file types are determined by analyzing the message header. A quicker method is to use the file extension to determine the file type. Though this means that images with incorrect or invalid file extensions will not load
ieixWantParams | When using ieixLoadOnlyByFileExt or EnableLoadExplorerThumbnails loading of Params is skipped, so text fields that display this data will be empty. Enabling this option forces the loading of params
ieixRemoveCorrupted | Images within the grid that are invalid will be automatically removed

Example

// Use the file extension to determine its type (to increase speed)
ImageEnMView1.IOOptionsEx := ImageEnMView1.IOOptionsEx + [ ieixLoadOnlyByFileExt ];

// Automatically remove any corrupted (unreadable) images from the grid.
ImageEnMView1.IOOptionsEx := ImageEnMView1.IOOptionsEx + [ ieixRemoveCorrupted ];


TIEMiscPluginsImageMagick

TIEMiscPluginsImageMagick

Declaration

TIEMiscPluginsImageMagick = class;

Description

TIEMiscPluginsImageMagick is a wrapper around ImageMagick library, allowing ImageEn to load many formats like PDF, PS, PCD and many others.
To setup ImageMagick wrapper just call, one time, the RegisterPlugin class method.

You can download ImageMagick from:
http://www.imagemagick.org/script/binary-releases.php#windows

In order to load PDF, PS, PCL and you must install the Ghostscript library:
http://www.ghostscript.com/download/

Methods and Properties

IsAvailable
RegisterPlugin

Demo

Demos\InputOutput\ImageMagick\ImageMagick.dpr

Example

// rasterizes page number 5 of mybook.pdf at 200dpi
TIEMiscPluginsImageMagick.RegisterPlugin(); // call only one time!
ImageEnView1.IO.Params.ImageIndex := 5;
ImageEnView1.IO.Params.Dict.Insert('PDF:Density', 200);
ImageEnView1.IO.LoadFromFile('mybook.pdf');


TIEMiscPluginsImageMagick.IsAvailable

TIEMiscPluginsImageMagick.IsAvailable

Declaration

class function IsAvailable(): boolean;

Description

Returns True if the ImageMagick library is present and successfully loaded.


TIEMiscPluginsImageMagick.RegisterPlugin

TIEMiscPluginsImageMagick.RegisterPlugin

Declaration

class procedure RegisterPlugin();

Description

Registers ImageMagick file formats into ImageEn (adding support for all its formats).

Applications should call this method once only (generally at the start of the application).

Demo

Demos\InputOutput\ImageMagick\ImageMagick.dpr

Example

// Rasterizes page number 5 of mybook.pdf at 200dpi
TIEMiscPluginsImageMagick.RegisterPlugin(); // call only once!
ImageEnView1.IO.Params.ImageIndex := 5;
ImageEnView1.IO.Params.Dict.Insert('PDF:Density', 200);
ImageEnView1.IO.LoadFromFile('mybook.pdf');


TIEMKeyInteract

TIEMKeyInteract

Declaration

TIEMKeyInteract = set of TIEMKeyInteractItems;


TIEMKeyInteractItems

TIEMKeyInteractItems

Declaration

// automatic interaction with keyboard
TIEMKeyInteractItems = (
mkiMoveSelected // move selected item (up, down, left, right)
);


TIEMMouseInteract

TIEMMouseInteract

Declaration

type TIEMMouseInteract = set of TIEMMouseInteractItems;

Description

Value | Description
mmiScroll | Dragging the mouse will scroll the images
mmiSelect | Clicking the mouse will select images


TIEMMouseInteractItems

TIEMMouseInteractItems

Declaration

TIEMMouseInteractItems = (
mmiScroll, // Hand-scroll. Mouse drag scrolls images.
mmiSelect // Images selection. Mouse click select images.
);


TIEMouseInResizingGripEvent

TIEMouseInResizingGripEvent

Declaration

TIEMouseInResizingGripEvent = procedure(Sender: TObject; Grip: TIEGrip) of object;


TIEMouseInteract

TIEMouseInteract

Declaration

type TIEMouseInteract = set of TIEMouseInteractItems;


TIEMouseInteractGr

TIEMouseInteractGr

Declaration

type TIEMouseInteractGr = set of TIEMouseInteractItemsGr;


TIEMouseInteractItems

TIEMouseInteractItems

Declaration

TIEMouseInteractItems = (miZoom, miScroll, miSelect, miSelectPolygon, miSelectCircle, miSelectZoom, miSelectMagicWand, miSelectLasso, miMoveLayers, miResizeLayers, miRotateLayers, miMovingScroll, miCropTool, miCreateImageLayers, miCreateShapeLayers, miCreateLineLayers, miCreatePolylineLayers, miCreateTextLayers);

Description

What actions does the mouse perform:
Value | Description
miZoom | A left mouse click zooms into the image. A right click zooms out
miScroll | The image can be navigated by clicking with the left mouse button and dragging
miSelect | A rectangular area can be selected. Click and move the mouse to select the rectangle. miSelect excludes miScroll and miSelectXXX. Simultaneously holding down the Shift key allows the selection of multiple regions. The Alt Key forces the selection to maintain its aspect ratio
miSelectZoom | If the user selects an area, it will be automatically zoomed into (and become the new display view). Click and move the mouse to select the zoom rectangle
miSelectPolygon | A polygonal area can be selected. Click (and release) the left mouse button at each point of the polygon, or click and hold the left button and move to specify continuous irregular lines. Simultaneously holding down the Shift key allows the selection of multiple regions. Methods to terminate selection can be specified in SelectionOptions
miSelectCircle | A circular/elliptical area can be selected. Click the left button and move the mouse (holding the Alt key will force a circular selection). Simultaneously holding down the Shift key allows the selection of multiple regions
miSelectMagicWand | Selects an irregular region of similar colors. Click the left mouse button upon a pixel and similar colors surrounding it are selected (see MagicWandTolerance). Simultaneously holding down the Shift key allows the selection of multiple regions
miSelectLasso | A polygonal area can be selected by continous movement. Click the left button and move the mouse to select a continuous irregular region
miMoveLayers | User can move layers
miResizeLayers | User can resize layers using grips
miRotateLayers | User can rotate layers using grips
miMovingScroll | Moving the mouse over the image (without requiring any clicking) will cause the image to automatically scroll (pan) (see SmoothScrollValue)
miCropTool | User can select a particular area of an image and discards the portions outside the chosen section (See CropToolInteraction)
miCreateImageLayers | Click and move the mouse to create a TIEImageLayer *
miCreateShapeLayers | Click and move the mouse to create a TIEShapeLayer *
miCreateLineLayers | Click and move the mouse to create a TIELineLayer *
miCreatePolylineLayers | Click and move the mouse to create a TIEPolylineLayer *
miCreateTextLayers | Click and move the mouse to create a TIETextLayer *

* Note: If you are unable to create layers on the background, ensure that ImageEnView1.Layers[0].Selectable = False.

Examples

// Single left click zoom-in image, single right click zoom-out image, click and
// drag scroll the image (if it is bigger than client area).
ImageEnView1.MouseInteract := [ miZoom, miScroll ];

// Allow users to create image layers. Prompt for an image file after selection
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAutoPromptForImage ];
ImageEnView1.MouseInteract := [ miCreateImageLayers ];

// Allow user to move and resize layers (allow multiple layer selection and ensure masks are moved with layers)
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAllowMultiSelect, loAutoSelectMask ];
ImageEnView1.MouseInteract := [ miMoveLayers, miResizeLayers ];

A selected text layer with resize grips:

// Allow user to rotate layers (allow multiple layer selection and ensure masks are moved with layers)
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAllowMultiSelect, loAutoSelectMask ];
ImageEnView1.MouseInteract := [ miRotateLayers ];

// Allow circular selections
ImageEnView1.MouseInteract := [ miSelectCircle ];

// Allow the user to create, size and select red arrows
ImageEnView1.MouseInteract := [ miCreateLineLayers, miMoveLayers, miResizeLayers ];
ImageEnView1.LayerDefaults.Clear();
ImageEnView1.LayerDefaults.Add( IELP_LineColor +'=clRed' );
ImageEnView1.LayerDefaults.Add( IELP_LineWidth +'=6' );
ImageEnView1.LayerDefaults.Add( IELP_LineShapeSize +'=20' );
ImageEnView1.LayerDefaults.Add( IELP_LineStartShape +'=1' );
ImageEnView1.LayerDefaults.Add( IELP_Rotate +'=235' );

See Also

- SelectionOptions
- LayerDefaults

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMouseInteractItemsGr

TIEMouseInteractItemsGr

Declaration

TIEMouseInteractItemsGr = ( migDragGrip );


TIEMouseInteractVt

TIEMouseInteractVt

Declaration

type TIEMouseInteractVt = set of TIEMouseInteractVtItems;


TIEMouseInteractVtItems

TIEMouseInteractVtItems

Declaration

TIEMouseInteractVtItems = (miArea, miLineLen, miPutLine, miPutBox, miPutEllipse, miPutBitmap, miPutText, miObjectSelect, miDragLen, miPutRuler, miPutPolyline, miPutAngle, miPutMemo, miPutLineLabel, miEditPolyline, miUnStampMode);

Description

Value | Description
miArea | Rectangle/polygon area measurement
miLineLen | Line length (or distance of two points)
miPutLine | Insert a line object
miPutBox | Insert a rectangle object
miPutEllipse | Insert a ellipse/circle object
miPutBitmap | Insert a bitmap object
miPutText | Insert a text object
miObjectSelect | Objects select or modify (resizing an object pressing ALT key the object will maintain the aspect ratio)
miDragLen | Dynamically measure distance
miPutRuler | Insert a ruler object
miPutPolyLine | Insert a polyline, polygon or free hand painting (See also: PolylineEndingMode and PolylineClosingMode
miPutAngle | Insert an angle measurement object (three single clicks)
miPutMemo | Insert a multi line text object
miPutLineLabel | Insert a line with a label
miEditPolyline | Edit (add/move/delete) points of a polyline. Press CTRL to remove a point
miUnStampMode | Single click doesn't insert a new object

Note: With miPutBox and miPutEllipse, insertion of a square or circle can be forced by holding the ALT key or use of ForceALTKey. With miPutLine, miPutRuler, miPutAngle and muPutPolyline, the effect of the ALT key is to force a 45 or 90 deg. angle


TIEMouseWheelParams

TIEMouseWheelParams

Description

Properties to customize the mouse wheel behavior.

Properties

- InvertDirection
- Action
- Variation
- Value
- ZoomPosition

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMouseWheelParams.Action

TIEMouseWheelParams.Action

Declaration

property Action: TIEMouseWheelParamsAction;

Description

Action specifies the task to perform on mouse wheel events.

Value | Description
iemwNone | Mouse wheel has no effect
iemwVScroll | Scroll the control up/down
iemwZoom | Enlarge/Reduce the image (TImageEnView) or thumbnails (TImageEnMView)
iemwZoomView | In TImageEnMView this cycles through the common display styles and sizes. With TImageEnView it works the same way as iemwZoom
iemwNavigate | Navigate to the next/previous image. Note: In TImageEnView this is only relevant for images with multiple frames such as TIFFs and GIFs

TImageEnView default: iemwZoom
TImageEnMView default: iemwVScroll
TImageEnMView default (Alt): iemwZoom

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMouseWheelParams.InvertDirection

TIEMouseWheelParams.InvertDirection

Declaration

property InvertDirection: boolean;

Description

Set to True to invert the wheel direction.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMouseWheelParams.Value

TIEMouseWheelParams.Value

Declaration

property Value: integer;

Description

Specifies the Value or percentage of variation.

Setting for Variation | Description
iemwAbsolute | value is a specific value to zoom (percentage points) or scroll (pixels) the image
iemwPercentage | value refers to the percentage to increase or decrease the zoom, or the percentage of the window to scroll (e.g. the default of 8 will scroll the window 8% with each mouse wheel click)

Default: 8

Notes:
- In the case of TImageEnMView, the height is actually based on a theoretical grid of 12.5 thumbnails high. So if iemwPercentage is used 8% equates to scrolling one thumbnail per wheel click, whereas 4% would scroll 1/2 a thumbnail
- Has no effect if Action is iemwNavigate


TIEMouseWheelParams.Variation

TIEMouseWheelParams.Variation

Declaration

property Variation: TIEMouseWheelParamsVariation;

Description

Specifies how much scrolling or zooming occurs in response to mouse wheel rotation

Value | Description
iemwAbsolute | Value contains the absolute value to add or subtract from the current value
iemwPercentage | Value contains the percentage of variation from the current value

Default: iemwPercentage

Notes:
- In the case of TImageEnMView, the height is actually based on a theoretical grid of 12.5 thumbnails high. So if iemwPercentage is used 8% equates to scrolling one thumbnail per wheel click, whereas 4% would scroll 1/2 a thumbnail
- Has no effect if Action is iemwNavigate


TIEMouseWheelParams.ZoomPosition

TIEMouseWheelParams.ZoomPosition

Declaration

property ZoomPosition: TIEMouseWheelParamsZoomPosition;

Description

If Action is iemwZoom, ZoomPosition specifies where the zoom acts. The default is the center of the control, otherwise (iemwMouse) zooms from the mouse’s position.

Default: iemwCenter

Note: Has no effect with TImageEnMView

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMouseWheelParamsAction

TIEMouseWheelParamsAction

Declaration

TIEMouseWheelParamsAction = (iemwNone, iemwVScroll, iemwZoom, iemwNavigate, iemwZoomView);

Description

The effect that rolling the mouse wheel has upon a control.

Value | Description
iemwNone | Mouse wheel has no effect
iemwVScroll | Scroll the control up/down
iemwZoom | Enlarge/Reduce the image (TImageEnView) or thumbnails (TImageEnMView)
iemwZoomView | In TImageEnMView this cycles through the common display styles and sizes. With TImageEnView it works the same way as iemwZoom
iemwNavigate | Navigate to the next/previous image. Note: In TImageEnView this is only relevant for images with multiple frames such as TIFFs and GIFs


TIEMouseWheelParamsVariation

TIEMouseWheelParamsVariation

Declaration

TIEMouseWheelParamsVariation = (iemwAbsolute, iemwPercentage);


TIEMouseWheelParamsZoomPosition

TIEMouseWheelParamsZoomPosition

Declaration

TIEMouseWheelParamsZoomPosition = (iemwCenter, iemwMouse);


TIEMProgressEvent

TIEMProgressEvent

Declaration

TIEMProgressEvent = procedure(Sender: TObject; per: integer; idx: integer) of object;

Description

Occurs during PaintTo.

per is the percentage of the progress (i.e. 100 indicates painting has finished).
idx is the index of the image currently being drawn.


TIEMSelectMode

TIEMSelectMode

Declaration

TIEMSelectMode = (imsNever, imsAuto, imsAlways);

Description

Value | Description
imsNever | The inserted frame is not selected
imsAuto | The inserted frame is selected if there is currently no selection
imsAlways | The inserted frame is selected


TIEMStyle

TIEMStyle

Declaration

TIEMStyle = (iemsFlat, iemsACD, iemsFlatAndWide, iemsColumns);

Description

Value | Description
iemsFlat | Flat style
iemsACD | 3D style (default)
iemsFlatAndWide | Flat style with text on the right-hand side
iemsColumns | Separate columns are used for thumbnails and text fields

Notes on iemsColumns

A header row is displayed with the iemsColumns style. InfoTextFont is used for the font formatting, but this can be overriden in the OnGetTextEx event. The header row caption is based on the default text, but can be overriden in OnGetText or OnGetTextEx.
Columns will be shown for text fields which have text specified (e.g. using DefaultTopText) and a valid width. Columns are displayed in the order: DefaultTopText, DefaultBottomText, DefaultInfoText.


TIEMTextPos

TIEMTextPos

Declaration

TIEMTextPos = (iemtpTop, iemtpBottom, iemtpInfo);


TIEMThumbnailOptionsEx

TIEMThumbnailOptionsEx

Declaration

type TIEMThumbnailOptionsEx = set of (ietxCenterThumbnailColumn, ietxShowIconForUnknownFormat, ietxShowIconWhileLoading, ietxShowShadowForIcons, ietxShowShadowForFolders, ietxEnableInternalIcons, ietxStretchSmallImages, ietxOnlyShowIcons);

Description

Value | Description
ietxCenterThumbnailColumn | If enabled and one or more columns are displayed (i.e. GridWidth <> 0) then the thumbnails will be centered horizontally in the view (but not vertically centered).If enabled and only one row is displayed (i.e. GridWidth = 0) then the thumbnails will be centered vertically in the view (but not horizontally centered).When not enabled, the top-left thumbnail will always be at a distance of HorizBorder x VertBorder from the corner.
ietxShowIconForUnknownFormat | If enabled, then for any ImageFileName of an unknown format ImageEn will load the default icon for that file type (retrieved from Windows using the ShGetFileInfo Shell API function). Otherwise a question mark is displayed.Note: Don't disable this option if you are showing folders
ietxShowIconWhileLoading | If enabled, then the default icon for each file type is displayed while the content is loaded (retrieved from Windows using the ShGetFileInfo Shell API function). Otherwise a blank thumbnail is displayed.
ietxShowShadowForIcons | If SoftShadow is enabled, then this option determines whether the shadow is displayed for file icons
ietxShowShadowForFolders | If SoftShadow is enabled, then this option determines whether the shadow is displayed for folder icons
ietxEnableInternalIcons | If ietxShowIconWhileLoading is not specified, then while loading either a blank or internal icon will be displayed (can be set with DefaultFileIcon). Also, when specified an internal icon is shown for files that cannot be found(can be set with MissingFileIcon).
ietxStretchSmallImages | If specified, images smaller than the thumbnail cell will be stretched (resampled) to the size of other thumbnail images. If not specified, small images shown at 100% size.
ietxOnlyShowIcons | Disables image thumbnails and only shows file icons (even for supported image types.

Example 1

// Use icons for unknown files
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx + [ietxShowIconForUnknownFormat];

// Display all files (not only image files)
ImageEnMView1.FillFromDirectory('C:\', -1, true);

Example 2

// Do not show shadows for any icon types
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx - [ietxShowShadowForIcons, ietxShowShadowForFolders];

// Redraw the display
ImageEnMView1.Update;

Example 3

// Create a single column of centered thumbnails
ImageEnMView1.GridWidth := 1;
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx + [ietxCenterThumbnailColumn];
ImageEnMView1.Update;

Example 4

// Show file list with icons
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx + [ ietxOnlyShowIcons ];
ImageEnMView1.GridWidth := 1
ImageEnMView1.SetStyleEx( iemsFlatAndWide, iedtNone, iedtNone, iedtFileName, -24 );

See Also

- GridWidth
- SoftShadow
- IconSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMTruncSide

TIEMTruncSide

Declaration

TIEMTruncSide = (iemtsLeft, iemtsRight);


TIEMultiBitmap.AppendImage

TIEMultiBitmap.AppendImage

Declaration

function AppendImage: Integer;
function AppendImage(Stream: TStream): integer;
function AppendImage(Bitmap: TIEBitmap): integer;
function AppendImage(Bitmap : TBitmap): integer;
function AppendImage(MBitmap : TIECustomMultiBitmap);
function AppendImage(Width, Height: Integer; PixelFormat: TIEPixelFormat = ie24RGB): Integer;
function AppendImage(const FileName: String): integer;

Description

Appends a new image at last position in the list and returns the new image position.

Examples

ImageEnView1.IO.LoadFromFile( 'C:\MyImage.tif' );
idx := MBitmap.AppendImage;
MBitmap.SetImage( idx, ImageEnView1.Bitmap );

// Which is the same as...
MBitmap.AppendImage( 'C:\MyImage.tif' );

// Load the fifth image of MyImage.tif
MBitmap.AppendImage( 'C:\MyImage.tif' + IEM_Path_Index_Delimiter + 4 );

// Append 256 x 256 bitmap
MBitmap.AppendImage( 256, 256, ie24RGB );

// Append a file from the web
MBitmap.AppendImage( 'http://www.imageen.com/graphics/imageen.gif' );

// Show ten frames of a video file
for I := 0 to 9 do
MBitmap.AppendImage( 'D:\Temp\Cement.avi' + IEM_Path_Index_Delimiter + IntToStr( I * 10 ));

// Append all pages of a TIFF to the current content
iPageCount := EnumTIFFIm( sFileName );
for I := 0 to iPageCount - 1 do
MBitmap.AppendImage( sFileName + IEM_Path_Index_Delimiter + IntToStr( I ));

See Also

- InsertImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.AppendSplit

TIEMultiBitmap.AppendSplit

Declaration

function AppendSplit(SourceGrid: TIEBitmap; cellWidth: Integer; cellHeight: Integer; maxCount: Integer = 0): Integer;

Description

Splits the source image into cells of the specified size and adds each cell to the TIEMultiBitmap
Result is the count of added images.

Parameter | Description
SourceGrid | Source bitmap containing cells to split.
cellWidth | Width of a cell.
cellHeight | Height of a cell.
maxCount | Maximum number of cells to add. 0 = all suitable cells.


TIEMultiBitmap.Assign

TIEMultiBitmap.Assign

Declaration

procedure Assign(Source: TObject);

Description

Replace the existing content with the frames in TImageEnMView, TIEMultiBitmap, TIEBitmap, TBitmap or TImageList.


TIEMultiBitmap.Clear

TIEMultiBitmap.Clear

Declaration

procedure Clear;

Description

Removes all images from the TIEMultiBitmap and releases any associated memory.


TIEMultiBitmap.CopyToIEBitmap

TIEMultiBitmap.CopyToIEBitmap

Declaration

procedure CopyToIEBitmap(idx: Integer; bmp: TIEBitmap);

Description

Copies the specified image, idx, to the destination TIEBitmap object.


TIEMultiBitmap.Count

TIEMultiBitmap.Count

Declaration

property Count: integer; (Read-only)

Description

Returns the number of images stored in the TIEMultiBitmap.


TIEMultiBitmap.Create

TIEMultiBitmap.Create

Declaration

constructor Create(); overload;
constructor Create(ImageWidth, ImageHeight: integer; ImagePixelFormat: TIEPixelFormat = ie24RGB); overload;
constructor Create(MBitmap: TIECustomMultiBitmap); overload;
constructor Create(const FileName: string); overload;

Description

Create a new TIEMultiBitmap object.
Second overload creates the bitmap using specified parameters.
Third overload creates a clone of an existing TIEMultiBitmap
Fourth overload loads image from specified file.

Examples

// Create an empty image
mbmp1 := TIEMultiBitmap.Create();

// Create 1000x1000, 24 bit RGB image with 5 pages
mbmp2 := TIEMultiBitmap.Create(1000, 1000, 5, ie24RGB);

// Create an image from file "input.gif"
mbmp2 := TIEMultiBitmap.Create( 'input.gif' );

// Create a clone of mbmp2
mbmp3 := TIEMultiBitmap.Create(mbmp2);


TIEMultiBitmap.DeleteImage

TIEMultiBitmap.DeleteImage

Declaration

procedure DeleteImage(idx: integer);

Description

Removes the image, idx from the image list (freeing its associated bitmap).


TIEMultiBitmap.Destroy

TIEMultiBitmap.Destroy

Declaration

destructor Destroy;

Description

Frees the object.


TIEMultiBitmap.DuplicateCompressionInfo

TIEMultiBitmap.DuplicateCompressionInfo

Declaration

procedure DuplicateCompressionInfo;

Description

Clone the compression information from idx 0 to all indexes.

Note: Only valid if ParamsEnabled = true

Example

// Change the compression method for a TIFF file
MBitmap := TIEMultiBitmap.create;
MBitmap.ParamsEnabled := True; // Load params with the image
MBitmap.Read( 'C:\MyImage.tiff' );
MBitmap.Params[ 0 ].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.DuplicateCompressionInfo;
MBitmap.Write( 'C:\OutImage.tiff' );
MBitmap.Free;

// Which is the same as:
MBitmap := TIEMultiBitmap.create;
MParams := TIOMultiParams.create;
MBitmap.Read( 'C:\MyImage.tiff', MParams );
for I := 0 to MBitmap.count do
MParams[ I ].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.Write( 'C:\OutImage.tiff', MParams );
MParams.free;
MBitmap.Free;


TIEMultiBitmap.FillFromDirectory

TIEMultiBitmap.FillFromDirectory

Declaration

procedure FillFromDirectory(const Directory: WideString; Limit : integer = -1; AllowUnknownFormats : boolean = false; const ExcludeExtensions : WideString = '';
DetectFileFormat : boolean = false; const FilterMask : WideString = ''; IncludeVideoFiles : Boolean = False;
LoadOnDemand : boolean = true;
DefaultTopText : TIEImageEnMViewDefaultText = iedtNone;
DefaultInfoText : TIEImageEnMViewDefaultText = iedtNone;
DefaultBottomText : TIEImageEnMViewDefaultText = iedtFilename;
bShowHiddenFiles : Boolean = False;
bShowFolders : Boolean = False);

Description

Fills the MultiBitmap with files from the specified Directory. For each file ImageFileName will be set with the full path.

Parameter | Description
Directory | The folder to search for files
Limit | The maximum number of images to load. Use -1 to retrieve all files
AllowUnknownFormats | If false (default) only known and supported file formats are loaded. Otherwise all files are loaded
ExcludeExtensions | A comma separated list of file extensions to skip (e.g. 'lyr,all,iev')
DetectFileFormat | If true then the image type is detected by reading the header (which can be slow). Otherwise ImageEn only checks the file extension
FilterMask | Limits the fill to file extensions found in a comma separated list (e.g. 'jpg,jpeg,jpe'). Specify an empty string to return all supported extensions
bShowHiddenFiles | Enable to include hidden and system files (default is false)

Note: Does NOT clear existing content. Use Clear first to replace existing content

Example

MultiBitmap1.Clear;
MultiBitmap1.FillFromDirectory('C:\images');


TIEMultiBitmap.Flip

TIEMultiBitmap.Flip

Declaration

procedure Flip(idx: integer; Dir: TFlipDir);

Description

Flips (mirrors) a frame within the image across the horizontal or vertical axis.

Examples

// Flip the first image in a TIFF file top-to-bottom
MBitmap := TIEMultiBitmap.create;
MBitmap.Read( 'D:\Doc.Tiff' );
MBitmap.Flip( 0, fdVertical );
MBitmap.Write( 'D:\Doc.Tiff' );
MBitmap.Free;


TIEMultiBitmap.FlipAll

TIEMultiBitmap.FlipAll

Declaration

procedure FlipAll(Dir: TFlipDir);

Description

Flips (mirrors) all frames within the image across the horizontal or vertical axis.

Examples

// Flip all images in a TImageEnMView right-to-left
ImageEnMView1.IEMBitmap.Flip( fdHorizontal );

// Flip all images in a TIFF file top-to-bottom
MBitmap := TIEMultiBitmap.create;
MBitmap.Read( 'D:\Doc.Tiff' );
MBitmap.FlipAll( fdVertical );
MBitmap.Write( 'D:\Doc.Tiff' );
MBitmap.Free;


TIEMultiBitmap.GetBitmap

TIEMultiBitmap.GetBitmap

Declaration

function GetBitmap(idx: Integer): TBitmap;

Description

Creates a TBitmap object from the image at index, idx.
You will need to call ReleaseBitmap to free the TBitmap object.

See also: GetTIEBitmap.

Example

// Save the fifth image to file
bmp := MBitmap.GetBitmap(4);
bmp.SaveToFile('alfa.bmp');
MBitmap.ReleaseBitmap(4);


TIEMultiBitmap.GetImageToFile

TIEMultiBitmap.GetImageToFile

Declaration

procedure GetImageToFile(idx: Integer; const FileName: WideString; IOParams: TIOParams = nil);

Description

Saves the image at index, idx, to file. The file format is determined by the file extension.

Parameter | Description
idx | The image index (0=first image)
FileName | The destination path and file name
Params | The save parameters

Example

// Separate the pages of a multipage TIFF
MBitmap.Read('multipage.tif');
MBitmap.GetImageToFile(0, 'page1.tif');
MBitmap.GetImageToFile(1, 'page2.tif');


TIEMultiBitmap.GetImageToStream

TIEMultiBitmap.GetImageToStream

Declaration

procedure GetImageToStream(idx: Integer; Stream: TStream; ImageFormat: TIOFileType; IOParams: TIOParams = nil);

Description

Saves the image at index, idx, to a stream.

Parameter | Description
idx | The image index (Where 0 is the first image)
Stream | The destination stream
ImageFormat | The output file format (e.g. ioTiff or ioJpeg)
Params | The save parameters

Example

// Save the first image to a stream in JPEG format
MBitmap.GetImageToFile(0, MyStream, ioJPEG);


TIEMultiBitmap.GetTIEBitmap

TIEMultiBitmap.GetTIEBitmap

Declaration

function GetTIEBitmap(idx: Integer): TIEBitmap;

Description

Creates a TIEBitmap object from the image at index, idx.
You will need to call ReleaseBitmap to free the TIEBitmap object.

Note: If ParamsEnabled=True then the returned TIEBitmap will have Params.

Example

// Save the fifth image to file
bmp := MBitmap.GetTIEBitmap(4); // Note: bmp must be TIEBitmap type
bmp.Write('D:\alfa.png');
MBitmap.ReleaseBitmap(4);


TIEMultiBitmap.ImageBitCount

TIEMultiBitmap.ImageBitCount

Declaration

property ImageBitCount[idx: Integer]: Integer;

Description

Returns the bit count of the image, idx. It can be:
1 : Black/white image
24 : True color image

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.ImageCacheSize

TIEMultiBitmap.ImageCacheSize

Declaration

property ImageCacheSize: Integer;

Description

Specifies the number of images to be stored in memory, rather than in a memory mapped file. For example, if you know that a TIEMultiBitmap will only contain 20 images then the ImageCacheSize could be set to 20 to disable all memory mapping.

Default: 10

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.ImageCacheUseDisk

TIEMultiBitmap.ImageCacheUseDisk

Declaration

property ImageCacheUseDisk: Boolean;

Description

When enabled, a disk file is used to cache the images and view. Otherwise only system memory is used.
Disabling this option is useful if you have low disk space or don't want ImageEn to write to disk.

Warning: Setting this property will also call Clear

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.ImageDictionary

TIEMultiBitmap.ImageDictionary

Declaration

property ImageDictionary[idx: Integer]: TIEDictionary;

Description

Returns a dictionary associated with the specified image. User can insert data into this dictionary.
The dictionary is saved and restored using SaveSnapshot and LoadSnapshot, or using
related methods of TImageEnMView.

Example

MyIEMBitmap.ImageDictionary[0].Insert('Name', 'Letizia');
MyIEMBitmap.ImageDictionary[1].Insert('Name', 'Minnie');


TIEMultiBitmap.ImageFileName

TIEMultiBitmap.ImageFileName

Declaration

property ImageFileName[idx: Integer]: WideString;

Description

Specifies the image loaded at index, idx.

If your TIEMultiBitmap has been filled with multiple images, then ImageFileName returns the name of the file at an index

Example

// Show the filename of the second image
ShowMessage( MyIEMBitmap.ImageFileName[ 1 ]);


TIEMultiBitmap.ImageHash

TIEMultiBitmap.ImageHash

Declaration

property ImageHash[idx: Integer]: AnsiString;

Description

Returns the MD5 Hash of image, idx.

See Also

- IndexOf
- RemoveDuplicates
- GetHash

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.ImageHeight

TIEMultiBitmap.ImageHeight

Declaration

property ImageHeight[idx: Integer]: Integer;

Description

Return the height of the image, idx.

See also: ImageWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.ImageTag

TIEMultiBitmap.ImageTag

Declaration

property ImageTag[idx: Integer]: integer;

Description

Associates an integer value with the image, idx.

Note:
- This property is not used by TIEMultiBitmap in any way and is provided for custom use (similar to the Tag property of components).
- The value is not loaded/saved from file and streams, or copied/pasted to clipboard.


TIEMultiBitmap.ImageUserPointer

TIEMultiBitmap.ImageUserPointer

Declaration

property ImageUserPointer[idx: Integer]: pointer;

Description

Associates a pointer with image, idx.

Note:
- This property is not used by TIEMultiBitmap in any way and is provided for custom use.
- The value is not loaded/saved from file and streams, or copied/pasted to clipboard.


TIEMultiBitmap.ImageWidth

TIEMultiBitmap.ImageWidth

Declaration

property ImageWidth[idx: Integer]: Integer;

Description

Return the width of the image, idx.

See also: ImageHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.IndexOf

TIEMultiBitmap.IndexOf

Declaration

function IndexOf(const Hash: AnsiString): Integer; overload;
function IndexOf(Bitmap: TIEBitmap): Integer; overload;

Description

Returns the index of an image within the list (that matches the content or MD5 hash of an image).

Example

// Add images to a TImageEnMView if they are unique (same image is not already in the list)
ImageEnMView1.LockUpdate;
for sFilename in ssFiles do
begin
bmp.Read( sFilename );
if ImageEnMView1.IEMultiBitmap.IndexOf( bmp ) < 0 then
ImageEnMView1.AppendImage( bmp );
end;
ImageEnMView1.UnlockUpdate;

See Also

- ImageHash
- RemoveDuplicates

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.InsertImage

TIEMultiBitmap.InsertImage

Declaration

procedure InsertImage(idx: integer);
procedure InsertImage(Idx : integer; Stream : TStream);
procedure InsertImage(Idx : integer; Bitmap : TIEBitmap);
procedure InsertImage(Idx : integer; Bitmap : TBitmap);
procedure InsertImage(Idx : integer; MBitmap : TIECustomMultiBitmap);
procedure InsertImage(Idx : integer; Width, Height : integer; PixelFormat : TIEPixelFormat = ie24RGB);
procedure InsertImage(Idx : integer; const FileName : string);

Description

Inserts a new image at position, idx (0 is the first).

Examples

ImageEnView1.IO.LoadFromFile('C:\000.tif');
MBitmap.InsertImage(0);
MBitmap.SetImage(0, ImageEnView1.Bitmap);

// Which is the same as...
MBitmap.InsertImage(0, 'C:\000.tif');

// Insert 256 x 256 bitmap
MBitmap.InsertImage(0, 256, 256, ie24RGB);

// Insert a file from the web
MBitmap.InsertImage(0, 'http://www.imageen.com/graphics/imageen.gif');

// Show the first ten frames of a video file
for I := 0 to 9 do
MBitmap.InsertImage( I, 'D:\Temp\Cement.avi' + IEM_Path_Index_Delimiter + IntToStr( I * 10 ));

See Also

- AppendImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.InsertTransitionFrames

TIEMultiBitmap.InsertTransitionFrames

Declaration

procedure InsertTransitionFrames(Idx : integer; iFrameCount : integer; Effect : TIETransitionType; iWidth : Integer = -1; iHeight : Integer = -1; BackgroundColor : TColor = clBlack; ResamplingFilter: TResampleFilter = rfFastLinear);

Description

Create a series of transition frames from the image at Idx - 1 to the image at Idx (and insert them at position Idx). If Idx = 0 then the transition is from a blank frame to the first image. If Idx = Count then the transition is from the last image to a blank frame.

Parameter | Description
Idx | The insertion position
iFrameCount | The number of frames to insert
Effect | The desired transition effect
iWidth, iHeight | The size to create the transition bitmaps. If either of these are -1 then the size will be the larger of the two images in each dimension. Aspect Ratios will be maintained and any non-image area will be filled with BackgroundColor.
BackgroundColor | The color that will be used for blank frames or non-image area (default is clBlack)
ResamplingFilter | The algorithm that is used to improve quality when resizing images

Note: Use InsertTransitionFramesEx if you need to create frames for an iettPanZoom transition

Example

// Create ten frames that use a cross dissolve transition from image 5 to image 6
MBitmap.InsertTransitionFrames(6, 10, iettCrossDissolve);

See Also

- InsertTransitionFramesEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.InsertTransitionFramesEx

TIEMultiBitmap.InsertTransitionFramesEx

Declaration

procedure InsertTransitionFramesEx(Idx : Integer; iFrameCount : Integer; Effect : TIETransitionType;
StartRect, EndRect : TRect; RectMaintainAspectRatio : boolean = True;
iWidth : Integer = -1; iHeight : Integer = -1; bStretchSmall : Boolean = False;
BackgroundColor : TColor = clBlack; ResamplingFilter : TResampleFilter;
Smoothing: Integer = 96; Timing : TIETransitionTiming = iettLinear);

Description

This is an extended version of InsertTransitionFrames that includes more parameters and is primarily used when you need to create a series of frames that show a Pan Zoom from StartRect to EndRect for the image specified at Idx - 1.

Parameter | Description
Idx | The insertion position
iFrameCount | The number of frames to insert
Effect | The desired transition effect
StartRect | When using an iettPanZoom effect this is the portion of the image that is shown at the start
EndRect | When using an iettPanZoom effect this is the portion of the image that is shown at the end
RectMaintainAspectRatio | ImageEn will ensure that the starting and ending rects are automatically adjusted to ensure the resultant image has the correct aspect ratio (iettPanZoom only)
iWidth, iHeight | The size to create the transition bitmaps. If either of these are -1 then the size will be the larger of the two images in each dimension. Aspect Ratios will be maintained and any non-image area will be filled with BackgroundColor.
bStretchSmall | If the images are smaller than the transition bitmap size (iWidth x iHeight) should they be stretched to fit (which can lead to distortion).
BackgroundColor | The color that will be used for blank frames or non-image area (Default is clBlack)
ResamplingFilter | The algorithm that is used to improve quality when resizing images
Timing | The rate at which the transition progresses
Smoothing | In order to reduce the "jumpiness" of pan zoom effects, transition frames are alpha blended. A low value will improve smoothness, but increase blurriness. A high value will improve clarity, but increase jumpiness. Typical range is 64 - 196. 255 means no alpha blending

Example

// Create ten Pan Zoom frames for the image at index 5

// Top Left corner of image
StartingRect := Rect(0, 0, MBitmap.ImageWidth[5] div 4, MBitmap.ImageHeight[5] div 4);

// Bottom right corner of image
EndingRect := Rect(MulDiv(MBitmap.ImageWidth[5], 3, 4), MulDiv(MBitmap.ImageHeight[5], 3, 4), MBitmap.ImageWidth[5], MBitmap.ImageHeight[5]);

// Create frames
MBitmap.InsertTransitionFramesEx(5, 10, iettPanZoom, StartRect, EndRect);

See Also

- InsertTransitionFrames

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.LoadSnapshot

TIEMultiBitmap.LoadSnapshot

Declaration

function LoadSnapshot(Stream: TStream): Boolean; overload;
function LoadSnapshot(const FileName: WideString): Boolean; overload;

Description

Loads the saved object status (including images) from the specified stream or file.

See also: SaveSnapshot.


TIEMultiBitmap.Modified

TIEMultiBitmap.Modified

Declaration

property Modified: Boolean;

Description

Returns true if the image list has changed in any way since loading. This includes appending, insertion and deletion of frames, and manipulation of images within the frames, e.g. by rotation. It does not include changes to Params.

Notes:
- Modified is reset to false whenever the TIEMultiBitmap is loaded, i.e. using Read or via TImageEnMIO
- Saving a TIEMultiBitmap does not reset Modified

Example

// Check the status of the animated GIF in our TImageEnMView on FormClose
If ImageEnMView1.IEMBitmap.Modified then
if MessageDlg( 'Save changes to your image?', mtConfirmation, [mbYes,mbNo], 0) = mrYes then
ImageEnMView1.MIO.SaveToFile( ActiveFilename );


TIEMultiBitmap.MoveImage

TIEMultiBitmap.MoveImage

Declaration

procedure MoveImage(idx: Integer; destination: Integer);

Description

Moves an image from the index position idx to the destination position.
If the destination index is greater than or equal to the image count, the image is moved to the position after the last image.

Note: If you have images of the order ABCD, then calling MoveImage(0, 2) would change it to BCAD

Example

// Exchange first and second images
MBitmap.MoveImage(0, 1);

// Move first image to the end of the grid
MBitmap.MoveImage(0, MBitmap.Count);


TIEMultiBitmap.Params

TIEMultiBitmap.Params

Declaration

property Params[idx: integer]: TIOParams;

Description

If ParamsEnabled is true, then Params provides access to the TIOParams object for the image idx.
The parameters are updated when loading from files or streams. You can modify these parameters before saving images.
If ParamsEnabled is false, an exception will be raised.

Note: ParamsEnabled should only be used when TIEMultiBitmap is being used as a stand-alone object. When it is attached to a TImageEnMView or TImageEnMIO, use TImageEnMIO.Params instead.

Example

// Change the compression method for a TIFF file
MBitmap := TIEMultiBitmap.create;
MBitmap.ParamsEnabled := True; // Load params with the image
MBitmap.Read( 'C:\MyImage.tiff' );
MBitmap.Params[ 0 ].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.DuplicateCompressionInfo;
MBitmap.Write( 'C:\OutImage.tiff' );
MBitmap.Free;

// Which is the same as:
MBitmap := TIEMultiBitmap.create;
MParams := TIOMultiParams.create;
MBitmap.Read( 'C:\MyImage.tiff', MParams );
for I := 0 to MBitmap.count do
MParams[ I ].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.Write( 'C:\OutImage.tiff', MParams );
MParams.free;
MBitmap.Free;


TIEMultiBitmap.ParamsEnabled

TIEMultiBitmap.ParamsEnabled

Declaration

property ParamsEnabled: Boolean;

Description

If ParamsEnabled is true, then this object stores the Input/Output parameters (meta-data) for your images, which can be accessed via Params.

Default: False

Note: ParamsEnabled should only be used when TIEMultiBitmap is being used as a stand-alone object. When it is attached to a TImageEnMView or TImageEnMIO, use TImageEnMIO.Params instead.

Example

// Change the compression method for a TIFF file
MBitmap := TIEMultiBitmap.create;
MBitmap.ParamsEnabled := True; // Load params with the image
MBitmap.Read( 'C:\MyImage.tiff' );
MBitmap.Params[ 0 ].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.DuplicateCompressionInfo;
MBitmap.Write( 'C:\OutImage.tiff' );
MBitmap.Free;

// Which is the same as:
MBitmap := TIEMultiBitmap.create;
MParams := TIOMultiParams.create;
MBitmap.Read( 'C:\MyImage.tiff', MParams );
for I := 0 to MBitmap.count do
MParams[ I ].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.Write( 'C:\OutImage.tiff', MParams );
MParams.free;
MBitmap.Free;


TIEMultiBitmap.PrepareSpaceFor

TIEMultiBitmap.PrepareSpaceFor

Declaration

procedure PrepareSpaceFor(Width, Height: Integer; Bitcount: Integer; ImageCount: Integer);

Description

Allocates enough space within the temporary file for ImageCount> images of size Width * Height * BitCount.

Use this method to improve performance only when planning to add many images of the same size.


TIEMultiBitmap.Read

TIEMultiBitmap.Read

Declaration

function Read(const FileName: string; IOParams: TIOMultiParams = nil; bCheckUnknown: Boolean = False): boolean; overload;
function Read(Stream: TStream; FileType: TIOFileType = ioUnknown; IOParams: TIOMultiParams = nil): boolean; overload;
function Read(Buffer: pointer; BufferSize: integer; FileType: TIOFileType = ioUnknown; IOParams: TIOMultiParams = nil): boolean;

Description

Load an image from file or stream. This method supports all formats supported by TImageEnMIO class.
When reading from a stream you can optionally specify the Format. If it is not specified ImageEn will determine the file type automatically.
You can optionally pass a TIOMultiParams object for the I/O parameters of the file (see also ParamsEnabled). If bCheckUnknown is true and the file extension is not known or is incorrect (e.g. a GIF file named MyImage.jpg), then loading will be attempted by analyzing the file content (in the same way as LoadFromFileAuto).

Returns False on failure.

Examples

var
mbmp: TIEMultiBitmap;
begin
mbmp := TIEMultiBitmap.Create;
mbmp.Read('input.tiff');
mbmp.Write('output.tiff');
mbmp.Free;
end;

...which is the same as:
with TIEMultiBitmap.Create('input.tiff') do
begin
Write('output.tiff');
Free;
end;

...And the same as:
var
mbmp: TIEMultiBitmap;
mio: TImageEnMIO;
begin
mbmp := TIEMultiBitmap.Create;
io := TImageEnMIO.CreateFromIEMBitmap(mbmp);
io.LoadFromFile('input.tiff');
io.SaveToFile('output.tiff');
io.Free;
mbmp.Free;
end;


TIEMultiBitmap.ReleaseBitmap

TIEMultiBitmap.ReleaseBitmap

Declaration

procedure ReleaseBitmap(idx: Integer; SaveChanges: Boolean);

Description

Releases the bitmap created with GetBitmap or GetTIEBitmap method.

Parameter | Description
idx | The image index to release.
saveChanges | If true (default) the bitmap will be written in the cache.


TIEMultiBitmap.RemoveBlankPages

TIEMultiBitmap.RemoveBlankPages

Declaration

function RemoveBlankPages(Tolerance: Double = 0.0; Complete: boolean = true; LeftToRight: boolean = true): Integer;

Description

Locate images in the TIEMultiBitmap of a single color (i.e. blank images) and remove them.

Parameter | Description
Tolerance | Determines how tolerant to be in checking color variance (in the range 0.0 to 1.0). For example, if tolerance is 0.1 then 10% of pixels can be of different color and the image would still be considered "blank"
Complete | If true all images are checked. Otherwise the check stops once the first non blank image has been found and removed.
LeftToRight | If true the scan starts at the first image and proceeds to the last (otherwise it proceeds in reverse order)

Returns the number of removed pages.

Example

// Remove last blank pages
MBitmap.RemoveBlankPages( 0.0, False, False );

// Remove any pages that are 95% blank
MBitmap.RemoveBlankPages( 0.05 );


TIEMultiBitmap.RemoveDuplicates

TIEMultiBitmap.RemoveDuplicates

Declaration

function RemoveDuplicates(): Integer;

Description

Locate images with duplicate content in the TIEMultiBitmap and remove other instances (using an MD5 Hash).
Returns the number of removed pages.

Examples

// Ensure there are no duplicate images in our TIEMultiBitmap after filling it from a folder
MBitmap.Clear;
MBitmap.FillFromDirectory('C:\Images');
MBitmap.RemoveDuplicates();

See Also

- IndexOf
- ImageHash

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.Resample

TIEMultiBitmap.Resample

Declaration

procedure Resample(idx: integer; ScaleBy: Double; FilterType: TResampleFilter = rfNone);

Description

Resizes a frame of the current image. The content of the image changes (stretched to new size).

Parameter | Description
ScaleBy | The amount to scale all images. E.g. 0.5 would halve the size of all images while respecting the proportions
FilterType | Resampling interpolation algorithm

Examples

// Halve the size of the first image in a TImageEnMView with high quality smoothing
ImageEnMView1.IEMBitmap.Resample( 0, 0.5, rfLanczos3 );
ImageEnMView1.Update;

// Quarter the size of the first frame of a TIFF file with fast but good quality smoothing
MBitmap := TIEMultiBitmap.create;
MBitmap.Read( 'D:\Doc.Tiff' );
MBitmap.Resample( 0, 0.25, rfFastLinear );
MBitmap.Write( 'D:\Doc.Tiff' );
MBitmap.Free;


TIEMultiBitmap.ResampleAll

TIEMultiBitmap.ResampleAll

Declaration

procedure ResampleAll(ScaleBy: Double; FilterType: TResampleFilter = rfNone);

Description

Resizes (all frames of) the current image. The content of the image changes (stretched to new size).

Parameter | Description
ScaleBy | The amount to scale all images. E.g. 0.5 would halve the size of all images while respecting the proportions
FilterType | Resampling interpolation algorithm

Examples

// Halve the size of all images in a TImageEnMView with high quality smoothing
ImageEnMView1.IEMBitmap.ResampleAll( 0.5, rfLanczos3 );

// Quarter the size of all images in a TIFF file with fast but good quality smoothing
MBitmap := TIEMultiBitmap.create;
MBitmap.Read( 'D:\Doc.Tiff' );
MBitmap.ResampleAll( 0.25, rfFastLinear );
MBitmap.Write( 'D:\Doc.Tiff' );
MBitmap.Free;


TIEMultiBitmap.Rotate

TIEMultiBitmap.Rotate

Declaration

procedure Rotate(idx: integer; Angle: double; AntialiasMode: TIEAntialiasMode = ierFast; BackgroundColor: TColor = clWhite);

Description

Rotates a frame of the current image by the specified angle (negative or positive degrees counter-clockwise).

AntialiasMode specifies the anti-aliasing algorithm that is used to improve rotation quality:
ierNone : No anti-aliasing (lowest quality)
ierFast : Fast but lower quality
ierBilinear : Bilinear, high quality
ierBicubic : Bicubic, highest quality

BackgroundColor specifies a background color to fill new regions (i.e. when not rotating at a 90 degree angle)

Examples

// Rotate the first frame of a TIFF file 90° counter-clockwise;
MBitmap := TIEMultiBitmap.create;
MBitmap.Read( 'D:\Doc.Tiff' );
MBitmap.Rotate( 0, 90 );
MBitmap.Write( 'D:\Doc.Tiff' );
MBitmap.Free;

// Rotate the first frame of an image 45° clockwise at highest quality with a white background color
MBitmap.Rotate( 0, 315, ierBicubic, clWhite );

See Also

- AngleToImageEnRotateAngle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.RotateAll

TIEMultiBitmap.RotateAll

Declaration

procedure RotateAll(Angle: double; AntialiasMode: TIEAntialiasMode = ierFast; BackgroundColor: TColor = clWhite);

Description

Rotates all frames within the current image by the specified angle (negative or positive degrees counter-clockwise).

AntialiasMode specifies the anti-aliasing algorithm that is used to improve rotation quality:
ierNone : No anti-aliasing (lowest quality)
ierFast : Fast but lower quality
ierBilinear : Bilinear, high quality
ierBicubic : Bicubic, highest quality

BackgroundColor specifies a background color to fill new regions (i.e. when not rotating at a 90 degree angle)

Examples

// Rotate all images in a TImageEnMView 90° clockwise (Note: AntialiasMode is irrelevant for 90 deg. rotates)
ImageEnMView1.IEMBitmap.RotateAll( 270 );

// Rotate a TIFF file 90° counter-clockwise;
MBitmap := TIEMultiBitmap.create;
MBitmap.Read( 'D:\Doc.Tiff' );
MBitmap.RotateAll( 90 );
MBitmap.Write( 'D:\Doc.Tiff' );
MBitmap.Free;

// Rotate the image 45° clockwise at highest quality with a white background color
MBitmap.RotateAll( 315, ierBicubic, clWhite );

// Rotate the image 180° clockwise
MBitmap.RotateAll( 180 );

See Also

- AngleToImageEnRotateAngle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMultiBitmap.SaveSnapshot

TIEMultiBitmap.SaveSnapshot

Declaration

procedure SaveSnapshot(Stream: TStream; Options: TIESaveSnapshotOptions = [iessoCompressed, iessoSaveIOParams]); overload;
procedure SaveSnapshot(const FileName: WideString; Options: TIESaveSnapshotOptions = [iessoCompressed, iessoSaveIOParams]); overload;

Description

Saves current object status (including images) to the specified stream or file.

See also: LoadSnapshot.


TIEMultiBitmap.SetImage

TIEMultiBitmap.SetImage

Declaration

procedure SetImage(idx: Integer; srcImage: TIEBaseBitmap); overload;
procedure SetImage(idx: Integer; srcImage: TBitmap); overload;
procedure SetImage(idx: Integer; width, height: Integer; PixelFormat: TIEPixelFormat); overload;
function SetImage(idx: integer; const FileName: WideString; SourceImageIndex: Integer = 0; FileFormat: TIOFileType = ioUnknown): boolean; overload;
function SetImage(idx: Integer; Stream: TStream; SourceImageIndex: Integer = 0; FileFormat: TIOFileType = ioUnknown): Boolean; overload

Description

Sets the image assigned to index, idx.
With overloads 2 and 3 the srcImage bitmap is copied internally; therefore you can free srcImage after calling SetImage.
With overload 4 the image can be a local file or web page based image.
With overloads 3 and 4 use SourceImageIndex to specify the image index if the source file is a multi-frame file (such as a TIFF or AVI). You can also specify the FileFormat if it cannot be determined by the file extension or content.

Examples

ImageEnView1.IO.LoadFromFile('C:\000.tif');
MBitmap.InsertImage( 0 );
MBitmap.SetImage(0, ImageEnView1.Bitmap);

idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImage(idx, stream);

idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImage(idx, 'D:\myfile.jpg');

idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImage(idx, 'http://www.imageen.com/image.jpg');


TIEMultiBitmap.SetImageRect

TIEMultiBitmap.SetImageRect

Declaration

procedure SetImageRect(idx: Integer; srcImage: TBitmap; x1, y1, x2, y2: Integer);
procedure SetImageRect(idx: Integer; srcImage: TIEBitmap; x1, y1, x2, y2: Integer);

Description

Sets the image assigned to index, idx.

The rectangle x1, y1, x2, y2 of srcImage bitmap is copied internally. After calling SetImageRect you can free the srcImage bitmap.


TIEMultiBitmap.SwapImages

TIEMultiBitmap.SwapImages

Declaration

procedure TIEMultiBitmap.SwapImages(idx1, idx2: Integer);

Description

Moves two images to each others position.

Example

// Exchange first and last images
MBitmap.MoveImage(0, MBitmap.Count - 1);


TIEMultiBitmap.Write

TIEMultiBitmap.Write

Declaration

function Write(const FileName: string; IOParams: TIOMultiParams = nil): boolean; overload;
function Write(Stream: TStream; FileType: TIOFileType; IOParams: TIOMultiParams = nil): boolean; overload;

Description

Write an image to file or stream. This method supports all formats supported by TImageEnMIO class.
If saving to a stream you must specify the FileType
You can optionally specify an TIOMultiParams object containing the I/O parameters of the file (see also ParamsEnabled).
Returns true on success.

Examples

var
mbmp: TIEMultiBitmap;
begin
mbmp := TIEMultiBitmap.Create;
mbmp.Read('input.tiff');
mbmp.Write('output.tiff');
mbmp.Free;
end;

Which is the same as...
with TIEMultiBitmap.Create('input.tiff') do
begin
Write('output.tiff');
Free;
end;

Also, the same as...
var
mbmp: TIEMultiBitmap;
io: TImageEnMIO;
begin
mbmp := TIEMultiBitmap.Create;
io := TImageEnMIO.CreateFromIEMBitmap(mbmp);
io.LoadFromFile('input.tiff');
io.SaveToFile('output.tiff');
io.Free;
mbmp.Free;
end;


TIEMultiCallBack

TIEMultiCallBack

Declaration

TIEMultiCallBack = procedure(Bitmap: TIEBitmap; var IOParams: TObject; ImDpiX, ImDpiY: integer) of object;


TIEMultiSelectionOptions

TIEMultiSelectionOptions

Declaration

TIEMultiSelectionOptions = set of (iemoRegion, iemoSelectOnMouseUp, iemoLeaveOneSelected, iemoRegionOnShift, iemoOptimizeForDragging, iemoSelectOnRightClick);

Description

Value | Description
iemoRegion | Select only items inside selection rectangle
iemoSelectOnMouseUp | By default, ImageEn selects an image on mouse down. If iemoSelectOnMouseUp is specified, ImageEn delays selection until mouse up
iemoLeaveOneSelected | If specified, at least one item remains selected. Note: works only when the user deselects multiple images
iemoRegionOnShift | If specified, pressing Shift only selects items inside rectangle
iemoOptimizeForDragging | Makes the behavior closer to Windows Explorer when selecting a region. If you click outside a selection it creates a region, if you click on an existing selection it does nothing. This is particularly useful if you need to support dragging
iemoSelectOnRightClick | Makes the behavior closer to Windows Explorer. When right-clicking outside the selection the new frame is selected. By default this is not specified, meaning that right-clicking has no effect on selection


TIEMViewerGestures

TIEMViewerGestures

Description

TImageEnMView supports native Windows gestures:
- Dragging the screen to pan an image
- Pinching to zoom in
- Reverse-pinching to zoom out

This class contains the properties to configure the gestures.

Methods and Properties

Enabled
Pan
Zoom

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEMViewerGestures.Enabled

TIEMViewerGestures.Enabled

Declaration

property Enabled: boolean; (Read-only)

Description

Returns true whenever at least one gesture is enabled.


TIEMViewerGestures.Pan

TIEMViewerGestures.Pan

Declaration

property Pan: TIEGesturePanOptions;

Description

Allows enabling and configuration of the Pan (image scrolling) gesture. The Windows gesture to "Pan with inertia" is performed on the action of "dragging 1 or 2 fingers".


TIEMViewerGestures.Zoom

TIEMViewerGestures.Zoom

Declaration

property Zoom: TIEGestureZoomOptions;

Description

Allows enabling and configuration of the Zoom gesture. The Windows gesture of "Zoom" is performed by "moving two fingers apart/towards each other".


TIEMViewImageNotifyEvent

TIEMViewImageNotifyEvent

Declaration

type TIEMViewImageNotifyEvent = procedure(Sender: TObject; idx: integer) of object;

Description

Used by OnImageAdded and OnImageLoaded.
idx is the index of the relevant image.


TIENavigatorOptions

TIENavigatorOptions

Declaration

TIENavigatorOptions = set of (ienoMouseWheelZoom, ienoMarkOuter, ienoDontAssignNavBitmap, ienoDontPaintSrcBitmap, ienoDontRefreshSrcIfNavNotFocused);

Description

Value | Description
ienoMouseWheelZoom | Zoom is possible with mouse-wheel
ienoMarkOuter | Marks as grayed non visible area
ienoDontAssignNavBitmap | Doesn't assign automatically navigator bitmap
ienoDontPaintSrcBitmap | Doesn't repaint source image on moving nav rect
ienoDontRefreshSrcIfNavNotFocused | Doesn't refresh main viewer when navigator isn't focused


TIENewLayerEvent

TIENewLayerEvent

Declaration

TIENewLayerEvent = procedure(Sender: TObject; LayerIdx: integer; LayerKind: TIELayerKind) of object;

Description

Occurs whenever a layer is added. It is useful to assign default properties to the layer.
Both programmatic methods (e.g. using LayersAdd) and user methods (e.g. using miCreateShapeLayers) trigger this event.

LayerIdx is the index of the new layer.
LayerKind is the kind of layer that was added.

Note: CurrentLayer will represent the new layer

Examples

procedure Tfmain.ImageEnView1NewLayer(Sender: TObject; LayerIdx: Integer; LayerKind: TIELayerKind);
begin
// Assign default properties for new objects
case LayerKind of
ielkPolyline : TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesExplosion, True );
ielkText : TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'Double-click to edit text';
end;
end;

// Make new shape layer a red star
procedure TfrmMain.ImageEnView1NewLayer(Sender: TObject; LayerIdx: integer; LayerKind: TIELayerKind);
begin
if LayerKind = ielkShape then
begin
TIEShapeLayer( ImageEnView1.CurrentLayer ).Shape := iesStar5;
TIEShapeLayer( ImageEnView1.CurrentLayer ).FillColor := clRed;
end;
end;

See Also

- OnNewLayer

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEOCRLanguages

TIEOCRLanguages

Declaration

type
TIEOCRLanguages = (
OCR_Ancient_Greek_Language,
OCR_German_Fraktur_Language,
OCR_English_Language,
OCR_Ukrainian_Language,
OCR_Turkish_Language,
OCR_Thai_Language,
OCR_Tagalog_Language,
OCR_Telugu_Language,
OCR_Tamil_Language,
OCR_Swedish_Language,
OCR_Swahili_Language,
OCR_Serbian_Latin_Language,
OCR_Albanian_Language,
OCR_Spanish_Old_Language,
OCR_Spanish_Language,
OCR_Slovenian_Language,
OCR_Slovakian_Language,
OCR_Romanian_Language,
OCR_Portuguese_Language,
OCR_Polish_Language,
OCR_Norwegian_Language,
OCR_Dutch_Language,
OCR_Malay_Language,
OCR_Maltese_Language,
OCR_Macedonian_Language,
OCR_Malayalam_Language,
OCR_Lithuanian_Language,
OCR_Latvian_Language,
OCR_Korean_Language,
OCR_Kannada_Language,
OCR_Italian_Old_Language,
OCR_Italian_Language,
OCR_Icelandic_Language,
OCR_Indonesian_Language,
OCR_Cherokee_Language,
OCR_Hungarian_Language,
OCR_Croatian_Language,
OCR_Hindi_Language,
OCR_Hebrew_Language,
OCR_Galician_Language,
OCR_Middle_French_1400_1600_Language,
OCR_Frankish_Language,
OCR_French_Language,
OCR_Finnish_Language,
OCR_Basque_Language,
OCR_Estonian_Language,
OCR_Esperanto_Language,
OCR_Middle_English_1100_1500_Language,
OCR_Greek_Language,
OCR_German_Language,
OCR_Danish_Language,
OCR_Czech_Language,
OCR_Catalan_Language,
OCR_Bulgarian_Language,
OCR_Bengali_Language,
OCR_Belarusian_Language,
OCR_Azerbaijani_Language,
OCR_Arabic_Language,
OCR_Afrikaans_Language,
OCR_Japanese_Language,
OCR_Chinese_Simplified_Language,
OCR_Chinese_Traditional_Language,
OCR_Russian_Language,
OCR_Vietnamese_Language,
OCR_MICR_Code,
OCR_Amharic_Language,
OCR_Assamese_Language,
OCR_Azerbaijani_Cyrillic_Language,
OCR_Tibetan_Language,
OCR_Bosnian_Language,
OCR_Cebuano_Language,
OCR_Welsh_Language,
OCR_Danish_Fraktur_Language,
OCR_Dzongkha_Language,
OCR_Equations_Language,
OCR_Persian_Language,
OCR_Irish_Language,
OCR_Gujarati_Language,
OCR_Haitian_Language,
OCR_Inuktitut_Language,
OCR_Javanese_Language,
OCR_Georgian_Language,
OCR_Georgian_Old_Language,
OCR_Kazakh_Language,
OCR_Khmer_Language,
OCR_Kyrgyz_Language,
OCR_Kurdish_Language,
OCR_Lao_Language,
OCR_Latin_Language,
OCR_Marathi_Language,
OCR_Burmese_Language,
OCR_Nepali_Language,
OCR_Oriya_Language,
OCR_Punjabi_Language,
OCR_Pashto_Language,
OCR_Sanskrit_Language,
OCR_Sinhala_Language,
OCR_Slovakian_Fraktur_Language,
OCR_Serbian_Language,
OCR_Syriac_Language,
OCR_Tajik_Language,
OCR_Tigrinya_Language,
OCR_Uyghur_Language,
OCR_Urdu_Language,
OCR_Uzbek_Language,
OCR_Uzbek_Cyrillic_Language,
OCR_Yiddish_Language
);


TIEOnDrawBackground

TIEOnDrawBackground

Declaration

TIEOnDrawBackground = procedure(Sender: TObject; ACanvas: TCanvas; ARect: TRect; var Handled: boolean) of object;


TIEOnDrawCanvas

TIEOnDrawCanvas

Declaration

TIEOnDrawCanvas = procedure(Sender: TObject; ACanvas: TCanvas; ARect: TRect) of object;


TIEOnDrawPolygon

TIEOnDrawPolygon

Declaration

TIEOnDrawPolygon = procedure(Sender: TObject; polygon: Integer; point: Integer; Canvas: TCanvas; x, y: Integer) of object;


TIEOnPresentMeasure

TIEOnPresentMeasure

Declaration

TIEOnPresentMeasure = procedure(Sender: TObject; var Text: string; Value: double; ValType: TIEVValType) of object;


TIEOnTransitionPaint

TIEOnTransitionPaint

Declaration

TIEOnTransitionPaint = procedure(Sender: TObject; Bitmap: TBitmap; Transition: TIETransitionEffects; Step: Integer) of object;


TIEOnUndoRedoEvent

TIEOnUndoRedoEvent

Declaration

TIEOnUndoRedoEvent = procedure(Sender : TObject; bIsUndo : Boolean; Source : TIEUndoSource; Bitmap : TIEBitmap; iIndex : Integer; var bHandled : Boolean) of object;


TIEOpSys

TIEOpSys

Declaration

TIEOpSys = (ieosWin95, ieosWin98, ieosWinME, ieosWinNT4, ieosWin2000, ieosWinXP, ieosWin2003, ieosWinVista, ieosWin7, ieosWin8, ieosWin10, ieosUnknown);


TIEPaintCellEvent

TIEPaintCellEvent

Declaration

TIEPaintCellEvent = procedure (ACanvas: TCanvas; CellRect: TRect; aColor: TColor; Index: integer; aState: TIEColorCellState; var aStyle: TIETransparentStyle; var Handled: boolean) of object;


TIEPaletteType

TIEPaletteType

Declaration

TIEPaletteType = (ieptMedianCut, ieptFixedBW, ieptFixedHalftone8, ieptFixedHalftone27, ieptFixedHalftone64,
ieptFixedHalftone125, ieptFixedWebPalette, ieptFixedHalftone252,
ieptFixedHalftone256, ieptFixedGray4, ieptFixedGray16, ieptFixedGray256);

Description

Value | Description
ieptMedianCut | An optimal palette generated using a median-cut algorithm. Derived from the colors in an image.
ieptFixedBW | A black and white palette.
ieptFixedHalftone8 | A palette that has its 8-color on-off primaries and the 16 system colors added. With duplicates removed, 16 colors are available.
ieptFixedHalftone27 | A palette that has 3 intensity levels of each primary: 27-color on-off primaries and the 16 system colors added. With duplicates removed, 35 colors are available.
ieptFixedHalftone64 | A palette that has 4 intensity levels of each primary: 64-color on-off primaries and the 16 system colors added. With duplicates removed, 72 colors are available.
ieptFixedHalftone125 | A palette that has 5 intensity levels of each primary: 125-color on-off primaries and the 16 system colors added. With duplicates removed, 133 colors are available.
ieptFixedWebPalette | A palette that has 6 intensity levels of each primary: 216-color on-off primaries and the 16 system colors added. With duplicates removed, 224 colors are available.
ieptFixedHalftone252 | A palette that has its 252-color on-off primaries and the 16 system colors added. With duplicates removed, 256 colors are available.
ieptFixedHalftone256 | A palette that has its 256-color on-off primaries and the 16 system colors added. With duplicates removed, 256 colors are available.
ieptFixedGray4 | A palette that has 4 shades of gray.
ieptFixedGray16 | A palette that has 16 shades of gray.
ieptFixedGray256 | A palette that has 256 shades of gray.


TIEPanZoomType

TIEPanZoomType

Declaration

TIEPanZoomType = (iepzPanTopLeftToBottomRight,
iepzPanTopRightToBottomLeft,
iepzPanBottomLeftToTopRight,
iepzPanBottomRightToTopLeft,

iepzPanTopLeftToCenter,
iepzPanTopRightToCenter,
iepzPanBottomLeftToCenter,
iepzPanBottomRightToCenter,

iepzPanCenterToTopLeft,
iepzPanCenterToTopRight,
iepzPanCenterToBottomLeft,
iepzPanCenterToBottomRight,

iepzPanLeftToRightOrTopToBottom,
iepzPanLeftToCenterOrTopToCenter,
iepzPanRightToCenterOrBottomToCenter,

iepzPanRightToLeftOrBottomToTop,
iepzPanCenterToLeftToOrCenterToTop,
iepzPanCenterToRightOrCenterToBottom,

iepzZoomInToTopLeft,
iepzZoomInToTopRight,
iepzZoomInToCenter,
iepzZoomInToBottomLeft,
iepzZoomInToBottomRight,

iepzZoomOutFromTopLeft,
iepzZoomOutFromTopRight,
iepzZoomOutFromCenter,
iepzZoomOutFromBottomLeft,
iepzZoomOutFromBottomRight,

iepzFullZoomInToTopLeft,
iepzFullZoomInToTop,
iepzFullZoomInToTopRight,

iepzFullZoomInToLeft,
iepzFullZoomInToCenter,
iepzFullZoomInToRight,

iepzFullZoomInToBottomLeft,
iepzFullZoomInToBottom,
iepzFullZoomInToBottomRight,

iepzFullZoomOutFromTopLeft,
iepzFullZoomOutFromTop,
iepzFullZoomOutFromTopRight,

iepzFullZoomOutFromLeft,
iepzFullZoomOutFromCenter,
iepzFullZoomOutFromRight,

iepzFullZoomOutFromBottomLeft,
iepzFullZoomOutFromBottom,
iepzFullZoomOutFromBottomRight);


TIEPixelFormat

TIEPixelFormat

Declaration

TIEPixelFormat = (ienull,
ie1g,
ie8p,
ie8g,
ie16g,
ie24RGB,
ie32f,
ieCMYK,
ie48RGB,
ieCIELab,
ie32RGB);

Description

Value | Description
ienull | Invalid pixel format.
ie1g | Black/White (1 bit per pixel).
ie8p | RGB color with colormap (256 colors, 8 bit per pixel).
ie8g | Gray scale (256 shades of gray, 8 bit per pixel).
ie16g | Gray scale (65536 shades of gray, 16 bit per pixel).
ie24RGB | RGB true color (16M colors, 24 bit per pixel, 8 bit per channel).
ie32f | Gray scale (0..1 floating point shades of gray, 32 bit per pixel).
ieCMYK | CMYK color (32 bit per pixel, reversed 8 bit per channel).
ie48RGB | RGB color (48 bit per pixel, 16 bit per channel).
ieCIELab | CIELab color (24 bit per pixel, 8 bit per channel).
ie32RGB | RGBA color (32 bit per pixel, 8 bit per channel, for compatibility with Windows DIB pixel format, last 8 bit unused with some exceptions).


TIEPixelFormatSet

TIEPixelFormatSet

Declaration

TIEPixelFormatSet = set of TIEPixelFormat;


TIEPlayFrameEvent

TIEPlayFrameEvent

Declaration

TIEPlayFrameEvent = procedure(Sender: TObject; FrameIndex: integer; var bShowFrame: Boolean) of object;


TIEPoint

TIEPoint

Declaration

TIEPoint = record
X: Longint;
Y: Longint;
end;


TIEPointArray

TIEPointArray

Declaration

TIEPointArray = array[0..Maxint div 16] of TIEPoint;


TIEPolylineClosingMode

TIEPolylineClosingMode

Declaration

TIEPolylineClosingMode = (iecmManual, iecmOnNearFinish, iecmAlways);


TIEPolylineEndingMode

TIEPolylineEndingMode

Declaration

TIEPolylineEndingMode = (ieemDoubleClick, ieemManual, ieemMouseUp);


TIEPolylineLayer

TIEPolylineLayer

Description

TImageEnView supports multiple layers, allowing the creation of a single image from multiple source images (which can be resized, rotated, moved, etc).
TIEPolylineLayer is a descendent of TIELayer that displays a line formed from multiple points. It can also be closed to display a polygon.

Review the Layer Documentation for a full description of layer support.

Methods and Properties

AntiAlias
AspectRatioLocked
AddPoint
Assign
AlphaEdgeFeathering
ClearAllPoints
ClientAreaBox
ConvertToImageLayer
ConvXBmp2Scr
ConvXScr2Bmp
ConvYBmp2Scr
ConvYScr2Bmp
CopyToBitmap
Cropped
DrawingInfo
DrawOuter
FillColor
GetIndex
GetLayerMask
GetProperties
Guid
GroupIndex
Height
Kind
LineColor
LineWidth
Locked
Modified
Name
Opacity
Operation
PolylineClosed
Points
PointCount
PosX
PosY
PreferredAspectRatio
RemovePoint
RestoreAspectRatio
Rotate
Selectable
Selected
SetPoints
SetProperties
SimplifyPolygon
Swap
SupportsFeature
Tag
Transparency
UserData
UserDataLen
Visible
VisibleBox
Width

Unique to TIEPolylineLayer

Example

// Draw a triangle polygon
With TIEPolylineLayer( ImageEnView1.CurrentLayer ) do
begin
ClearAllPoints();
AddPoint( 500, 0 );
AddPoint( 1000, 1000 );
AddPoint( 0, 1000 );
PolylineClosed := True;
end;
ImageEnView1.Update();

// Which is the same as...
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( [ Point(500, 0), Point(1000, 1000), Point(0, 1000) ], True );
ImageEnView1.Update();

// Which is the same as...
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesTriangle, True );
ImageEnView1.Update();

// If PolylineClosed is not enabled, we get a polyline, instead of a polygon
TIEPolylineLayer( ImageEnView1.CurrentLayer ).PolylineClosed := False;
ImageEnView1.Update();

See Also

- LayersAdd
- LayersInsert
- TIELayerKind

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.AddPoint

TIEPolylineLayer.AddPoint

Declaration

procedure AddPoint(X, Y: integer);

Description

Add a point to the end of a polyline.
Each point of the polyline is represented by an x and y value in the range 0 to 1000. Where (0, 0) is the top-left pixel of the layer and (1000, 1000) is the bottom-right.

Example

// Draw a polyline
With TIEPolylineLayer( ImageEnView1.CurrentLayer ) do
begin
ClearAllPoints();
AddPoint( 500, 0 );
AddPoint( 1000, 1000 );
AddPoint( 0, 1000 );
end;
ImageEnView1.Update();

// Draw a triangle polygon
With TIEPolylineLayer( ImageEnView1.CurrentLayer ) do
begin
ClearAllPoints();
AddPoint( 500, 0 );
AddPoint( 1000, 1000 );
AddPoint( 0, 1000 );
PolylineClosed := True;
end;
ImageEnView1.Update();

See Also

- RemovePoint
- SetPoints
- Points

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.ClearAllPoints

TIEPolylineLayer.ClearAllPoints

Declaration

procedure ClearAllPoints();

Description

Removes all points from the polyline.

Example

// Draw a triangle polygon
With TIEPolylineLayer( ImageEnView1.CurrentLayer ) do
begin
ClearAllPoints();
AddPoint( 500, 0 );
AddPoint( 1000, 1000 );
AddPoint( 0, 1000 );
PolylineClosed := True;
end;
ImageEnView1.Update();

See Also

- RemovePoint
- AddPoint
- SetPoints
- Points

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.FillColor

TIEPolylineLayer.FillColor

Declaration

property FillColor: TColor;

Description

The color of the polygon. To create a polygon you must close the polyline using PolylineClosed.
To make the text box transparent set FillColor to clNone. Gradients are not supported.

Default: clWhite

Example

// Set fill color to yellow
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.Update();

// Remove fill color
ImageEnView1.CurrentLayer.FillColor := clNone;
ImageEnView1.Update();

See Also

- TIELayer.FillColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.LineColor

TIEPolylineLayer.LineColor

Declaration

property LineColor: TColor;

Description

The color of the polyline.

Default: clBlack

Example

// Add a pink polyline
ImageEnView1.LayersAdd( ielkPolyline );
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesShootingArrowSW, True );
TIEPolylineLayer( ImageEnView1.CurrentLayer ).LineColor := $00C080FF;
TIEPolylineLayer( ImageEnView1.CurrentLayer ).LineWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.BorderColor
- LineWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.LineWidth

TIEPolylineLayer.LineWidth

Declaration

property LineWidth: Integer;

Description

The width of the polyline.

Default: 1

Example

// Add a pink polyline
ImageEnView1.LayersAdd( ielkPolyline );
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesShootingArrowSW, True );
TIEPolylineLayer( ImageEnView1.CurrentLayer ).LineColor := $00C080FF;
TIEPolylineLayer( ImageEnView1.CurrentLayer ).LineWidth := 3;
ImageEnView1.Update();

See Also

- TIELayer.BorderWidth
- LineColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.PointCount

TIEPolylineLayer.PointCount

Declaration

property PointCount: integer;

Description

Returns the count of points of the polyline.

Use Points to obtain the coordinates of point that compose the Polyline.


TIEPolylineLayer.Points

TIEPolylineLayer.Points

Declaration

property Points[index: integer]: TPoint;

Description

Returns the points of the polyline.
Each point of the polyline is represented by an x and y value in the range 0 to 1000. Where (0, 0) is the top-left pixel of the layer and (1000, 1000) is the bottom-right.

Use PointCount to determine the number of points in the Polyline.

See Also

- SetPoints
- AddPoint
- RemovePoint

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.PolylineClosed

TIEPolylineLayer.PolylineClosed

Declaration

property PolylineClosed: boolean;

Description

Set PolylineClosed to True to connect the first and final points of the polyline. This will create a polygon.

If the polygon is closed it will be filled using FillColor.

Default: False

Example

// Draw a polyline
With TIEPolylineLayer( ImageEnView1.CurrentLayer ) do
begin
ClearAllPoints();
AddPoint( 500, 0 );
AddPoint( 1000, 1000 );
AddPoint( 0, 1000 );
end;
ImageEnView1.Update();

// Close the polyline, to create a polygon
TIEPolylineLayer( ImageEnView1.CurrentLayer ).PolylineClosed := True;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.Update();


TIEPolylineLayer.RemovePoint

TIEPolylineLayer.RemovePoint

Declaration

procedure RemovePoint(Index: integer);

Description

Removes point of Index from a Polyline.

Example

// Remove the last point from the selected Polyline
TIEPolylineLayer( ImageEnView1.CurrentLayer ).RemovePoint( TIEPolylineLayer( ImageEnView1.CurrentLayer ).PointCount - 1 );
ImageEnView1.Update();

See Also

- AddPoint
- SetPoints
- Points

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.SetPoints

TIEPolylineLayer.SetPoints

Declaration

procedure SetPoints(Points: array of TPoint); overload;
procedure SetPoints(Points: array of TPoint; ClosePolyline: Boolean); overload;
procedure SetPoints(Shape: TIEShape; ClosePolyline: Boolean = True); overload;

Description

Set the points of the polyline.
Each point of the polyline is represented by an x and y value in the range 0 to 1000. Where (0, 0) is the top-left pixel of the layer and (1000, 1000) is the bottom-right.
If you use the Shape overload, the point array will be filled with a TIEShape. Not all shapes are supported. Shapes that are not included in Supported_Generate_Points_Shapes will raise an exception.
PolylineClosed will be set to ClosePolyline.

Example

// Draw a triangle polygon
With TIEPolylineLayer( ImageEnView1.CurrentLayer ) do
begin
ClearAllPoints();
AddPoint( 500, 0 );
AddPoint( 1000, 1000 );
AddPoint( 0, 1000 );
PolylineClosed := True;
end;
ImageEnView1.Update();

// Which is the same as...
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( [ Point(500, 0), Point(1000, 1000), Point(0, 1000) ], True );
ImageEnView1.Update();

// Which is the same as...
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesTriangle, True );
ImageEnView1.Update();

// If PolylineClosed is not enabled, we get a polyline, instead of a polygon
TIEPolylineLayer( ImageEnView1.CurrentLayer ).PolylineClosed := False;
ImageEnView1.Update();

// Fill points with Star shape
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesStar5, True );

// Fill points with Explosion shape
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesExplosion, True );

// Fill points with Arrow shape
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesShootingArrowSW, True );

// Fill points with Lightning shape
TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesLightningLeft, True );

See Also

- Points
- AddPoint
- RemovePoint

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPolylineLayer.SimplifyPolygon

TIEPolylineLayer.SimplifyPolygon

Declaration

procedure SimplifyPolygon(MaxPoints: integer);

Description

Replaces a high resolution polyline with a lower resolution polyline with fewer vertices (MaxPoints).

Example

TIEPolylineLayer( ImageEnView1.CurrentLayer ).SimplifyPolygon(30); // simplify the polygon to max 30 points
ImageEnView1.Update();


TIEPortableDevice

TIEPortableDevice

Declaration

TIEPortableDevice = Record
ID : WideString;
FriendlyName : WideString;
Description : WideString;
Manufacturer : WideString;
IsDrive : Boolean; // True if it a removable drive, false for devices, such as smart phones
end;


TIEPortableDeviceLogEvent

TIEPortableDeviceLogEvent

Declaration

TIEPortableDeviceLogEvent = procedure(Sender : TObject; const sMsg : String) of object;


TIEPortableDevices.ActiveDeviceID

TIEPortableDevices.ActiveDeviceID

Declaration

property ActiveDeviceID : WideString; (read/write)

Description

Returns the ID of the device that is currently being read. I.e. if you have called NavigateToFolderPath then ActiveDeviceID will be the Device ID that you passed.

You can also specify a device ID to navigate to the root of that device. I.e.
ActiveDeviceID := sDevice;

Is the same as:
NavigateToFolderPath( sDevice, '' );

Will return '' if no device is active.

Example

// Display the active device
edtCurrentDevice.Text := IEPortableDevices.LookupDeviceFriendlyName( IEPortableDevices.ActiveDeviceID );


TIEPortableDevices.ActiveFolderID

TIEPortableDevices.ActiveFolderID

Declaration

property ActiveFolderID : WideString; (read/write)

Description

Returns the ID of the folder that is currently being read (the source of Objects). I.e. if you have called NavigateToFolderPath then ActiveFolderID will be the Folder ID that you passed.

You can also specify a folder ID to navigate to that folder on the active device.
ActiveDeviceID := sFolderID;

Is the same as:
NavigateToFolderPath( ActiveDeviceID, sFolderID);

If '' is returned then the active folder is the device root

Example

// Display the current folder
edtCurrentFolder.Text := fPortableDevices.LookupItemFriendlyName( fPortableDevices.ActiveFolderID );


TIEPortableDevices.Cancel

TIEPortableDevices.Cancel

Declaration

function Cancel(): Boolean;

Description

Abort any active processing on the current device.

Example

procedure TfrmMain.btnCancel(Sender: TObject);
begin
IEPortableDevices.Cancel();
end;


TIEPortableDevices.CanNavigateToParent

TIEPortableDevices.CanNavigateToParent

Declaration

property CanNavigateToParent : Boolean; (read-only)

Description

Returns true if there is a parent of the active folder. I.e. so that NavigateToParent will succeed.

Example

// Enable the "Go Up" button if there is a parent of the current folder
btnOpenParent.Enabled := IEPortableDevices.CanNavigateToParent;


TIEPortableDevices.CopyFileFromDevice

TIEPortableDevices.CopyFileFromDevice

Declaration

function CopyFileFromDevice(const sDeviceID, sObjectID, sDestFilename: WideString): Boolean;

Description

Copy a file of the specified sObjectID from a device to a local filename

Parameter | Description
sDeviceID | The ID of the device to copy from (e.g. ActiveDeviceID
sFileID | The ID of the file to copy (ID cannot point to a folder)
sDestFilename | The local filename to copy the file to

Note: Only files are supported, not folders.

Example

// Prompt the user to specify a destination file to copy to
procedure TfrmMain.btnCopyFromDeviceClick(Sender: TObject);
var
Idx: Integer;
aObject: TIEWPDObject;
begin
if lbxObjects.ItemIndex < 0 then
exit;

Idx := IEPortableDevices.ObjectIDToIndex( lbxObjects.Items[ lbxObjects.ItemIndex ] );
aObject := IEPortableDevices.Objects[ Idx ];
if aObject.ObjectType = iewFolder then
exit;

SaveDialog1.FileName := aObject.Filename;
if SaveDialog1.Execute then
IEPortableDevices.CopyFileFromDevice( IEPortableDevices.ActiveDeviceID, aObject.ID, SaveDialog1.FileName );
end;


TIEPortableDevices.CopyFileToDevice

TIEPortableDevices.CopyFileToDevice

Declaration

function CopyFileToDevice(const sDeviceID, sFolderID, sSourceFilename: WideString): Boolean;

Description

Copy a local file to a the folder of the specified sFolderID on a device.

Parameter | Description
sDeviceID | The ID of the device to copy to (e.g. ActiveDeviceID
sFolderID | The ID of the folder to copy to (ID cannot point to a file)
sSourceFilename | The local filename to copy to the device

Note: Only files can be copied, not folders.

Example

// Prompt the user to specify a file to copy to the current folder
procedure TfrmMain.btnCopyToDeviceClick(Sender: TObject);
begin
// No active folder (or root)
if IEPortableDevices.ActiveFolderID = '' then
exit;

// Prompt for a file to copy
if OpenDialog1.Execute = False then
exit;

// Copy to folder on device
if IEPortableDevices.CopyFileToDevice( IEPortableDevices.ActiveDeviceID, IEPortableDevices.ActiveFolderID, OpenDialog1.FileName) then
ShowMessage( 'File successfully copied to device' )
else
ShowMessage( 'Failed to copy file to device!' );
end;


TIEPortableDevices.CopyStreamFromDevice

TIEPortableDevices.CopyStreamFromDevice

Declaration

function CopyStreamFromDevice(const sDeviceID, sObjectID: Widestring; var ssDestStream: TMemoryStream): Boolean;

Description

Copy a file of the specified sObjectID from a device to a stream.

Parameter | Description
sDeviceID | The ID of the device to copy from (e.g. ActiveDeviceID
sFileID | The ID of the file to copy (ID cannot point to a folder)
ssDestStream | The stream that will be filled filename to copy the file to

Note: Ensure sObjectID points to a file, not a folder. ssDestStream will be created if it is nil and its position is reset to zero after it is filled.

Example

// Display the selected image in an ImageEnView
Idx := IEPortableDevices.ObjectIDToIndex( lbxObjects.Items[ lbxObjects.ItemIndex ] );
aObject := IEPortableDevices.Objects[ Idx ];
if ( aObject.ObjectType <> iewFolder ) and IsKnownFormat( aObject.Filename ) the
begin
aMemStream := TMemoryStream.create;
try
if IEPortableDevices.CopyStreamFromDevice( SelectedDeviceID, aObject.ID, aMemStream ) then
ImageEnView1.IO.LoadFromStream(aMemStream);
finally
aMemStream.free;
end;
end;


TIEPortableDevices.Create

TIEPortableDevices.Create

Declaration

constructor Create();


TIEPortableDevices.DeleteFromDevice

TIEPortableDevices.DeleteFromDevice

Declaration

function DeleteFromDevice(const sDeviceID, sObjectID : WideString; bDeleteSubObjects: Boolean = True): Integer; overload;
function DeleteFromDevice(const sDeviceID, sObjectID : WideString; bDeleteSubObjects: Boolean; var sResultText: WideString): Integer; overload;
function DeleteFromDevice(const sDeviceID : WideString; ssObjectIDs : TStrings; bDeleteSubObjects: Boolean = True): Integer; overload;
function DeleteFromDevice(const sDeviceID : WideString; ssObjectIDs : TStrings; bDeleteSubObjects: Boolean; var sResultText: WideString): Integer; overload;

Description

Delete files or folders from a device.

Parameter | Description
sDeviceID | The ID of the device to delete from (e.g. ActiveDeviceID
sObjectID or ssObjectIDs | The ID(s) of the file(s) or folder(s) to delete (e.g. ActiveFolderID
bDeleteSubObjects | If sObjectID is a folder, then enabling bDeleteSubObjects will also delete all objects in sub-folders
sResultText | Is filled with a response from the WPD API regarding the success or failure of the action (e.g. "1 file was successfully deleted)

Result is a count of the files deleted, or -1 if an error was encountered.

Examples

// Delete the current folder and all sub-folders
IEPortableDevices.DeleteFromDevice( IEPortableDevices.ActiveDeviceID, IEPortableDevices.ActiveFolderID, True );

// Delete the selected file or folder
procedure TfrmMain.btnDeleteFromDeviceClick(Sender: TObject);
var
sResultText: WideString;
Idx: Integer;
aObject: TIEWPDObject;
begin
if lbxObjects.ItemIndex < 0 then
exit;

Idx := fPortableDevices.ObjectIDToIndex( lbxObjects.Items[ lbxObjects.ItemIndex ] );
aObject := fPortableDevices.Objects[ Idx ];

if MessageDlg( 'Are you sure you want to delete the file: ' + aObject.Filename, mtConfirmation, [ mbYes, mbNo ], 0 ) = mrYes then
begin
ShowTempHourglass;
// Note: bDeleteSubObjects is true, so if a folder is selected it will also delete any files in it
if IEPortableDevices.DeleteFromDevice( IEPortableDevices.ActiveDeviceID, aObject.ID, True, sResultText ) > -1 then
lbxObjects.Items.Delete( lbxObjects.ItemIndex );
ShowMessage( sResultText );
end;
end;

// Delete all displayed files
procedure TfrmMain.btnDeleteAllClick(Sender: TObject);
var
sResultText: WideString;
iCount: Integer;
begin
if lbxObjects.Items.Count = 0 then
exit;

if MessageDlg( format( 'Are you sure you want to delete the %d files in this folder?', [ lbxObjects.Items.Count ] ),
mtConfirmation, [ mbYes, mbNo ], 0 ) = mrYes then
begin
ShowTempHourglass;
iCount := IEPortableDevices.DeleteFromDevice( IEPortableDevices.ActiveDeviceID, lbxObjects.Items, True, sResultText );
if iCount = -1 then
ShowMessage( sResultText )
else
begin
lbxObjects.Items.Clear;
ShowMessage( format( '%d files were successfully deleted', [ iCount ] ));
end;
end;
end;


TIEPortableDevices.Destroy

TIEPortableDevices.Destroy

Declaration

destructor Destroy(); override;


TIEPortableDevices.DeviceCount

TIEPortableDevices.DeviceCount

Declaration

property DeviceCount : Integer; (read-only)

Description

Returns the number of devices in the device list.

Example

// Refresh the list of devices
procedure TfrmMain.RefreshDeviceList();
var
I: Integer;
begin
lbxObjects.Items.Clear;
if fPortableDevices.RefreshDevices = False then
raise Exception.create( 'Unable to get devices: ' + fPortableDevices.LastError);

lbxDevices.Items.Clear;
for I := 0 to fPortableDevices.DeviceCount - 1 do
lbxDevices.Items.Add( fPortableDevices.Devices[ I ].ID );
end;


TIEPortableDevices.DeviceIDToIndex

TIEPortableDevices.DeviceIDToIndex

Declaration

function DeviceIDToIndex(const sDeviceID: WideString): Integer;

Description

Return the index of the device in the Devices list with the specified ID.

Result is -1 if the ID is not valid.

Example

// Get the friendly name of the selected device in a listbox
sFriendlyName := Devices[ DeviceIDToIndex( lbxDevices.Items[ lbxDevices.ItemIndex ] ) ].FriendlyName;


TIEPortableDevices.Devices

TIEPortableDevices.Devices

Declaration

property Devices[Index: Integer]: TIEPortableDevice; (read-only)

Description

An array of all devices connected to the PC. It is filled automatically or can be refreshed by calling RefreshDevices.

Example

// Refresh the list of devices
procedure TfrmMain.RefreshDeviceList();
var
I: Integer;
begin
lbxObjects.Items.Clear;
if fPortableDevices.RefreshDevices = False then
raise Exception.create( 'Unable to get devices: ' + fPortableDevices.LastError);

lbxDevices.Items.Clear;
for I := 0 to fPortableDevices.DeviceCount - 1 do
lbxDevices.Items.Add( fPortableDevices.Devices[ I ].ID );
end;


TIEPortableDevices.EnumDeviceProperties

TIEPortableDevices.EnumDeviceProperties

Declaration

function EnumDeviceProperties(const sDeviceID : WideString; ssDest : TStrings) : Boolean;

Description

A debugging function that outputs details of the specified devices to a TStrings object

Example

// Display properties of the current device
IEPortableDevices.EnumDeviceProperties( IEPortableDevices.ActiveDeviceID, memDevProps.Lines );


TIEPortableDevices.FindFilesByName

TIEPortableDevices.FindFilesByName

Declaration

function FindFilesByName(const sFolderID, sSearchText: WideString; GetTypes: TIEWPDObjectTypes = [iewFile, iewFolder]; iMaxDepth : Integer = 0): Boolean; overload;
function FindFilesByName(const sDeviceID, sFolderID, sSearchText: WideString; GetTypes: TIEWPDObjectTypes = [iewFile, iewFolder]; iMaxDepth : Integer = 0): Boolean; overload;

Description

Searches for files with the specified text and fill the objects list.

Parameter | Description
sDeviceID | The device to open (if not specified then the active device is used)
sFolderID | The ID of a folder to search. Can be '' to search the whole device
sSearchText | The text to search for, including wildcards. *TEXT* returns objects containing TEXT, TEXT* returns objects starting with TEXT, TEXT returns only objects with TEXT as their whole name
GetTypes | They type of objects to returns, files (iewFile), folders (iewFolder) or both
iMaxDepth | How many folders to search below the current folder, -1: Search all sub-folders, 0: Search only the specified folder, 1: Search the specified folder and the next level of sub-folders, etc.

Result is false if an error was detected. You can check LastError for detail on the failure.

Note: Searches are NOT case-sensitive. File objects are checked using the "FileName" property, folder objects are checked against their "FriendlyName"

Example

// Return all files and folders in the current folder containing the word "Potato"
if FindFilesByName( sFolderID, '*potato*', [iewFile, iewFolder], 0 ) then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;

// Return all files on the device of the exact filename "Image.jpg"
if FindFilesByName( sFolderID, 'Image.jpg' ) then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;

// Return all folders that start with the word "Temp"
if FindFilesByName( sFolderID, 'Temp*', iewFolder ) then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;


TIEPortableDevices.FindFilesOfType

TIEPortableDevices.FindFilesOfType

Declaration

function FindFilesOfType(const sDeviceID, sFolderID: WideString; sFileExtensions: String; iMaxDepth : Integer = 0): Boolean; overload;
function FindFilesOfType(const sFolderID: WideString; sFileExtensions: String; iMaxDepth : Integer = 0): Boolean; overload;

Description

Searches for files of the specified file extensions and fills the objects list.

Parameter | Description
sDeviceID | The device to open (if not specified then the active device is used)
sFolderID | The ID of a folder to search. Can be '' to search the whole device
sFileExtensions | The file types to return, in the format '*.jpg;*.jpeg;*.bmp;'
iMaxDepth | How many folders to search below the current folder, -1: Search all sub-folders, 0: Search only the specified folder, 1: Search the specified folder and the next level of sub-folders, etc.

Result is false if an error was detected. You can check LastError for detail on the failure.

Note: Will only return files, i.e. objects of type iewFile

Example

// Return all images in the camera folder of a smart phone
sFolderID := PathToFolderID( 'Card\DCIM\';
if sFolderID <> '' then
if FindFilesOfType( sFolderID, '*.jpg;*.jpeg' ) then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;


TIEPortableDevices.GetObjectAdvancedProps

TIEPortableDevices.GetObjectAdvancedProps

Declaration

function GetObjectAdvancedProps(const sDeviceID, sObjectID: WideString; out DestProps : TIEWPDObjectAdvancedProps): Boolean; overload;
function GetObjectAdvancedProps(const sObjectID: WideString; out DestProps : TIEWPDObjectAdvancedProps): Boolean; overload;
function GetObjectAdvancedProps(Index: Integer; out DestProps : TIEWPDObjectAdvancedProps): Boolean; overload;

Description

Returns more detail about an object on the device, such as its size, date, etc. You can specify either the ID of an object on the active device or its index in the Objects list.

Result is false if retrieval of details failed.

Example

procedure TfrmMain.btnShowObjectPropsClick(Sender: TObject);
var
aProps: TIEWPDObjectAdvancedProps;
begin
if IEPortableDevices.GetObjectAdvancedProps( SelectedObjectID, aProps ) = False then
raise Exception.create( 'Cannot access object properties' );

memInfo.Clear;;
memInfo.Lines.Add( 'WPD_OBJECT_ID: ' + aProps.ObjectID );
memInfo.Lines.Add( 'WPD_OBJECT_PARENT_ID: ' + aProps.ParentID );
memInfo.Lines.Add( 'WPD_OBJECT_NAME: ' + aProps.ObjectName );
memInfo.Lines.Add( 'WPD_OBJECT_PERSISTENT_UNIQUE_ID: ' + aProps.PersistentUniqueID );
memInfo.Lines.Add( 'WPD_OBJECT_FORMAT: '+ IntToStr( ord( aProps.ObjectFormat )));
memInfo.Lines.Add( 'WPD_OBJECT_CONTENT_TYPE: '+ IntToStr( ord( aProps.ContentType )));
memInfo.Lines.Add( 'WPD_OBJECT_ISHIDDEN: ' + BoolToStr( aProps.IsHidden ));
memInfo.Lines.Add( 'WPD_OBJECT_ISSYSTEM: ' + BoolToStr( aProps.IsSystem ));
memInfo.Lines.Add( 'WPD_OBJECT_DATE_CREATED: ' + DateTimeToStr( aProps.DateCreated ));
memInfo.Lines.Add( 'WPD_OBJECT_DATE_MODIFIED: ' + DateTimeToStr( aProps.DateModified ));
end;


TIEPortableDevices.HideEmptyDevices

TIEPortableDevices.HideEmptyDevices

Declaration

property HideEmptyDevices : Boolean; (Read/Write)

Description

When enabled, the list of devices will exclude any devices that are not available or are empty.

Default: False

Note: You will need to Refresh the device list after changing HideEmptyDevices.


TIEPortableDevices.LastError

TIEPortableDevices.LastError

Declaration

property LastError : String; (Read-only)

Description

Returns detail on the last failure that occured.

When calling a WPD method, such as NavigateToFolderID, a false result will indicate failure. Read LastError to access detail of the failure.

Example

if IEPortableDevices.RefreshDevices = False then
ShowMessage('Unable to get devices: ' + IEPortableDevices.LastError);


TIEPortableDevices.LookupDeviceFriendlyName

TIEPortableDevices.LookupDeviceFriendlyName

Declaration

function LookupDeviceFriendlyName(const sDeviceID : WideString): WideString;

Description

Returns the friendly name for a device.

The same result could be achieved using:

sFriendlyName := Devices[ DeviceIDToIndex( sDeviceID ) ].FriendlyName;

Example

// Custom drawing of a listbox that contains Device IDs
procedure TfrmMain.lbxDevicesDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
sDeviceID: WideString;
begin
sDeviceID := lbxDevices.Items[ Index ];
IEDrawComboListBoxItem(TListBox(Control ), Rect, fPortableDevices.LookUpDeviceFriendlyName( sDeviceID ), imlGlyphs, IMG_DEVICE );
end;


TIEPortableDevices.LookupObjectFriendlyName

TIEPortableDevices.LookupObjectFriendlyName

Declaration

function LookupObjectFriendlyName(const sObjectID : WideString): WideString; overload;
function LookupObjectFriendlyName(const sDeviceID, sObjectID : WideString): WideString; overload;

Description

Returns the friendly name for a file or folder on a device.

Same as TIEWPDObject.FriendlyName. If sDeviceID is not specified it assumes the active device.

Example

// Display the current folder name
edtCurrentFolder.Text := IEPortableDevices.LookupObjectFriendlyName( IEPortableDevices.ActiveDeviceID, IEPortableDevices.ActiveFolderID );


TIEPortableDevices.NavigateToFolderID

TIEPortableDevices.NavigateToFolderID

Declaration

function NavigateToFolderID(const sFolderID : WideString; bIncludeSubFolders : Boolean = False; GetTypes: TIEWPDObjectTypes = [iewFile, iewFolder]) : Boolean; overload;
function NavigateToFolderID(const sDeviceID, sFolderID : WideString; bIncludeSubFolders : Boolean = False; GetTypes: TIEWPDObjectTypes = [iewFile, iewFolder]) : Boolean; overload;

Description

Navigates to a folder specified by an Object ID and fills the objects list.

The ID can be any object in the objects list of ObjectType = iewFolder.

Parameter | Description
sDeviceID | The device to open (if not specified then the active device is used)
sFolderID | The ID of a folder object to open. Can be '' to open the device root folder
bIncludeSubFolders | Whether to also retrieve objects in sub-folders
GetTypes | They type of objects to returns, files (iewFile), folders (iewFolder) or both

Result is false if an error was detected. You can check LastError for detail on the failure.

ActiveDeviceID and ActiveFolderID will be updated after calling NavigateToFolderID. Use of NavigateToFolderID(const sDeviceID, sFolderID ); is the same as setting:
ActiveDeviceID := sDeviceID;
ActiveFolderID := sFolderID;

Example

// Open folder on double click
procedure TfrmMain.lbxObjectsDblClick(Sender: TObject);
var
Idx: Integer;
aObject: TIEWPDObject;
begin
if ( lbxObjects.ItemIndex >= 0 ) and
fPortableDevices.ObjectIsFolder( lbxObjects.Items[ lbxObjects.ItemIndex ] ) then
begin
// Fill Objects with items in this folder
if fPortableDevices.NavigateToFolderID( lbxObjects.Items[ lbxObjects.ItemIndex ] ) then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;
end;
end;


TIEPortableDevices.NavigateToFolderPath

TIEPortableDevices.NavigateToFolderPath

Declaration

function NavigateToFolderPath(const sPath : WideString; bIncludeSubFolders : Boolean = False; GetTypes: TIEWPDObjectTypes = [iewFile, iewFolder]) : Boolean; overload;
function NavigateToFolderPath(const sDeviceID, sPath : WideString; bIncludeSubFolders : Boolean = False; GetTypes: TIEWPDObjectTypes = [iewFile, iewFolder]) : Boolean; overload;

Description

Navigates to a device folder specified by a path and fills the objects list. A path is a list of folders specified by their FriendlyName and delimited by a slash. e.g. Card\DCIM\ for the image folder on a smartphone.

Parameter | Description
sDeviceID | The device to open (if not specified then the active device is used)
sPath | The path to open on that device
bIncludeSubFolders | Whether to also retrieve objects in sub-folders
GetTypes | They type of objects to returns, files (iewFile), folders (iewFolder) or both

Result is false if an error was detected. You can check LastError for detail on the failure.

Example

// Add all files in the DCIM folder and its sub-folders
if fPortableDevices.NavigateToFolderPath( 'Card\DCIM\', True, iewFile ) then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;


TIEPortableDevices.NavigateToParent

TIEPortableDevices.NavigateToParent

Declaration

function NavigateToParent : Boolean;

Description

Opens the parent of the active folder.

The objects list will be filled if this method succeeds

Result is false if an error was detected. You can check LastError for detail on the failure.

Note: Use CanNavigateToParent to check whether the current folder has a parent

Example

// Go to the parent of the displayed folder
procedure TfrmMain.btnOpenParentClick(Sender: TObject);
var
I: Integer;
begin
if fPortableDevices.NavigateToParent() then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;
end;


TIEPortableDevices.ObjectCount

TIEPortableDevices.ObjectCount

Declaration

property ObjectCount : Integer; (read-only)

Description

Returns the number of objects in the Object list.

Example

// Navigate to folder and fill listbox with its object IDs
procedure TfrmMain.OpenFolder(const sFolderID : WideString);
var
I: Integer;
begin
fPortableDevices.ActiveFolderID := sFolderID;
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;


TIEPortableDevices.ObjectIDToIndex

TIEPortableDevices.ObjectIDToIndex

Declaration

function ObjectIDToIndex(const sObjectID: WideString): Integer;

Description

Returns the index of the object in the Objects list with the specified ID.

Result is -1 if the ID is not valid.

Example

// Get the friendly name of the selected object in listbox
sFriendlyName := Objects[ ObjectIDToIndex( lbxObjects.Items[ lbxObjects.ItemIndex ] ) ].FriendlyName;


TIEPortableDevices.ObjectIsFolder

TIEPortableDevices.ObjectIsFolder

Declaration

function ObjectIsFolder(const sObjectID : WideString) : Boolean; overload;
function ObjectIsFolder(Index: Integer): Boolean; overload;

Description

Returns true if the object of the specified ID or index in the objects list is a folder (i.e. ObjectType is iewFolder).

This is the same as calling:
bIsFolder := IEPortableDevices.Objects[ ObjectIDToIndex( sObjectID ) ].ObjectType = iewFolder;

Example

// Open folder on double click
procedure TfrmMain.lbxObjectsDblClick(Sender: TObject);
var
Idx: Integer;
aObject: TIEWPDObject;
begin
if ( lbxObjects.ItemIndex >= 0 ) and
fPortableDevices.ObjectIsFolder( lbxObjects.Items[ lbxObjects.ItemIndex ] ) then
begin
// Fill Objects with items in this folder
if fPortableDevices.NavigateToFolderID( lbxObjects.Items[ lbxObjects.ItemIndex ] ) then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;
end;
end;


TIEPortableDevices.Objects

TIEPortableDevices.Objects

Declaration

property Objects[Index: Integer]: TIEWPDObject; (read-only)

Description

An array of all objects found in the current folder of the active device.

The objects list is filled after a successful call to any of the following:
- NavigateToFolderID
- NavigateToFolderPath
- NavigateToParent
- FindFilesByName
- FindFilesOfType
- Or by setting ActiveFolderID

Examples

// Navigate to folder and fill list box with its object IDs
procedure TfrmMain.OpenFolder(const sFolderID : WideString);
var
I: Integer;
begin
fPortableDevices.ActiveFolderID := sFolderID;
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;

// Save the selection to a file and launch it
Idx := fPortableDevices.ObjectIDToIndex( lbxObjects.Items[ lbxObjects.ItemIndex ] );
aObject := fPortableDevices.Objects[ Idx ];
if aObject.ObjectType <> iewFolder then
begin
sFilename := IncludeTrailingBackSlash( ExtractFilePath( Application.ExeName )) + aObject.Filename;
if fPortableDevices.CopyFileFromDevice(SelectedDeviceID, aObject.ID, sFileName) then
ShellExecute( Handle, 'open', PChar( sFileName ), nil, nil, SW_MAXIMIZE );
end;


TIEPortableDevices.OnLog

TIEPortableDevices.OnLog

Declaration

property OnLog : TIEPortableDeviceLogEvent;

Description

Specify an OnLog handler to receive debugging information.

Example

procedure TfrmMain.FormCreate(Sender: TObject);
begin
fPortableDevices := TIEPortableDevices.Create();
fPortableDevices.OnLog := AddToLog;
end;

procedure TfrmMain.AddToLog(Sender : TObject; const sMsg : String);
begin
memLog.Lines.Add( sMsg );
end;


TIEPortableDevices.PathToFolderID

TIEPortableDevices.PathToFolderID

Declaration

function PathToFolderID(const sPath : WideString) : WideString; overload;
function PathToFolderID(const sDeviceID, sPath : WideString) : WideString; overload;

Description

Locate a folder by path and returns its ID. A path is a list of folders specified by their FriendlyName and delimited by a slash. e.g. Card\DCIM\ for the image folder on a smartphone.

Parameter | Description
sDeviceID | The device to check (if not specified then the active device is used)
sPath | The path to locate on that device

Result is '' if the path could not be found.

Example

// Return all images in the camera folder of a smart phone
sFolderID := PathToFolderID( 'Card\DCIM\';
if sFolderID <> '' then
if FindFilesOfType( sFolderID', '*.jpg;*.jpeg' ) then
begin
lbxObjects.Items.Clear;
for I := 0 to fPortableDevices.ObjectCount - 1 do
lbxObjects.Items.Add( fPortableDevices.Objects[ I ].ID );
end;


TIEPortableDevices.RefreshDevices

TIEPortableDevices.RefreshDevices

Declaration

function RefreshDevices() : Boolean;

Description

Forces a recheck for connected devices.

The device list is filled automatically, but will not detect newly connected or disconnected devices. Calling RefreshDevices will force the list to be refreshed.

Result is false if an error was detected. You can check LastError for detail on the failure.

Example

// Refresh the list of devices
procedure TfrmMain.RefreshDeviceList();
var
I: Integer;
begin
lbxObjects.Items.Clear;
if fPortableDevices.RefreshDevices = False then
raise Exception.create( 'Unable to get devices: ' + fPortableDevices.LastError );

lbxDevices.Items.Clear;
for I := 0 to fPortableDevices.DeviceCount - 1 do
lbxDevices.Items.Add( fPortableDevices.Devices[ I ].ID );
end;


TIEPortableDevices.Sorted

TIEPortableDevices.Sorted

Declaration

property Sorted : Boolean; (Read/Write)

Description

When enabled, the returned list of objects will be sorted alphabetically (also folders before files).

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEPortableDevicesSource

TIEPortableDevicesSource

Declaration

TIEPortableDevicesSource = Record
Name : WideString; // Friendly name of device optionally including the root folder name if there are multiple DCIM folders
Path : WideString; // Path to the DCIM folder on the device, e.g. 'Card\DCIM\'
DeviceID : WideString; // ID of device
DeviceName : WideString; // Friendly name of device
FolderID : WideString; // ID of the DCIM folder
IsDrive : Boolean; // True for drives, False for all other devices
end;


TIEPreviewEvent

TIEPreviewEvent

Declaration

TIEPreviewEvent = procedure(Sender: TObject; PreviewForm: TForm) of object;


TIEPreviewSize

TIEPreviewSize

Declaration

TIEPreviewSize = (iespDefault, iespTall, iespLarge);

Description

Value | Description
iespDefault | Normal size preview window (smallest)
iespTall | Preview is same width as iepsDefault, but taller
iespLarge | Much larger preview window


TIEProcessStreamEvent

TIEProcessStreamEvent

Declaration

TIEProcessStreamEvent = procedure(Sender: TObject; Stream: TStream) of object;

Description

Used when loading/saving snapshots to specify extra parameters.


TIEProgressEvent

TIEProgressEvent

Declaration

type TIEProgressEvent = procedure(Sender: TObject; per: integer) of object;

Description

per is a value from 0 to 100 that indicates the percentage progress made.


TIEPropertyPages

TIEPropertyPages

Declaration

TIEPropertyPages = (iepVideoInput, iepAudioInput, iepVideoCodec, iepAudioCodec, iepVideoInputSource, iepTuner);


TIEPropertyPagesType

TIEPropertyPagesType

Declaration

TIEPropertyPagesType = (ietFilter, ietInput, ietOutput);


TIEQuadCoords

TIEQuadCoords

Declaration

TIEQuadCoords = record
x0, y0: integer;
x1, y1: integer;
x2, y2: integer;
x3, y3: integer;
end;


TIEQuality

TIEQuality

Declaration

TIEQuality = (ieLow, ieMedium, ieHigh);


TIEReadImageStream

TIEReadImageStream

Declaration

TIEReadImageStream = procedure(Stream: TStream; Bitmap: TIEBitmap; var IOParams: TIOParams; var Progress: TProgressRec; Preview: boolean);

Description

The procedure to load the image in Stream into Bitmap and fill IOParams with metadata.

Use Progress to return progress information (e.g. for 35% progress Progress.val := 35 and Progress.tot := 100) and notify of load failure (Progress.Aborting^ := True).
When Preview is true, ImageEn is only seeking to fill IOParams, not load the image (i.e. you can skip Bitmap as it will be ignored.
You will need to reset the stream position.


TIERectangle

TIERectangle

Declaration

TIERectangle = packed record
x, y: integer;
width, height: integer;
end;

Description

Describes a rectangle in terms of top-left, top-right coordinates and sizes.

See Also

- IERectangle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEReferenceClock

TIEReferenceClock

Declaration

TIEReferenceClock = (rcDefault, rcNone, rcSystemClock, rcVideoInput, rcVideoOutput, rcAudioInput, rcAudioOutput);

Description

Value | Description
rcDefault | Default DirectShow setting
rcNone | No synchronism used
rcSystemClock | Use system clock
rcVideoInput | Video input is the synch reference
rcVideoOutput | Video output is the synch reference
rcAudioInput | Audio input is the synch reference
rcAudioOutput | Audio output is the sync reference


TIERenderOperation

TIERenderOperation

Declaration

TIERenderOperation = (
ielNormal,
ielAdd, // Additive
ielSub, // Difference
ielDiv,
ielMul,
ielOR,
ielAND,
ielXOR,
ielMAX, // Lighten
ielMIN, // Darken
ielAverage,
ielScreen,
ielNegation,
ielExclusion,
ielOverlay,
ielHardLight,
ielSoftLight,
ielXFader,
ielColorEdge,
ielColorBurn,
ielInverseColorDodge,
ielInverseColorBurn,
ielSoftDodge,
ielSoftBurn,
ielReflect,
ielGlow,
ielFreeze,
ielEat,
ielSubtractive,
ielInterpolation,
ielStamp,
ielRed,
ielGreen,
ielBlue,
ielHue,
ielSaturation,
ielColor,
ielLuminosity,
ielStereoBW,
ielStereoColor,
ielStereoColorDubois,
ielStereoEven,
ielStereoOdd,
ielLuminosity2
);


TIERenderVirtualPixel

TIERenderVirtualPixel

Declaration

TIERenderVirtualPixel = procedure(Sender: TObject; SrcX, SrcY: integer; var outval: TRGB) of object;

Description

Parameter | Description
Sender | TIEBitmap event sender object
SrcX | Source pixel column
SrcY | Source pixel row
outval | RGB Value to fill


TIEResourceBookmark

TIEResourceBookmark

Demo

Demos\InputOutput\ResourceLoader\ResourceLoader.dpr

Methods and properties

- TypeIndex
- NameIndex
- FrameIndex

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEResourceBookmark.FrameIndex

TIEResourceBookmark.FrameIndex

Declaration

property FrameIndex: integer;

Description

Frame index of a grouped resource of this bookmark.


TIEResourceBookmark.NameIndex

TIEResourceBookmark.NameIndex

Declaration

property NameIndex: integer;

Description

Resource name index of this bookmark.


TIEResourceBookmark.TypeIndex

TIEResourceBookmark.TypeIndex

Declaration

property TypeIndex: integer;

Description

Resource type index of this bookmark.


TIEResourceExtractor.Create

TIEResourceExtractor.Create

Declaration

constructor Create(const Filename: WideString);

Description

Creates a new instance of TIEResourceExtractor loading the specified PE file (EXE, DLL, OCX, ICL, BPL, etc..).
It is possible to check the success of loading reading IsValid property.
FileName specifies the path and filename of PE module.

Example

re := TIEResourceExtractor.Create('explorer.exe');
try
...
finally
re.Free;
end;


TIEResourceExtractor.FriendlyTypes

TIEResourceExtractor.FriendlyTypes

Declaration

property FriendlyTypes[TypeIndex: integer]: AnsiString;

Description

Returns the specified resource type friendly name (for know types like RT_CURSOR, RT_BITMAP, etc...).

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.

Here is the list of Windows resource types and related friendly string.

Windows resource | Friendly type name
RT_ACCELERATOR | 'Accelerator'
RT_ANICURSOR | 'AniCursor'
RT_ANIICON | 'AniIcon'
RT_BITMAP | 'Bitmap'
RT_CURSOR | 'Cursor'
RT_DIALOG | 'Dialog'
RT_DLGINCLUDE | 'DlgInclude'
RT_FONT | 'Font'
RT_FONTDIR | 'FontDir'
RT_GROUP_CURSOR | 'GroupCursor'
RT_GROUP_ICON | 'GroupIcon'
RT_HTML | 'HTML'
RT_ICON | 'Icon'
RT_MANIFEST | 'Manifest'
RT_MENU | 'Menu'
RT_MESSAGETABLE | 'MessageTable'
RT_PLUGPLAY | 'PlugPlay'
RT_RCDATA | 'RCData'
RT_STRING | 'String'
RT_VERSION | 'Version'
RT_VXD | 'VXD'

See also: Types for less friendly type strings.


TIEResourceExtractor.GetBuffer

TIEResourceExtractor.GetBuffer

Declaration

function GetBuffer(TypeIndex: integer; NameIndex: integer; var BufferLength: integer): pointer;
function GetBuffer(const TypeStr: AnsiString; const NameStr: AnsiString; var BufferLength: integer): pointer;
function GetBuffer(ResourceBookmark: TIEResourceBookmark; var BufferLength: integer): pointer;

Description

Returns memory buffer for the specified resource.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.
BufferLength | Field filled with the resulting buffer length (in bytes).
TypeStr | Type as string (ie 'Bitmap', 'Cursor').
NameStr | Resource name as string (ie 'INTRESOURCE:100', 'Hand').
ResourceBookmark | A resource bookmark returned by GetResourceBookmark.

The buffer must not be freed.

Example

// loads resource 143, in "Bitmap"s, from "explorer.exe" (should be a little Windows logo)
var
re: TIEResourceExtractor;
buffer: pointer;
bufferLen: integer;
begin
re := TIEResourceExtractor.Create('explorer.exe');
try
buffer := re.GetBuffer('Bitmap', 'INTRESOURCE:143', bufferLen);
ImageEnView1.IO.Params.IsResource := true;
ImageEnView1.IO.LoadFromBuffer(buffer, bufferLen, ioBMP);
finally
re.Free;
end;
end;

// loads the resource specified by parameters "resTypeIndex" and "resNameIndex"
var
buffer: pointer;
bufferLen: integer;
begin
buffer := m_ResourceExtractor.GetBuffer(resTypeIndex, resNameIndex, bufferLen);

ImageEnView1.IO.Params.IsResource := true;

if m_ResourceExtractor.FriendlyTypes[resTypeIndex] = 'Bitmap' then
ImageEnView1.IO.LoadFromBuffer(buffer, bufferLen, ioBMP)
else
if m_ResourceExtractor.FriendlyTypes[resTypeIndex] = 'Cursor' then
ImageEnView1.IO.LoadFromBuffer(buffer, bufferLen, ioCUR)
else
if m_ResourceExtractor.FriendlyTypes[resTypeIndex] = 'Icon' then
ImageEnView1.IO.LoadFromBuffer(buffer, bufferLen, ioICO)
else
// We cannot use ioUnknown (autodect) for BMP, CUR and ICO because it is not possible to autodetect BMP, CUR and ICO when they are resources.
ImageEnView1.IO.LoadFromBuffer(buffer, bufferLen, ioUnknown) // for jpegs, GIF, etc...

end;


TIEResourceExtractor.GetFrameBuffer

TIEResourceExtractor.GetFrameBuffer

Declaration

function GetFrameBuffer(TypeIndex: integer; NameIndex: integer; FrameIndex: integer; var BufferLength: integer): pointer;

Description

Returns the buffer of specified frame, for multi-frame resources.
TypeIndex must be 'GroupIcon' or 'GroupCursor'.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.
FrameIndex | The frame index. 0 is first resource name, GroupCountFrames-1 is last frame.
BufferLength |


TIEResourceExtractor.GetGroupAndFrame

TIEResourceExtractor.GetGroupAndFrame

Declaration

procedure GetGroupAndFrame(TypeIndex: integer; NameIndex: integer; var GroupTypeIndex: integer; var GroupIndex: integer; var GroupFrameIndex: integer);

Description

This method finds the associated grouping resource for the specified resource.
Grouping resources types are "GroupIcon" or "GroupCursor".
TypeIndex must be "Icon" or "Cursor", otherwise returns values are undefined.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.
GroupTypeIndex | <Return value: associated group resource type./C>
GroupIndex | <Return value: associated group resource name./C>
GroupFrameIndex | <Return value: associated group resource frame./C>


TIEResourceExtractor.GetResourceBookmark

TIEResourceExtractor.GetResourceBookmark

Declaration

function GetResourceBookmark(TypeIndex: integer; NameIndex: integer; FrameIndex: integer = -1): TIEResourceBookmark;

Description

Creates a bookmark for the specified resource (or resource frame).
Bookmarks are automatically freed.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.
FrameIndex | The frame index. 0 is first resource name, GroupCountFrames-1 is last frame.


TIEResourceExtractor.GroupCountFrames

TIEResourceExtractor.GroupCountFrames

Declaration

property GroupCountFrames[TypeIndex: integer; NameIndex: integer]: integer;

Description

Returns the number of frames of specified resource (can be Icon or Cursor resource).

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.


TIEResourceExtractor.GroupFrameDepth

TIEResourceExtractor.GroupFrameDepth

Declaration

property GroupFrameDepth[TypeIndex: integer; NameIndex: integer; FrameIndex: integer]: integer;

Description

Returns the icon or cursor bit depth. TypeIndex must refer to a "GroupIcon" or "GroupCursor" resource type.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.


TIEResourceExtractor.GroupFrameHeight

TIEResourceExtractor.GroupFrameHeight

Declaration

property GroupFrameHeight[TypeIndex: integer; NameIndex: integer; FrameIndex: integer]: integer;

Description

Returns the icon or cursor height. TypeIndex must refer to a "GroupIcon" or "GroupCursor" resource type.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.


TIEResourceExtractor.GroupFrameName

TIEResourceExtractor.GroupFrameName

Declaration

property GroupFrameName[TypeIndex: integer; NameIndex: integer; FrameIndex: integer]: AnsiString;

Description

Returns the icon or cursor resource name. TypeIndex must refer to a "GroupIcon" or "GroupCursor" resource type.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.


TIEResourceExtractor.GroupFrameWidth

TIEResourceExtractor.GroupFrameWidth

Declaration

property GroupFrameWidth[TypeIndex: integer; NameIndex: integer; FrameIndex: integer]: integer;

Description

Returns the icon or cursor width. TypeIndex must refer to a "GroupIcon" or "GroupCursor" resource type.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.


TIEResourceExtractor.IndexOfType

TIEResourceExtractor.IndexOfType

Declaration

function IndexOfType(TypeName: AnsiString): integer;

Description

Finds the index of specified type name (ex. 'Icon', 'Cursor', 'GroupIcon'...).


TIEResourceExtractor.IsGroup

TIEResourceExtractor.IsGroup

Declaration

property IsGroup[TypeIndex: integer]: boolean;

Description

Returns true if the resource type is "GroupIcon" (RT_GROUP_ICON) or "GroupCursor" (RT_GROUP_CURSOR).
This means that resources inside this type must be handled as groups.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.


TIEResourceExtractor.IsGrouped

TIEResourceExtractor.IsGrouped

Declaration

property IsGrouped[TypeIndex: integer]: boolean;

Description

Returns true if the resource type is "Icon" (RT_ICON) or "Cursor" (RT_CURSOR).
This means that resources inside this type must be grouped in "GroupIcon" or "GroupCursor" resources.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.


TIEResourceExtractor.IsValid

TIEResourceExtractor.IsValid

Declaration

property IsValid: boolean;

Description

Checks if TIEResourceExtractor contains valid data.

Example

re := TIEResourceExtractor.Create('explorer.exe');
if re.IsValid then
begin
...
end;
re.Free;


TIEResourceExtractor.Names

TIEResourceExtractor.Names

Declaration

property Names[TypeIndex: integer; NameIndex: integer]: AnsiString;

Description

Returns the resource name for specified type and name index.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.
NameIndex | Index of actual resource. 0 is first resource name, NamesCount-1 is last resource name.


TIEResourceExtractor.NamesCount

TIEResourceExtractor.NamesCount

Declaration

property NamesCount[TypeIndex: integer]: integer;

Description

Returns number of resource names found in the PE module, for the specified resource type.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.


TIEResourceExtractor.Types

TIEResourceExtractor.Types

Declaration

property Types[TypeIndex: integer]: AnsiString;

Description

Returns the specified resource type name.

Parameter | Description
TypeIndex | Index of resource type. 0 is first resource type, TypesCount-1 is last resource type.

See also: FriendlyTypes for more friendly type strings.


TIEResourceExtractor.TypesCount

TIEResourceExtractor.TypesCount

Declaration

property TypesCount: integer;

Description

Returns number of resource types found in the PE module.


TIERFBClient.Connect

TIERFBClient.Connect

Declaration

procedure Connect(const Address: string; Port: word = 5900; const Password: AnsiString = '');

Description

Connects to the specified RFB (VNC) server.
May throw EIERFBError exception if an error occurs (wrong address, wrong port, unsupported protocol version, authentication failure, etc..).

Parameter | Description
Address | IP4, IP6 or name of the RFB server.
Port | TCP Port of the RFB server.
Password | Optional password. Max 8 characters.

Example

var
rfb: TIERFBClient;
begin
rfb := TIERFBClient.Create( ImageEnView1.IEBitmap );
rfb.OnUpdate := OnVNCUpdate;
try
rfb.Connect('My_VNC_Server', 5900, '12345678');
except
on E:Exception do
begin
ShowMessage(E.Message);
end;
end;
end;

procedure TForm1.OnVNCUpdate(Sender: TNotifyEvent);
begin
ImageEnView1.Update;
end;


TIERFBClient.Connected

TIERFBClient.Connected

Declaration

property Connected: boolean;

Description

Returns true when connection is active.

See Also

- Connect
- Disconnect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIERFBClient.Create

TIERFBClient.Create

Declaration

constructor Create(FrameBuffer: TIEBitmap = nil);

Description

Creates a new instance of TIERFBClient using the specified bitmap as framebuffer.
If FrameBuffer is nil then a new bitmap is allocated and owned by the TIERFBClient object.

Example

var
rfb: TIERFBClient;
begin
rfb := TIERFBClient.Create( ImageEnView1.IEBitmap );
rfb.OnUpdate := OnVNCUpdate;
rfb.Connect('My_VNC_Server');
...
end;

procedure TForm1.OnVNCUpdate(Sender: TNotifyEvent);
begin
ImageEnView1.Update;
end;


TIERFBClient.Cursor

TIERFBClient.Cursor

Declaration

property Cursor: TIEBitmap;

Description

Returns last cursor shape sent by the server.

See Also

- LockFrameBuffer
- UnlockFrameBuffer

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIERFBClient.Disconnect

TIERFBClient.Disconnect

Declaration

procedure Disconnect();

Description

Disconnects from the server.

Note: This function will waits for the message handler thread to terminate, so may require some time.


TIERFBClient.FrameBuffer

TIERFBClient.FrameBuffer

Declaration

property FrameBuffer: TIEBitmap;

Description

Contains the bitmap where TIERFBClient will paint the server screen.
This bitmap could be external (for instance a TImageEnView.IEBitmap) or internal (created and owned by TIERFBClient object).

See Also

- Connect
- LockFrameBuffer
- UnlockFrameBuffer
- Suspended

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIERFBClient.LockFrameBuffer

TIERFBClient.LockFrameBuffer

Declaration

procedure LockFrameBuffer;

Description

Locks frame buffer and cursor bitmap preventing writing operations.
This method could freeze message handler thread so make sure to call UnlockFrameBuffer and to maintain frame buffer locked for less time as possible.

Applications could prevent frame buffer updates just setting Suspended = true, which does not freeze the connection.

Example

rfb.LockFrameBuffer;
try
ImageEnMView1.SetImage( imageIndex, rfb.FrameBuffer );
finally
rfb.UnlockFrameBuffer;
end;


TIERFBClient.OnBell

TIERFBClient.OnBell

Declaration

property OnBell: TNotifyEvent;

Description

Occurs whenever the server sends "bell" message.


TIERFBClient.OnClipboardText

TIERFBClient.OnClipboardText

Declaration

property OnClipboardText: TIERFBClipboardTextEvent;

Description

Occurs whenever the server sends clipboard text (user on the server Copies or Cuts some text).


TIERFBClient.OnCursorShapeUpdated

TIERFBClient.OnCursorShapeUpdated

Declaration

property OnCursorShapeUpdated: TNotifyEvent;

Description

Occurs whenever the cursor shape (Cursor) is updated.
Cursor is painted automatically, so you don't need to handle this event or to read Cursor bitmap.


TIERFBClient.OnUpdate

TIERFBClient.OnUpdate

Declaration

property OnUpdate: TNotifyEvent;

Description

Occurs after a sequence of rectangles has been updated (see OnUpdateRect.

Example

// this is the common way to handle OnUpdate events using ImageEnView1.IEBitmap has framebuffer
procedure TForm.OnRFBUpdate(Sender: TObject);
begin
ImageEnView1.Update;
end;

// this is the common way to handle OnUpdate events using TIERFBClient owned frame buffer
procedure TForm.OnRFBUpdate(Sender: TObject);
begin
rfb.LockFrameBuffer;
ImageEnView1.IEBitmap.Assign( rfb.FrameBuffer );
rfb.UnlockFrameBuffer;
ImageEnView1.Update;
end;


TIERFBClient.OnUpdateRect

TIERFBClient.OnUpdateRect

Declaration

property OnUpdateRect: TIERFBUpdateRectEvent;

Description

Occurs whenever server updates a single frame buffer rectangle.
Because multiple rectangle updates can be sent in a single message so OnUpdate is also sent after a sequence of OnUpdateRect messages.


TIERFBClient.OnUpdateScreenSize

TIERFBClient.OnUpdateScreenSize

Declaration

property OnUpdateScreenSize: TNotifyEvent;

Description

Occurs whenever server changes desktop size. The framebuffer will be automatically resized.


TIERFBClient.ScreenName

TIERFBClient.ScreenName

Declaration

property ScreenName: AnsiString;

Description

Returns the server screen name.


TIERFBClient.ScreenPixelFormat

TIERFBClient.ScreenPixelFormat

Declaration

property ScreenPixelFormat: TIERFBPixelFormat;

Description

Specifies connection pixel format (this is not the framebuffer pixelformat, which is always 24 bit RGB).
Applications must set this property before start the connection.

Default: ierfbRGB32

Example

with TIERFBClient.Create do
begin
rfb.ScreenPixelFormat := ierfbPalette256;
rfb.Connect('A_VNC_Server');
...
end;


TIERFBClient.ScreenSize

TIERFBClient.ScreenSize

Declaration

property ScreenSize: TSize;

Description

Returns the server screen size (width and height in pixels). This may change after OnUpdateScreenSize event.


TIERFBClient.SendClipboard

TIERFBClient.SendClipboard

Declaration

procedure SendClipboard(const Text: AnsiString);

Description

Sends text to the server clipboard. Only ISO 8859-1 (Latin-1) text is supported by the protocol.

May throw EIERFBError exception if a communication error occurs.


TIERFBClient.SendKeyEvent

TIERFBClient.SendKeyEvent

Declaration

procedure SendKeyEvent(xkey: dword; down: boolean);
procedure SendKeyEvent(VirtualKey: dword; KeyData: dword; down: boolean);

Description

Sends a Windows Virtual Key or a XWindow key to the server.
The first overload (XWindow) is fully supported (you can send any XWindow key).
The second overload (VirtualKey) doesn't support all key combinations (like CTRL-?, ALT-?, etc...), so applications should handle these combination manually.

May throw EIERFBError exception if a communication error occurs.

Parameter | Description
xkey | XWindow key code.
down | True when the key is down, False otherwise.
VirtualKey | Windows Virtual Key code.
KeyData | Windows Virtual Key data.

Example

// send CTRL-ALT-DEL
procedure TForm1.Send_CTRL_ALT_DEL();
begin
if RFB.Connected then
begin
RFB.SendKeyEvent(VK_CONTROL, 0, true);
RFB.SendKeyEvent(VK_MENU, 0, true);
RFB.SendKeyEvent(VK_DELETE, 0, true);
RFB.SendKeyEvent(VK_DELETE, 0, false);
RFB.SendKeyEvent(VK_MENU, 0, false);
RFB.SendKeyEvent(VK_CONTROL, 0, false);
end;
end;

// a very primitive and buggy keyboard sender. Some combinations could not work (ie CTRL-C, ALTR-?...)
procedure TForm1.ImageEnViewVirtualKey(Sender: TObject; VirtualKey, KeyData: Cardinal; KeyDown: Boolean);
begin
if RFB.Connected then
RFB.SendKeyEvent(Virtualkey, KeyData, KeyDown);
end;

// we need to handle TABS and ARROWS
procedure TForm1.ImageEnViewSpecialKey(Sender: TObject; CharCode: Word; Shift: TShiftState; var Handled: Boolean);
begin
Handled := true;
end;


TIERFBClient.SendPointerEvent

TIERFBClient.SendPointerEvent

Declaration

procedure SendPointerEvent(x, y: integer; LeftButton: boolean; MiddleButton: boolean; RightButton: boolean);

Description

Communicates a new mouse pointer position and mouse buttons state to the server.
SendPointerEvent also updates the frame buffer drawing the mouse cursor, so you should refresh the screen just after.

May throw EIERFBError exception if a communication error occurs.

Parameter | Description
x | Horizontal coordinate of the mouse (hotspot), relative to the frame buffer.
y | Vertical coordinate of the mouse (hotspot), relative to the frame buffer..
LeftButton | True if the left button is down.
MiddleButton | True if the middle button is down.
RightButton | True if the right button is down.

Example

procedure TForm1.ImageEnViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if RFB.Connected then
begin
RFB.SendPointerEvent(ImageEnView.XScr2Bmp(X), ImageEnView.YScr2Bmp(Y), ssLeft in Shift, ssMiddle in Shift, ssRight in Shift);
ImageEnView.Update;
end;
end;


TIERFBClient.SendRequestUpdate

TIERFBClient.SendRequestUpdate

Declaration

procedure SendRequestUpdate(x, y, width, height: word; incremental: boolean);
procedure SendRequestUpdate(incremental: boolean = true);

Description

Sends an update request to the server for the specified rectangle or for the whole frame buffer.
May throw EIERFBError exception if a communication error occurs.

Update requests are sent automatically by TIERFBClient, so under normal circumstances, it is not necessary to call this method.

Parameter | Description
x | Horizontal position of the rectangle to update.
y | Vertical position of the rectangle to udpate.
width | Width of the rectangle to update.
height | Height of the rectangle to update.
incremental | If true only we need only changes occurred since last update.


TIERFBClient.Suspended

TIERFBClient.Suspended

Declaration

property Suspended: boolean;

Description

Setting this property you can suspend frame buffer updates.
This is useful when applications need to do some processing on the framebuffer (like save it).
When suspended TIERFBClient continues to receive messages and updates from the server, but they do not update the frame buffer.
Events like OnUpdate and OnUpdateRect are disabled when connection is in suspended state.

Example

rfb.Suspended := true;
try
ImageEnView.IO.SaveToFile('curentframe.jpg');
finally
rfb.Suspended := false;
end;


TIERFBClient.UnlockFrameBuffer

TIERFBClient.UnlockFrameBuffer

Declaration

procedure UnlockFrameBuffer;

Description

Unlocks frame buffer and cursor bitmap, locked by LockFrameBuffer.

Applications could prevent frame buffer updates just setting Suspended = true, which does not freeze the connection.

Example

rfb.LockFrameBuffer;
try
ImageEnMView1.SetImage( imageIndex, rfb.FrameBuffer );
finally
rfb.UnlockFrameBuffer;
end;


TIERFBClipboardTextEvent

TIERFBClipboardTextEvent

Declaration

TIERFBClipboardTextEvent = procedure(Sender: TObject; Text: AnsiString) of object;

Description

Declaration for clipboard messages from RFB server.


TIERFBPixelFormat

TIERFBPixelFormat

Declaration

TIERFBPixelFormat = (ierfbPalette256, ierfbRGB16, ierfbRGB32);

Description

Specifies the connection pixel format (this is not the framebuffer pixelformat, which is always 24 bit RGB).

Value | Description
ierfbPalette256 | 256 colors palette.
ierfbRGB16 | RGB packed inside words of 16 bits.
ierfbRGB32 | RGB, 8 bit per channel. Last byte discarded.


TIERFBUpdateRectEvent

TIERFBUpdateRectEvent

Declaration

TIERFBUpdateRectEvent = procedure(Sender: TObject; Rect: TRect) of object;

Description

Declaration for update rectangle messages from RFB server.


TIERGBAPalette

TIERGBAPalette

Declaration

TIERGBAPalette = array[0..maxint div 16] of TRGBA;


TIERGBPalette

TIERGBPalette

Declaration

TIERGBPalette = array[0..maxint div 16] of TRGB;


TIERotateCenter

TIERotateCenter

Declaration

IERotateCenter = (ierObject, ierImage);

Description

Value | Description
ierObject | rotation center is the object
ierImage | rotation center is the image


TIERSOptions

TIERSOptions

Declaration

TIERSOptions = (iersNone, iersMoveToAdapt, iersSyncLayers);

Description

Value | Description
iersNone | no adaption
iersMoveToAdapt | move the selection to fit inside the new size
iersSyncLayers | used to maintain the selection in the same position among layers


TIERulerPosBase

TIERulerPosBase

Declaration

TIERulerPosBase = (ierbRuler, ierbBitmap, ierbScreen);


TIERulerSnapping

TIERulerSnapping

Declaration

TIERulerSnapping = (iesnNone, iesnSnapToTick, iesnSnapToLabel, iesnSnapToWholeNumber);

Description

Item | Description
iesnNone | Do not adjust grip positions
iesnSnapToTick | Automatically move grips to the nearest tick
iesnSnapToLabel | Automatically move grips to the nearest label (long tick)
iesnSnapToWholeNumber | Automatically move grips to the nearest whole value on the ruler (e.g. move to 2.0 inches)

Default: iesnNone

Example

// Snap to the nearest label tick
ImageEnView1.RulerParams.SnapGrips := iesnSnapToLabel;

// Snap to the nearest whole number on the ruler
ImageEnView1.RulerParams.SnapGrips := iesnSnapToWholeNumber;


TIERulerUnits

TIERulerUnits

Declaration

TIERulerUnits = (ieruPixels, ieruInches, ieruMillimeters, ieruCentimeters);


TIESaveDlgOpt

TIESaveDlgOpt

Declaration

type TIESaveDlgOpt = set of (sdShowPreview, sdShowAdvanced);

Description

Specifies further options for the Save dialog:
- sdShowPreview: Show a preview and information on the selected image
- sdShowAdvanced: Show an "Advanced" button to configure image properties


TIESaveSnapshotOptions

TIESaveSnapshotOptions

Declaration

TIESaveSnapshotOptions = set of (iessoCompressed, iessoSaveIOParams);


TIESaveUndoEvent

TIESaveUndoEvent

Declaration

TIESaveUndoEvent = procedure(Sender : TObject; Source : TIEUndoSource) of object;


TIEScrollBarParams

TIEScrollBarParams

Description

Allows an application to customize the scrollbar behavior, including tracking (display refresh on mouse dragging), up/down buttons pixel scroll, pagedown/up pixel scroll.

Properties

- LineStep
- PageStep
- Tracking

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEScrollBarParams.LineStep

TIEScrollBarParams.LineStep

Declaration

property LineStep: integer;

Description

Specifies the number of pixels to scroll when the user clicks the Up or Down button on the scroll bar.
Setting the property to -1 will make the control scroll one thumbnail per click.

Default: -1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEScrollBarParams.PageStep

TIEScrollBarParams.PageStep

Declaration

property PageStep: integer;

Description

Specifies is the number of pixels to scroll when the user clicks near the cursor (PAGEUP or PAGEDOWN).
Setting the property to -1 will make the control scroll by one page (i.e. client height) per click.

Default: -1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEScrollBarParams.Tracking

TIEScrollBarParams.Tracking

Declaration

property Tracking: boolean

Description

Set False to disable display refreshing during mouse dragging.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESeek

TIESeek

Declaration

TIESeek = (iskLeft, iskRight, iskUp, iskDown, iskFirst, iskLast, iskPagDown, iskPagUp);

Description

Value | Description
iskLeft | Move to the left (by one column)
iskRight | Move to the right (by one column)
iskUp | Move up (by one row)
iskDown | Move down (by one row)
iskFirst | Move to first image
iskLast | Move to the last image
iskPagDown | Move to the next page
iskPagUp | Move to the previous page
iskPrior | Same as iskLeft, but reversed when BiDiMode is bdRightToLeft
iskNext | Same as iskRight, but reversed when BiDiMode is bdRightToLeft


TIESelectionBase

TIESelectionBase

Declaration

TIESelectionBase = (
iesbClientArea, // Select coordinates over client area (as they appear in the current view)
iesbBitmap // Select coordinates over bitmap (as they relate to the bitmap regardless of view or zoom)
);


TIESelectionChangingEvent

TIESelectionChangingEvent

Declaration

type TIESelectionChangingEvent = procedure(Sender: TObject; var bAllow: Boolean) of object;

Description

Occurs prior to a change in the selected frame/thumbnail due to user action (i.e. mouse or keyboard).

This can be used to prevent changing of a selection (e.g. due to the current selection not being saved).

Example

procedure TfMain.ImageEnMView1SelectionChanging(Sender: TObject; var bAllow: Boolean);
begin
// Don't allow changing of the selection if the user cancels saving of the selected image
if fSelectedImageChanged and (PromptToSaveSelectedImageChanges = False) then
bAllow := False;
end;


TIESelectionOptions

TIESelectionOptions

Declaration

TIESelectionOptions = set of (
iesoAnimated,
iesoSizeable,
iesoMoveable,
iesoFilled,
iesoCutBorders,
iesoMarkOuter,
iesoCanScroll,
iesoSelectTranspLayers,
iesoRightButtonSelectLayers,
iesoRightButtonTerminatePolySelect,
iesoDisableOneClickDeselect,
iesoDisableNewSelection,
iesoShowCenter,
iesoAutoTerminatePolySelect,
iesoAllowMoveByKeyboard);

Description

Value | Description
iesoAnimated | Enable animation of the selection
iesoSizeable | Allow the user to resize the selection (with grips)
iesoMoveable | Allow the user to move the selection (with grips)
iesoFilled | The image within the selection is displayed with inverted colors
iesoCutBorders | The user is allowed to drag the selection outside the borders (the selection borders will be cut)
iesoMarkOuter | Areas of the image outside the selection are shown as grayed or with alpha blending (see SetSelectionMarkOuterStyle)
iesoCanScroll | Automatically scroll the image when selecting outside the visible area
iesoSelectTranspLayers | Allow transparent areas of a layer to be selectable
iesoRightButtonSelectLayers | Allow selection of layers with the right button (other than left button)
iesoRightButtonTerminatePolySelect | Allow polygon selection to be cancelled with the right mouse button
iesoDisableOneClickDeselect | Prevent the selection from being cleared when clicking outside the selection
iesoDisableNewSelection | Once a selection has been made (programatically using Select or by the user using MouseInteract) then the user cannot make a new selection (though they can still move or resize the selection if iesoSizeable or iesoMoveable is specified)
iesoShowCenter | A cross shows the center of the rectangle, circle or polygon while making a selection
iesoAutoTerminatePolySelect | Polygon selection will be automatically cancelled when the user clicks close to the start of the selection (i.e. closes the polygon)
iesoAllowMoveByKeyboard | Allow rectangular selections and layers to be moved by the cursor keys (Hold Ctrl key to resize selections. Hold Shift to speed up movement)


TIESelOp

TIESelOp

Declaration

TIESelOp = (iespReplace, iespAdd);

Description

iespReplace: replaces all previous selections.
iespAdd: adds a new selection.


TIESetCursorEvent

TIESetCursorEvent

Declaration

TIESetCursorEvent = procedure(Sender: TObject; var Cursor: TCursor) of object;

Description

Used by the OnSetCursor event.


TIEShape

TIEShape

Declaration

TIEShape = ( iesEllipse,
iesHalfEllipse,
iesQuarterEllipse,
iesEllipseSegment,
iesRectangle,
iesRoundRect,
iesTriangle,
iesCorner,
iesDiamond,
iesPentagon,
iesHexagon,
iesHeptagon,
iesOctagon,
iesCustomShape,
iesStar5,
iesStar6,
iesCustomStar,
iesArrowLeft,
iesArrowRight,
iesArrowUp,
iesArrowDown,
iesArrowLeftRight,
iesArrowUpDown,
iesArrowNW,
iesArrowNE,
iesArrowSW,
iesArrowSE,
iesFatArrowLeft,
iesFatArrowRight,
iesFatArrowUp,
iesFatArrowDown,
iesShootingArrowNW,
iesShootingArrowNE,
iesShootingArrowSW,
iesShootingArrowSE,
iesLightningLeft,
iesLightningRight,
iesExplosion,
iesCustomExplosion,
iesCross,
iesHeart,
iesDoubleHeart,
iesCloud,
iesMoon,
iesSpeechBubbleLeftInShort,
iesSpeechBubbleLeftOutShort,
iesSpeechBubbleRightInShort,
iesSpeechBubbleRightOutShort,
iesSpeechBubbleLeftInLong,
iesSpeechBubbleLeftOutLong,
iesSpeechBubbleRightInLong,
iesSpeechBubbleRightOutLong,
iesThoughtBubbleLeft,
iesThoughtBubbleRight,
iesShield,
iesBadge,
iesNamePlate,
iesFrame,
iesNarrowFrame,
iesFatFrame,
iesCircularFrame );


TIEShapeLayer

TIEShapeLayer

Description

TImageEnView supports multiple layers, allowing the creation of a single image from multiple source images (which can be resized, rotated, moved, etc).
TIEShapeLayer is a descendent of TIELayer that displays one of ImageEn's pre-built shapes.

Review the Layer Documentation for a full description of layer support.

Methods and Properties

AntiAlias
AspectRatioLocked
Assign
AlphaEdgeFeathering
BorderColor
BorderWidth
ClientAreaBox
ConvertToImageLayer
ConvXBmp2Scr
ConvXScr2Bmp
ConvYBmp2Scr
ConvYScr2Bmp
CopyToBitmap
Cropped
DrawingInfo
DrawOuter
FillColor
FillColor2
FillGradient
GetIndex
GetLayerMask
GetProperties
Guid
GroupIndex
Height
Kind
Locked
Modified
Name
Opacity
Operation
PosX
PosY
PreferredAspectRatio
RestoreAspectRatio
Rotate
Selectable
Selected
SetProperties
Shape
ShapeModifier
Swap
SupportsFeature
Tag
Transparency
UserData
UserDataLen
Visible
VisibleBox
Width

Unique to TIEShapeLayer

Example

// Add a yellow explosion layer
ImageEnView1.LayersAdd( ielkShape );
ImageEnView1.CurrentLayer.Shape := iesExplosion;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.CurrentLayer.BorderColor := $004080FF;
ImageEnView1.CurrentLayer.BorderWidth := 2;
ImageEnView1.Update();

// Remove the border...
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

See Also

- LayersAdd
- LayersInsert
- TIEShape
- TIELayerKind

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEShapeLayer.BorderColor

TIEShapeLayer.BorderColor

Declaration

property BorderColor: TColor;

Description

The color of the frame around the shape.
To hide the frame set BorderColor to clNone or BorderWidth to 0.

Default: clBlack

Example

// Add an explosion layer with an orange border and a yellow fill
ImageEnView1.LayersAdd( ielkShape );
ImageEnView1.CurrentLayer.BorderColor := $004080FF;
ImageEnView1.CurrentLayer.BorderWidth := 2;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.Update();

// Remove the border...
ImageEnView1.CurrentLayer.BorderColor := clNone; // Same as setting BorderWidth := 0;
ImageEnView1.Update();

See Also

- TIELayer.BorderColor
- BorderWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEShapeLayer.BorderWidth

TIEShapeLayer.BorderWidth

Declaration

property BorderWidth: Integer;

Description

The width of the frame around the shape.
To hide the frame set BorderWidth to 0 or BorderColor to clNone.

Default: 1

Example

// Add an explosion layer with an orange border and a yellow fill
ImageEnView1.LayersAdd( ielkShape );
ImageEnView1.CurrentLayer.BorderColor := $004080FF;
ImageEnView1.CurrentLayer.BorderWidth := 2;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.Update();

// Remove the border...
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

See Also

- TIELayer.BorderWidth
- BorderColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEShapeLayer.FillColor

TIEShapeLayer.FillColor

Declaration

property FillColor: TColor;

Description

The color of the shape.
To make the shape transparent, set FillColor to clNone. If FillColor is different from FillColor2 it will be drawn as a gradient.

Default: clRed

Example

// Set fill color for a shape to yellow
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.Update();

// Remove fill color from shape
ImageEnView1.CurrentLayer.FillColor := clNone;
ImageEnView1.Update();

See Also

- TIELayer.FillColor
- FillColor2
- FillGradient

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEShapeLayer.FillColor2

TIEShapeLayer.FillColor2

Declaration

property FillColor2: TColor;

Description

The end color for the shape gradient.
If FillColor2 is clNone, the shape is filled by a solid color specified by FillColor. If FillColor2 is different from FillColor it is drawn as a gradient.
The direction of the gradient is specified by FillGradient.

Default: clNone

Example

// Set a vertical gradient fill for an ellipse
ImageEnView1.CurrentLayer.FillColor2 := clRed;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.CurrentLayer.FillGradient := clVertical;
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

// Disable the gradient fill
TIEShapeLayer( ImageEnView1.CurrentLayer ).FillColor2 := clNone;
ImageEnView1.Update();

See Also

- TIELayer.FillColor2
- FillColor
- FillGradient

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEShapeLayer.FillGradient

TIEShapeLayer.FillGradient

Declaration

property FillGradient: TIEGradientDir;

Description

The direction of the gradient used for the shape fill.
If FillColor is different from FillColor2 the shape is filled with a gradient. FillGradient specifies the direction.

Default: gdVertical

Example

// Set a vertical gradient fill for an ellipse
ImageEnView1.CurrentLayer.FillColor2 := clRed;
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.CurrentLayer.FillGradient := clVertical;
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

See Also

- TIELayer.FillGradient
- FillColor
- FillColor2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEShapeLayer.Shape

TIEShapeLayer.Shape

Declaration

property Shape: TIEShape;

Description

The shape displayed by the layer. Over sixty shapes are available.

The style of some shapes can be modified using ShapeModifier

Default: iesEllipse

Examples

// Append a Star layer
ImageEnView1.LayersAdd( ielkShape );
TIEShapeLayer( ImageEnView1.CurrentLayer ).Shape := iesStar5;
TIEShapeLayer( ImageEnView1.CurrentLayer ).AspectRatioLocked := True;
ImageEnView1.CurrentLayer.FillColor := clRed;
ImageEnView1.Update();

// Explosion Shape
ImageEnView1.CurrentLayer.Shape := iesExplosion;

// Triangle Shape
ImageEnView1.CurrentLayer.Shape := iesTriangle;

// Arrow Shape
ImageEnView1.CurrentLayer.Shape := iesShootingArrowSW;

// Ellipse Shape
ImageEnView1.CurrentLayer.Shape := iesEllipse;

// Lightning Shape
ImageEnView1.CurrentLayer.Shape := iesLightningLeft;


TIEShapeLayer.ShapeModifier

TIEShapeLayer.ShapeModifier

Declaration

property ShapeModifier: Integer;

Description

Changes the display of certain shapes.
Shape | Effect | Range | Default
iesCustomShape | Specifies the number of sides of the shape | 3 - 50 | 10
iesCustomStar | Specifies the number of points of the star | 3 - 50 | 10
iesCustomExplosion | Specifies the number of points of the explosion | 3 - 50 | 12
iesEllipseSegment | Specifies the width of the ellipse segment (in degrees) | 1 - 90 | 45

Default: 0 (uses the default for that shape)

Example

// Append a 12-pointed star layer
ImageEnView1.LayersAdd( ielkShape );
TIEShapeLayer( ImageEnView1.CurrentLayer ).Shape := iesCustomStar;
TIEShapeLayer( ImageEnView1.CurrentLayer ).ShapeModifier := 12;
ImageEnView1.Update();

// Append a 30 point explosion layer
ImageEnView1.LayersAdd( ielkShape );
TIEShapeLayer( ImageEnView1.CurrentLayer ).Shape := iesCustomExplosion;
TIEShapeLayer( ImageEnView1.CurrentLayer ).ShapeModifier := 30;
ImageEnView1.Update();


TIEShowFormats

TIEShowFormats

Declaration

TIEShowFormats = (iesfImagesAndVideos, iesfImagesOnly, iesfVideosOnly, iesfAllOnly);

Description

Specifies the file types are listed in the drop down filter selector of the TOpenImageEnDialog. Also determines which formats are included in the "All Common Graphic Files" filter (which is the default filter).
Value | Description
iesfImagesAndVideos | All ImageEn supported image formats are included, AVI videos, and also WMV and MPEG videos if DirectShow is enabled
iesfImagesOnly | All ImageEn supported image formats are included (no videos)
iesfVideosOnly | AVI videos, and also WMV and MPEG videos if DirectShow is enabled (no images)
iesfAllOnly | Does not show the "All Common Graphic Files" filter. Default is to show "All Files"


TIESize

TIESize

Declaration

TIESize = (iesNormal, iesFitToPage, iesFitToPageStretch, iesFillPage, iesSpecifiedSize, iesMultiplePages);

Description

Value | Description
iesNormal | Determine print size by the original image DPI (i.e. to create a true size copy)
iesFitToPage | Stretch the image to fit the page, while respecting its proportions
iesFitToPageStretch | Stretch the image to fit the page, ignoring the proportions
iesFillPage | Stretch the image to fill the entire page (respecting its proportions), cropping any edge of it so that it aligns with the orientation of the page (i.e. portions of the image may not be printed)
iesSpecifiedSize | Print at an absolute size specified by the SpecWidth and SpecHeight parameters
iesMultiplePages | Print the image over multiple pages with count specified by the SpecWidth and SpecHeight parameters


TIESlippyMap.BmpXToLongitude

TIESlippyMap.BmpXToLongitude

Declaration

function BmpXToLongitude(X: integer): double;

Description

Converts from horizontal bitmap coordinates to longitude (decimal degrees).
This conversion depends by current Latitude, Longitude, PointPosition and Zoom.

Parameter | Description
X | Bitmap column relative to top-left position.

Example

// handles OnMouseMove and gets latitude and longitude under the mouse position
procedure TForm1.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
bmpX, bmpY: integer;
longitude, latitude: double;
begin
bmpX := ImageEnView1.XScr2Bmp(X);
bmpY := ImageEnView1.YScr2Bmp(Y);
longitude := TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider).BmpXToLongitude(bmpX);
latitude := TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider).BmpYToLatitude(bmpY);
end;

See Also

- BmpYToLatitude
- LongitudeToBmpX
- LatitudeToBmpY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap.BmpYToLatitude

TIESlippyMap.BmpYToLatitude

Declaration

function BmpYToLatitude(Y: integer): double;

Description

Converts from vertical bitmap coordinates to latitude (decimal degrees).
This conversion depends by current Latitude, Longitude, PointPosition and Zoom.

Parameter | Description
Y | Bitmap row relative to top-left position.

Example

// handles OnMouseMove and gets latitude and longitude under the mouse position
procedure TForm1.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
bmpX, bmpY: integer;
longitude, latitude: double;
begin
bmpX := ImageEnView1.XScr2Bmp(X);
bmpY := ImageEnView1.YScr2Bmp(Y);
longitude := TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider).BmpXToLongitude(bmpX);
latitude := TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider).BmpYToLatitude(bmpY);
end;

See Also

- BmpXToLongitude
- LongitudeToBmpX
- LatitudeToBmpY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap.CachePath

TIESlippyMap.CachePath

Declaration

property CachePath: string;

Description

Defines a path where cached map tiles are stored. Local caching is provided to speed up re-loading tiles and to support off-line jobs.

Example

TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider).CachePath := 'C:\mapcache';


TIESlippyMap.Create

TIESlippyMap.Create

Declaration

constructor Create(provider: TIESlippyMapProvider = iesmpMapQuest; const cachePath: string = '');
constructor Create(const providerURL: string; const cachePath: string = '');

Description

Creates a TIESlippyMap object.

Parameter | Description
provider | Predefined map provider.
providerURL | URL of map provider. Ex. 'http://[abc].tile.openstreetmap.org'.
cachePath | Optional path of local cache.

Example

// create a slippymap using default provider
ImageEnView1.IEBitmap.VirtualBitmapProvider := TIESlippyMap.Create();

// create a slippymap using iesmpOSM_Mapnik provider
ImageEnView1.IEBitmap.VirtualBitmapProvider := TIESlippyMap.Create(iesmpOSM_Mapnik);

// create a slippymap using 'http://[abc].tile.openstreetmap.org' and local cache
ImageEnView1.IEBitmap.VirtualBitmapProvider := TIESlippyMap.Create('http://[abc].tile.openstreetmap.org', 'C:\mapcache');


TIESlippyMap.DrawTo

TIESlippyMap.DrawTo

Declaration

procedure DrawTo(destBitmap: TIEBitmap);

Description

Draws the map to the specified TIEBitmap object.

Parameter | Description
destBitmap | Destination TIEBitmap object.

Example

var
map: TIESlippyMap;
begin
map := TIESlippyMap.Create();
try
map.Latitude := 51.503614574056016;
map.Longitude := -0.12774750793460043;
map.PointPosition := Point(ImageEnView1.IEBitmap.Width div 2, ImageEnView1.IEBitmap.Height div 2);
map.Zoom := 13;
map.DrawTo( ImageEnView1.IEBitmap );
ImageEnView1.Update();
finally
map.Free();
end;
end;


TIESlippyMap.GetSegment

TIESlippyMap.GetSegment

Declaration

function GetSegment(Container: TIEBitmap; Row: integer; Col: integer; Width: integer): pointer;

Description

Implements the GetSegment method of TIEVirtualBitmapProvider abstract parent class.
Applications should not use this method.


TIESlippyMap.Latitude

TIESlippyMap.Latitude

Declaration

property Latitude: double;

Description

Specifies the latitude of point position (PointPosition) in decimal degrees. Allowed range is between -85 and 85 degrees.

See Also

- Longitude
- Zoom
- PointPosition

Example

// move to London
with TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider) do
begin
Latitude := 51.503614574056016;
Longitude := -0.12774750793460043;
end;
ImageEnView1.Update();


TIESlippyMap.LatitudeToBmpY

TIESlippyMap.LatitudeToBmpY

Declaration

function LatitudeToBmpY(lat: double): integer;

Description

Converts from latitude to bitmap vertical position.
This conversion depends by current Latitude, Longitude, PointPosition and Zoom.

Parameter | Description
lat | Latitude in decimal degrees.

See Also

- BmpYToLatitude
- BmpXToLongitude
- LongitudeToBmpX

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap.Longitude

TIESlippyMap.Longitude

Declaration

property Longitude: double;

Description

Specifies the longitude of point position (PointPosition) in decimal degrees. Allowed range is between -180 and 180 degrees.

See Also

- Latitude
- Zoom
- PointPosition

Example

// move to London
with TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider) do
begin
Latitude := 51.503614574056016;
Longitude := -0.12774750793460043;
end;
ImageEnView1.Update();


TIESlippyMap.LongitudeToBmpX

TIESlippyMap.LongitudeToBmpX

Declaration

function LongitudeToBmpX(lon: double): integer;

Description

Converts from longitude to bitmap horizontal position.
This conversion depends by current Latitude, Longitude, PointPosition and Zoom.

Parameter | Description
lon | Longitude in decimal degrees.

See Also

- BmpYToLatitude
- BmpXToLongitude
- LatitudeToBmpY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap.MaxThreads

TIESlippyMap.MaxThreads

Declaration

property MaxThreads: integer;

Description

Specifies the maximum number of loading threads. Each thread loads and caches a single map tile (256x256).
If MaxThreads is zero then as many threads will be created as the number of online provider mirrors.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap.MemoryCacheSize

TIESlippyMap.MemoryCacheSize

Declaration

property MemoryCacheSize: integer;

Description

Specifies how many tiles to maintain in memory. Each tile requires about 192KB.

Default: 50

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap.MissingTileColor

TIESlippyMap.MissingTileColor

Declaration

property MissingTileColor: TColor;

Description

Specifies a fill color when a tile is unavailable (ie upper/bottom boundaries of the map)


TIESlippyMap.OnBeginWork

TIESlippyMap.OnBeginWork

Declaration

property OnBeginWork: TNotifyEvent;

Description

Occurs before downloading map tiles. Useful for displaying a hourglass cursor.

See Also

- OnFinishWork

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap.OnFinishWork

TIESlippyMap.OnFinishWork

Declaration

property OnFinishWork: TNotifyEvent;

Description

Occurs after downloading map tiles. Useful for resetting the cursor.

See Also

- OnBeginWork

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIESlippyMap.PointPosition

TIESlippyMap.PointPosition

Declaration

property PointPosition: TPoint;

Description

Specifies where the map point at Latitude and Longitude is located within the TIEBitmap object.

Example

// show point 51.503614574056016, -0.12774750793460043 at the center of bitmap
with TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider) do
begin
PointPosition := Point(ImageEnView1.IEBitmap.Width div 2, ImageEnView1.IEBitmap.Height div 2);
Latitude := 51.503614574056016;
Longitude := -0.12774750793460043;
end;
ImageEnView1.Update();


TIESlippyMap.Render

TIESlippyMap.Render

Declaration

procedure TIESlippyMap.Render(Container: TIEBitmap; DestWidth: integer; DestHeight: integer; DestScanlines: PPointerArray; DestX1, DestY1, DestX2, DestY2: integer; SrcCols, SrcRows: PInteger; Transparency: integer; RenderOperation: TIERenderOperation; Opacity: double);

Description

Implements the Render method of TIEVirtualBitmapProvider abstract parent class.
Applications should not use this method.

Opacity vs Transparency
Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0


TIESlippyMap.UserKey

TIESlippyMap.UserKey

Declaration

property UserKey: string;

Description

Specifies the user key for map providers that requires registration (like cloudmade.com).


TIESlippyMap.Zoom

TIESlippyMap.Zoom

Declaration

property Zoom: integer;

Description

Specifies the zoom level (0-...). Level 0 is the minimum zoom, supported by all map 1providers.
Maximum zoom is map provider specific. See TIESlippyMapProvider for maximum value for each map provider.
This property has nothing to do with Zoom which specifies the image zoom, while TIESlippyMap.Zoom specifies the map source zoom.

Example

TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider).Zoom := 14;
ImageEnView1.Update();


TIESlippyMapProvider

TIESlippyMapProvider

Declaration

TIESlippyMapProvider = (iesmpOSM_Mapnik,
iesmpOpenCycleMap,
iesmpOpenCycleMapTransport,
iesmpCloudMadeWebStyle,
iesmpCloudMadeFineLineStyle,
iesmpCloudMadeNoNamesStyle,
iesmpMapQuest,
iesmpMapQuestOpenAerial,
iesmpMigurskisTerrain);

Description

Specifies the slippy-map source.
See this link for more details: wiki.openstreetmap.org/wiki/Slippy_map_tilenames

Map Provider | Zoom range | Description
iesmpOSM_Mapnik | 0-18 | OSM Mapnik
iesmpOpenCycleMap | 0.16 | OpenCycleMap
iesmpOpenCycleMapTransport | 0-18 | OpenCycleMap Transport
iesmpCloudMadeWebStyle | 0-18 | CloudMade (Web style). Requires registration at cloudmade.com and setting of UserKey.
iesmpCloudMadeFineLineStyle | 0-18 | CloudMade (Fine line style). Requires registration at cloudmade.com and setting of UserKey.
iesmpCloudMadeNoNamesStyle | 0-18 | CloudMade (NoNames style). Requires registration at cloudmade.com and setting of UserKey.
iesmpMapQuest | Discontinued! | MapQuest
iesmpMapQuestOpenAerial | Discontinued! | MapQuest Open Aerial
iesmpMigurskisTerrain | 4-18, US-only (for now) | Migurski's Terrain


TIESmallIntArray

TIESmallIntArray

Declaration

TIESmallIntArray = array[0..maxint div 16] of SmallInt;


TIESmoothTask

TIESmoothTask

Declaration

TIESmoothTask = (iestScroll, iestZoom);


TIESoftCropMode

TIESoftCropMode

Declaration

TIESoftCropMode = (iesfNone, iesfAlphaBlend, iesfGrid, iesfAdd);

Description

Portion of layers that are outside the background layer are shown as:
Value | Description
iesfNone | Normal
iesfAlphaBlend | Partially transparent (to the level specified by SoftCropValue)
iesfGrid | Grayed (Grid matrix pattern)
iesfAdd | Color shifted/washed out (to the level specified by SoftCropValue)


TIESortMethod

TIESortMethod

Declaration

TIESortMethod = (iesmNone, iesmRed, iesmGreen, iesmBlue, iesmHSLHue, iesmHSLSaturation, iesmHSLLuminance, iesmHSVHue, iesmHSVSaturation, iesmHSVValue, iesmCyan, iesmMagenta, iesmYellow, iesmBlacK, iesmDelphi);


TIESortOrder

TIESortOrder

Declaration

TIESortOrder = (iesoAscending, iesoDescending);


TIESourceType

TIESourceType

Declaration

type TIESourceType = (iestDefault, iestFileIcon, iestFolderIcon, iestCustomImage);

Description

Returns the method used to fill the content of a frame/thumbnail.

Value | Description
iestDefault | The frame is a supported image (or video) type which was loaded normally
iestFileIcon | The frame is for a file or unsupported image type and was filled by loading the system icon for that file type
iestFolderIcon | The frame displays a system folder. The system icon for folders will be displayed
iestCustomImage | The frame is for an unsupported image type and was filled using OnWrongImage


TIESpecialKeyEvent

TIESpecialKeyEvent

Declaration

TIESpecialKeyEvent = procedure(Sender: TObject; CharCode: word; Shift: TShiftState; var Handled: Boolean) of object;


TIEStoreType

TIEStoreType

Declaration

type TIEStoreType = (ietNormal, ietThumb, ietFastThumb);

Description

Specifies how images are loaded.

Value | Description
ietNormal | The full bitmap is kept in memory
ietThumb | A sub-sampled copy of the bitmap is kept in memory (of the size specified by ThumbWidth and ThumbHeight).
ietFastThumb | Only the cached image of the display thumbnail is held in memory. If the thumbnail is cleared from the cache it will need to be reloaded

ietThumb vs ietFastThumb

When using ietFastThumb, creation of the thumbnail is delayed until it is shown on screen. Prior to this a full size image of each frame may be held in memory. For this reason ietFastThumb should not be used unless thumbnail frames are being loaded on demand (or there is not a large amount of off-screen frames).

ietFastThumb can improve the quality of thumbnails, particularly when using ImageInfoText and ThumbnailClipping. It cannot be used if you have disabled image caching.

If you are using ietFastThumb then you should significantly increase the ImageCacheSize to something larger, such as 200.


TIESwapFunction

TIESwapFunction

Declaration

TIESwapFunction = procedure(Index1, Index2: integer) of object;


TIETagsHandler.GetDataType

TIETagsHandler.GetDataType

Declaration

function GetDataType(Tag: integer): integer;

Description

Returns the type of a tag. It will be one of:

IETIFFTYPE_BYTE
IETIFFTYPE_ASCII
IETIFFTYPE_SHORT
IETIFFTYPE_LONG
IETIFFTYPE_RATIONAL
IETIFFTYPE_SBYTE
IETIFFTYPE_UNDEFINED
IETIFFTYPE_SSHORT
IETIFFTYPE_SLONG
IETIFFTYPE_SRATIONAL
IETIFFTYPE_FLOAT
IETIFFTYPE_DOUBLE
IETIFFTYPE_IFDPOINTER
IETIFFTYPE_UNICODE
IETIFFTYPE_COMPLEX
IETIFFTYPE_LONG8
IETIFFTYPE_SLONG8
IETIFFTYPE_IFD8

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETagsHandler.GetInteger

TIETagsHandler.GetInteger

Declaration

function GetInteger(Tag: integer): integer;

Description

Returns the specified tag as integer.


TIETagsHandler.GetIntegerArray

TIETagsHandler.GetIntegerArray

Declaration

function GetIntegerArray(Tag: integer; var ar: pint64array): integer;

Description

Returns the speicifed tag as an array of integers.


TIETagsHandler.GetIntegerIndexed

TIETagsHandler.GetIntegerIndexed

Declaration

function GetIntegerIndexed(Tag: integer; index: integer): integer;

Description

Returns the specified tag as an array of integers.


TIETagsHandler.GetMiniString

TIETagsHandler.GetMiniString

Declaration

function GetMiniString(Tag: integer): AnsiString;

Description

Returns the specified tag as a string of 4 bytes.


TIETagsHandler.GetRational

TIETagsHandler.GetRational

Declaration

function GetRational(Tag: integer; defaultValue: double = 0): double;

Description

Returns the specified tag as double.


TIETagsHandler.GetRationalIndexed

TIETagsHandler.GetRationalIndexed

Declaration

function GetRationalIndexed(Tag: integer; index: integer; defVal: double = 0.0): double;

Description

Returns the specified tag as an array of doubles.


TIETagsHandler.GetRawData

TIETagsHandler.GetRawData

Declaration

function GetRawData(Tag: integer): pointer;

Description

Returns the specified tag as a raw bytes buffer.


TIETagsHandler.GetString

TIETagsHandler.GetString

Declaration

function GetString(Tag: integer): AnsiString;

Description

Returns the specified tag as string.


TIETagsHandler.TagExists

TIETagsHandler.TagExists

Declaration

function TagExists(Tag: integer): boolean;

Description

Returns True if the specified tag exists.


TIETagsHandler.TagLength

TIETagsHandler.TagLength

Declaration

function TagLength(Tag: integer): integer;

Description

Returns the tag length in bytes.


TIETagType

TIETagType

Declaration

TIETagType = (ttUnknown, ttByte, ttAscii, ttShort, ttLong, ttRational, ttSByte, ttUndefined, ttSShort, ttSLong, ttSRational, ttFloat, ttDouble, ttLongOffset);


TIETextControl

TIETextControl

Declaration

TIETextControl = class(TCustomControl)

Description

Handles iekMEMO objects editing.


TIETextEditorEvent

TIETextEditorEvent

Declaration

TIETextEditorEvent = procedure(Sender: TObject; Layer: integer; Editor: TObject) of object;

Description

Layer is the index of the layer being edited.
Editor is a TIEEdit, which handles the editing operation for a TIETextLayer or TIELineLayer.


TIETextFormat

TIETextFormat

Declaration

TIETextFormat = (ietfPascal, ietfHex, ietfBase64, ietfASCIIArt);

Description

Value | Description
ietfPascal | In this case the format is as follows: const 'FileName_Extension_Size' = nnnn; 'FileName_Extension' : array [0 .. 'FileName_Extension_Size' - 1] of byte = ( $xx,$xx );This is useful when you want to embed the image inside a .pas file. You can load back the image by writing: ImageEnView1.IO.LoadFromBuffer(FileName_Extension, FileName_Extension_Size, fileformat);
ietfHex | Save the image as a sequence of hex values. Example: 0xaa, 0xbb, etc...
ietfBase64 | Save the image encoded with base 64 (the base of Mime64). Example: /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYF...
ietfASCIIArt | Save the image as an Ascii art. We suggest you sub-sample the image before save as Ascii art. The ImageFormat field of SaveToText must be ioUnknown.


TIETextLayer

TIETextLayer

Description

TImageEnView supports multiple layers, allowing the creation of a single image from multiple source images (which can be resized, rotated, moved, etc).
TIETextLayer is a descendent of TIELayer that displays text.

Review the Layer Documentation for a full description of layer support.

Methods and Properties

AntiAlias
ActivateEditor
AspectRatioLocked
Alignment
Assign
AutoSize
AlphaEdgeFeathering
BorderColor
BorderWidth
BorderShape
ClientAreaBox
ConvertToImageLayer
ConvXBmp2Scr
ConvXScr2Bmp
ConvYBmp2Scr
ConvYScr2Bmp
CopyToBitmap
Cropped
DrawingInfo
DrawOuter
FillColor
FillColor2
FillGradient
Font
GetIndex
GetLayerMask
GetProperties
Guid
GroupIndex
Height
Kind
Layout
Locked
Modified
Name
Opacity
Operation
PreferredAspectRatio
RestoreAspectRatio
PosX
PosY
ReadOnly
Rotate
Selectable
Selected
SetProperties
SizeToText
Swap
SupportsFeature
Tag
Text
Transparency
UserData
UserDataLen
Visible
VisibleBox
Width

Unique to TIETextLayer

Examples

// Append a text layer
ImageEnView1.LayersAdd( ielkText );
TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'This is a Text Layer';
TIETextLayer( ImageEnView1.CurrentLayer ).BorderColor := clBlack;
TIETextLayer( ImageEnView1.CurrentLayer ).BorderWidth := 1;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clWhite;
ImageEnView1.Update();

// Apply a "Paid" stamp to image
with ImageEnView1 do
begin
LayersAdd( 'PAID', 'Arial Black', 42, clRed, [fsBold] );
CurrentLayer.Rotate := 30;
TIETextLayer( CurrentLayer ).SizeToText();
CurrentLayer.PosX := IELayer_Pos_HCenter;
CurrentLayer.PosY := IELayer_Pos_VCenter;
LayersMergeAll();
end;

See Also

- LayersAdd
- LayersInsert
- TIELayerKind

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.ActivateEditor

TIETextLayer.ActivateEditor

Declaration

procedure ActivateEditor();

Description

Activates editing of the layer text by the user (i.e. user can begin typing to change the text)

Example

// Display the text editor for the current layer
if Layer is TIELineLayer
TIELineLayer( ImageEnView1.CurrentLayer ).ActivateEditor()
else
if Layer is TIETextLayer
TIETextLayer( ImageEnView1.CurrentLayer ).ActivateEditor();

See Also

- LayersCancelEditor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.Alignment

TIETextLayer.Alignment

Declaration

property Alignment: TIEAlignment;

Description

Specifies the text alignment.

Notes:
- iejJustify is unsupported for TIETextLayers
- iejCenter is always used if BorderShape is iesEllipse

Default: iejLeft

Example

// Center the text for the current text layer
TIETextLayer( ImageEnView1.CurrentLayer ).Alignment := iejCenter;
ImageEnView1.Update();

See Also

- Layout

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.AutoSize

TIETextLayer.AutoSize

Declaration

property AutoSize: boolean;

Description

Use AutoSize to make the layer automatically adjust the size to accommodate the width of the text.

When AutoSize is false, the text object has a fixed width.
When AutoSize is true, the size of the object is re-adjusted whenever the user edits the text.

Default: False

See Also

- SizeToText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.BorderColor

TIETextLayer.BorderColor

Declaration

property BorderColor: TColor;

Description

The color of the frame around the text box.
To hide the text box frame set BorderColor to clNone or BorderWidth to 0.

Default: clNone

Example

// Add a text layer with a black border and a white fill
ImageEnView1.LayersAdd( ielkText );
TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'Text in Yellow box';
TIETextLayer( ImageEnView1.CurrentLayer ).BorderColor := clBlack;
TIETextLayer( ImageEnView1.CurrentLayer ).BorderWidth := 1;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clWhite;
ImageEnView1.Update();

See Also

- TIELayer.BorderColor
- BorderWidth
- BorderShape

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.BorderShape

TIETextLayer.BorderShape

Declaration

property BorderShape: TIEShape;

Description

The shape around the text.

Note: Only the following shapes are supported: iesRectangle, iesRoundRect, iesEllipse

Default: iesRectangle

Example

// Add an elliptical text layer
ImageEnView1.LayersAdd( ielkText );
TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'Text in Ellipse';
TIETextLayer( ImageEnView1.CurrentLayer ).BorderShape := iesEllipse;
ImageEnView1.Update();

See Also

- BorderWidth
- BorderColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.BorderWidth

TIETextLayer.BorderWidth

Declaration

property BorderWidth: Integer;

Description

The width of the frame around the text box.
To hide the text box frame set BorderWidth to 0 or BorderColor to clNone.

Default: 1

Example

// Add a text layer with a black border and a white fill
ImageEnView1.LayersAdd( ielkText );
TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'Text in Yellow box';
TIETextLayer( ImageEnView1.CurrentLayer ).BorderColor := clBlack;
TIETextLayer( ImageEnView1.CurrentLayer ).BorderWidth := 1;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clWhite;
ImageEnView1.Update();

See Also

- TIELayer.BorderWidth
- BorderColor
- BorderShape

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.FillColor

TIETextLayer.FillColor

Declaration

property FillColor: TColor;

Description

The color of the text box.
To make the text box transparent set FillColor to clNone. If FillColor is different from FillColor2 it will be drawn as a gradient.

Default: clNone

Example

// Add a text layer with a black border and a white fill
ImageEnView1.LayersAdd( ielkText );
TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'Text in Yellow box';
TIETextLayer( ImageEnView1.CurrentLayer ).BorderColor := clBlack;
TIETextLayer( ImageEnView1.CurrentLayer ).BorderWidth := 1;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clWhite;
ImageEnView1.Update();

See Also

- TIELayer.FillColor
- FillColor2
- FillGradient

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.FillColor2

TIETextLayer.FillColor2

Declaration

property FillColor2: TColor;

Description

The end color for the text box gradient.
If FillColor2 is clNone, the text box is filled by a solid color specified by FillColor. If FillColor2 is different from FillColor it is drawn as a gradient.
The direction of the gradient is specified by FillGradient.

Note: Gradients are not supported if BorderShape is iesEllipse

Default: clNone

Example

// Disable the gradient fill
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor2 := clNone;

// Add a red/blue horizontal gradient
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clRed;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor2 := clBlue;
TIETextLayer( ImageEnView1.CurrentLayer ).FillGradient := gdHorizontal;
ImageEnView1.Update();

See Also

- TIELayer.FillColor2
- FillColor
- FillGradient

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.FillGradient

TIETextLayer.FillGradient

Declaration

property FillGradient: TIEGradientDir;

Description

The direction of the gradient used for the text box fill.
If FillColor is different from FillColor2 the text box is filled with a gradient. FillGradient specifies the direction.

Note: Gradients are not supported if BorderShape is iesEllipse

Default: gdVertical

Example

// Add a red/blue horizontal gradient
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clRed;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor2 := clBlue;
TIETextLayer( ImageEnView1.CurrentLayer ).FillGradient := gdHorizontal;
ImageEnView1.Update();

See Also

- TIELayer.FillGradient
- FillColor
- FillColor2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.Font

TIETextLayer.Font

Declaration

property Font: TFont;

Description

Specifies the font of the text.

Example

// Sets 'Arial' as font type for the current text layer
TIETextLayer( ImageEnView1.CurrentLayer ).Font.Name := 'Arial';
ImageEnView1.Update();


TIETextLayer.Layout

TIETextLayer.Layout

Declaration

property Layout: TIELayout;

Description

Specifies the vertical alignment of text.

Note: ielCenter is always used if BorderShape is iesEllipse

Default: ielTop

Example

// Center the text for the current text layer
TIETextLayer( ImageEnView1.CurrentLayer ).Alignment := iejCenter;
ImageEnView1.Update();

See Also

- Alignment

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.ReadOnly

TIETextLayer.ReadOnly

Declaration

property ReadOnly: Boolean;

Description

Prevents the user from editing the text of the layer.
When ReadOnly is false, the user can double-click a text layer or click F2 to start editing of the layer text. ReadOnly prevents the user from editing the text.

Default: False

Example

// Prevent editing of the current layer text
TIETextLayer( ImageEnView1.CurrentLayer ).ReadOnly := False;


TIETextLayer.SizeToText

TIETextLayer.SizeToText

Declaration

procedure TIETextLayer.SizeToText(EnlargeOnly: Boolean = False);

Description

Updates the size of the layer to fit the displayed text.
If EnlargeOnly is true, the layer will not be reduced in size to fit the text more tightly, only enlarged to ensure all text is visible.

Example

// Apply a "Paid" stamp to image
with ImageEnView1 do
begin
LayersAdd( 'PAID', 'Arial Black', 42, clRed, [fsBold] );
CurrentLayer.Rotate := 30;
TIETextLayer( CurrentLayer ).SizeToText();
CurrentLayer.PosX := IELayer_Pos_HCenter;
CurrentLayer.PosY := IELayer_Pos_VCenter;
LayersMergeAll();
end;

See Also

- AutoSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETextLayer.Text

TIETextLayer.Text

Declaration

property Text: String;

Description

Specifies the displayed text.

Note: The default text for new layers is specified by DefaultLayerText

Example

// Append a text layer
ImageEnView1.LayersAdd( ielkText );
TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'This is a Text Layer';
TIETextLayer( ImageEnView1.CurrentLayer ).BorderColor := clBlack;
TIETextLayer( ImageEnView1.CurrentLayer ).BorderWidth := 1;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clWhite;
ImageEnView1.Update();


TIEThreshMode

TIEThreshMode

Declaration

TIEThreshMode = (ietMean, ietMedian, ietMeanMinMax);


TIEThumbSizeType

TIEThumbSizeType

Declaration

TIEThumbSizeType = (itsImage, itsCell, itsOuter);

Description

Value | Description
itsImage | Returns the size of the thumbnail image as displayed
itsCell | Returns the size of the thumbnail cell (image, text and cell border)
itsOuter | Returns the size of the thumbnail cell and its external spacing (image, text, cell border and horizontal/vertical border)


TIETIFFHandler Examples

TIETIFFHandler Examples

// add a custom tag (65000 with 'Hello World') at page 0
mytif := TIETIFFHandler.Create('input.tif');
mytif.SetValue(0, 65000, ttAscii, 'Hello World!');
mytif.WriteFile('output.tif');
mytif.free;

// delete second page (indexed 1) of a multipage tiff
mytif := TIETIFFHandler.Create('input.tif');
mytif.DeletePage(1);
mytif.WriteFile('output.tif');
mytif.free;

// insert a new page from an external file
mytif := TIETIFFHandler.Create('input.tif');
mytif.InsertPageAsFile('external.jpg', 0);
mytif.WriteFile('output.tif');
mytif.free;

// merge two tiff (even they are multipage files..)
mytif := TIETIFFHandler.Create('input-1.tif');
mytif.InsertTIFFFile('input-2.tif', mytif.PagesCount-1);
mytif.WriteFile('output.tif');
mytif.free;

// read tag 305 ('software')
mytif := TIETIFFHandler.Create('input-1.tif');
software := mytif.GetString(0, mytif.FindTag(0, 305));
mytif.free;


TIETIFFHandler.ChangeTagCode

TIETIFFHandler.ChangeTagCode

Declaration

procedure ChangeTagCode(pageIndex: integer; tagIndex: integer; newCode: integer);

Description

Changes the tag code of an existing tag.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.CopyTag

TIETIFFHandler.CopyTag

Declaration

procedure CopyTag(srcPageIndex: integer; srcTagIndex: integer; source: TIETIFFHandler; dstPageIndex: integer);

Description

Copies a tag from another TIETIFFHandler object (i.e. another TIFF).
Parameter | Description
srcPageIndex | Source page index (0=first page)
srcTagIndex | Source tag index (use FindTag to get an index from tag code)
source | Source TIETIFFHandler object, that is the source TIFF file
dstPageIndex | Destination page index (0=first page)

Note: Use FindTag to obtain the srcTagIndex.

Example

// copy tiff tag 271 (Manufacturer) from file1.tif to file2.tif
var
file1: TIETIFFHandler;
file2: TIETIFFHandler;
begin
file1 := TIETIFFHandler.Create('file1.tif');
file2 := TIETIFFHandler.Create('file2.tif');

file2.CopyTag(0, file1.FindTag(0, 271), file1, 0);

file2.WriteFile('file2.tif');

file2.Free;
file1.Free;
end;


TIETIFFHandler.Create

TIETIFFHandler.Create

Declaration

constructor Create();
constructor Create(const FileName: string);
constructor Create(Stream: TStream);

Description

Creates a TIETIFFHandler object, optionally reading image data from file or stream.


TIETIFFHandler.DeletePage

TIETIFFHandler.DeletePage

Declaration

procedure DeletePage(pageIndex: integer);

Description

Deletes the specified page.

Example

// Removes the first page of the TIFF file
handler.DeletePage( 0 );


TIETIFFHandler.DeleteTag

TIETIFFHandler.DeleteTag

Declaration

procedure DeleteTag(pageIndex: integer; tagIndex: integer);

Description

Deletes the specified tag.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.ExchangePage

TIETIFFHandler.ExchangePage

Declaration

procedure ExchangePage(Index1, Index2: integer);

Description

Exchanges specified pages.


TIETIFFHandler.FindTag

TIETIFFHandler.FindTag

Declaration

function FindTag(pageIndex: integer; tagCode: integer): integer;

Description

Returns the tag index of the first tag which has specified tagCode.
If no tag is found, it returns -1.


TIETIFFHandler.FreeData

TIETIFFHandler.FreeData

Declaration

procedure FreeData();

Description

Frees memory used by the object.


TIETIFFHandler.GetFloat

TIETIFFHandler.GetFloat

Declaration

function GetFloat(pageIndex: integer; tagIndex: integer; arrayIndex: integer): double;

Description

Returns the tag value as a floating point value. arrayIndex is used only if the tag contains an array of values, otherwise it must be 0.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetInteger

TIETIFFHandler.GetInteger

Declaration

function GetInteger(pageIndex: integer; tagIndex: integer; arrayIndex: integer): integer;

Description

Returns the tag value as an Integer. arrayIndex is used only if the tag contains an array of values, otherwise it must be 0.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetPagesCount

TIETIFFHandler.GetPagesCount

Declaration

function GetPagesCount: integer;

Description

Returns the number of pages in the TIFF.


TIETIFFHandler.GetString

TIETIFFHandler.GetString

Declaration

function GetString(pageIndex: integer; tagIndex: integer): AnsiString;

Description

Returns the tag value as a string.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetTagCode

TIETIFFHandler.GetTagCode

Declaration

function GetTagCode(pageIndex: integer; tagIndex: integer): integer;

Description

Returns the tag code (also named "tag-id") indexed by tagIndex for a specified page.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetTagDescription

TIETIFFHandler.GetTagDescription

Declaration

function GetTagDescription(pageIndex: integer; tagIndex: integer): AnsiString;

Description

Returns a short description of specified tag.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetTagLength

TIETIFFHandler.GetTagLength

Declaration

function GetTagLength(pageIndex: integer; tagIndex: integer): integer;

Description

Return the length of a tag. Check the tag type to know the size of each item.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetTagLengthInBytes

TIETIFFHandler.GetTagLengthInBytes

Declaration

function GetTagLengthInBytes(pageIndex: integer; tagIndex: integer): integer;

Description

Return the tag length in bytes.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetTagsCount

TIETIFFHandler.GetTagsCount

Declaration

function GetTagsCount(pageIndex: integer): integer;

Description

Returns the number of tags present at the specified page.


TIETIFFHandler.GetTagType

TIETIFFHandler.GetTagType

Declaration

function GetTagType(pageIndex: integer; tagIndex: integer): TIETagType;

Description

Return the type of a tag.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetValue

TIETIFFHandler.GetValue

Declaration

function GetValue(pageIndex: integer; tagIndex: integer; arrayIndex: integer): variant;

Description

Returns the tag value as a variant. arrayIndex is used only if the tag contains an array of values, otherwise it must be 0.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.GetValueRAW

TIETIFFHandler.GetValueRAW

Declaration

function GetValueRAW(pageIndex: integer; tagIndex: integer; arrayIndex: integer): pointer;

Description

Returns a pointer to the tag value. arrayIndex is used only if the tag contains an array of values, otherwise it must be 0.
Use GetTagLength or GetTagLengthInBytes to know the size of buffer.
The returned buffer must not be freed.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.InsertPage

TIETIFFHandler.InsertPage

Declaration

function InsertPage(pageIndex: integer = -1): integer;
function InsertPage(pageIndex: integer; sourceHandler: TIETIFFHandler; sourcePage: integer): integer;

Description

First overload inserts a new blank page at specified index.
Second overload inserts sourcePage from sourceHandler at specified index.
If pageIndex is -1 or equal to GetPagesCount the page is added at end.
Returns the index of added page.


TIETIFFHandler.InsertPageAsFile

TIETIFFHandler.InsertPageAsFile

Declaration

function InsertPageAsFile(const FileName: string; pageIndex: integer): boolean;

Description

Inserts a supported file format (jpeg, bmp, ..) at the specified page index

Note: The first page has pageIndex of 0.

Example

// Adds a JPEG file at the start of the TIFF file
handler.InsertTIFFStream( 'C:\Heading.jpeg', 0 );


TIETIFFHandler.InsertPageAsImage

TIETIFFHandler.InsertPageAsImage

Declaration

function InsertPageAsImage(viewer: TObject; pageIndex: integer): boolean;

Description

Inserts a loaded image at the specified index. Viewer must be a TImageEnView object or TImageEnIO.


TIETIFFHandler.InsertPageAsStream

TIETIFFHandler.InsertPageAsStream

Declaration

function InsertPageAsStream(Stream: TStream; pageIndex: integer): boolean;

Description

Inserts a supported file format (jpeg, bmp, ..) at the specified page index.

Note: The first page has pageIndex of 0.

Example

// Adds a JPEG stream at the start of the TIFF file
handler.InsertTIFFStream( Stream, 0 );


TIETIFFHandler.InsertTIFFFile

TIETIFFHandler.InsertTIFFFile

Declaration

function InsertTIFFFile(const FileName: string; pageIndex: integer): boolean;

Description

Inserts a TIFF (even multipage TIFFs) at specified page index.

Notes:
- The first page has pageIndex of 0.
- The two TIFFs must have the same byte order.

Example

// Adds a tiff file at the start of the existing file
handler.InsertTIFFStream( 'C:\NewTiff.tiff', 0 );


TIETIFFHandler.InsertTIFFStream

TIETIFFHandler.InsertTIFFStream

Declaration

function InsertTIFFStream(Stream: TStream; pageIndex: integer): boolean;

Description

Inserts a TIFF (even multipage TIFFs) at the specified page index.

Notes:
- The first page has pageIndex of 0.
- The two TIFFs must have the same byte order.

Example

// Adds a tiff stream at the start of the existing file
handler.InsertTIFFStream( aStream, 0 );


TIETIFFHandler.LittleEndian

TIETIFFHandler.LittleEndian

Declaration

property LittleEndian: boolean;

Description

Returns true if file has little-endian byte order (Intel byte order). Returns false when it has big-endian (Motorola, PowerPC byte order).
It is not possible to change byte order.


TIETIFFHandler.MovePage

TIETIFFHandler.MovePage

Declaration

procedure MovePage(CurIndex, NewIndex: integer);

Description

Moves specified page to a new position.


TIETIFFHandler.ReadFile

TIETIFFHandler.ReadFile

Declaration

function ReadFile(const FileName: string): boolean;

Description

Reads the TIFF from file.


TIETIFFHandler.ReadStream

TIETIFFHandler.ReadStream

Declaration

function ReadStream(Stream: TStream): boolean;

Description

Reads the TIFF from stream.


TIETIFFHandler.SaveTagToFile

TIETIFFHandler.SaveTagToFile

Declaration

procedure SaveTagToFile(pageIndex: integer; tagIndex: integer; const fileName: string);

Description

Saves the content of a tag to file.

Note: Use FindTag to obtain the tagIndex.


TIETIFFHandler.SetValue

TIETIFFHandler.SetValue

Declaration

procedure SetValue(pageIndex: integer; tagCode: integer; tagType: TIETagType; value: variant);

Description

Set the value of a tag. If the tag doesn't exist a new one is created.


TIETIFFHandler.SetValueRAW

TIETIFFHandler.SetValueRAW

Declaration

procedure SetValueRAW(pageIndex: integer; tagCode: integer; tagType: TIETagType; dataNum: integer; buffer: pointer);

Description

Sets the value of tag as a raw buffer. If the tag doesn't exist a new one is created.
dataNum is the number of items of type tagType in the buffer. This is not the buffer length in bytes.


TIETIFFHandler.Version

TIETIFFHandler.Version

Declaration

property Version: word;

Description

Returns file version. TIFF ver.6 will return $2A, while Microsoft HD Photo will return $1BC.


TIETIFFHandler.WriteFile

TIETIFFHandler.WriteFile

Declaration

procedure WriteFile(const FileName: string; pageIndex: integer = -1);

Description

Saves a modified TIFF to file.
pageIndex specifies the page index to write. -1 = all pages.


TIETIFFHandler.WriteStream

TIETIFFHandler.WriteStream

Declaration

procedure WriteStream(Stream: TStream; page: integer = -1);

Description

Saves the modified TIFF to a stream.
page specifies the page index to write. -1 = all pages.


TIETIFTagsReader

TIETIFTagsReader

Description

TIETIFTagsReader allows reading of single tags from a TIFF file or stream.

See also: TIETIFFHandler for a more powerful TIFF handling class.

Methods and Properties

- CreateFromFile
- CreateFromIFD
- CreateFromStream
- GetInteger
- GetIntegerArray
- GetIntegerIndexed
- GetMiniString
- GetRational
- GetRationalIndexed
- GetRawData
- GetString
- ImageCount
- TagExists
- TagLength

Example

Var
Tags: TIETIFTagsReader;
...
Tags := TIETIFTagsReader.CreateFromFile('input.tif', 0); // read tags of the first image (page)
If Tags.TagExists(269) then
DocumentName := Tags.GetString(269); // 269 is the document name
If Tags.TagExists(285) then
Pagename := Tags.GetString(285); // 285 is the page name
Tags.free;


TIETIFTagsReader.CreateFromFile

TIETIFTagsReader.CreateFromFile

Declaration

constructor CreateFromFile(const FileName: string; ImageIndex: integer);

Description

This constructor loads the tags from a file, at the ImageIndex page (0 is the first page).


TIETIFTagsReader.CreateFromIFD

TIETIFTagsReader.CreateFromIFD

Declaration

constructor CreateFromIFD(tagReader: TIETIFTagsReader; IFDTag: integer);

Description

Creates a new TIETIFTagsReader from a tag. This is useful to read tiff trees.


TIETIFTagsReader.CreateFromStream

TIETIFTagsReader.CreateFromStream

Declaration

constructor CreateFromStream(Stream: TStream; ImageIndex: integer);

Description

This constructor loads the tags from a stream, at the ImageIndex page (0 is the first page).


TIETIFTagsReader.GetInteger

TIETIFTagsReader.GetInteger

Declaration

function GetInteger(Tag: integer): int64;

Description

Returns the integer value for the specified Tag number.


TIETIFTagsReader.GetIntegerArray

TIETIFTagsReader.GetIntegerArray

Declaration

function GetIntegerArray(Tag: integer; var ar: pint64array): integer;

Description

Returns an array of integers for the specified Tag number.


TIETIFTagsReader.GetIntegerIndexed

TIETIFTagsReader.GetIntegerIndexed

Declaration

function GetIntegerIndexed(Tag: integer; index: integer): integer;

Description

Returns the indexed integer value for the specified Tag number.


TIETIFTagsReader.GetMiniString

TIETIFTagsReader.GetMiniString

Declaration

function GetMiniString(Tag: integer): AnsiString;

Description

Returns a string value (maximum four characters) for the specified Tag number.


TIETIFTagsReader.GetRational

TIETIFTagsReader.GetRational

Declaration

function GetRational(Tag: integer; defaultValue: double = 0): double;

Description

Returns the double (rational) value for the specified Tag number.


TIETIFTagsReader.GetRationalIndexed

TIETIFTagsReader.GetRationalIndexed

Declaration

function GetRationalIndexed(Tag: integer; index: integer; defVal: double=0.0): double;

Description

Returns the indexed double (rational) value for the specified Tag number.


TIETIFTagsReader.GetRawData

TIETIFTagsReader.GetRawData

Declaration

function GetRawData(Tag: integer): pointer;

Description

Returns a raw buffer for the specified Tag number. You must free the buffer using FreeMem.


TIETIFTagsReader.GetString

TIETIFTagsReader.GetString

Declaration

function GetString(Tag: integer): AnsiString;

Description

Returns a string value for the specified Tag number.


TIETIFTagsReader.ImageCount

TIETIFTagsReader.ImageCount

Declaration

property ImageCount: integer;

Description

Returns the number of pages in the TIFF.


TIETIFTagsReader.TagExists

TIETIFTagsReader.TagExists

Declaration

function TagExists(Tag: integer): boolean;

Description

Returns True if the specified tag exists.


TIETIFTagsReader.TagLength

TIETIFTagsReader.TagLength

Declaration

function TagLength(Tag: integer): integer;

Description

Returns the tag count for indexed tags.


TIETimeFormat

TIETimeFormat

Declaration

TIETimeFormat = (tfNone, tfFrame, tfSample, tfField, tfByte, tfTime);


TIETransferFormat

TIETransferFormat

Declaration

TIETransferFormat = (ietfDefault, ietfBitmap, ietfJpeg, ietfRawBitmap);


TIETransitionStepEvent

TIETransitionStepEvent

Declaration

TIETransitionStepEvent=procedure(Sender: TObject; step: Integer) of object;


TIETransitionTiming

TIETransitionTiming

Declaration

TIETransitionTiming=(iettLinear, iettExponential, iettLogarithmic);


TIETransitionType

TIETransitionType

Declaration

TIETransitionType = (iettNone,
iettCrossDissolve, // Cross Fade
iettFadeOut, // Fade Out
iettFadeIn, // Fade In
iettFadeOutIn, // Fade Out then In
iettLeftRight1, // Wipe Left to Right
iettLeftRight2, // Wipe Left to Right 2
iettRightLeft1, // Wipe Right to Left
iettRightLeft2, // Wipe Right to Left 2
iettUpDown1, // Wipe Top to Bottom
iettUpDown2, // Wipe Top to Bottom 2
iettDownUp1, // Wipe Bottom to Top
iettDownUp2, // Wipe Bottom to Top 2
iettFromUpLeft, // Slide from Top Left
iettFromUpRight, // Slide from Top Right
iettFromBottomLeft, // Slide from Bottom Left
iettFromBottomRight, // Slide from Bottom Right
iettMoveLeftRight1, // Push Left to Right
iettMoveLeftRight2, // Slide Out Left to Right
iettMoveRightLeft1, // Push Right to Left
iettMoveRightLeft2, // Slide Out Right to Left
iettMoveUpDown1, // Push Top to Bottom
iettMoveUpDown2, // Slide Out Top to Bottom
iettMoveDownUp1, // Push Bottom to Top
iettMoveDownUp2, // Slide Out Bottom to Top
iettRandomPoints, // Random Points
iettRandomBoxes, // Random Boxes
iettCenter1, // Wipe Out from Center
iettCenter2, // Wipe In to Center
iettCenterZoom1, // Expand Out from Center
iettCenterZoom2 // Expand In to Center

{$ifdef IEINCLUDEEXTRATRANSITIONS}
,iettExpandFromLeft, // Expand from Left
iettExpandFromRight, // Expand from Right
iettExpandFromTop, // Expand from Top
iettExpandFromBottom, // Expand from Bottom
iettExpandFromTopLeft, // Expand from Top Left
iettExpandFromTopRight, // Expand from Top Right
iettExpandFromBottomLeft, // Expand from Bottom Left
iettExpandFromBottomRight, // Expand from Bottom Right
iettExpandInFromLeft, // Expand in from Left
iettExpandInFromRight, // Expand in from Right
iettExpandInFromTop, // Expand in from Top
iettExpandInFromBottom, // Expand in from Bottom
iettExpandInToVerticalCenter, // Expand in to Vertical Center
iettExpandInToHorizon, // Expand in to Horizon
iettExpandInFromSides, // Expand in from Sides
iettExpandInFromTopAndBottom, // Expand in from Top and Bottom
iettExpandOutFromHorizon, // Expand out from Horizon
iettExpandOutFromVerticalCenter, // Expand out from Vertical Center
iettWipeFromTopLeft, // Wipe from Top Left
iettWipeFromTopRight, // Wipe from Top Right
iettWipeFromBottomLeft, // Wipe from Bottom Left
iettWipeFromBottomRight, // Wipe from Bottom Right
iettWipeInFromTopAndBottom, // Wipe in from Top and Bottom
iettWipeFromHorizon, // Wipe from Horizon
iettWipeInFromSides, // Wipe in from Sides
iettWipeOutFromVerticalCenter, // Wipe out from Vertical Center
iettBuildUpFromLeft, // Build up from Left
iettBuildUpFromRight, // Build up from Right
iettBuildUpFromTop, // Build up from Top
iettBuildUpFromBottom, // Build up from Bottom
iettUnrollFromLeft, // Unroll from Left
iettUnrollFromRight, // Unroll from Right
iettUnrollFromTop, // Unroll from Top
iettUnrollFromBottom, // Unroll from Bottom
iettSlideInFromLeft, // Slide in from Left
iettSlideInFromRight, // Slide in from Right
iettSlideInFromTop, // Slide in from Top
iettSlideInFromBottom, // Slide in from Bottom
iettShrinkToTopLeft, // Shrink to Top Left
iettShrinkToTopRight, // Shrink to Top Right
iettShrinkToBottomLeft, // Shrink to Bottom Left
iettShrinkToBottomRight, // Shrink to Bottom Right
iettShrinkToCenter, // Shrink to Center
iettQuartersWipeInToCenter, // Quarters Wipe in to Center
iettQuartersExpandToCenter, // Quarters Expand to Center
iettQuartersSlideInToCenter, // Quarters Slide in to Center
iettCurvedWipeFromLeft, // Curved Wipe from Left
iettCurvedWipeFromRight, // Curved Wipe from Right
iettCurvedWipeFromTop, // Curved Wipe from Top
iettCurvedWipeFromBottom, // Curved Wipe from Bottom
iettCurvedWipeFromTopLeft, // Curved Wipe from Top Left
iettCurvedWipeFromTopRight, // Curved Wipe from Top Right
iettCurvedWipeFromBottomLeft, // Curved Wipe from Bottom Left
iettCurvedWipeFromBottomRight, // Curved Wipe from Bottom Right
iettBarsInFromLeft, // Bars in from Left
iettBarsInFromRight, // Bars in from Right
iettBarsFromTop, // Bars from Top
iettBarsFromBottom, // Bars from Bottom
iettBarsLeftThenRight, // Bars Left then Right
iettBarsRightThenLeft, // Bars Right then Left
iettBarsTopThenBottom, // Bars Top then Bottom
iettBarsBottomThenTop, // Bars Bottom then Top
iettBarsFromBothSides, // Bars from both Sides
iettBarsFromTopAndBottom, // Bars from Top and Bottom
iettShreddedFromLeft, // Shredded from Left
iettShreddedFromRight, // Shredded from Right
iettShreddedFromTop, // Shredded from Top
iettShreddedFromBottom, // Shredded from Bottom
iettShreddedFromTopAndLeft, // Shredded from Top and Left
iettShreddedFromTopAndRight, // Shredded from Top and Right
iettShreddedFromBottomAndLeft, // Shredded from Bottom and Left
iettShreddedFromBottomAndRight, // Shredded from Bottom and Right
iettShreddedFromHorizonAndLeft, // Shredded from Horizon and Left
iettShreddedFromHorizonAndRight, // Shredded from Horizon and Right
iettShreddedFromTopAndVerticalCenter, // Shredded from Top and Vertical Center
iettShreddedFromBottomAndVerticalCenter, // Shredded from Bottom and Vertical Center
iettShreddedFromCenter, // Shredded from Center
iettShreddedToCenter, // Shredded to Center
iettShreddedInToHorizon, // Shredded in to Horizon
iettShreddedInToVerticalCenter, // Shredded in to Vertical Center
iettShreddedOutFromHorizon, // Shredded out from Horizon
iettShreddedOutFromVerticalCenter, // Shredded out from Vertical Center
iettExpandingRectangles, // Expanding Rectangles
iettExpandingTriangles, // Expanding Triangles
iettExpandingCircles, // Expanding Circles
iettExpandingDiamonds, // Expanding Diamonds
iettCircularWipeFromCenter, // Circular Wipe from Center
iettCircularWipeToCenter, // Circular Wipe to Center
iettCrisscrossWipeFromTopLeft, // Crisscross Wipe from Top Left
iettCrisscrossWipeFromTopRight, // Crisscross Wipe from Top Right
iettCrisscrossWipeFromBottomLeft, // Crisscross Wipe from Bottom Left
iettCrisscrossWipeFromBottomRight, // Crisscross Wipe from Bottom Right
iettCrisscrossWipeBounceFromTopLeft, // Crisscross Wipe Bounce from Top Left
iettCrisscrossWipeBounceFromTopRight, // Crisscross Wipe Bounce from Top Right
iettCrisscrossWipeBounceFromBottomLeft, // Crisscross Wipe Bounce from Bottom Left
iettCrisscrossWipeBounceFromBottomRight, // Crisscross Wipe Bounce from Bottom Right
iettCrisscrossWipeFromLeftRightAndTop, // Crisscross Wipe from Left Right and Top
iettCrisscrossWipeFromLeftRightAndBottom, // Crisscross Wipe from Left Right and Bottom
iettCrisscrossWipeFromLeftTopAndBottom, // Crisscross Wipe from Left Top and Bottom
iettCrisscrossWipeFromTopLeftRightAndBottom,// Crisscross Wipe from Top Left Right and Bottom
iettCrisscrossWipeFromRightTopAndBottom, // Crisscross Wipe from Right Top and Bottom
iettCrisscrossWipeFromBottomLeftTopRight, // Crisscross Wipe from Bottom Left Top Right
iettWipeDiagonalFromTopLeft, // Wipe diagonal from Top Left
iettWipeDiagonalFromTopRight, // Wipe diagonal from Top Right
iettWipeDiagonalFromBottomLeft, // Wipe diagonal from Bottom Left
iettWipeDiagonalFromBottomRight, // Wipe diagonal from Bottom Right
iettDiagonalSweepClockwise, // Diagonal Sweep Clockwise
iettDiagonalSweepCounterClockwise, // Diagonal Sweep Counter-Clockwise
iettSweepClockwise, // Half Sweep Clockwise
iettSweepCounterClockwise, // Half Sweep Counter-Clockwise
iettStarburstClockwiseFromCenter, // Starburst Clockwise from Center
iettStarburstCounterClockwiseFromCenter, // Starburst Clockwise from Center
iettRotationalRectangle, // Rotational Rectangle - Clockwise
iettRotationalRectangleCounterClockwise, // Rotational Rectangle - Counter Clockwise
iettRotationalStar, // Rotational Star - Clockwise
iettRotationalStarCounterClockwise, // Rotational Star - Counter Clockwise
iettSpeckledWipeFromLeft, // Speckled Wipe from Left
iettSpeckledWipeFromRight, // Speckled Wipe from Right
iettSpeckledWipeFromTop, // Speckled Wipe from Top
iettSpeckledWipeFromBottom, // Speckled Wipe from Bottom
iettPushLeftAndSlideOut, // Push Left and Slide out
iettPushRightAndSlideOut, // Push Right and Slide out
iettPushUpAndSlideOut, // Push up and Slide out
iettPushDownAndSlideOut, // Push down and Slide out
iettPushAndSqueezeLeft, // Push and Squeeze Left
iettPushAndSqueezeRight, // Push and Squeeze Right
iettPushAndSqueezeUp, // Push and Squeeze up
iettPushAndSqueezeDown, // Push and Squeeze down
iettHorizontalBlinds, // Horizontal Blinds
iettVerticalBlinds, // Vertical Blinds
iettUnevenBlindsFromLeft, // Uneven Blinds from Left
iettUnevenBlindsFromRight, // Uneven Blinds from Right
iettUnevenBlindsFromTop, // Uneven Blinds from Top
iettUnevenBlindsFromBottom, // Uneven Blinds from Bottom
iettRectanglesFromTheLeft, // Random Bars from the Left
iettRectanglesFromTheRight, // Random Bars from the Right
iettRectanglesFromTheTop, // Random Bars from the Top
iettRectanglesFromTheBottom, // Random Bars from the Bottom
iettSpirallingRectangleClockwise, // Spiralling Rectangle Clockwise
iettSpirallingRectangleCounterClockwise, // Spiralling Rectangle Counter-Clockwise
iettArrowWipeFromLeft, // Arrow Wipe from Left
iettArrowWipeFromRight, // Arrow Wipe from Right
iettArrowWipeFromTop, // Arrow Wipe from Top
iettArrowWipeFromBottom, // Arrow Wipe from Bottom
iettHorizontalBowTieWipe, // Horizontal Bow Tie Wipe
iettVerticalBowTieWipe, // Vertical Bow Tie Wipe
iettDiagonalCrossFromCenter, // Diagonal Cross from Center
iettDiagonalCrossToCenter, // Diagonal Cross to Center
iettZigzagWipeFromHorizon, // Zigzag Wipe from Horizon
iettZigzagWipeFromVerticalCenter, // Zigzag Wipe from Vertical Center
iettDiamondWipeFromCenter, // Diamond Wipe from Center
iettDiamondWipeToCenter, // Diamond Wipe to Center
iettDiagonalBoxWipe, // Diagonal Box Wipe
iettTriangularWipe, // Rotational Triangular Wipe
iettRandomBigBoxes, // Random Big Boxes
iettPageFlip, // Page Flip
iettPageFlip2, // Page Flip 2
iettReversePageFlip, // Page Flip
iettReversePageFlip2, // Page Flip 2
iettZigzagWipeToHorizon, // Zigzag Wipe To Horizon
iettZigzagWipeToVerticalCenter, // Zigzag Wipe To Vertical Center
iettRandomHearts, // Random Hearts
iettRandomStar5s, // Random 5 Pointed Stars
iettRandomStar6s, // Random 6 Pointed Stars
iettRandomExplosions, // Random Explosions
iettExpandingHearts, // Expanding Hearts
iettExpandingStar5, // Expanding 5 Pointed Stars
iettExpandingStar6, // Expanding 6 Pointed Stars
iettExpandingExplosions, // Expanding Explosions
iettExpandingLightningBolts, // Expanding Lightning Bolts
iettHeartWipeOut, // Heart Wipe from Center
iettHeartWipeIn, // Heart Wipe to Center
iettStar5WipeOut, // 5 Pointed Star Wipe from Center
iettStar5WipeIn, // 5 Pointed Star Wipe to Center
iettStar6WipeOut, // 6 Pointed Star Wipe from Center
iettStar6WipeIn, // 6 Pointed Star Wipe to Center
iettExplosionWipeOut, // Explosion Wipe from Center
iettExplosionWipeIn, // Explosion Wipe to Center
iettCrossWipeOut, // Cross Wipe from Center
iettCrossWipeIn, // Cross Wipe to Center
iettHeartWipeInAndOut, // Heart Wipe In and Out
iettStar5WipeInAndOut, // 5 Pointed Star Wipe In and Out
iettStar6WipeInAndOut, // 6 Pointed Star Wipe In and Out
iettExplosionWipeInAndOut, // Explosion Wipe In and Out
iettCubeRotateFromLeft, // Cube Rotate from Left
iettCubeRotateFromRight, // Cube Rotate from Right
iettCubeRotateFromTop, // Cube Rotate from Top
iettCubeRotateFromBottom, // Cube Rotate from Bottom
iettSoftWipeFromLeft, // Soft Wipe from Left
iettSoftWipeFromRight, // Soft Wipe from Right
iettSoftWipeFromTop, // Soft Wipe from Top
iettSoftWipeFromBottom, // Soft Wipe from Bottom
iettAngledTwistIn, // Twist In
iettAngledTwistOut, // Twist Out
iettMultipleAngledTwistIn, // Multiple Twist In
iettMultipleAngledTwistOut, // Multiple Twist Out
iettRandomPuzzlePieces, // Random Puzzle Pieces
iettPacmanFromLeft , // Pacman Devours from Left
iettPacmanFromRight , // Pacman Devours from Right
iettPacman3Row , // Pacman Devours Three Rows
iettPacman4Row , // Pacman Devours Four Rows
iettPacman2SimRow , // Two Simultaneous Rows of Pacman
iettPacman4SimRow , // Four Simultaneous Rows of Pacman
iettPacman6SimRow , // Six Simultaneous Rows of Pacman
iettFullSweepClockwise, // Full Sweep Clockwise
iettExpandingSweepClockwise, // Expanding Sweep Clockwise
iettCubeRotateFromLeft2, // 3D Cube Rotate from Left
iettCubeRotateFromRight2, // 3D Cube Rotate from Right
iettCubeRotateFromTop2, // 3D Cube Rotate from Top
iettCubeRotateFromBottom2, // 3D Cube Rotate from Bottom
iettRandomBoxesWithWord, // Random Boxes with Word
iettRandomWord, // Random Letters of Word
iettExpandingWord, // Expanding Letters of Word
iettWordWipeOut, // Word Wipe from Center
iettWordWipeIn, // Word Wipe to Center
iettWordWipeInAndOut, // Word Wipe In and Out
iettWordHalfSweep, // Half Sweep with Word
iettWordFullSweep, // Full Sweep with Word
iettWordFullExpandingSweep // Expanding Sweep with Word
{$endif}

,iettPanZoom // Pan Zoom/Effects
);

Description

The effects that ImageEn offers that allow you to smoothly transition from one image to another.

Notes:
- The style of many transition effects can be modified using TransitionsDrawAlternative
- The shape can be modified for the following effects: iettRandomStar6s, iettExpandingStar6, iettStar6WipeIn, iettStar6WipeOut, iettStar6WipeInAndOut
- iettPanZoom is a special effect that does not transition to another image, but rather zooms in/out or pans to a position within the current image

iettShreddedFromLeft

iettCubeRotateFromTop2

Category | Transition | Description | Notes

General

 iettCrossDissolve Cross Fade
iettFadeOutIn | Fade Out then In
iettPageFlip | Page Flip
iettPageFlip2 | 3D Page Flip | May be CPU intensive
iettReversePageFlip | Reverse Page Flip
iettReversePageFlip2 | 3D Reverse Page Flip | May be CPU intensive
iettCubeRotateFromLeft | Cube Rotate from Left
iettCubeRotateFromRight | Cube Rotate from Right
iettCubeRotateFromTop | Cube Rotate from Top
iettCubeRotateFromBottom | Cube Rotate from Bottom
iettCubeRotateFromLeft2 | 3D Cube Rotate from Left | May be CPU intensive
iettCubeRotateFromRight2 | 3D Cube Rotate from Right | May be CPU intensive
iettCubeRotateFromTop2 | 3D Cube Rotate from Top | May be CPU intensive
iettCubeRotateFromBottom2 | 3D Cube Rotate from Bottom | May be CPU intensive

Wipes

 iettLeftRight1 Wipe Left to Right
iettLeftRight2 | Wipe Left to Right 2
iettRightLeft1 | Wipe Right to Left
iettRightLeft2 | Wipe Right to Left 2
iettUpDown1 | Wipe Top to Bottom
iettUpDown2 | Wipe Top to Bottom 2
iettDownUp1 | Wipe Bottom to Top
iettDownUp2 | Wipe Bottom to Top 2
iettCenter1 | Wipe Out from Center
iettCenter2 | Wipe In to Center
iettWipeFromTopLeft | Wipe from Top Left
iettWipeFromTopRight | Wipe from Top Right
iettWipeFromBottomLeft | Wipe from Bottom Left
iettWipeFromBottomRight | Wipe from Bottom Right
iettWipeInFromTopAndBottom | Wipe in from Top and Bottom
iettWipeFromHorizon | Wipe from Horizon
iettWipeInFromSides | Wipe in from Sides
iettWipeOutFromVerticalCenter | Wipe out from Vertical Center
iettQuartersWipeInToCenter | Quarters Wipe in to Center

Special Wipes

 iettUnrollFromLeft Unroll from Left
iettUnrollFromRight | Unroll from Right
iettUnrollFromTop | Unroll from Top
iettUnrollFromBottom | Unroll from Bottom
iettSpeckledWipeFromLeft | Speckled Wipe from Left
iettSpeckledWipeFromRight | Speckled Wipe from Right
iettSpeckledWipeFromTop | Speckled Wipe from Top
iettSpeckledWipeFromBottom | Speckled Wipe from Bottom
iettSoftWipeFromLeft | Soft Wipe from Left
iettSoftWipeFromRight | Soft Wipe from Right
iettSoftWipeFromTop | Soft Wipe from Top
iettSoftWipeFromBottom | Soft Wipe from Bottom
iettPacmanFromLeft | Pacman Devours from Left/C>
iettPacmanFromRight | Pacman Devours from Right
iettPacman3Row | Pacman Devours Three Rows
iettPacman4Row | Pacman Devours Four Rows
iettPacman2SimRow | Two Simultaneous Rows of Pacman
iettPacman4SimRow | Four Simultaneous Rows of Pacman
iettPacman6SimRow | Six Simultaneous Rows of Pacman

Curved Wipes

 iettCurvedWipeFromLeft Curved Wipe from Left
iettCurvedWipeFromRight | Curved Wipe from Right
iettCurvedWipeFromTop | Curved Wipe from Top
iettCurvedWipeFromBottom | Curved Wipe from Bottom
iettCurvedWipeFromTopLeft | Curved Wipe from Top Left
iettCurvedWipeFromTopRight | Curved Wipe from Top Right
iettCurvedWipeFromBottomLeft | Curved Wipe from Bottom Left
iettCurvedWipeFromBottomRight | Curved Wipe from Bottom Right

Angled Wipes

 iettWipeDiagonalFromTopLeft Wipe diagonal from Top Left
iettWipeDiagonalFromTopRight | Wipe diagonal from Top Right
iettWipeDiagonalFromBottomLeft | Wipe diagonal from Bottom Left
iettWipeDiagonalFromBottomRight | Wipe diagonal from Bottom Right
iettArrowWipeFromLeft | Arrow Wipe from Left
iettArrowWipeFromRight | Arrow Wipe from Right
iettArrowWipeFromTop | Arrow Wipe from Top
iettArrowWipeFromBottom | Arrow Wipe from Bottom
iettHorizontalBowTieWipe | Horizontal Bow Tie Wipe
iettVerticalBowTieWipe | Vertical Bow Tie Wipe
iettZigzagWipeFromHorizon | Zigzag Wipe from Horizon
iettZigzagWipeFromVerticalCenter | Zigzag Wipe from Vertical Center
iettTriangularWipe | Triangular Wipe
iettZigzagWipeToHorizon | Zigzag Wipe To Horizon
iettZigzagWipeToVerticalCenter | Zigzag Wipe To Vertical Center
iettAngledTwistIn | Twist In
iettAngledTwistOut | Twist Out
iettMultipleAngledTwistIn | Multiple Twist In
iettMultipleAngledTwistOut | Multiple Twist Out

Center Wipes

 iettCircularWipeFromCenter Circular Wipe from Center
iettCircularWipeToCenter | Circular Wipe to Center
iettDiagonalCrossFromCenter | Diagonal Cross from Center
iettDiagonalCrossToCenter | Diagonal Cross to Center
iettDiamondWipeFromCenter | Diamond Wipe from Center
iettDiamondWipeToCenter | Diamond Wipe to Center
iettHeartWipeOut | Heart Wipe from Center
iettHeartWipeIn | Heart Wipe to Center
iettStar5WipeOut | 5 Pointed Star Wipe from Center
iettStar5WipeIn | 5 Pointed Star Wipe to Center
iettStar6WipeOut | 6 Pointed Star Wipe from Center (or alternative shape)
iettStar6WipeIn | 6 Pointed Star Wipe to Center (or alternative shape)
iettExplosionWipeOut | Explosion Wipe from Center
iettExplosionWipeIn | Explosion Wipe to Center
iettCrossWipeOut | Cross Wipe from Center
iettCrossWipeIn | Cross Wipe to Center

In and Outs

 iettDiagonalBoxWipe Diamond Wipe In and Out
iettHeartWipeInAndOut | Heart Wipe In and Out
iettStar5WipeInAndOut | 5 Pointed Star Wipe In and Out
iettStar6WipeInAndOut | 6 Pointed Star Wipe In and Out (or alternative shape)
iettExplosionWipeInAndOut | Explosion Wipe In and Out

Shreds

 iettShreddedFromLeft Shredded from Left
iettShreddedFromRight | Shredded from Right
iettShreddedFromTop | Shredded from Top
iettShreddedFromBottom | Shredded from Bottom
iettShreddedFromTopAndLeft | Shredded from Top and Left
iettShreddedFromTopAndRight | Shredded from Top and Right
iettShreddedFromBottomAndLeft | Shredded from Bottom and Left
iettShreddedFromBottomAndRight | Shredded from Bottom and Right
iettShreddedFromHorizonAndLeft | Shredded from Horizon and Left
iettShreddedFromHorizonAndRight | Shredded from Horizon and Right
iettShreddedFromTopAndVerticalCenter | Shredded from Top and Vertical Center
iettShreddedFromBottomAndVerticalCenter | Shredded from Bottom and Vertical Center
iettShreddedFromCenter | Shredded from Center
iettShreddedToCenter | Shredded to Center
iettShreddedInToHorizon | Shredded in to Horizon
iettShreddedInToVerticalCenter | Shredded in to Vertical Center
iettShreddedOutFromHorizon | Shredded out from Horizon
iettShreddedOutFromVerticalCenter | Shredded out from Vertical Center

Bars

 iettBarsInFromLeft Bars in from Left
iettBarsInFromRight | Bars in from Right
iettBarsFromTop | Bars from Top
iettBarsFromBottom | Bars from Bottom
iettBarsLeftThenRight | Bars Left then Right
iettBarsRightThenLeft | Bars Right then Left
iettBarsTopThenBottom | Bars Top then Bottom
iettBarsBottomThenTop | Bars Bottom then Top
iettBarsFromBothSides | Bars from both Sides
iettBarsFromTopAndBottom | Bars from Top and Bottom
iettCrisscrossWipeFromTopLeft | Crisscross Wipe from Top Left
iettCrisscrossWipeFromTopRight | Crisscross Wipe from Top Right
iettCrisscrossWipeFromBottomLeft | Crisscross Wipe from Bottom Left
iettCrisscrossWipeFromBottomRight | Crisscross Wipe from Bottom Right
iettCrisscrossWipeBounceFromTopLeft | Crisscross Wipe Bounce from Top Left
iettCrisscrossWipeBounceFromTopRight | Crisscross Wipe Bounce from Top Right
iettCrisscrossWipeBounceFromBottomLeft | Crisscross Wipe Bounce from Bottom Left
iettCrisscrossWipeBounceFromBottomRight | Crisscross Wipe Bounce from Bottom Right
iettCrisscrossWipeFromLeftRightAndTop | Crisscross Wipe from Left Right and Top
iettCrisscrossWipeFromLeftRightAndBottom | Crisscross Wipe from Left Right and Bottom
iettCrisscrossWipeFromLeftTopAndBottom | Crisscross Wipe from Left Top and Bottom
iettCrisscrossWipeFromTopLeftRightAndBottom | Crisscross Wipe from Top Left Right and Bottom
iettCrisscrossWipeFromRightTopAndBottom | Crisscross Wipe from Right Top and Bottom
iettCrisscrossWipeFromBottomLeftTopRight | Crisscross Wipe from Bottom Left Top Right
iettRectanglesFromTheLeft | Random Bars from the Left
iettRectanglesFromTheRight | Random Bars from the Right
iettRectanglesFromTheTop | Random Bars from the Top
iettRectanglesFromTheBottom | Random Bars from the Bottom

Pushes

 iettMoveLeftRight1 Push Left to Right
iettMoveRightLeft1 | Push Right to Left
iettMoveUpDown1 | Push Top to Bottom
iettMoveDownUp1 | Push Bottom to Top
iettPushLeftAndSlideOut | Push Left and Slide out
iettPushRightAndSlideOut | Push Right and Slide out
iettPushUpAndSlideOut | Push up and Slide out
iettPushDownAndSlideOut | Push down and Slide out
iettPushAndSqueezeLeft | Push and Squeeze Left
iettPushAndSqueezeRight | Push and Squeeze Right
iettPushAndSqueezeUp | Push and Squeeze up
iettPushAndSqueezeDown | Push and Squeeze down

Slides

 iettFromUpLeft Slide from Top Left
iettFromUpRight | Slide from Top Right
iettFromBottomLeft | Slide from Bottom Left
iettFromBottomRight | Slide from Bottom Right
iettMoveLeftRight2 | Slide Out Left to Right
iettMoveRightLeft2 | Slide Out Right to Left
iettMoveUpDown2 | Slide Out Top to Bottom
iettMoveDownUp2 | Slide Out Bottom to Top
iettSlideInFromLeft | Slide in from Left
iettSlideInFromRight | Slide in from Right
iettSlideInFromTop | Slide in from Top
iettSlideInFromBottom | Slide in from Bottom
iettQuartersSlideInToCenter | Quarters Slide in to Center

Shrinks

 iettShrinkToTopLeft Shrink to Top Left
iettShrinkToTopRight | Shrink to Top Right
iettShrinkToBottomLeft | Shrink to Bottom Left
iettShrinkToBottomRight | Shrink to Bottom Right
iettShrinkToCenter | Shrink to Center

Expands

 iettCenterZoom1 Expand Out from Center
iettCenterZoom2 | Expand In to Center
iettExpandFromLeft | Expand from Left
iettExpandFromRight | Expand from Right
iettExpandFromTop | Expand from Top
iettExpandFromBottom | Expand from Bottom
iettExpandFromTopLeft | Expand from Top Left
iettExpandFromTopRight | Expand from Top Right
iettExpandFromBottomLeft | Expand from Bottom Left
iettExpandFromBottomRight | Expand from Bottom Right
iettExpandInFromLeft | Expand in from Left
iettExpandInFromRight | Expand in from Right
iettExpandInFromTop | Expand in from Top
iettExpandInFromBottom | Expand in from Bottom
iettExpandInToVerticalCenter | Expand in to Vertical Center
iettExpandInToHorizon | Expand in to Horizon
iettExpandInFromSides | Expand in from Sides
iettExpandInFromTopAndBottom | Expand in from Top and Bottom
iettExpandOutFromHorizon | Expand out from Horizon
iettExpandOutFromVerticalCenter | Expand out from Vertical Center
iettQuartersExpandToCenter | Quarters Expand to Center

Multi-Expanders

 iettExpandingRectangles Expanding Rectangles
iettExpandingTriangles | Expanding Triangles
iettExpandingCircles | Expanding Circles
iettExpandingDiamonds | Expanding Diamonds
iettExpandingHearts | Expanding Hearts
iettExpandingStar5 | Expanding 5 Pointed Stars
iettExpandingStar6 | Expanding 6 Pointed Stars (or alternative shape)
iettExpandingExplosions | Expanding Explosions
iettExpandingLightningBolts | Expanding Lightning Bolts

Randoms

 iettRandomPoints Random Points
iettRandomBoxes | Random Boxes
iettRandomBigBoxes | Random Big Boxes
iettRandomHearts | Random Hearts
iettRandomStar5s | Random 5 Pointed Stars
iettRandomStar6s | Random 6 Pointed Stars (or alternative shape)
iettRandomExplosions | Random Explosions
iettRandomPuzzlePieces | Random Puzzle Pieces

Rotates

 iettDiagonalSweepClockwise Diagonal Sweep Clockwise
iettDiagonalSweepCounterClockwise | Diagonal Sweep Counter-Clockwise
iettSweepClockwise | Sweep Clockwise
iettSweepCounterClockwise | Sweep Counter-Clockwise
iettFullSweepClockwise | Full Sweep Clockwise
iettExpandingSweepClockwise | Expanding Sweep Clockwise
iettStarburstClockwiseFromCenter | Starburst Clockwise
iettStarburstCounterClockwiseFromCenter | Starburst Counter-Clockwise
iettRotationalRectangle | Rotational Rectangle Clockwise
iettRotationalRectangleCounterClockwise | Rotational Rectangle Counter-Clockwise
iettRotationalStar | Rotational Star Clockwise
iettRotationalStarCounterClockwise | Rotational Star Counter-Clockwise
iettSpirallingRectangleClockwise | Spiralling Rectangle Clockwise
iettSpirallingRectangleCounterClockwise | Spiralling Rectangle Counter-Clockwise

Word Effects

 iettRandomBoxesWithWord Random Boxes with Word Specify word properties using IEGlobalSettings().WordTransitionParams. Full word is always shown; does not cycle.
iettRandomWord | Random Letters of Word | Specify word properties using IEGlobalSettings().WordTransitionParams
iettExpandingWord | Expanding Letters of Word | Specify word properties using IEGlobalSettings().WordTransitionParams
iettWordWipeOut | Word Wipe from Center | Specify word properties using IEGlobalSettings().WordTransitionParams
iettWordWipeIn | Word Wipe to Center | Specify word properties using IEGlobalSettings().WordTransitionParams
iettWordWipeInAndOut | Word Wipe In and Out | Specify word properties using IEGlobalSettings().WordTransitionParams
iettWordHalfSweep | Half Sweep with Word | Specify word properties using IEGlobalSettings().WordTransitionParams
iettWordFullSweep | Full Sweep with Word | Specify word properties using IEGlobalSettings().WordTransitionParams
iettWordFullExpandingSweep | Expanding Sweep with Word | Specify word properties using IEGlobalSettings().WordTransitionParams

Other

 iettBuildUpFromLeft Build up from Left
iettBuildUpFromRight | Build up from Right
iettBuildUpFromTop | Build up from Top
iettBuildUpFromBottom | Build up from Bottom
iettHorizontalBlinds | Horizontal Blinds
iettVerticalBlinds | Vertical Blinds
iettUnevenBlindsFromLeft | Uneven Blinds from Left
iettUnevenBlindsFromRight | Uneven Blinds from Right
iettUnevenBlindsFromTop | Uneven Blinds from Top
iettUnevenBlindsFromBottom | Uneven Blinds from Bottom

Legacy

 iettFadeOut Fade Out
iettFadeIn | Fade In

Special

 iettPanZoom Pan and Zoom Special usage: Must specify Start and End points


TIETransparentStyle

TIETransparentStyle

Declaration

TIETransparentStyle = (ietsCheckers, ietsRedLine, ietsCross);


TIETryImageStream

TIETryImageStream

Declaration

TIETryImageStream = function(Stream: TStream; TryingFormat: TIOFileType): boolean;

Description

Return True if Stream matches our custom file type.


TIETVStandard

TIETVStandard

Declaration

TIETVStandard = (ievsNONE, ievsNTSC_M, ievsNTSC_M_J, ievsNTSC_433, ievsPAL_B, ievsPAL_D, ievsPAL_H, ievsPAL_I, ievsPAL_M, ievsPAL_N, ievsPAL_60, ievsSECAM_B, ievsSECAM_D, ievsSECAM_G, ievsSECAM_H, ievsSECAM_K, ievsSECAM_K1, ievsSECAM_L, ievsSECAM_L1, ievsPAL_N_COMBO);


TIETVStandards

TIETVStandards

Declaration

TIETVStandards = set of TIETVStandard;


TIETwainParams.AcceptedImages

TIETwainParams.AcceptedImages

Declaration

property AcceptedImages: integer;

Description

Set this capability to the number of images you are willing to transfer per session.
-2 = default scanner value
-1 = multiple images
>1 = one or more images

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.AcquireFrameBottom

TIETwainParams.AcquireFrameBottom

Declaration

property AcquireFrameBottom: double;

Description

Specifies the bottom of the rectangle to acquire measured in inches.

See Also

- AcquireFrameLeft
- AcquireFrameTop
- AcquireFrameRight

Example

// Acquires the 2,2,7,7 rectangle without display scanner dialog
ImageEnView1.IO.TwainParams.AcquireFrameTop := 2;
ImageEnView1.IO.TwainParams.AcquireFrameLeft := 2;
ImageEnView1.IO.TwainParams.AcquireFrameRight := 7;
ImageEnView1.IO.TwainParams.AcquireFrameBottom := 7;
ImageEnView1.IO.TwainParams.AcquireFrameEnabled := true;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.AcquireFrameEnabled

TIETwainParams.AcquireFrameEnabled

Declaration

property AcquireFrameEnabled: boolean;

Description

If AcquireFrameEnabled is True, it enables the properties AcquireFrameLeft, AcquireFrameRight, AcquireFrameTop and AcquireFrameBottom.

When True, some scanners don't allow the user to change the acquisition frame.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.AcquireFrameLeft

TIETwainParams.AcquireFrameLeft

Declaration

property AcquireFrameLeft: double;

Description

Specifies the left of the rectangle to acquire measured in inches.

See Also

- AcquireFrameTop
- AcquireFrameRight
- AcquireFrameBottom

Example

// Acquires the 2,2,7,7 rectangle without display scanner dialog
ImageEnView1.IO.TwainParams.AcquireFrameTop := 2;
ImageEnView1.IO.TwainParams.AcquireFrameLeft := 2;
ImageEnView1.IO.TwainParams.AcquireFrameRight := 7;
ImageEnView1.IO.TwainParams.AcquireFrameBottom := 7;
ImageEnView1.IO.TwainParams.AcquireFrameEnabled := true;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIETwainParams.AcquireFrameRight

TIETwainParams.AcquireFrameRight

Declaration

property AcquireFrameRight: double;

Description

Specifies the right side of the rectangle to acquire measured in inches.

See Also

- AcquireFrameLeft
- AcquireFrameTop
- AcquireFrameBottom

Example

// Acquires the 2,2,7,7 rectangle without display scanner dialog
ImageEnView1.IO.TwainParams.AcquireFrameTop := 2;
ImageEnView1.IO.TwainParams.AcquireFrameLeft := 2;
ImageEnView1.IO.TwainParams.AcquireFrameRight := 7;
ImageEnView1.IO.TwainParams.AcquireFrameBottom := 7;
ImageEnView1.IO.TwainParams.AcquireFrameEnabled := true;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIETwainParams.AcquireFrameTop

TIETwainParams.AcquireFrameTop

Declaration

property AcquireFrameTop: double;

Description

Specifies the top of the rectangle to acquire measured in inches.

See Also

- AcquireFrameLeft
- AcquireFrameRight
- AcquireFrameBottom

Example

// Acquires the 2,2,7,7 rectangle without display scanner dialog
ImageEnView1.IO.TwainParams.AcquireFrameTop := 2;
ImageEnView1.IO.TwainParams.AcquireFrameLeft := 2;
ImageEnView1.IO.TwainParams.AcquireFrameRight := 7;
ImageEnView1.IO.TwainParams.AcquireFrameBottom := 7;
ImageEnView1.IO.TwainParams.AcquireFrameEnabled := true;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIETwainParams.AppManufacturer

TIETwainParams.AppManufacturer

Declaration

property AppManufacturer: AnsiString;

Description

These properties specify the application information communicated to the Twain scanner interface.


TIETwainParams.AppProductfamily

TIETwainParams.AppProductfamily

Declaration

property AppProductfamily: AnsiString;

Description

These properties specify the application information communicated to the Twain scanner interface.


TIETwainParams.AppProductName

TIETwainParams.AppProductName

Declaration

property AppProductName: AnsiString;

Description

These properties specify the application information communicated to the Twain scanner interface.


TIETwainParams.AppVersionInfo

TIETwainParams.AppVersionInfo

Declaration

property AppVersionInfo: AnsiString;

Description

These properties specify the application information communicated to the Twain scanner interface.


TIETwainParams.Assign

TIETwainParams.Assign

Declaration

procedure Assign(Source: TIETwainParams);

Description

Applications can Assign Twain parameters between TImageEnIO and TImageEnMIO components.

Example

ImageEnView1.IO.TwainParams.Assign( ImageEnView2.IO.TwainParams );

TImageEnMView1.MIO.TwainParams.Assign( ImageEnMView2.MIO.TwainParams );


TIETwainParams.AutoBorderDetection

TIETwainParams.AutoBorderDetection

Declaration

property AutoBorderDetection: boolean;

Description

Turns automatic border detection on and off.


TIETwainParams.AutoBright

TIETwainParams.AutoBright

Declaration

property AutoBright: boolean;

Description

TRUE enables and FALSE disables the Source's Auto-brightness function (if any).


TIETwainParams.AutoDeskew

TIETwainParams.AutoDeskew

Declaration

property AutoDeskew: boolean;

Description

Turns automatic deskew correction on and off.


TIETwainParams.AutoDiscardBlankPages

TIETwainParams.AutoDiscardBlankPages

Declaration

property AutoDiscardBlankPages: integer;

Description

Use this capability to have the scanner discard blank images.
Applications never see these images during the scanning session.
Allowed values:
Value | Description
Twain_AutoDiscard_Disable (-2) | All images will be delivered to the application even if they are blank
Twain_AutoDiscard_DiscardBlank (-1) | The scanner will decide if an image is blank or not and discard as appropriate
>=0 | The scanner will use the value as the byte size cutoff point to identify which images to discard.If the image size is less than or equal to this value, then it will be discarded.If the image size is greater than this value, then it will be transferred to the application.


TIETwainParams.AutoFeed

TIETwainParams.AutoFeed

Declaration

property AutoFeed: boolean;

Description

If AutoFeed is true, the scanner will automatically feed the next page from the document feeder.


TIETwainParams.AutoRotate

TIETwainParams.AutoRotate

Declaration

property AutoRotate: boolean;

Description

When true this capability depends on intelligent features within the Source to automatically rotate the image to the correct position.


TIETwainParams.AutoScan

TIETwainParams.AutoScan

Declaration

property AutoScan: boolean;

Description

Enables/Disables auto scan.
This capability is intended to boost the performance of a Source.
The fundamental assumption behind AutoScan is that the device is able to capture the number of images indicated by the value of AcceptedImages without waiting for the Application to request the image transfers.


TIETwainParams.BitDepth

TIETwainParams.BitDepth

Declaration

property BitDepth: TIEIntegerList;

Description

Specifies the bit depth (bits per channel) of the image to scan.

Example

// acquire 48 bit (RGB, 16 bit per channel) native pixel format image
ImageEnView1.LegacyBitmap := false;
ImageEnView1.IO.NativePixelFormat := true;
ImageEnView1.IO.TwainParams.BitDepth.CurrentValue := 16;
ImageEnView1.IO.Acquire;


TIETwainParams.Brightness

TIETwainParams.Brightness

Declaration

property Brightness: TIEDoubleList;

Description

Brightness value. Allowed range is -1000 to +1000.

Allowed values can be assigned to Brightness.CurrentValue property. To see which values your scanner supports consult the Brightness.Items[] array, or Brightness.RangeMin, Brightness.RangeMax and Brightness.RangeStep.
You can also limit scanner user interface allowed values removing some Brightness.Items[] items or changing Brightness.RangeMin, Brightness.RangeMax and Brightness.RangeStep.


TIETwainParams.BufferedTransfer

TIETwainParams.BufferedTransfer

Declaration

property BufferedTransfer: boolean;

Description

Set the BufferedTransfer property to False if you have problems acquiring an image.
You never use this property under normal circumstances.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.CapabilitiesValid

TIETwainParams.CapabilitiesValid

Declaration

property CapabilitiesValid: boolean;

Description

If true all properties are updated from scanner, otherwise not and you should call GetFromScanner to update them.


TIETwainParams.CompatibilityMode

TIETwainParams.CompatibilityMode

Declaration

property CompatibilityMode: boolean;

Description

CompatibilityMode disables capability setting and reading (some scanner may crash when you set/get capabilities).
Set this property to true only if you have problems with a specific scanner.


TIETwainParams.Contrast

TIETwainParams.Contrast

Declaration

property Contrast: TIEDoubleList;

Description

Contrast value. Allowed range is -1000 to +1000.

Allowed values can be assigned to Contrast.CurrentValue property. To see which values your scanner supports consult the Contrast.Items[] array, or Contrast.RangeMin, Contrast.RangeMax and Contrast.RangeStep.
You can also limit scanner user interface allowed values by removing some Contrast.Items[] items or changing Contrast.RangeMin, Contrast.RangeMax or Contrast.RangeStep.


TIETwainParams.Country

TIETwainParams.Country

Declaration

property Country: word;

Description

Specifies the primary country where your application is intended to be distributed.

Default: TWLG_USA

See also: Twain country constants.


TIETwainParams.Create

TIETwainParams.Create

Declaration

constructor Create(Owner: TComponent);


TIETwainParams.DeviceOnline

TIETwainParams.DeviceOnline

Declaration

property DeviceOnline: boolean;

Description

If True, the physical hardware (e.g., scanner, digital camera, image database, etc.) that represents the image source is attached, powered on, and communicating.

Warning!! Several (almost all) devices still return "true" when they are off or disconnected.


TIETwainParams.DuplexEnabled

TIETwainParams.DuplexEnabled

Declaration

property DuplexEnabled: boolean;

Description

If DuplexEnabled is True, the scanner scans both sides of a paper; otherwise, the scanner will scan only one side.
Use this property only within TImageEnMIO component to enable/disable duplex mode.

Default: False (Duplex is not enabled)


TIETwainParams.DuplexSupported

TIETwainParams.DuplexSupported

Declaration

property DuplexSupported: boolean;

Description

If DuplexSupported is True, the scanner can scans both sides of a paper; otherwise the scanner will scan only one side.

Example

// enables duplex if supported
If ImageEnMView1.MIO.TwainParams.DuplexSupported then
ImageEnView1.IO.TwainParams.DuplexEnabled := True;


TIETwainParams.FeederEnabled

TIETwainParams.FeederEnabled

Declaration

property FeederEnabled: boolean;

Description

FeederEnabled enables the feed loader mechanism when present.
Use this property only within TImageEnMIO component to disable the feed loader.

Example

// Acquires only one feed
ImageEnMView1.MIO.TwainParams.FeederEnabled := False;
ImageEnMView1.MIO.Acquire;


TIETwainParams.FeederLoaded

TIETwainParams.FeederLoaded

Declaration

property FeederLoaded: boolean;

Description

Use the FeederLoaded property to reflect whether or not there are documents loaded in the Source's feeder.

Example

// use of TImageEnIO (instead of TImageEnMIO) to acquire and save multi pages
while ImageEnView1.IO.TwainParams.FeederLoaded do
begin
ImageEnView1.IO.Acquire;
ImageEnView1.IO.SaveToFile('page'+inttostr(count)+'.jpg');
Inc( count );
end;


TIETwainParams.FileTransfer

TIETwainParams.FileTransfer

Declaration

property FileTransfer: boolean;

Description

If FileTransfer true, uses a file transfer to get images from the scanner (regardless of BufferedTransfer setting).
There are three ways to get an image from scanner:
1 - native transfer ( set FileTransfer=False and BufferedTransfer=False )
2 - buffered transfer ( set FileTransfer=False and BufferedTransfer=True )
3 - file transfer ( set FileTransfer=True )

FileTransfer is slow but more compatible.


TIETwainParams.Filter

TIETwainParams.Filter

Declaration

property Filter: TIETWFilter;

Description

Describes the color characteristic of the subtractive filter applied to the image data.
Specifying ietwUndefined unsets this property, while ietwNone set "none" value.

Default: ietwUndefined

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.FreeResources

TIETwainParams.FreeResources

Declaration

procedure FreeResources;

Description

ImageEn keeps the scanner driver open to improve scanning performance.

Call FreeResources to close and free the scanner driver after a call to Acquire method: this degrades performance but can improve stability.
Applications should not call FreeResources because it is executed when the application exits.


TIETwainParams.Gamma

TIETwainParams.Gamma

Declaration

property Gamma: double;

Description

Gamma is the gamma value of your scanner.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.GetDefaultSource

TIETwainParams.GetDefaultSource

Declaration

function GetDefaultSource: integer;

Description

GetDefaultSource returns the system's default Twain source.
The default ImageEn source has the index 0, but this should be different from the system's default source.
Result is -1 if no Twain sources exist on the system

Example

// set system default source as current ImageEn Twain source
ImageEnView1.IO.TwainParams.SelectedSource := ImageEnIO.TwainParams.GetDefaultSource;


TIETwainParams.GetFromScanner

TIETwainParams.GetFromScanner

Declaration

function GetFromScanner: boolean;

Description

Fills all properties with scanner parameters. Use this method to update ImageEn parameters with scanner values.

Returns False if cannot connect to the scanner.

Example

ImageEnView1.IO.GetFromScanner;
ScannerPixelType := ImageEnView1.IO.TwainParams.PixelType.CurrentValue;


TIETwainParams.Highlight

TIETwainParams.Highlight

Declaration

property Highlight: double;

Description

Specifies which value in an image should be interpreted as the lightest "highlight". All values "lighter" than this value will be clipped to this value.
-1 is the default scanner value (it means "do not change current value").
Allowed values from 0 to 255.


TIETwainParams.IsCapabilitySupported

TIETwainParams.IsCapabilitySupported

Declaration

function IsCapabilitySupported(cap: word): boolean;

Description

Returns true if the specified capability is supported by the selected device.

The following capabilities can be specified:
Const | Description | Value
ACAP_AUDIOFILEFORMAT | Audio File Format | 4609
ACAP_XFERMECH | Advanced capability transfer mechanism | 4610
CAP_ALARMS | Alarms | 4120
CAP_ALARMVOLUME | Alarm volume | 4121
CAP_AUTHOR | Author | 4096
CAP_AUTOFEED | Auto feed | 4103
CAP_AUTOMATICCAPTURE | Automatic capture | 4122
CAP_AUTOSCAN | Auto scan | 4112
CAP_BATTERYMINUTES | Battery minutes | 4146
CAP_BATTERYPERCENTAGE | Battery percentage | 4147
CAP_CAMERAENABLED | Camera enabled | 4150
CAP_CAMERAORDER | Camera order | 4151
CAP_CAMERAPREVIEWUI | Camera preview user interface | 4129
CAP_CAMERASIDE | Camera side | 4148
CAP_CAPTION | Capability caption | 4097
CAP_CLEARBUFFERS | Clear buffers | 4125
CAP_CLEARPAGE | Clear page | 4104
CAP_CUSTOMDSDATA | Custom data | 4117
CAP_DEVICEEVENT | Device event | 4130
CAP_DEVICEONLINE | Device online | 4111
CAP_DEVICETIMEDATE | Device time date | 4127
CAP_DUPLEX | Duplex | 4114
CAP_DUPLEXENABLED | Duplex enabled | 4115
CAP_ENABLEDSUIONLY | Enabled user interface only | 4116
CAP_ENDORSER | Endorser | 4118
CAP_EXTENDEDCAPS | Extended capabilities | 4102
CAP_FEEDERALIGNMENT | Feeder alignment | 4141
CAP_FEEDERENABLED | Capability feeder enabled | 4098
CAP_FEEDERLOADED | Capability feeder loaded | 4099
CAP_FEEDERORDER | Feeder order | 4142
CAP_FEEDERPOCKET | Feeder pocket | 4154
CAP_FEEDERPREP | Feeder prep | 4153
CAP_FEEDPAGE | Feed page | 4105
CAP_FILESYSTEM | File system | 4133
CAP_INDICATORS | Capability indicators | 4107
CAP_JOBCONTROL | Job control | 4119
CAP_LANGUAGE | Language | 4140
CAP_MAXBATCHBUFFERS | Max batch buffers | 4126
CAP_MICRENABLED | MICR enabled | 4152
CAP_PAGEMULTIPLEACQUIRE | Acquire multiple pages | 4131
CAP_PAPERBINDING | Paper binding | 4143
CAP_PAPERDETECTABLE | Paper detectable | 4109
CAP_PASSTHRU | Pass thru | 4145
CAP_POWERSUPPLY | Power supply | 4128
CAP_PRINTER | Printer | 4134
CAP_PRINTERENABLED | Printer enabled | 4135
CAP_PRINTERINDEX | Printer index | 4136
CAP_PRINTERMODE | Printer mode | 4137
CAP_PRINTERSTRING | Printer string | 4138
CAP_PRINTERSUFFIX | Printer suffix | 4139
CAP_REACQUIREALLOWED | Reacquire allowed | 4144
CAP_REWINDPAGE | Rewind page | 4106
CAP_SEGMENTED | Segmented | 4149
CAP_SERIALNUMBER | Serial number | 4132
CAP_SUPPORTEDCAPS | Supported capabilities | 4101
CAP_SUPPORTEDCAPSEXT | Supported extended capabilities | 4108
CAP_THUMBNAILSENABLED | Thumbnails enabled | 4113
CAP_TIMEBEFOREFIRSTCAPTURE | Time before first capture | 4123
CAP_TIMEBETWEENCAPTURES | Time between captures | 4124
CAP_TIMEDATE | Capability time date | 4100
CAP_UICONTROLLABLE | User interface controllable | 4110
CAP_XFERCOUNT | Transfer count | 1
ICAP_AUTOBRIGHT | Automatic brightness | 4352
ICAP_AUTOMATICBORDERDETECTION | Automatic border detection | 4432
ICAP_AUTOMATICDESKEW | Automatic deskew | 4433
ICAP_AUTOMATICROTATE | Automatic rotate | 4434
ICAP_AUTOSIZE | Automatic sizing | 4438
ICAP_BARCODEDETECTIONENABLED | Barcode detection enabled | 4407
ICAP_BARCODEMAXRETRIES | Barcode maximum retries | 4412
ICAP_BARCODEMAXSEARCHPRIORITIES | Barcode maximum search priorities | 4409
ICAP_BARCODESEARCHMODE | Barcode search mode | 4411
ICAP_BARCODESEARCHPRIORITIES | Barcode search priorities | 4410
ICAP_BARCODETIMEOUT | Barcode timeout | 4413
ICAP_BITDEPTH | Bit depth | 4395
ICAP_BITDEPTHREDUCTION | Bit depth reduction | 4396
ICAP_BITORDER | Bit order | 4380
ICAP_BITORDERCODES | Bit order codes | 4390
ICAP_BRIGHTNESS | Brightness | 4353
ICAP_CCITTKFACTOR | CCITTK Factor | 4381
ICAP_COMPRESSION | Compression | 256
ICAP_CONTRAST | Contrast | 4355
ICAP_CUSTHALFTONE | Custom halftone | 4356
ICAP_EXPOSURETIME | Exposure time | 4357
ICAP_EXTIMAGEINFO | Extended image info | 4399
ICAP_FEEDERTYPE | Feeder Type | 4436
ICAP_FILTER | Filter | 4358
ICAP_FLASHUSED | Flash used | 4359
ICAP_FLASHUSED2 | Flash used 2 | 4422
ICAP_FLIPROTATION | Flip rotation | 4406
ICAP_FRAMES | Frames | 4372
ICAP_GAMMA | Gamma | 4360
ICAP_HALFTONES | Halftones | 4361
ICAP_HIGHLIGHT | Highlight | 4362
ICAP_ICCPROFILE | ICC Profile | 4437
ICAP_IMAGEDATASET | Image data set | 4398
ICAP_IMAGEFILEFORMAT | Image file format | 4364
ICAP_IMAGEFILTER | Image filter | 4423
ICAP_JPEGPIXELTYPE | JPEG pixel type | 4392
ICAP_JPEGQUALITY | JPEG quality | 4435
ICAP_LAMPSTATE | Lamp state | 4365
ICAP_LIGHTPATH | Light path | 4382
ICAP_LIGHTSOURCE | Light source | 4366
ICAP_MAXFRAMES | Maximum frames | 4378
ICAP_MINIMUMHEIGHT | Minimum height | 4400
ICAP_MINIMUMWIDTH | Minimum width | 4401
ICAP_NOISEFILTER | Noise filter | 4424
ICAP_ORIENTATION | Orientation | 4368
ICAP_OVERSCAN | Over scan | 4425
ICAP_PATCHCODEDETECTIONENABLED | Patch code detection enabled | 4415
ICAP_PATCHCODEMAXRETRIES | Patch code maximum retries | 4420
ICAP_PATCHCODEMAXSEARCHPRIORITIES | Patch code maximum search priorities | 4417
ICAP_PATCHCODESEARCHMODE | Patch code search mode | 4419
ICAP_PATCHCODESEARCHPRIORITIES | Patch code search priorities | 4418
ICAP_PATCHCODETIMEOUT | Patch code timeout | 4421
ICAP_PHYSICALHEIGHT | Physical height | 4370
ICAP_PHYSICALWIDTH | Physical width | 4369
ICAP_PIXELFLAVOR | Pixel flavor | 4383
ICAP_PIXELFLAVORCODES | Pixel flavor codes | 4391
ICAP_PIXELTYPE | Capability pixel type | 257
ICAP_PLANARCHUNKY | Planar chunky | 4384
ICAP_ROTATION | Rotation | 4385
ICAP_SHADOW | Shadow | 4371
ICAP_SUPPORTEDBARCODETYPES | Supported barcode types | 4408
ICAP_SUPPORTEDPATCHCODETYPES | Supported path code types | 4416
ICAP_SUPPORTEDSIZES | Supported sizes | 4386
ICAP_THRESHOLD | Threshold | 4387
ICAP_TILES | Tiles | 4379
ICAP_TIMEFILL | Time fill | 4394
ICAP_UNDEFINEDIMAGESIZE | Undefined image size | 4397
ICAP_UNITS | Capability units | 258
ICAP_XFERMECH | Capability transfer mechanism | 259
ICAP_XNATIVERESOLUTION | X coordinate native resolution | 4374
ICAP_XRESOLUTION | X resolution | 4376
ICAP_XSCALING | X scaling | 4388
ICAP_YNATIVERESOLUTION | Y coordinate native resolution | 4375
ICAP_YRESOLUTION | Y resolution | 4377
ICAP_YSCALING | Y scaling | 4389
ICAP_ZOOMFACTOR | Zoom factor | 4414
ICAP_AUTODISCARDBLANKPAGES | Automatic discard of blank pages | 4404

Example

ImageEnMView1.MIO.SelectAcquireSource([ieaTwain]);
if ImageEnMView1.MIO.TwainParams.IsCapabilitySupported( CAP_ALARMVOLUME ) then
showmessage('CAP_ALARMVOLUME is supported')
else
showmessage('CAP_ALARMVOLUME is Not supported');


TIETwainParams.Language

TIETwainParams.Language

Declaration

property Language: word;

Description

Specifies the primary language for the scanner dialogs.

Default: TWLG_USERLOCALE

See also: Twain language constants.


TIETwainParams.LastError

TIETwainParams.LastError

Declaration

LastError: integer;

Description

LastError returns the last error which occurred on scanning.

Allowed values (defined in ietwain unit) are:

TWCC_SUCCESS = 0; // It worked!
TWCC_BUMMER = 1; // Failure due to unknown causes
TWCC_LOWMEMORY = 2; // Not enough memory to perform operation
TWCC_NODS = 3; // No Data Source
TWCC_MAXCONNECTIONS = 4; // DS is connected to max possible applications
TWCC_OPERATIONERROR = 5; // DS or DSM reported error, application shouldn't
TWCC_BADCAP = 6; // Unknown capability
TWCC_BADPROTOCOL = 9; // Unrecognized MSG DG DAT combination
TWCC_BADVALUE = 10; // Data parameter out of range
TWCC_SEQERROR = 11; // DG DAT MSG out of expected sequence
TWCC_BADDEST = 12; // Unknown destination Application/Source in DSM_Entry
TWCC_CAPUNSUPPORTED = 13; // Capability not supported by source
TWCC_CAPBADOPERATION = 14; // Operation not supported by capability
TWCC_CAPSEQERROR = 15; // Capability has dependancy on other capability
TWCC_DENIED = 16; // File System operation is denied (file is protected)
TWCC_FILEEXISTS = 17; // Operation failed because file already exists.
TWCC_FILENOTFOUND = 18; // File not found
TWCC_NOTEMPTY = 19; // Operation failed because directory is not empty
TWCC_PAPERJAM = 20; // The feeder is jammed
TWCC_PAPERDOUBLEFEED = 21; // The feeder detected multiple pages
TWCC_FILEWRITEERROR = 22; // Error writing the file (meant for things like disk full conditions)
TWCC_CHECKDEVICEONLINE = 23; // The device went offline prior to or during this operation


TIETwainParams.LastErrorStr

TIETwainParams.LastErrorStr

Declaration

LastErrorStr: AnsiString;

Description

LastErrorStr returns the last error which occurred on scanning as a string (See also: LastError).


TIETwainParams.LogFile

TIETwainParams.LogFile

Declaration

property LogFile: string;

Description

LogFile specifies the file name that will contain the log of the communication between ImageEn and the scanner driver.
Set this property before use scanner related methods or properties.

Example

ImageEnView.IO.TwainParams.LogFile := 'C:\twainlog.txt';


TIETwainParams.Orientation

TIETwainParams.Orientation

Declaration

property Orientation: TIEIntegerList;

Description

Orientation defines the orientation of the output image. Not all scanners support this capability.
Valid values are:
Value | Description
Twain_Orientation_NoRotate (0) | No rotation (Portrait)
Twain_Orientation_Rotate90 (1) | Rotate 90°
Twain_Orientation_Rotate180 (2) | Rotate 180°
Twain_Orientation_Rotate270 (3) | Rotate 270° (Landscape)

Note: Rotation direction is clockwise

The above values can be assigned to the Orientation.CurrentValue property.
To know which values your scanner supports, consult the Orientation.Items[] array.

Example

// Acquire image in landscape orientation (if supported)
ImageEnView1.IO.TwainParams.Orientation.CurrentValue := 3;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

// As above, but control if landscape is supported
if ImageEnView1.IO.TwainParams.Orientation.IndexOf(3)=3 then
begin
ImageEnView1.IO.TwainParams.Orientation.CurrentValue := 3;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;
end
else
ShowMessage('landscape isn't supported');


TIETwainParams.PaperDetectable

TIETwainParams.PaperDetectable

Declaration

property PaperDetectable: boolean;

Description

If PaperDetectable is True, the scanner is able to detect paper.


TIETwainParams.PhysicalHeight

TIETwainParams.PhysicalHeight

Declaration

property PhysicalHeight: double;

Description

PhysicalHeight is the maximum physical height (Y-axis) the scanner can acquire (measured in inches).

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.PhysicalWidth

TIETwainParams.PhysicalWidth

Declaration

property PhysicalWidth: double;

Description

PhysicalWidth is the maximum physical width (X-axis) the scanner can acquire (measured in inches).

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.PixelType

TIETwainParams.PixelType

Declaration

property PixelType: TIEIntegerList;

Description

PixelType is the type of pixel data that a scanner is capable of acquiring.
Valid values are:

Value | Description
Twain_PixelType_BW (0) | Black & white (1 bit)
Twain_PixelType_Grayscale(1) | Gray scale (8 bit)
Twain_PixelType_FullRGB (2) | Full RGB (24 bit)
Twain_PixelType_Palette (3) | Palette (ImageEn can't support this)
Twain_PixelType_CMY (4) | CMY (ImageEn can't support this)
Twain_PixelType_CMYK (5) | CMYK (ImageEn can't support this)
Twain_PixelType_YUV (6) | YUV (ImageEn can't support this)
Twain_PixelType_YUVK (7) | YUVK (ImageEn can't support this)
Twain_PixelType_CIEXYZ (8) | CIEXYZ (ImageEn can't support this)

Above values can be assigned to PixelType.CurrentValue property. To see which values your scanner supports, consult the PixelType.Items[] array.
You can also limit scanner user interface allowed values by removing some PixelTtype.Items[] items.

Example

// Acquires a black/white (1bit) image
ImageEnView1.IO.TwainParams.PixelType.CurrentValue:= Twain_PixelType_BW;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

// Acquires a gray scale (8bit) image
ImageEnView1.IO.TwainParams.PixelType.CurrentValue := Twain_PixelType_Grayscale;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

// Acquires a full RGB (24bit) image
ImageEnView1.IO.TwainParams.PixelType.CurrentValue := Twain_PixelType_FullRGB;
ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;

// Show standard scanner user interface, but allow only black/white image acquisition
ImageEnView1.IO.TwainParams.PixelType.Clear;
ImageEnView1.IO.TwainParams.PixelType.Add(Twain_PixelType_BW);
ImageEnView1.IO.Acquire;


TIETwainParams.ProgressIndicators

TIETwainParams.ProgressIndicators

Declaration

property ProgressIndicators: boolean;

Description

If ProgressIndicators is True, the scanner will display a progress indicator during acquisition and transfer, regardless of whether the scanner user interface is active.
You can use OnProgress event to display your custom progress indicator.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.Rotation

TIETwainParams.Rotation

Declaration

property Rotation: TIEDoubleList;

Description

Specifies how much the Source can/should rotate the scanned image data prior to transfer. Allowed values are in the range: -360..+360 degrees.
Note: Rotation direction is clockwise

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.SelectedSource

TIETwainParams.SelectedSource

Declaration

property SelectedSource: integer;

Description

SelectedSource is an index of SourceName[] list, and defines the currently selected scanner (source).
This is an alternative method to select a scanner without calling the SelectAcquireSource method.

Default: 0 (first scanner)

Example

// Select the second scanner
ImageEnView1.IO.TwainParams.SelectedSource := 1;

// OR Select scanner by name
ImageEnView1.IO.TwainParams.SelectSourceByName('CanoScan FB620');

// OR Select scanner with standard dialog
ImageEnView1.IO.SelectAcquireSource;

// THEN Acquire
ImageEnView1.IO.Acquire;


TIETwainParams.SelectSourceByName

TIETwainParams.SelectSourceByName

Declaration

function SelectSourceByName(const sn: AnsiString): boolean;

Description

SelectSourceByName selects the first device that matches left name string with sn.
Returns true if device is found.
The list of names is contained in SourceName[] list.

Example

// Select the second scanner
ImageEnView1.IO.TwainParams.SelectedSource := 1;

// OR Select scanner by name
ImageEnView1.IO.TwainParams.SelectSourceByName('CanoScan FB620');

// OR Select scanner with standard dialog
ImageEnView1.IO.SelectAcquireSource;

// THEN Acquire
ImageEnView1.IO.Acquire;


TIETwainParams.SetDefaultParams

TIETwainParams.SetDefaultParams

Declaration

procedure SetDefaultParams;

Description

Restores the Twain settings their default. You can also use this method to refresh the list of available scanners

Example

// Force detection of available devices
ImageEnView1.IO.TwainParams.SetDefaultParams();

// Fill ListBox1 with all scanner on the system
for q := 0 to ImageEnView1.IO.TwainParams.SourceCount - 1 do
ListBox1.Items.Add( ImageEnView1.IO.TwainParams.SourceName[q] );


TIETwainParams.Shadow

TIETwainParams.Shadow

Declaration

property Shadow: double;

Description

Specifies which value in an image should be interpreted as the darkest "shadow". All values "darker" than this value will be clipped to this value.
-1 is the default scanner value (it means "do not change current value").
Allowed values from 0 to 255.


TIETwainParams.ShowSettingsOnly

TIETwainParams.ShowSettingsOnly

Declaration

property ShowSettingsOnly: boolean;

Description

If ShowSettingsOnly is True the scanner driver will show settings dialog, without acquire the image.
You could use SourceSettings to read scanner settings.

Subsequent calls to Acquire will return True if user presses OK (or Save), False otherwise.

Demo

Demos\ImageAcquisition\TwainStore\TwainStore.dpr

Example

// first session: show scanner dialog only to set scanner settings
ImageEnView1.IO.TwainParams.ShowSettingsOnly := true;
ImageEnView1.IO.Acquire;
ImageEnView1.IO.TwainParams.SourceSettings.SaveToFile('mysettings.dat');

// another session: use saved settings
ImageEnView1.IO.TwainParams.ShowSettingsOnly := false;
ImageEnView1.IO.TwainParams.VisibleDialog := false;
ImageEnView1.IO.TwainParams.SourceSettings.LoadFromFile('mysettings.dat');
ImageEnView1.IO.Acquire;


TIETwainParams.SourceCount

TIETwainParams.SourceCount

Declaration

property SourceCount: integer;

Description

SourceCount is the count of the installed scanners. It also defines the length of the SourceName[] list.

Read-only

Example

// Fills the ListBox1 with all scanner names installed on the system
for q := 0 to ImageEnView1.IO.TwainParams.SourceCount-1 do
ListBox1.Items.Add( ImageEnView1.IO.TwainParams.SourceName[q] );


TIETwainParams.SourceName

TIETwainParams.SourceName

Declaration

property SourceName[index]: AnsiString;

Description

SourceName is the name of the index scanner. This list has SourceCount values.

Read-only

Example

// Fills the ListBox1 with all scanner names installed on the system
for q := 0 to ImageEnView1.IO.TwainParams.SourceCount-1 do
ListBox1.Items.Add( ImageEnView1.IO.TwainParams.SourceName[q] );


TIETwainParams.SourceSettings

TIETwainParams.SourceSettings

Declaration

property SourceSettings: TMemoryStream;

Description

SourceSettings contains custom Twain source settings.
This memory stream is filled when ShowSettingsOnly is true and you call Acquire.
You can also load it from file to provide already saved settings.

Demo

Demos\ImageAcquisition\TwainStore\TwainStore.dpr

Example

// first session: show scanner dialog only to set scanner settings
ImageEnView1.IO.TwainParams.ShowSettingsOnly := true;
ImageEnView1.IO.Acquire;
ImageEnView1.IO.TwainParams.SourceSettings.SaveToFile('mysettings.dat');

// another session: use saved settings
ImageEnView1.IO.TwainParams.ShowSettingsOnly := false;
ImageEnView1.IO.TwainParams.VisibleDialog := false;
ImageEnView1.IO.TwainParams.SourceSettings.LoadFromFile('mysettings.dat');
ImageEnView1.IO.Acquire;


TIETwainParams.StandardSize

TIETwainParams.StandardSize

Declaration

property StandardSize: TIEIntegerList;

Description

StandardSize page size for devices that support fixed frame sizes.
Defined sizes match typical page sizes. This specifies the size(s) the Source can/should use to acquire image data.
Allowed values:

IETW_NONE
IETW_A4LETTER
IETW_B5LETTER
IETW_USLETTER
IETW_USLEGAL
IETW_A5
IETW_B4
IETW_B6
IETW_USLEDGER
IETW_USEXECUTIVE
IETW_A3
IETW_B3
IETW_A6
IETW_C4
IETW_C5
IETW_C6
IETW_4A0
IETW_2A0
IETW_A0
IETW_A1
IETW_A2
IETW_A4
IETW_A7
IETW_A8
IETW_A9
IETW_A10
IETW_ISOB0
IETW_ISOB1
IETW_ISOB2
IETW_ISOB3
IETW_ISOB4
IETW_ISOB5
IETW_ISOB6
IETW_ISOB7
IETW_ISOB8
IETW_ISOB9
IETW_ISOB10
IETW_JISB0
IETW_JISB1
IETW_JISB2
IETW_JISB3
IETW_JISB4
IETW_JISB5
IETW_JISB6
IETW_JISB7
IETW_JISB8
IETW_JISB9
IETW_JISB10
IETW_C0
IETW_C1
IETW_C2
IETW_C3
IETW_C7
IETW_C8
IETW_C9
IETW_C10
IETW_USSTATEMENT
IETW_BUSINESSCARD

Example

ImageEnView1.IO.TwainParams.StandardSize.CurrentValue := IETW_A4LETTER


TIETwainParams.Threshold

TIETwainParams.Threshold

Declaration

property Threshold: TIEDoubleList;

Description

Threshold specifies the dividing line between black and white. Allowed values: 0..255.


TIETwainParams.UndefinedImageSize

TIETwainParams.UndefinedImageSize

Declaration

property UndefinedImageSize: boolean;

Description

Enables support for an undefined image size scanner.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIETwainParams.Update

TIETwainParams.Update

Declaration

procedure Update;

Description

The Update method determines if the current parameters are valid.

For example, if the application assigns a combination of PixelType and YResolution unsupported by scanner, the Update method restores the PixelType and YResolution value to a value supported by the scanner.

Note: Don't use this method to refresh the list of available devices, use SetDefaultParams instead.

Example

// Try if RGB and YResolution combination is supported
ImageEnView1.IO.TwainParams.PixelType.CurrentValue := 2;
ImageEnView1.IO.TwainParams.YResolution.CurrentValue := 300;
ImageEnView1.IO.TwainParams.Update;
if (ImageEnView1.IO.TwainParams.PixelType.CurrentValue<>2) or (ImageEnView1.IO.TwainParams.YResolution.CurrentValue<>300) then
ShowMessage('error!');


TIETwainParams.UseMemoryHandle

TIETwainParams.UseMemoryHandle

Declaration

property UseMemoryHandle: boolean;

Description

Some scanner's drivers do not support memory handles, so we must pass memory pointers in order to transfer images.
You should try to set this property to False if you have problems scanning documents or images.


TIETwainParams.VisibleDialog

TIETwainParams.VisibleDialog

Declaration

property VisibleDialog: boolean;

Description

If VisibleDialog is True, the scanner user interface is enabled when Acquire method is called.

Default: True

Example

ImageEnView1.IO.TwainParams.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIETwainParams.XResolution

TIETwainParams.XResolution

Declaration

property XResolution: TIEDoubleList;

Description

XResolution is the DPI (Dots per Inch) in the X-axis.

Allowed values can be assigned to XResolution.CurrentValue property. To see which values your scanner supports, consult the XResolution.Items[] array, or XResolution.RangeMin, XResolution.RangeMax and XResolution.RangeStep.

You can also limit scanner user interface allowed values by removing some XResolution.Items[] items or changing XResolution.RangeMin, XResolution.RangeMax and XResolution.RangeStep.

Example

// Acquire with 100 DPI (if supported by scanner)
ImageEnView1.IO.XResolution.CurrentValue := 100;
ImageEnView1.IO.YResolution.CurrentValue := 100;
ImageEnView1.IO.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIETwainParams.XScaling

TIETwainParams.XScaling

Declaration

property XScaling: TIEDoubleList;

Description

XScaling is the X-axis scaling value. A value of 1.0 is equivalent to 100% scaling.

Allowed values can be assigned to XScaling.CurrentValue property. To see which values your scanner supports, consult the XScaling.Items[] array, or XScaling.RangeMin, XScaling.RangeMax and XScaling.RangeStep.

You can also limit scanner user interface allowed values by removing some XResolution.Items[] items or by changing XResolution.RangeMin, XResolution.RangeMax and XResolution.RangeStep.


TIETwainParams.YResolution

TIETwainParams.YResolution

Declaration

property YResolution: TIEDoubleList;

Description

YResolution is the DPI (Dots per Inch) in the Y-axis.

Allowed values can be assigned to YResolution.CurrentValue property. To see which values your scanner supports, consult the YResolution.Items[] array, or YResolution.RangeMin, YResolution.RangeMax and YResolution.RangeStep.

You can also limit scanner user interface allowed values by removing some YResolution.Items[] items or by changing YResolution.RangeMin, YResolution.RangeMax or YResolution.RangeStep.

Example

// Acquire with 100 DPI (if supported by scanner)
ImageEnView1.IO.XResolution.CurrentValue := 100;
ImageEnView1.IO.YResolution.CurrentValue := 100;
ImageEnView1.IO.VisibleDialog := False;
ImageEnView1.IO.Acquire;


TIETwainParams.YScaling

TIETwainParams.YScaling

Declaration

property YScaling: TIEDoubleList;

Description

YScaling is the Y-axis scaling value. A value of 1.0 is equivalent to 100% scaling.

Allowed values can be assigned to the YScaling.CurrentValue property. To see which values your scanner supports, consult the YScaling.Items[] array, or YScaling.RangeMin, YScaling.RangeMax and YScaling.RangeStep.

You can also limit scanner user interface allowed values by removing some YScaling.Items[] items or by changing YResolution.RangeMin, YResolution.RangeMax and YResolution.RangeStep.


TIETWFilter

TIETWFilter

Declaration

TIETWFilter = (ietwUndefined, ietwRed, ietwGreen, ietwBlue, ietwNone, ietwWhite, ietwCyan, ietwMagenta, ietwYellow, ietwBlack);

Note

ietwUndefined unset this property, while ietwNone set "none" value.


TIEUndoSource

TIEUndoSource

Declaration

TIEUndoSource = (ieuUnknown, ieuImage, ieuSelection, ieuObject, ieuLayer, ieuFullLayer, ieuObjectsAndLayers);

Description

Value | Description
ieuUnknown | Unexpected source
ieuImage | The bitmap (e.g. of the current layer)
ieuSelection | The selection that has been made (Note: not the content of the selection)
ieuObject | The current TImageEnVect object
ieuLayer | The properties of all layers (but not the image content)
ieuFullLayer | The properties of all layers, and the image content of the current layer
ieuObjectsAndLayers | Everything, i.e. the image and all layers and objects


TIEUnits

TIEUnits

Declaration

type TIEUnits = (ieuPIXELS, ieuINCHES, ieuKM, ieuMETERS, ieuCENTIMETERS, ieuMILLIMETERS, ieuMICRONS, ieuNANOMETERS, ieuFEET, ieuYARDS, ieuMILES);

Description

Value | Description
ieuPIXELS | Pixels
ieuINCHES | Inches
ieuKM | Kilometers
ieuMETERS | Meters
ieuCENTIMETERS | Centimeters
ieuMILLIMETERS | Millimeters
ieuMICRONS | Microns
ieuNANOMETERS | Nanometers
ieuFEET | Feet
ieuYARDS | Yards
ieuMILES | Miles


TIEUpdateReason

TIEUpdateReason

Declaration

TIEUpdateReason = (ieurDefault, ieurScrolled, ieurZoomed, ieurSelectionChanged, ieurComponentStuffChanged);


TIEUserSelectObject

TIEUserSelectObject

Declaration

TIEUserSelectObject = procedure(Sender: TObject; hobj: integer) of object;


TIEVAlign

TIEVAlign

Declaration

TIEVAlign = (ievTop, ievCenter, ievBottom);


TIEVArrowShape

TIEVArrowShape

Declaration

type TIEVArrowShape = (iesNone, iesInArrow, iesOutArrow);

Description

Value | Description
iesNone | No shape
iesInArrow | Arrow toward the center of object
iesOutArrow | Arrow toward the extremes of object


TIEVBitmap

TIEVBitmap

Declaration

type TIEVBitmap = record fBitmap: TBitmap; fRefCount: integer; end;


TIEVDragLenEndEvent

TIEVDragLenEndEvent

Declaration

TIEVDragLenEndEvent = procedure(Sender: TObject; Value: double) of object;

Description

Value is the measured length.


TIEVerticalPos

TIEVerticalPos

Declaration

TIEVerticalPos = (ievpTop, ievpCenter, ievpBottom);

Description

Value | Description
ievpTop | Image is aligned to the top
ievpCenter | Image is vertically centered
ievpBottom | Image is aligned to the bottom


TIEVideoFormat

TIEVideoFormat

Declaration

TIEVideoFormat = class
Format: AnsiString; // pixels format
BitRate: integer; // Approximate data rate of the video stream, in bits per second.
VideoStandard: AnsiString; // The analog video standard supported.
MinWidth: integer;
MinHeight: integer;
MaxWidth: integer;
MaxHeight: integer;
GranularityX: integer;
GranularityY: integer;
BitmapWidth: integer;
BitmapHeight: integer;
end;


TIEView

TIEView

Declaration

TIEView = class(TCustomControl);

Description

TIEView is the base abstract class for TImageEnView and TImageEnMView.


TIEView.GetCanvas

TIEView.GetCanvas

Declaration

function GetCanvas: TCanvas;

Description

The GetCanvas method returns the TImageEnView TCanvas object. Use it when you override Paint method to draw your object to the client area of the component.


TIEView.OnMouseEnter

TIEView.OnMouseEnter

Declaration

property OnMouseEnter: TNotifyEvent;

Description

OnMouseEnter occurs when the mouse pointer moves over the component.
Write OnMouseEnter event handler to take specific action when the user moves the mouse over the component.


TIEView.OnMouseLeave

TIEView.OnMouseLeave

Declaration

property OnMouseLeave: TNotifyEvent;

Description

OnMouseLeave occurs when the mouse pointer moves off of the component.
Write OnMouseLeave event handler to take specific action when the user moves the mouse off the component.


TIEViewerGestures

TIEViewerGestures

Description

TImageEnView supports native Windows gestures, allowing pan, zoom, layer rotation and movement.

This class contains the properties to configure the gestures.

Methods and Properties

Enabled
LayerMove
LayerRotate
Pan
Zoom

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewerGestures.Enabled

TIEViewerGestures.Enabled

Declaration

property Enabled: boolean; (Read-only)

Description

Returns true whenever at least one gesture is enabled.


TIEViewerGestures.LayerMove

TIEViewerGestures.LayerMove

Declaration

property LayerMove: TIEGestureLayerMoveOptions;

Description

Allows enabling and configuration of the Layer Movement gesture. The Windows gesture of "Pan with inertia" is performed by "dragging 1 or 2 fingers".

Note: The Pan and layer movement gestures are mutually exclusive (i.e. you cannot use both).


TIEViewerGestures.LayerRotate

TIEViewerGestures.LayerRotate

Declaration

property LayerRotate: TIEGestureLayerRotateOptions;

Description

Allows enabling and configuration of the Layer Rotation gesture. The Windows gesture of "Rotate" is performed by "moving two fingers in opposing directions or using one finger to pivot around another".


TIEViewerGestures.Pan

TIEViewerGestures.Pan

Declaration

property Pan: TIEGesturePanOptions;

Description

Allows enabling and configuration of the Pan (image scrolling) gesture. The Windows gesture to "Pan with inertia" is performed by "dragging 1 or 2 fingers".

Note: The Pan and layer movement gestures are mutually exclusive (i.e. you cannot use both).


TIEViewerGestures.Zoom

TIEViewerGestures.Zoom

Declaration

property Zoom: TIEGestureZoomOptions;

Description

Allows enabling and configuration of the Zoom gesture. The Windows gesture of "Zoom" is performed by "moving two fingers apart/towards each other".


TIEViewRulerParams

TIEViewRulerParams

Description

Specifies the properties of embedded rulers within a TImageEnView (if ShowRulers is not []).

Example

// Show rulers in TImageEnView
ImageEnView1.ShowRulers := [ rdHorizontal, rdVertical ];

// Set units to CM
ImageEnView1.RulerParams.Units := ieruCentimeters;

// Show grips as a line
ImageEnView1.RulerParams.Units := gkLine;

Methods and Properties

Display
AlignToImage
Color
Frequency
Font
HorzInverted
HorzPos
LabelFrequency
LabelPrecision
MinLabelSpacing
MeasureColor
ShowMeasure
ShowBorder
Units
VertInverted
VertPos
VertWidth

Grip Properties
ConstrainGrips
CursorGripKind
GripHeight
GripWidth
GripColorDefault
GripKindDefault
GripPenColor
HorzGripsColor
HorzGripsCount
HorzGripsKind
HorzGripsMax
HorzGripsMin
HorzGripsPos
SnapGrips
VertGripsColor
VertGripsCount
VertGripsKind
VertGripsMax
VertGripsMin
VertGripsPos

Other
ScrollRate

Events

OnRulerClick
OnRulerGripClick
OnRulerGripDblClick
OnRulerGripPosChange

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.AlignToImage

TIEViewRulerParams.AlignToImage

Declaration

property AlignToImage: Boolean;

Description

If false, the ruler will be the full width of the control (and show negative values for areas outside the image). If true, the ruler begins at the position of the image within the control.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.Color

TIEViewRulerParams.Color

Declaration

property Color: TColor;

Description

Specifies the color of the background (excluding area of the measurement block).

Note: This value may be overridden if EnableTheming is enabled.

Default: clBtnShadow

See Also

- MeasureColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.ConstrainGrips

TIEViewRulerParams.ConstrainGrips

Declaration

property ConstrainGrips: Boolean;

Description

Specifies whether grips can be dragged outside the area of the image.

Default: True

Example

// Allow dragging of grips outside the area of the image
ImageEnView1.RulerParams.ConstrainGrips := False;


TIEViewRulerParams.CursorGripKind

TIEViewRulerParams.CursorGripKind

Declaration

property CursorGripKind: TGripKind;

Description

Specifies the style for the grip that appears on the ruler showing the current position of the cursor over the image.

Default: gkLine

Note: You can access other properties of the cursor grips, using index -1 in the horizontal and vertical grip arrays.
i.e.

ImageEnView1.RulerParams.CursorGripKind := gkTriangle;

Is the same as setting:

ImageEnView1.RulerParams.HorzGripsKind[ -1 ] := gkTriangle;
ImageEnView1.RulerParams.VertGripsKind[ -1 ] := gkTriangle;

Example

// Hide the cursor grip
ImageEnView1.RulerParams.CursorGripKind := gkNone;

// Set the cursor grip to a red triangle
ImageEnView1.RulerParams.CursorGripKind := gkTriangle;
ImageEnView1.RulerParams.HorzGripsColor[ -1 ] := clRed;
ImageEnView1.RulerParams.VertGripsColor[ -1 ] := clRed;

See Also

- GripKindDefault
- GripPenColor
- GripColorDefault
- GripWidth
- GripHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.Font

TIEViewRulerParams.Font

Declaration

property Font: TFont;

Description

Specifies the font used for label text.

Note: The color of this font may be overridden if EnableTheming is enabled.

Example

// Create narrow rulers
ImageEnView1.RulerParams.Font.Size := 6;
ImageEnView1.RulerParams.HorzHeight := 20;
ImageEnView1.RulerParams.VertWidth := 20;
ImageEnView1.RulerParams.GripHeight := 10;


TIEViewRulerParams.Frequency

TIEViewRulerParams.Frequency

Declaration

property Frequency: double;

Description

Specifies the number of logical units where ticks are shown.

Use LabelFrequency to configure labels and longer tick marks.

Note: This value is set automatically when changing Units.

Default: 10

Example

ImageEnView1.LockUpdate();
ImageEnView1.RulerParams.Units := ieruInches;
ImageEnView1.RulerParams.LabelFrequency := 1/4; // Labels every quarter inch
ImageEnView1.RulerParams.Frequency := 1/32; // Ticks every 1/32 inch
ImageEnView1.UnlockUpdate();


TIEViewRulerParams.GripColorDefault

TIEViewRulerParams.GripColorDefault

Declaration

property GripColorDefault: TColor;

Description

Specifies the brush color of all grips.
This color will be assigned to any grips for which you have not set a custom color using HorzGripsColor or VertGripsColor.

Notes:
- This value may be overridden if EnableTheming is enabled.
- You can set the pen color with GripPenColor

Default: cl3DLight

Example

// Set default color of grips to clSilver, but clRed to grips > 10
ImageEnView1.RulerParams.GripColorDefault := clSilver;
for i := 10 to ImageEnView1.RulerParams.HorzGripsCount - 1 do
ImageEnView1.RulerParams.HorzGripsColor[ i ] := clRed;

See Also

- GripPenColor
- GripKindDefault
- GripWidth
- GripHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.GripHeight

TIEViewRulerParams.GripHeight

Declaration

property GripHeight: integer;

Description

Specifies the maximum height of the grip.

Default: 15

Note: The value may be automatically adjusted depending on your font size and the available height/width.

Example

// Create narrow rulers
ImageEnView1.RulerParams.Font.Size := 6;
ImageEnView1.RulerParams.HorzHeight := 20;
ImageEnView1.RulerParams.VertWidth := 20;
ImageEnView1.RulerParams.GripHeight := 10;

See Also

- GripWidth
- GripKindDefault

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.GripKindDefault

TIEViewRulerParams.GripKindDefault

Declaration

property GripKindDefault: TGripKind;

Description

Specifies the default style for all grips.
This style will be assigned to any grips for which you have not set a custom style using HorzGripsKind or VertGripsKind.

Notes:
- The size of the grip is specified by GripWidth and GripHeight.
- This property does not affect the grip for the current cursor position, use CursorGripKind instead

Default: gkTriangle

Example

// Set default style of grips to gkTriangle, but gkArrow2 to grips > 10
ImageEnView1.RulerParams.GripKindDefault := gkTriangle;
for i := 10 to ImageEnView1.RulerParams.HorzGripsCount - 1 do
ImageEnView1.RulerParams.HorzGripsKind[ i ] := gkArrow2;

See Also

- HorzGripsKind
- VertGripsKind
- CursorGripKind
- GripPenColor
- GripColorDefault
- GripWidth
- GripHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.GripPenColor

TIEViewRulerParams.GripPenColor

Declaration

property GripPenColor: TColor;

Description

Specifies the pen (border) color of all grips.

Notes:
- This value may be overridden if EnableTheming is enabled.
- The brush color is specified by GripColorDefault, or for individual grips with HorzGripsColor or VertGripsColor.

Default: clWindowFrame

See Also

- HorzGripsColor
- VertGripsColor
- GripColorDefault
- GripKindDefault
- GripWidth
- GripHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.GripsPosBase

TIEViewRulerParams.GripsPosBase

Declaration

property GripsPosBase: TIERulerPosBase;

Description

Specifies the type of values used for grip position properties: HorzGripsPos, VertGripsPos, HorzGripsMin, HorzGripsMax, VertGripsMin and VertGripsMax.

The following options are available:
Item | Description
ierbRuler | Values are ruler values (taking into account the DPI set by Units
ierbBitmap | Values are pixel positions on the currently displayed image (regardless of zoom, scrolling, etc)
ierbScreen | Values are screen values

Default: ierbBitmap

Example

// Add three grips at 25%, 50% and 75% of the image width
ImageEnView1.RulerParams.HorzGripsCount := 3;
ImageEnView1.RulerParams.GripsPosBase := ierbBitmap; // Units are relative to the bitmap
ImageEnView1.RulerParams.HorzGripsPos[ 0 ] := MulDiv( ImageEnView1.IEBitmap.Width, 1, 4 );
ImageEnView1.RulerParams.HorzGripsPos[ 1 ] := MulDiv( ImageEnView1.IEBitmap.Width, 2, 4 );
ImageEnView1.RulerParams.HorzGripsPos[ 2 ] := MulDiv( ImageEnView1.IEBitmap.Width, 3, 4 );


TIEViewRulerParams.GripWidth

TIEViewRulerParams.GripWidth

Declaration

property GripWidth: integer;

Description

Specifies the width of grip triangles in pixels.

Default: 12

See Also

- GripHeight
- GripKindDefault

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.HorzGripsColor

TIEViewRulerParams.HorzGripsColor

Declaration

property HorzGripsColor[g: integer]: TColor;

Description

Specifies the brush color of the grip, g, on the horizontal ruler.

Notes:
- The default color of all grips is set by GripColorDefault. Use HorzGripsColor to assign custom colors to specific grips.
- To access the cursor grip (showing the current position of the cursor over the image), use HorzGripsColor[ -1 ]

You can set the pen color with GripPenColor

Example

// Set default color of grips to clSilver, but clRed for grips > 10
ImageEnView1.RulerParams.GripColorDefault := clSilver;
for i := 10 to ImageEnView1.RulerParams.HorzGripsCount - 1 do
ImageEnView1.RulerParams.HorzGripsColor[ i ] := clRed;

// Set the cursor grip to a red triangle
ImageEnView1.RulerParams.HorzGripsKind[ -1 ] := gkTriangle; // Same as setting CursorGripKind
ImageEnView1.RulerParams.HorzGripsColor[ -1 ] := clRed;

See Also

- GripColorDefault
- VertGripsColor
- GripPenColor
- GripKindDefault
- GripWidth
- GripHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.HorzGripsCount

TIEViewRulerParams.HorzGripsCount

Declaration

property HorzGripsCount: integer;

Description

Specifies the number of the grips on the horizontal ruler.

Default: 0

Examples

// Clear added grips
ImageEnView1.RulerParams.HorzGripsCount := 0;

// Add twenty grips
ImageEnView1.RulerParams.HorzGripsCount := 20;

// Set default color of grips to clSilver, but clRed for grips > 10
ImageEnView1.RulerParams.GripColorDefault := clSilver;
for i := 10 to ImageEnView1.RulerParams.HorzGripsCount - 1 do
ImageEnView1.RulerParams.HorzGripsColor[ i ] := clRed;


TIEViewRulerParams.HorzGripsKind

TIEViewRulerParams.HorzGripsKind

Declaration

property HorzGripsKind[g: integer]: TGripKind;

Description

Specifies the style of the grip, g, on the horizontal ruler (triangle, arrow, etc).

Notes:
- The default style for grips is specified by GripKindDefault. Use HorzGripsKind when you want individual grips with different styles
- The style of the grip showing the current cursor position is specified by CursorGripKind
- The size of the grip is specified by GripWidth and GripHeight

Examples

// Set default style of grips to gkTriangle, but gkArrow2 to grips > 10
ImageEnView1.RulerParams.GripKindDefault := gkTriangle;
for i := 10 to ImageEnView1.RulerParams.HorzGripsCount - 1 do
ImageEnView1.RulerParams.HorzGripsKind[ i ] := gkArrow2;

See Also

- GripKindDefault
- VertGripsKind
- GripWidth
- GripHeight
- GripColorDefault
- GripPenColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.HorzGripsMax

TIEViewRulerParams.HorzGripsMax

Declaration

property HorzGripsMax[g: integer]: double;

Description

Specifies the max position of the grip, g, on the horizontal ruler.
Use GripsPosBase to determine whether to pass bitmap, ruler or screen values.

Notes:
- By default, all grips are contrained to the image area (ConstrainGrips)
- To access the cursor grip (showing the current position of the cursor over the image), use HorzGripsMax[ -1 ]


TIEViewRulerParams.HorzGripsMin

TIEViewRulerParams.HorzGripsMin

Declaration

property HorzGripsMin[g: integer]: double;

Description

Specifies the minimum position of the grip, g, on the horizontal ruler.
Use GripsPosBase to determine whether to pass bitmap, ruler or screen values.

Notes:
- By default, all grips are contrained to the image area (ConstrainGrips)
- To access the cursor grip (showing the current position of the cursor over the image), use HorzGripsMin[ -1 ]


TIEViewRulerParams.HorzGripsPos

TIEViewRulerParams.HorzGripsPos

Declaration

property HorzGripsPos[g: integer]: double;

Description

Specifies the current position of the grip, g, on the horizontal ruler.
Use GripsPosBase to determine whether to pass bitmap, ruler or screen values.

Example

// Add three grips at 25%, 50% and 75% of the image width
ImageEnView1.RulerParams.HorzGripsCount := 3;
ImageEnView1.RulerParams.GripsPosBase := ierbBitmap; // Units are relative to the bitmap
ImageEnView1.RulerParams.HorzGripsPos[ 0 ] := MulDiv( ImageEnView1.IEBitmap.Width, 1, 4 );
ImageEnView1.RulerParams.HorzGripsPos[ 1 ] := MulDiv( ImageEnView1.IEBitmap.Width, 2, 4 );
ImageEnView1.RulerParams.HorzGripsPos[ 2 ] := MulDiv( ImageEnView1.IEBitmap.Width, 3, 4 );


TIEViewRulerParams.HorzHeight

TIEViewRulerParams.HorzHeight

Declaration

property HorzHeight: Integer;

Description

Specifies the height of the horizontal ruler.

Default: 40

Example

// Create narrow rulers
ImageEnView1.RulerParams.Font.Size := 6;
ImageEnView1.RulerParams.HorzHeight := 20;
ImageEnView1.RulerParams.VertWidth := 20;
ImageEnView1.RulerParams.GripHeight := 10;


TIEViewRulerParams.HorzInverted

TIEViewRulerParams.HorzInverted

Declaration

property HorzInverted: boolean;

Description

When true, the horizontal ruler is painted from right to left.

Default: False

Example

// Draw a right-hand side UI
ImageEnView1.LockUpdate();
ImageEnView1.ShowRulers := [ rdVertical, rdHorizontal ];
ImageEnView1.RulerParams.VertPos := gdRight; // Ruler on RHS
ImageEnView1.RulerParams.HorzInverted := True; // Horz ruler reversed measurement
ImageEnView1.UnlockUpdate();

See Also

- VertInverted
- HorzPos
- VertPos

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.HorzPos

TIEViewRulerParams.HorzPos

Declaration

property HorzPos: TGripsDir;

Description

Specifies Whether the horizontal ruler is shown above (gdUp) or below (gdDown) the image.

Default: gdUp

Example

// Draw a horizontal ruler on bottom of image
ImageEnView1.LockUpdate();
ImageEnView1.ShowRulers := [ rdHorizontal ];
ImageEnView1.RulerParams.VertPos := gdDown;
ImageEnView1.UnlockUpdate();

See Also

- VertPos
- HorzInverted
- VertInverted

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.LabelFrequency

TIEViewRulerParams.LabelFrequency

Declaration

property LabelFrequency: double;

Description

Specifies the number of logical units where to show the labels (and longer tick marks).

Use Frequency to configure short tick marks.

Notes:
- This value is set automatically when changing Units.
- Labels may be hidden if the view is crowded and MinLabelSpacing has been set

Default: 40

Example

ImageEnView1.LockUpdate();
ImageEnView1.RulerParams.Units := ieruInches;
ImageEnView1.RulerParams.LabelFrequency := 1/4; // Labels every quarter inch
ImageEnView1.RulerParams.Frequency := 1/32; // Ticks every 1/32 inch
ImageEnView1.UnlockUpdate();


TIEViewRulerParams.LabelPrecision

TIEViewRulerParams.LabelPrecision

Declaration

property LabelPrecision: integer;

Description

Specifies the number of decimal places shown for values in the ruler.

Default: 2

Example

ImageEnView1.LockUpdate();
ImageEnView1.RulerParams.Units := ieruCentimeters;
ImageEnView1.RulerParams.LabelPrecision := 1; // Show labels to one decimal place
ImageEnView1.UnlockUpdate();


TIEViewRulerParams.MeasureColor

TIEViewRulerParams.MeasureColor

Declaration

property MeasureColor: TColor;

Description

Specifies the color of the measurement block of the ruler.

Note: This value may be overridden if EnableTheming is enabled.

Default: clBtnFace

See Also

- Color

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.MinLabelSpacing

TIEViewRulerParams.MinLabelSpacing

Declaration

property MinLabelSpacing: integer;

Description

Specifies the minimum spacing between (the center of) labels. To reduce crowding, labels positioned closer than this are not shown.
If MinLabelSpacing is 0 then labels are always drawn.

Default: 30

Example

ImageEnView1.RulerParams.MinLabelSpacing := 0;


TIEViewRulerParams.ScrollRate

TIEViewRulerParams.ScrollRate

Declaration

property ScrollRate: double;

Description

Specifies the scroll rate used when moving a grip out of ruler borders.

Default: 1.0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.ShowBorder

TIEViewRulerParams.ShowBorder

Declaration

property ShowBorder: boolean;

Description

Specify whether a border is displayed between the ruler and the image.

Default: True

Example

// Show only cursor position
ImageEnView1.RulerParams.ShowMeasure := False;
ImageEnView1.RulerParams.ShowBorder := False;
ImageEnView1.RulerParams.HorzHeight := 10;
ImageEnView1.RulerParams.VertWidth := 10;


TIEViewRulerParams.ShowMeasure

TIEViewRulerParams.ShowMeasure

Declaration

property ShowMeasure: boolean;

Description

Specify whether a measurement block is drawn on the ruler.

Default: True

Example

// Show only grips
ImageEnView1.RulerParams.ShowMeasure := False;
ImageEnView1.RulerParams.HorzHeight := 10;
ImageEnView1.RulerParams.VertWidth := 10;


TIEViewRulerParams.SnapGrips

TIEViewRulerParams.SnapGrips

Declaration

property SnapGrips: TIERulerSnapping;

Description

Specifies whether grips snap to the closest label or whole number on the ruler.

Description

Item | Description
iesnNone | Do not adjust grip positions
iesnSnapToTick | Automatically move grips to the nearest tick
iesnSnapToLabel | Automatically move grips to the nearest label (long tick)
iesnSnapToWholeNumber | Automatically move grips to the nearest whole value on the ruler (e.g. move to 2.0 inches)

Default: iesnNone

Example

// Snap to the nearest label tick
ImageEnView1.RulerParams.SnapGrips := iesnSnapToLabel;

// Snap to the nearest whole number on the ruler
ImageEnView1.RulerParams.SnapGrips := iesnSnapToWholeNumber;


TIEViewRulerParams.Units

TIEViewRulerParams.Units

Declaration

property Units: TIERulerUnits;

Description

Specifies the measurement unit displayed on the ruler.

Default: ieruPixels

Note: Changing Units will automatically set LabelFrequency and Frequency to a relevant value

Example

ImageEnView1.LockUpdate();
ImageEnView1.RulerParams.Units := ieruInches;
ImageEnView1.RulerParams.LabelFrequency := 1/4; // Labels every quarter inch
ImageEnView1.RulerParams.Frequency := 1/32; // Ticks every 1/32 inch
ImageEnView1.UnlockUpdate();


TIEViewRulerParams.VertGripsColor

TIEViewRulerParams.VertGripsColor

Declaration

property VertGripsColor[g: integer]: TColor;

Description

Specifies the brush color of the grip, g, on the vertical ruler.

Notes:
- The default color of all grips is set by GripColorDefault. Use VertGripsColor to assign custom colors to specific grips.
- To access the cursor grip (showing the current position of the cursor over the image), use VertGripsColor[ -1 ]

You can set the pen color with GripPenColor

Example

// Set default color of grips to clSilver, but clRed for grips > 10
ImageEnView1.RulerParams.GripColorDefault := clSilver;
for i := 10 to ImageEnView1.RulerParams.VertGripsCount - 1 do
ImageEnView1.RulerParams.VertGripsColor[ i ] := clRed;

See Also

- GripColorDefault
- HorzGripsColor
- GripPenColor
- GripKindDefault
- GripWidth
- GripHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.VertGripsCount

TIEViewRulerParams.VertGripsCount

Declaration

property VertGripsCount: integer;

Description

Specifies the number of the grips on the vertical ruler.

Default: 0

Examples

// Clear all grips
ImageEnView1.RulerParams.VertGripsCount := 0;

// Add twenty grips
ImageEnView1.RulerParams.VertGripsCount := 20;

// Set default color of grips to clSilver, but clRed for grips > 10
ImageEnView1.RulerParams.GripColorDefault := clSilver;
for i := 10 to ImageEnView1.RulerParams.VertGripsCount - 1 do
ImageEnView1.RulerParams.VertGripsColor[ i ] := clRed;


TIEViewRulerParams.VertGripsKind

TIEViewRulerParams.VertGripsKind

Declaration

property VertGripsKind[g: integer]: TGripKind;

Description

Specifies the style of the grip, g, on the vertical ruler (triangle, arrow, etc).

Notes:
- The default style for grips is specified by GripKindDefault. Use VertGripsKind when you want individual grips with different styles
- The style of the grip showing the current cursor position is specified by CursorGripKind
- The size of the grip is specified by GripWidth and GripHeight

Example

// Set default style of grips to gkTriangle, but gkArrow2 to grips > 10
ImageEnView1.RulerParams.GripKindDefault := gkTriangle;
for i := 10 to ImageEnView1.RulerParams.VertGripsCount - 1 do
ImageEnView1.RulerParams.VertGripsKind[ i ] := gkArrow2;

// Set the cursor grip to a red triangle
ImageEnView1.RulerParams.VertGripsKind[ -1 ] := gkTriangle; // Same as setting CursorGripKind
ImageEnView1.RulerParams.VertGripsColor[ -1 ] := clRed;

See Also

- GripKindDefault
- HorzGripsKind
- GripWidth
- GripHeight
- GripColorDefault
- GripPenColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.VertGripsMax

TIEViewRulerParams.VertGripsMax

Declaration

property VertGripsMax[g: integer]: double;

Description

Specifies the max position of the grip, g, on the vertical ruler.
Use GripsPosBase to determine whether to pass bitmap, ruler or screen values.

Notes:
- By default, all grips are contrained to the image area (ConstrainGrips)
- To access the cursor grip (showing the current position of the cursor over the image), use VertGripsMax[ -1 ]


TIEViewRulerParams.VertGripsMin

TIEViewRulerParams.VertGripsMin

Declaration

property VertGripsMin[g: integer]: double;

Description

Specifies the minimum position of the grip, g, on the vertical ruler.
Use GripsPosBase to determine whether to pass bitmap, ruler or screen values.

Notes:
- By default, all grips are contrained to the image area (ConstrainGrips)
- To access the cursor grip (showing the current position of the cursor over the image), use VertGripsMin[ -1 ]


TIEViewRulerParams.VertGripsPos

TIEViewRulerParams.VertGripsPos

Declaration

property VertGripsPos[g: integer]: double;

Description

Specifies the current position of the grip, g, on the vertical ruler.
Use GripsPosBase to determine whether to pass bitmap, ruler or screen values.

Example

// Add three grips at 25%, 50% and 75% of the image height
ImageEnView1.RulerParams.VertGripsCount := 3;
ImageEnView1.RulerParams.GripsPosBase := ierbBitmap; // Units are relative to the bitmap
ImageEnView1.RulerParams.VertGripsPos[ 0 ] := MulDiv( ImageEnView1.IEBitmap.Height, 1, 4 );
ImageEnView1.RulerParams.VertGripsPos[ 1 ] := MulDiv( ImageEnView1.IEBitmap.Height, 2, 4 );
ImageEnView1.RulerParams.VertGripsPos[ 2 ] := MulDiv( ImageEnView1.IEBitmap.Height, 3, 4 );


TIEViewRulerParams.VertInverted

TIEViewRulerParams.VertInverted

Declaration

property VertInverted: boolean;

Description

When true, the vertical ruler is painted from bottom to top.

Default: False.

Example

// Draw ruler from bottom to top
ImageEnView1.RulerParams.VertInverted := True;

See Also

- HorzInverted
- HorzPos
- VertPos

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.VertPos

TIEViewRulerParams.VertPos

Declaration

property VertPos: TGripsXDir;

Description

Specifies whether the vertical ruler is shown left (gdLeft) or right (gdRight) of the image.

Default: gdLeft

Example

// Draw a vertical ruler on right of image
ImageEnView1.LockUpdate();
ImageEnView1.ShowRulers := [ rdVertical ];
ImageEnView1.RulerParams.VertPos := gdRight;
ImageEnView1.UnlockUpdate();

See Also

- HorzPos
- HorzInverted
- VertInverted

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEViewRulerParams.VertWidth

TIEViewRulerParams.VertWidth

Declaration

property VertWidth: Integer;

Description

Specifies the width of the vertical ruler.

Default: 40

Example

// Create narrow rulers
ImageEnView1.RulerParams.Font.Size := 6;
ImageEnView1.RulerParams.HorzHeight := 20;
ImageEnView1.RulerParams.VertWidth := 20;
ImageEnView1.RulerParams.GripHeight := 10;


TIEVirtualBitmapProvider

TIEVirtualBitmapProvider

Declaration

TIEVirtualBitmapProvider = class

Description

An abstract class that can be assigned to the VirtualBitmapProvider property.
Custom classes should inherit from TIEVirtualBitmapProvider to be assignable to VirtualBitmapProvider property.

Methods and Properties

- Render abstract
- GetSegment abstract

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVirtualBitmapProvider.GetSegment

TIEVirtualBitmapProvider.GetSegment

Declaration

function GetSegment(Container: TIEBitmap; Row: integer; Col: integer; Width: integer): pointer; virtual; abstract;

Description

Returns a pointer to row segment.

Parameter | Description
Container | TIEBitmap object that owns this object.
Row | Segment row.
Col | Segment column.
Width | Width (in pixels) of the row.


TIEVirtualBitmapProvider.Render

TIEVirtualBitmapProvider.Render

Declaration

procedure Render(Container: TIEBitmap; DestBitmap: TIEBitmap; DestWidth: integer; DestHeight: integer; DestX1, DestY1, DestX2, DestY2: integer; SrcCols, SrcRows: PInteger; Transparency: integer; RenderOperation: TIERenderOperation; Opacity: double); virtual; abstract;

Description

Renders a set of pixels to the specified rectangle.

Parameter | Description
Container | TIEBitmap object that owns this object.
DestBitmap | Destination TIEBitmap.
DestWidth | Destination width.
DestHeight | Destination height.
DestX1 | Starting column of destination rectangle.
DestY1 | Starting row of destination rectangle.
DestX2 | Ending column of destination rectangle.
DestY2 | Ending row of destination rectangle.
SrcCols | Array of source columns (has DestX2-DestX1+1 items).
SrcRows | Array of source rows (has DestY2-DestY1+1 items).
Transparency | Rendering transparency (0=transparent, 255=opaque).
RenderOperation | Rendering operation to perform.
Opacity | Rendering opacity (0=transparent, 1.0=opaque).

Opacity vs Transparency

Both the Opacity and Transparency parameters provide the same functionality. Transparency is the traditional ImageEn value, whereas Opacity provides easier PSD compatibility.
While they can be used in combination, generally only one will be used, i.e. leave Opacity=1 and make use of transparency, or alternatively, leave Transparency=255 and make use of Opacity. For example, for 50% opacity: Transparency = 255 and Opacity = 0.5, or Transparency = 128 and Opacity = 1.0


TIEVirtualKeyEvent

TIEVirtualKeyEvent

Declaration

TIEVirtualKeyEvent = procedure(Sender: TObject; VirtualKey: Dword; KeyData: Dword) of object;

Description

Event type for OnVirtualKey event.

Value | Description
VirtualKey | Specifies the virtual key code (the same as wParam of WM_KEYWODN, WM_KEYUP, WM_SYSKEYDOWN and WM_SYSKEYUP)
KeyData | Specifies additional info about the key (the same as lParam of WM_KEYWODN, WM_KEYUP, WM_SYSKEYDOWN and WM_SYSKEYUP)
KeyDown | This is true on keydown, false on keyup


TIEVisionAdaptiveMethod

TIEVisionAdaptiveMethod

Declaration

type TIEVisionAdaptiveMethod = (
ievADAPTIVE_THRESH_MEAN_C = 0,
ievADAPTIVE_THRESH_GAUSSIAN_C = 1
);


TIEVisionBackgroundSubtractor.apply

TIEVisionBackgroundSubtractor.apply

Declaration

function apply(image: TIEVisionImage; learningRate: double = -1; wantExceptions: bool32 = false): TIEVisionImage; safecall;

Description

Computes a foreground mask.
Returns the output foreground mask as an 8-bit binary image (ie8g).

Parameter | Description
image | Input image.
learningRate | The value between 0 and 1 that indicates how fast the background model is learnt.


TIEVisionBackgroundSubtractor.selectMethodKNN

TIEVisionBackgroundSubtractor.selectMethodKNN

Declaration

procedure selectMethodKNN(history: int32_t = 500; dist2Threshold: double = 400.0; detectShadows: bool32 = true; wantExceptions: bool32 = false); safecall;

Description

Selects K-nearest neigbours - based Background/Foreground Segmentation Algorithm.

Parameter | Description
history | Length of the history.
dist2Threshold | Threshold on the squared distance between the pixel and the sample to decide whether a pixel is close to that sample.
detectShadows | If true, the algorithm will detect shadows and mark them.


TIEVisionBackgroundSubtractor.selectMethodMOG2

TIEVisionBackgroundSubtractor.selectMethodMOG2

Declaration

procedure selectMethodMOG2(history: int32_t = 500; varThreshold: double = 16; detectShadows: bool32 = true; wantExceptions: bool32 = false); safecall;

Description

Selects Gaussian Mixture-based Background/Foreground Segmentation Algorithm.

Parameter | Description
history | Length of the history.
varThreshold | Threshold on the squared Mahalanobis distance between the pixel and the model to decide whether a pixel is well described by the background model.
detectShadows | If true, the algorithm will detect shadows and mark them.


TIEVisionBarCodeScanner.scan

TIEVisionBarCodeScanner.scan

Declaration

function scan(image: TIEVisionImage; const rect: TIEVisionRect; wantExceptions: bool32 = false): TIEVisionVectorObjRef; safecall;

Description

Look for a scan code inside the specified image. Only 24 bit RGB and 8 bit gray scale images are supported.
Returns a list of symbols (bar codes) found as TIEVisionBarCodeSymbol objects.

Parameter | Description
image | Image where to search for barcodes.
rect | Rectangle of the image where to search for. Setting (0, 0, 0, 0) means the whole image.

Example

var
symbols: TIEVisionVectorObjRef;
s: TIEVisionBarCodeSymbol;
i: integer;
begin
symbols := IEVisionLib.createBarCodeScanner().scan(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0));
for i := 0 to symbols.size() - 1 do
begin
s := TIEVisionBarCodeSymbol( symbols.getObj(i) );
Memo1.Lines.Add('type = ' + s.getSymbolType().c_str());
Memo1.Lines.Add('data = ' + s.getData().c_str());
with s.getBoundingBox() do
Memo1.Lines.Add('rect = ' + inttostr(x) + ' ' + inttostr(y) + ' ' + inttostr(width) + ' ' + inttostr(height));
end;
end;


TIEVisionBarCodeSymbol

TIEVisionBarCodeSymbol

Declaration

TIEVisionBarCodeSymbol = interface(TIEVisionBase)

Description

This interface represents a bar code detected symbol.

Demos

Demos\IEVision\Barcode\Barcode.dpr
Demos\IEVision\BarCodeCam\BarCodeCam.dpr

Methods and Properties

getBoundingBox
getData
getSymbolType
getXML

Example

var
symbols: TIEVisionVectorObjRef;
s: TIEVisionBarCodeSymbol;
i: integer;
begin
symbols := IEVisionLib.createBarCodeScanner().scan(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0));
for i := 0 to symbols.size() - 1 do
begin
s := TIEVisionBarCodeSymbol( symbols.getObj(i) );
Memo1.Lines.Add('type = ' + s.getSymbolType().c_str());
Memo1.Lines.Add('data = ' + s.getData().c_str());
with s.getBoundingBox() do
Memo1.Lines.Add('rect = ' + inttostr(x) + ' ' + inttostr(y) + ' ' + inttostr(width) + ' ' + inttostr(height));
end;
end;


TIEVisionBarCodeSymbol.getBoundingBox

TIEVisionBarCodeSymbol.getBoundingBox

Declaration

function getBoundingBox(wantExceptions: bool32 = false): TIEVisionRect; safecall;

Description

Returns decoded bar code bounding rectangle.
Bounding box could be not always available (i.e. for I2/5 bar code type).


TIEVisionBarCodeSymbol.getData

TIEVisionBarCodeSymbol.getData

Declaration

function getData(wantExceptions: bool32 = false): TIEVisionWString; safecall;

Description

Returns decoded bar code symbols.


TIEVisionBarCodeSymbol.getSymbolType

TIEVisionBarCodeSymbol.getSymbolType

Declaration

function getSymbolType(wantExceptions: bool32 = false): TIEVisionWString; safecall;

Description

Returns the bar code type. It can be one of the following strings:

Bar code type string
"EAN-8"
"UPC-E"
"ISBN-10"
"UPC-A"
"EAN-13"
"ISBN-13"
"I2/5"
"CODE-39"
"CODE-128"
"PDF417" (still not supported)
"QR-Code"

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionBarCodeSymbol.getXML

TIEVisionBarCodeSymbol.getXML

Declaration

function getXML(wantExceptions: bool32 = false): TIEVisionWString; safecall;

Description

Returns decoded bar code info as XML string.


TIEVisionBase

TIEVisionBase

Declaration

TIEVisionBase = interface(IInterface)

Description

This is the base interface for each IEVision object.
It handles reference counting and automatic disposing.


TIEVisionBaseVector

TIEVisionBaseVector

Declaration

TIEVisionBaseVector = interface(TIEVisionBase)

Description

An object that exposes this interface can store a generic vector. This is the base class for TIEVisionVectorString, TIEVisionVectorInt32, etc...

See Also

- TIEVisionVectorString
- TIEVisionVectorInt32
- TIEVisionVectorByte
- TIEVisionVectorFloatPair
- TIEVisionVectorPoint
- TIEVisionVectorRect
- TIEVisionVectorDouble
- TIEVisionVectorOCRBox
- TIEVisionVectorImageRef

Methods and Properties

size
operatorASSIGN
max_size
resize
capacity
empty
reserve
pop_back
erase
swap
clear
sort
data


TIEVisionBaseVector.capacity

TIEVisionBaseVector.capacity

Declaration

function capacity(): uint32_t; safecall;

Description

Returns the size of allocated storage for the container.


TIEVisionBaseVector.clear

TIEVisionBaseVector.clear

Declaration

procedure clear(); safecall;

Description

Removes all elements.


TIEVisionBaseVector.data

TIEVisionBaseVector.data

Declaration

function data(): pointer; safecall;

Description

Returns the raw pointer to the vector.


TIEVisionBaseVector.empty

TIEVisionBaseVector.empty

Declaration

function empty(): bool32; safecall;

Description

Returns true if the vector is empty.


TIEVisionBaseVector.erase

TIEVisionBaseVector.erase

Declaration

function erase(position: uint32_t): uint32_t; overload; safecall;
function erase(first: uint32_t; last: uint32_t): uint32_t; overload; safecall;

Description

Removes a specified item or a range of items.
Returns the first element remaining beyond any elements removed.

Parameter | Description
position | The item index to remove.
first | Begin of range to erase.
last | End of range (not included) to erase.

Example

// removes item 0 (first item)
vector1.erase(0);

// removes item 0 up to 3 (included)
vector1.erase(0, 4);


TIEVisionBaseVector.max_size

TIEVisionBaseVector.max_size

Declaration

function max_size(): uint32_t; safecall;

Description

Returns the maximum number of items that this vector can contain (checks free memory).


TIEVisionBaseVector.operatorASSIGN

TIEVisionBaseVector.operatorASSIGN

Declaration

procedure operatorASSIGN(src: TIEVisionBaseVector); safecall;

Description

Replaces current vector with the source vector.

Parameter | Description
src | The source vector.


TIEVisionBaseVector.pop_back

TIEVisionBaseVector.pop_back

Declaration

procedure pop_back(); safecall;

Description

Removes the last element.


TIEVisionBaseVector.reserve

TIEVisionBaseVector.reserve

Declaration

procedure reserve(n: uint32_t); safecall;

Description

Reserves a minimum length of storage for this vector, allocating space if necessary.

Parameter | Description
n | The minimum length of storage to be allocated for the vector.


TIEVisionBaseVector.resize

TIEVisionBaseVector.resize

Declaration

procedure resize(sz: uint32_t); safecall;

Description

Resizes the vector to the specified size.

Parameter | Description
sz | The new vector size.


TIEVisionBaseVector.size

TIEVisionBaseVector.size

Declaration

function size(): int32_t; safecall;

Description

Represents the number of items in the vector.


TIEVisionBaseVector.sort

TIEVisionBaseVector.sort

Declaration

procedure sort(order: TIEVisionSortOrder = ievASCENDING); safecall;

Description

Sorts elements of the vector.

Parameter | Description
order | Sorting order.

Example

vector1.sort(ievASCENDING);


TIEVisionBaseVector.swap

TIEVisionBaseVector.swap

Declaration

procedure swap(vec: TIEVisionBaseVector); safecall;

Description

Swaps the content of this vector with the specified one.

Parameter | Description
vec | Other vector to swap.


TIEVisionBGR8

TIEVisionBGR8

Declaration

TIEVisionBGR8 = packed record
b: uint8_t;
g: uint8_t;
r: uint8_t;
end;


TIEVisionBGR16

TIEVisionBGR16

Declaration

TIEVisionBGR16 = packed record
b: uint16_t;
g: uint16_t;
r: uint16_t;
end;


TIEVisionBorderType

TIEVisionBorderType

Declaration

TIEVisionBorderType = (
ievBORDER_CONSTANT = 0,
ievBORDER_REPLICATE = 1,
ievBORDER_REFLECT = 2,
ievBORDER_WRAP = 3,
ievBORDER_REFLECT_101 = 4,
ievBORDER_TRANSPARENT = 5,
ievBORDER_ISOLATED = 16
);


TIEVisionBox2D

TIEVisionBox2D

Declaration

TIEVisionBox2D = packed record
centerX, centerY: single;
width, height: single;
angle: single;
end;


TIEVisionCascadeClassifier

TIEVisionCascadeClassifier

Declaration

TIEVisionCascadeClassifier = interface(TIEVisionBase)

Description

This interface allows you to handle a cascade classifier.

Methods and Properties

detectObjects
empty
load


TIEVisionCascadeClassifier.detectObjects

TIEVisionCascadeClassifier.detectObjects

Declaration

function detectObjects(image: TIEVisionImage; scaleFactor: double; minNeighbors: int32_t; flags: TIEVisionHaarDetectObjectsFlags; minSize: TIEVisionSize; maxSize: TIEVisionSize): TIEVisionVectorRect; safecall;

Description

Detects objects of different sizes in the input image. The detected objects are returned as a list of rectangles.

Parameter | Description
image | Image where to find the objects.
scaleFactor | Parameter specifying how much the image size is reduced at each image scale.
minNeighbors | Parameter specifying how many neighbors each candiate rectangle should have to retain it.
flags | Detection flags.
minSize | Minimum possible object size. Objects smaller than that are ignored.
maxSize | Maximum possible object size. Objects larger than that are ignored.

Demos

Demos\IEVision\FaceDetection\FaceDetection.dpr
Demos\IEVision\FaceDetection_LowLevel\FaceDetection_LowLevel.dpr
Demos\IEVision\GetFaces\GetFaces.dpr
Demos\IEVision\TrackObjects\TrackObjects.dpr
Demos\IEVision\TrackObjects_LowLevel\TrackObjects_LowLevel.dpr


TIEVisionCascadeClassifier.empty

TIEVisionCascadeClassifier.empty

Declaration

function empty(): bool32; safecall;

Description

Returns true if the cascade classifier is empty (it isn't loaded).


TIEVisionCascadeClassifier.load

TIEVisionCascadeClassifier.load

Declaration

procedure load(stream: TIEVisionStream); overload; safecall;
procedure load(filename: PAnsiChar); overload; safecall;

Description

Loads a cascade classifier from file or stream.
It is possible also to load an internal detector using the following consts:
Const | Classifier
IEVC_EYE | ":EYE"
IEVC_EYE_TREE_EYE_GLASSES | ":EYETREEEYEGLASSES"
IEVC_FRONTAL_FACE_ALT | ":FRONTALFACEALT"
IEVC_FRONTAL_FACE_ALT_2 | ":FRONTALFACEALT2"
IEVC_FRONTAL_FACE_ALT_TREE | ":FRONTALFACEALTTREE"
IEVC_FRONTAL_FACE_DEFAULT | ":FRONTALFACEDEFAULT"
IEVC_FULL_BODY | ":FULLBODY"
IEVC_LOWER_BODY | ":LOWERBODY"
IEVC_PROFILE_FACE | ":PROFILEFACE"
IEVC_UPPER_BODY | ":UPPERBODY"
IEVC_LEFT_EYE_2_SPLITS | ":LEFTEYE2SPLITS"
IEVC_RIGHT_EYE_2_SPLITS | ":RIGHTEYE2SPLITS"
IEVC_LBP_FRONTAL_FACE | ":LBPFRONTALFACE"
IEVC_CASCADE_SMILE | ":CASCADESMILE"
IEVC_FRONTAL_CAT_FACE | ":FRONTALCATFACE"
IEVC_FRONTAL_CAT_FACE_EXT | ":FRONTALCATFACEEXTENDED"
IEVC_LICENSE_PLATE_RUS | ":LICENSEPLATERUS"
IEVC_RUSSIAN_PLATE_NUMBER | ":RUSSIANPLATENUMBER"

Parameter | Description
stream | Input stream.
filename | Input filename or internal detector string.

Demos

Demos\IEVision\FaceDetection\FaceDetection.dpr
Demos\IEVision\FaceDetection_LowLevel\FaceDetection_LowLevel.dpr
Demos\IEVision\GetFaces\GetFaces.dpr
Demos\IEVision\TrackObjects\TrackObjects.dpr
Demos\IEVision\TrackObjects_LowLevel\TrackObjects_LowLevel.dpr


TIEVisionChannelFormat

TIEVisionChannelFormat

Declaration

TIEVisionChannelFormat = (
ievUINT8 = 0, // 8 bit unsigned
ievSINT8 = 1, // 8 bit signed
ievUINT16 = 2, // 16 bit unsigned
ievSINT16 = 3, // 16 bit signed
ievSINT32 = 4, // 32 bit signed
ievFLOAT32 = 5, // 32 bit floating point
ievFLOAT64 = 6, // 64 bit floating point
ievUINT1 = $A0000001 // 1 bit per pixel
);


TIEVisionCmpOp

TIEVisionCmpOp

Declaration

TIEVisionCmpOp = (
ievEQUAL = 0,
ievGREATER = 1,
ievGREATER_EQUAL = 2,
ievLESS = 3,
ievLESS_EQUAL = 4,
ievNOT_EQUAL = 5
);


TIEVisionContourApproxMethod

TIEVisionContourApproxMethod

Declaration

TIEVisionContourApproxMethod = (
ievCHAIN_CODE = 0,
ievCHAIN_APPROX_NONE = 1,
ievCHAIN_APPROX_SIMPLE = 2,
ievCHAIN_APPROX_TC89_L1 = 3,
ievCHAIN_APPROX_TC89_KCOS = 4,
ievLINK_RUNS = 5
);


TIEVisionContourRetrMode

TIEVisionContourRetrMode

Declaration

TIEVisionContourRetrMode = (
ievEXTERNAL = 0,
ievLIST = 1,
ievCCOMP = 2,
ievTREE = 3
);


TIEVisionCovarFlags

TIEVisionCovarFlags

Declaration

TIEVisionCovarFlags = (
ievSCRAMBLED = 0,
ievNORMAL = 1,
ievUSE_AVG = 2,
ievSCALE = 4,
ievROWS = 8,
ievCOLS = 16
);


TIEVisionCvtColorCode

TIEVisionCvtColorCode

Declaration

TIEVisionCvtColorCode = (
ievBGR2BGRA = 0,
ievRGB2RGBA = 0,
ievBGRA2BGR = 1,
ievRGBA2RGB = 1,
ievBGR2RGBA = 2,
ievRGB2BGRA = 2,
ievRGBA2BGR = 3,
ievBGRA2RGB = 3,
ievBGR2RGB = 4,
ievRGB2BGR = 4,
ievBGRA2RGBA = 5,
ievRGBA2BGRA = 5,
ievBGR2GRAY = 6,
ievRGB2GRAY = 7,
ievGRAY2BGR = 8,
ievGRAY2RGB = 8,
ievGRAY2BGRA = 9,
ievGRAY2RGBA = 9,
ievBGRA2GRAY = 10,
ievRGBA2GRAY = 11,
ievBGR2BGR565 = 12,
ievRGB2BGR565 = 13,
ievBGR5652BGR = 14,
ievBGR5652RGB = 15,
ievBGRA2BGR565 = 16,
ievRGBA2BGR565 = 17,
ievBGR5652BGRA = 18,
ievBGR5652RGBA = 19,
ievGRAY2BGR565 = 20,
ievBGR5652GRAY = 21,
ievBGR2BGR555 = 22,
ievRGB2BGR555 = 23,
ievBGR5552BGR = 24,
ievBGR5552RGB = 25,
ievBGRA2BGR555 = 26,
ievRGBA2BGR555 = 27,
ievBGR5552BGRA = 28,
ievBGR5552RGBA = 29,
ievGRAY2BGR555 = 30,
ievBGR5552GRAY = 31,
ievBGR2XYZ = 32,
ievRGB2XYZ = 33,
ievXYZ2BGR = 34,
ievXYZ2RGB = 35,
ievBGR2YCrCb = 36,
ievRGB2YCrCb = 37,
ievYCrCb2BGR = 38,
ievYCrCb2RGB = 39,
ievBGR2HSV = 40,
ievRGB2HSV = 41,
ievRGB2Lab = 45,
ievBGR2Lab = 44,
ievBayerBG2BGR = 46,
ievBayerGB2BGR = 47,
ievBayerRG2BGR = 48,
ievBayerGR2BGR = 49,
ievBayerBG2RGB = 48,
ievBayerGB2RGB = 49,
ievBayerRG2RGB = 46,
ievBayerGR2RGB = 47,
ievBGR2Luv = 50,
ievRGB2Luv = 51,
ievBGR2HLS = 52,
ievRGB2HLS = 53,
ievHSV2BGR = 54,
ievHSV2RGB = 55,
ievLab2BGR = 56,
ievLab2RGB = 57,
ievLuv2BGR = 58,
ievLuv2RGB = 59,
ievHLS2BGR = 60,
ievHLS2RGB = 61
);


TIEVisionDCTFlags

TIEVisionDCTFlags

Declaration

TIEVisionDCTFlags = (
ievDCT_FORWARD = 0,
ievDCT_INVERSE = 1,
ievDCT_ROWS = 4
);


TIEVisionDFTFlags

TIEVisionDFTFlags

Declaration

TIEVisionDFTFlags = (
ievDFT_FORWARD = 0,
ievDFT_INVERSE = 1,
ievDFT_SCALE = 2,
ievDFT_INVERSE_SCALE = 3,
ievDFT_ROWS = 4
);


TIEVisionDrawing.circle

TIEVisionDrawing.circle

Declaration

procedure circle(image: TIEVisionImage; center: TIEVisionPoint; radius: int32_t; color: TIEVisionScalar; thickness: int32_t = 1; linetype: int32_t = 8; shift: int32_t = 0); safecall;

Description

Draw a circle.

Parameter | Description
image | Destination image.
center | Center of the circle.
radius | Radius of the circle.
color | Rectangle color.
thickness | Line width.
linetype | Line type.
shift | Thickness of lines that make up the rectangle. Negative values mean that the function has to draw a filled circle.


TIEVisionDrawing.drawContours

TIEVisionDrawing.drawContours

Declaration

procedure drawContours(image: TIEVisionImage; contours: TIEVisionVectorObjRef; const color: TIEVisionScalar; contourIdx: int32_t = -1; thickness: int32_t = 1; linetype: int32_t = 8); safecall;

Description

Draws a contour.

Parameter | Description
image | Destination image.
contours | A vector of vector of points. (TIEVisionVectorObjRef must contain TIEVisionVectorPoint objects).
color | Rectangle color.
thickness | Line width.
linetype | Line type.
shift | Thickness of lines that make up the rectangle. Negative values mean that the function has to draw a filled polygon.


TIEVisionDrawing.ellipse

TIEVisionDrawing.ellipse

Declaration

procedure ellipse(image: TIEVisionImage; center: TIEVisionPoint; axes: TIEVisionSize; angle: double; startAngle: double; endAngle: double; color: TIEVisionScalar; thickness: int32_t = 1; linetype: int32_t = 8; shift: int32_t = 0); safecall;

Description

Draws an ellipse.

Parameter | Description
image | Destination image.
center | Center of the ellipse.
axes | Length of the ellipse axes.
angle | Ellipse rotation angle in degrees.
startAngle | Starting angle of the elliptic arc in degrees.
endAngle | Ending angle of the elliptic arc in degrees.
color | Rectangle color.
thickness | Line width.
linetype | Line type.
shift | Thickness of lines that make up the rectangle. Negative values mean that the function has to draw a filled ellipse.


TIEVisionDrawing.rectangle

TIEVisionDrawing.rectangle

Declaration

procedure rectangle(image: TIEVisionImage; pt1: TIEVisionPoint; pt2: TIEVisionPoint; const color: TIEVisionScalar; thickness: int32_t = 1; linetype: int32_t = 8; shift: int32_t = 0); overload; safecall;
procedure rectangle(image: TIEVisionImage; const rect: TIEVisionRect; const color: TIEVisionScalar; thickness: int32_t = 1; linetype: int32_t = 8; shift: int32_t = 0); overload; safecall;

Description

Draws a rectangle.

Parameter | Description
image | Destination image.
pt1 | Top-left rectangle point.
pt2 | Bottom-right rectangle point.
color | Rectangle color.
thickness | Line width.
linetype | Line type.
shift | Thickness of lines that make up the rectangle. Negative values mean that the function has to draw a filled rectangle.
rect | Number of fractional bits in the point coordinates.


TIEVisionExistingMemoryStream

TIEVisionExistingMemoryStream

Declaration

TIEVisionExistingMemoryStream = interface(TIEVisionStream)

Description

This is the base interface for all objects with existing memory streaming features.
This interface allows you to create a memory stream from existing stream.

See Also

- TIEVisionFileStream
- TIEVisionTempFileStream
- TIEVisionMemoryStream
- TIEVisionExistingMemoryStream

Methods and Properties

reset


TIEVisionExistingMemoryStream.reset

TIEVisionExistingMemoryStream.reset

Declaration

procedure reset(existingBuffer: pointer; existingBufferSize: int32_t); safecall;

Description

Sets a new buffer for the memory stream.

Parameter | Description
existingBuffer | Memory buffer pointer.
existingBufferSize | Memory buffer size in bytes.


TIEVisionFaceRecognizer.addTrainImage

TIEVisionFaceRecognizer.addTrainImage

Declaration

procedure addTrainImage(image: TIEVisionImage; imlabel: PWideChar; wantExceptions: bool32 = false); safecall;

Description

Adds a new training image. Images pixel format can be RGB or gray scale. Images size don't care.
Applications need to call train after all training images are added.

Parameter | Description
image | Input training image.
imlabel | Label corresponding to the image.


TIEVisionFaceRecognizer.clear

TIEVisionFaceRecognizer.clear

Declaration

procedure clear(wantExceptions: bool32 = false); safecall;

Description

Clears added training images, labels and recognizer state.


TIEVisionFaceRecognizer.detect

TIEVisionFaceRecognizer.detect

Declaration

function detect(image: TIEVisionImage; out confidence: double; wantExceptions: bool32 = false): PWideChar; safecall;

Description

Detects a label and associated confidence (e.g. distance) for a given input image.
Applications can call this method after train or load.

Parameter | Description
image | Input test image.
confidence | Associated confidence (e.g. distance) for the predicted label.


TIEVisionFaceRecognizer.isTrained

TIEVisionFaceRecognizer.isTrained

Declaration

function isTrained(wantExceptions: bool32 = false): bool32; safecall;

Description

Returns true if the object is trained.


TIEVisionFaceRecognizer.load

TIEVisionFaceRecognizer.load

Declaration

procedure load(stream: IStream; wantExceptions: bool32 = false); safecall;
procedure load(filename: PWideChar; wantExceptions: bool32 = false); safecall; overload;

Description

Loads face recognizer state.

Parameter | Description
stream | Input stream.

Example

var fs: TFileStream;
...
fs := TFileStream.Create('trained.dat', fmOpenRead);
fr.load(TStreamAdapter.Create(fs) as IStream);
fs.Free;


TIEVisionFaceRecognizer.save

TIEVisionFaceRecognizer.save

Declaration

procedure save(stream: IStream; wantExceptions: bool32 = false); safecall;
procedure save(filename: PWideChar; wantExceptions: bool32 = false); safecall;

Description

Saves current face recognizer state.

Parameter | Description
stream | Output stream.
filename | Output file name.

Example

var fs: TFileStream;
...
fs := TFileStream.Create('trained.dat', fmCreate);
fr.save(TStreamAdapter.Create(fs) as IStream);
fs.free;


TIEVisionFaceRecognizer.selectEigenFaceRecognizer

TIEVisionFaceRecognizer.selectEigenFaceRecognizer

Declaration

procedure selectEigenFaceRecognizer(imageWidth: uint32_t = 100; imageHeight: uint32_t = 130; numComponents: int32_t = 0; wantExceptions: bool32 = false); safecall;

Description

Selects Eigen Face Recognizer as face recognizer algorithm.

Parameter | Description
imageWidth | Width of training and test images. All training and test images will be resampled at this width.
imageHeight | Height of training and test images. All traning and test images will be resampled at this height.
numComponents | The number of components (Eigenfaces) kept as hint.


TIEVisionFaceRecognizer.selectFisherFaceRecognizer

TIEVisionFaceRecognizer.selectFisherFaceRecognizer

Declaration

procedure selectFisherFaceRecognizer(imageWidth: uint32_t = 100; imageHeight: uint32_t = 130; numComponents: int32_t = 0; wantExceptions: bool32 = false); safecall;

Description

Selects Fisher Face Recognizer as face recognizer algorithm.

Parameter | Description
imageWidth | Width of training and test images. All training and test images will be resampled at this width.
imageHeight | Height of training and test images. All traning and test images will be resampled at this height.
numComponents | The number of components (Fisherfaces) kept.


TIEVisionFaceRecognizer.selectLBPHFaceRecognizer

TIEVisionFaceRecognizer.selectLBPHFaceRecognizer

Declaration

procedure selectLBPHFaceRecognizer(radius: int32_t = 1; neighbors: int32_t = 8; grid_x: int32_t = 8; grid_y: int32_t = 8; wantExceptions: bool32 = false); safecall;

Description

Selects Local Binary Patterns Histograms (LBPH) Face Recognizer as face recognizer algorithm.

Parameter | Description
radius | The radius used for building the Circular Local Binary Pattern.
neighbors | The number of sample points to build a Circular Local Binary Pattern from.
grid_x | The number of cells in the horizontal direction.
grid_y | The number of cells in the vertical direction.


TIEVisionFaceRecognizer.train

TIEVisionFaceRecognizer.train

Declaration

procedure train(update: bool32 = false; wantExceptions: bool32 = false); safecall;

Description

Starts face recognition training.
Applications need to call addTrainImage before.
At the end it is possible to call detect or save.

Parameter | Description
update | If true and if supported by the algorithm this updates instead of re-train the recognizer.


TIEVisionFileFormat

TIEVisionFileFormat

Declaration

TIEVisionFileFormat = (
ievTIFF = 1, // TIFF
ievJPEG = 3, // JPEG
ievBMP = 5, // BMP
ievPNG = 8, // PNG
ievPXM = 12, // PXM
ievJ2K = 14, // JPEG2000
ievRAS = 30, // Sun Rasters
ievHEX = 100 // ASCII HEX digits, separating planes
);


TIEVisionFileStream

TIEVisionFileStream

Declaration

TIEVisionFileStream = interface(TIEVisionStream)

Description

This is the base interface for all objects with file streaming features.
This interface allows you to open/create files and access them using a streaming interface.

See Also

- TIEVisionFileStream
- TIEVisionTempFileStream
- TIEVisionMemoryStream
- TIEVisionExistingMemoryStream

Methods and Properties

close
open
open


TIEVisionFileStream.close

TIEVisionFileStream.close

Declaration

procedure close(); safecall;

Description

Closes the file.


TIEVisionFileStream.open

TIEVisionFileStream.open

Declaration

procedure open(filename: PAnsiChar; mode: TIEVisionFileStreamMode); overload; safecall;
procedure open(filename: PWideChar; mode: TIEVisionFileStreamMode); overload; safecall;

Description

Opens/Creates a file.

Parameter | Description
filename | Path and name of the file to open.
mode | Opening mode.

Example

// opens 'input.jpg' in read only mode
filestream := IEVisionLib.createFileStream();
filestream.open('input.jpg', ievREAD);

// creates 'output.jpg'
filestream := IEVisionLib.createFileStream();
filestream.open('output.jpg', ievCREATE);


TIEVisionFileStreamMode

TIEVisionFileStreamMode

Declaration

TIEVisionFileStreamMode = (
ievREAD = 0, // read only
ievCREATE = 1, // create file
ievREADWRITE = 2 // read and write
);


TIEVisionFlipMode

TIEVisionFlipMode

Declaration

TIEVisionFlipMode = (
ievX_AXIS = 0, // flip X axis
ievY_AXIS = 1, // flip Y axis
ievXY_AXISES = -1 // flip X and Y axis
);


TIEVisionFloatPair

TIEVisionFloatPair

Declaration

TIEVisionFloatPair = packed record
first: single;
second: single;
end;


TIEVisionGEMMFlags

TIEVisionGEMMFlags

Declaration

TIEVisionGEMMFlags = (
ievGEMM_NONE = 0,
ievGEMM_A_T = 1,
ievGEMM_B_T = 2,
ievGEMM_C_T = 4
);


TIEVisionHaarBoostType

TIEVisionHaarBoostType

Declaration

TIEVisionHaarBoostType = (
ievDISCRETE_ADABOOST = 0,
ievREAL_ADABOOST = 1,
ievLOGITBOOST = 2,
ievGENTLE_ADABOOST = 3
);


TIEVisionHaarDetectObjectsFlags

TIEVisionHaarDetectObjectsFlags

Declaration

type TIEVisionHaarDetectObjectsFlags = int32_t;
const ievNONE = 0;
const ievDO_CANNY_PRUNING = 1;
const ievSCALE_IMAGE = 2;
const ievFIND_BIGGEST_OBJECT = 4;
const ievDO_ROUGH_SEARCH = 8;


TIEVisionHaarInvert

TIEVisionHaarInvert

Declaration

TIEVisionHaarInvert = (
ievNOINVERT = 0, // do not invert samples
ievINVERT = 1, // always invert samples
ievRANDOM_INVERT = $7FFFFFFF // random invert samples
);


TIEVisionHaarMode

TIEVisionHaarMode

Declaration

TIEVisionHaarMode = (
ievBASIC = 0,
ievCORE = 1,
ievALL = 2
);


TIEVisionHaarStumpError

TIEVisionHaarStumpError

Declaration

TIEVisionHaarStumpError = (
ievMISCLASSIFICATION_ERROR = 0,
ievGINI_ERROR = 1,
ievENTROPY_ERROR = 2
);


TIEVisionHaarTraining

TIEVisionHaarTraining

Declaration

TIEVisionHaarTraining = interface(TIEVisionBase)

Description

This interface allows you to create training samples and learn an Haar cascade classifier to recognize new objects.

Methods and Properties

createCascadeClassifier
createTrainingSamples
trainCascadeClassifier


TIEVisionHaarTraining.createCascadeClassifier

TIEVisionHaarTraining.createCascadeClassifier

Declaration

function createCascadeClassifier(sampleImage: TIEVisionImage; backgroundImageList: TIEVisionImageList; samplesCount: int32_t; treeCascade: bool32 = true; bgColor: int32_t = 0; bgThreshold: int32_t = 80; invert: TIEVisionHaarInvert = ievNOINVERT; maxIntensityDeviation: int32_t = 40; maxXAngle: double = 1.1; maxYAngle: double = 1.1; maxZAngle: double = 0.5; width: int32_t = 24; height: int32_t = 24; stagesCount: int32_t = 14; numPrecalculated: int32_t = 200; splitsCount: int32_t = 1; minHitRate: double = 0.995; maxFalseAlarm: double = 0.5; weightFraction: double = 0.95; haarMode: TIEVisionHaarMode = ievBASIC; verticalSymmetry: bool32 = false; equalWeights: bool32 = true; boostType: TIEVisionHaarBoostType = ievGENTLE_ADABOOST; stumpError: TIEVisionHaarStumpError = ievMISCLASSIFICATION_ERROR; maxTreeSplits: int32_t = 0; minPos: int32_t = 500): TIEVisionCascadeClassifier; safecall;

Description

Trains an Haar cascade classifier with the specified sample (positive) image and background samples (negative) and returns a Cascade classifier object ready to reconize the trained object.

Parameter | Description
sampleImage | One positive sample image.
backgroundImageList | A list of negative sample images.
samplesCount | Number of samples to generate.
treeCascade | Undocumented.
bgColor | Undocumented.
bgThreshold | Undocumented.
invert | Undocumented.
maxIntensityDeviation | Undocumented.
maxXAngle | Undocumented.
maxYAngle | Undocumented.
maxZAngle | Undocumented.
width | Undocumented.
height | Undocumented.
stagesCount | Undocumented.
numPrecalculated | Undocumented.
splitsCount | Undocumented.
minHitRate | Undocumented.
maxFalseAlarm | Undocumented.
weightFraction | Undocumented.
haarMode | Undocumented.
verticalSymmetry | Undocumented.
equalWeights | Undocumented.
boostType | Undocumented.
stumpError | Undocumented.
maxTreeSplits | Undocumented.
minPos | Undocumented.


TIEVisionHaarTraining.createTrainingSamples

TIEVisionHaarTraining.createTrainingSamples

Declaration

procedure createTrainingSamples(dstSamplesFilename: PAnsiChar; sampleImage: TIEVisionImage; backgroundImageList: TIEVisionImageList; samplesCount: int32_t; bgColor: int32_t; bgThreshold: int32_t = 80; invert: TIEVisionHaarInvert = ievNOINVERT; maxIntensityDeviation: int32_t = 40; maxXAngle: double = 1.1; maxYAngle: double = 1.1; maxZAngle: double = 0.5; width: int32_t = 24; height: int32_t = 24); overload; safecall;
procedure createTrainingSamples(dstSamplesFilename: PAnsiChar; srcImageList: TIEVisionImageList; width: int32_t = 24; height: int32_t = 24); overload; safecall;

Description

Creates a file with a set of training sample images.

First overload gets a single positive image and a list of backgrounds (negative samples) and mixes them to build the training samples file.

Second overload gets a list of images specifying a set of positive rectangles for each image and builds the training samples file.
Each image in srcImageList must contain bounding box of the objects to train, under the "HaarTraining.Objects" tree. The path is, for example:
"HaarTraining.Objects.Marisa" contains a Rect object.
"HaarTraining.Objects.Bill" contains a Rect object.

Parameter | Description
dstSamplesFilename | The resulting training samples file.
sampleImage | A single positive image.
backgroundImageList | A set of negative images.
samplesCount | Number of samples to generate.
bgColor | Background color.
bgThreshold | Background threshold.
invert | Randomly invert images.
maxIntensityDeviation | Maximum intensity deviation.
maxXAngle | Random rotation maximum X angle.
maxYAngle | Random rotation maximum Y angle.
maxZAngle | Random rotation maximum Z angle.
width | Sample width.
height | Sample height.
srcImageList | A set of images containing rectangles with positive samples.

See Also

- trainCascadeClassifier

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionHaarTraining.trainCascadeClassifier

TIEVisionHaarTraining.trainCascadeClassifier

Declaration

procedure trainCascadeClassifier(dstFilename: PAnsiChar; srcSamplesFilename: PAnsiChar; backgroundImageList: TIEVisionImageList; treeCascade: bool32 = true; stagesCount: int32_t = 14; numPrecalculated: int32_t = 200; splitsCount: int32_t = 1; minHitRate: double = 0.995; maxFalseAlarm: double = 0.5; weightFraction: double = 0.95; haarMode: TIEVisionHaarMode = ievBASIC; verticalSymmetry: bool32 = false; equalWeights: bool32 = true; width: int32_t = 24; height: int32_t = 24; boostType: TIEVisionHaarBoostType = ievGENTLE_ADABOOST; stumpError: TIEVisionHaarStumpError = ievMISCLASSIFICATION_ERROR; maxTreeSplits: int32_t = 0; minPos: int32_t = 500); safecall;

Description

Trains an Haar cascade classifier with the specified training samples file (generated with createTrainingSamples) and saves the classifier to file.

Parameter | Description
dstFilename | Filename to store trained Haar Classifier.
srcSamplesFilename | Training samples file.
backgroundImageList | A set of negative samples.
treeCascade | Undocumented.
stagesCount | Undocumented.
numPrecalculated | Undocumented.
splitsCount | Undocumented.
minHitRate | Undocumented.
maxFalseAlarm | Undocumented.
weightFraction | Undocumented.
haarMode | Undocumented.
verticalSymmetry | Undocumented.
equalWeights | Undocumented.
width | Undocumented.
height | Undocumented.
boostType | Undocumented.
stumpError | Undocumented.
maxTreeSplits | Undocumented.
minPos | Undocumented.


TIEVisionHistogram

TIEVisionHistogram

Declaration

TIEVisionHistogram = interface(TIEVisionBase)

Description

This interface allows you to handle an histogram.

Methods and Properties

calc
calcBackProject
clear
getValue
minMax
normalize
operatorASSIGN
size
swap


TIEVisionHistogram.calc

TIEVisionHistogram.calc

Declaration

procedure calc(image: TIEVisionImage; accumulate: bool32 = false); overload; safecall;
procedure calc(image: TIEVisionImage; accumulate: bool32; mask: TIEVisionImage); overload; safecall;

Description

Populates histogram with the content of the specified image.

Parameter | Description
image | Source image.
accumulate | If it is set, the histogram is not cleared in the beginning when it is allocated.
mask | Operational mask.


TIEVisionHistogram.calcBackProject

TIEVisionHistogram.calcBackProject

Declaration

procedure calcBackProject(image: TIEVisionImage; backProject: TIEVisionImage); safecall;

Description

Calculates the back projection of a histogram.

Parameter | Description
image | Source image.
backProject | Destination image.


TIEVisionHistogram.clear

TIEVisionHistogram.clear

Declaration

procedure clear(); safecall;

Description

Clears the histogram.


TIEVisionHistogram.getValue

TIEVisionHistogram.getValue

Declaration

function getValue(index0: int32_t): single; overload; safecall;
function getValue(index0: int32_t; index1: int32_t): single; overload; safecall;
function getValue(index0: int32_t; index1: int32_t; index2: int32_t): single; overload; safecall;

Description

Returns an item of the histogram.

Parameter | Description
index0 | Index of dimension 0.
index1 | Index of dimension 1.
index2 | Index of dimension 2.


TIEVisionHistogram.minMax

TIEVisionHistogram.minMax

Declaration

procedure minMax(out vmin: single; out vmax: single); safecall;

Description

Returns minimum and maximum histogram values.

Parameter | Description
vmin | Minimum value.
vmax | Maximum value.


TIEVisionHistogram.normalize

TIEVisionHistogram.normalize

Declaration

procedure normalize(factor: double); safecall;

Description

Normalizes the histogram.

Parameter | Description
factor | Normalization factor.


TIEVisionHistogram.operatorASSIGN

TIEVisionHistogram.operatorASSIGN

Declaration

procedure operatorASSIGN(src: TIEVisionHistogram); safecall;

Description

Replaces current content with the content of specified object.

Parameter | Description
src | Object to assign to.


TIEVisionHistogram.size

TIEVisionHistogram.size

Declaration

function size(index: int32_t): int32_t; safecall;

Description

Returns the size of specified dimension.


TIEVisionHistogram.swap

TIEVisionHistogram.swap

Declaration

procedure swap(secondHist: TIEVisionHistogram); safecall;

Description

Exchanges the content of two histograms.

Parameter | Description
secondHist | Other object to exchange.


TIEVisionHistogramType

TIEVisionHistogramType

Declaration

TIEVisionHistogramType = (
ievARRAY = 0,
ievSPARSE = 1
);


TIEVisionImage.adaptiveThreshold

TIEVisionImage.adaptiveThreshold

Declaration

procedure adaptiveThreshold(maxValue: double; adaptiveMethod: TIEVisionAdaptiveMethod = ievADAPTIVE_THRESH_MEAN_C; thresholdType: TIEVisionThresholdType = ievTHRESH_BINARY; blockSize: int32_t = 3; C: double = 5; wantExceptions: bool32 = false); safecall;

Description

Applies an adaptive threshold.

Note: Pixel format of input image must be ie8g.

Parameter | Description
maxValue | Non-zero value assigned to the pixels for which the condition is satisfied.
adaptiveMethod | Adaptive thresholding algorithm to use.
thresholdType | Thresholding type.
blockSize | Size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, and so on.
C | Constant subtracted from the mean or weighted mean.

Example

begin
ImageEnView.LegacyBitmap := false;
ImageEnView.IO.LoadFromFile('input.jpg');
ImageEnView.IEBitmap.PixelFormat := ie8g;
ImageEnView.IEBitmap.GetIEVisionImage().adaptiveThreshold(255);
ImageEnView.Update();
end;


TIEVisionImage.addWeighted

TIEVisionImage.addWeighted

Declaration

procedure addWeighted(alpha: double; rhs: TIEVisionImage; beta: double; gamma: double; dest: TIEVisionImage); overload; safecall;

Description

Computes the weighted sum of two images, executing: dest = this*alpha + rhs*beta + gamma

Parameter | Description
alpha | Weight for the first image pixels.
rhs | Second source image of the same size and channel number.
beta | Weight for the second image pixels.
gamma | Scalar added to each sum.
dest | Container for the resulting image.


TIEVisionImage.avg

TIEVisionImage.avg

Declaration

function avg(mask: TIEVisionImage): TIEVisionScalar; overload; safecall;
function avg(): TIEVisionScalar; overload; safecall;

Description

Calculates an average (mean) of image pixels.

Parameter | Description
mask | Operation mask (processes only pixels with mask > 0).


TIEVisionImage.avgSdv

TIEVisionImage.avgSdv

Declaration

procedure avgSdv(out mean: TIEVisionScalar; out stdDev: TIEVisionScalar; mask: TIEVisionImage); overload; safecall;
procedure avgSdv(out mean: TIEVisionScalar; out stdDev: TIEVisionScalar); overload; safecall;

Description

Calculates a mean and standard deviation of image pixels.

Parameter | Description
mean | Outputs calculated mean.
stdDev | Output calculated standard deviation.
mask | Operation mask (processes only pixels with mask > 0).


TIEVisionImage.blur

TIEVisionImage.blur

Declaration

procedure blur(ksize: TIEVisionSize; anchor: TIEVisionPoint; borderType: TIEVisionBorderType = ievBORDER_REFLECT_101; wantExceptions: bool32 = false); overload; safecall;
procedure blur(outImage: TIEVisionImage; ksize: TIEVisionSize; anchor: TIEVisionPoint; borderType: TIEVisionBorderType = ievBORDER_REFLECT_101; wantExceptions: bool32 = false); overload; safecall;

Description

Blurs an image using the normalized box filter.

Parameter | Description
outImage | Destination image. Must be 8 bit gray scale (ie8g) and must have the same size of input image.
ksize | Blurring kernel size.
anchor | Anchor point. Value IEVisionPoint(-1, -1) means that the anchor is at the kernel center.
borderType | border mode used to extrapolate pixels outside of the image.

Example

ImageEnView.LegacyBitmap := false;
ImageEnView.IO.LoadFromFile('input.jpg');
ImageEnView.IEBitmap.GetIEVisionImage().blur(IEVisionSize(6, 6), IEVisionPoint(-1, -1));
ImageEnView.Update();


TIEVisionImage.camShift

TIEVisionImage.camShift

Declaration

procedure camShift(var window: TIEVisionRect; criteria: TIEVisionTermCriteria; out area: double; out box: TIEVisionBox2D); overload; safecall;
function camShift(var window: TIEVisionRect; criteria: TIEVisionTermCriteria): TIEVisionRotatedRect; overload; safecall;

Description

Finds an object center, size, and orientation.
First overload outputs area as double and bounding box as TIEVisionBox2D.
Second overload returns a TIEVisionRotatedRect record.

Parameter | Description
window | Initial search window.
criteria | Search stop criteria.
area | Area of found box.
box | Found box.

Demos

Demos\IEVision\TrackObjects\TrackObjects.dpr
Demos\IEVision\TrackObjects_LowLevel\TrackObjects_LowLevel.dpr


TIEVisionImage.canny

TIEVisionImage.canny

Declaration

procedure canny(threshold1: double; threshold2: double; apertureSize: int32_t = 3; L2gradient: bool32 = false; wantExceptions: bool32 = false); overload; safecall;
procedure canny(outImage: TIEVisionImage; threshold1: double; threshold2: double; apertureSize: int32_t = 3; L2gradient: bool32 = false; wantExceptions: bool32 = false); overload; safecall;

Description

Finds edges in an image using the Canny algorithm.

Note: Pixel format of input image must be ie8g.

Parameter | Description
outImage | Destination image. Must be 8 bit gray scale (ie8g) and must have the same size of input image.
threshold1 | First threshold for the hysteresis procedure.
threshold2 | Second threshold for the hysteresis procedure.
apertureSize | Aperture size for the Sobel operator.
L2gradient | A flag, indicating whether a more accurate L2 normalization should be used to calculate the image gradient magnitude.

Example

ImageEnView.LegacyBitmap := false;
ImageEnView.IO.LoadFromFile('input.jpg');
ImageEnView.IEBitmap.PixelFormat := ie8g;
ImageEnView.IEBitmap.GetIEVisionImage().canny(50, 200, 3);
ImageEnView.Update();


TIEVisionImage.cmp

TIEVisionImage.cmp

Declaration

procedure cmp(rhs: TIEVisionImage; dest: TIEVisionImage; cmpOp: TIEVisionCmpOp); overload; safecall;
procedure cmp(rhs: double; dest: TIEVisionImage; cmpOp: TIEVisionCmpOp); overload; safecall;

Description

Performs the per-element comparison of two images or an image and scalar value.

Parameter | Description
rhs | Right-side image to compare.
dest | Container for the results.
cmpOp | Compare operation.


TIEVisionImage.convertColor

TIEVisionImage.convertColor

Declaration

function convertColor(dst: TIEVisionImage; code: TIEVisionCvtColorCode): TIEVisionImage; overload; safecall;
function convertColor(code: TIEVisionCvtColorCode): TIEVisionImage; overload; safecall;

Description

Converts from a color space to another color space.
First overload stores the resulting image into specified destination. Returns the destination object.
Second overload stores the resulting image inplace. Returns itself.

Channels format and channels count are set automatically.

Parameter | Description
dst | Container for the destination image.
code | Specifies source and destination color space.

Example

// Converts BGR image to gray scale
image.convertColor(ievBGR2GRAY);


TIEVisionImage.convertScale

TIEVisionImage.convertScale

Declaration

function convertScale(dest: TIEVisionImage; scale: double = 1.0; shift: double = 0.0): TIEVisionImage; overload; safecall;
function convertScale(channelFormat: TIEVisionChannelFormat; scale: double = 1.0; shift: double = 0.0): TIEVisionImage; overload; safecall;

Description

Converts an image to another datatype with optional scaling.
First overload stores the resulting image into destination object. It returns the destination image.
Second overload stores the resulting image inplace. It returns itself.

Parameter | Description
dest | Container used to store results.
scale | Scale factor (1.0 = no scale).
shift | Delta added to the scaled values.
channelFormat | Used to change the channel format.


TIEVisionImage.copy

TIEVisionImage.copy

Declaration

procedure copy(dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure copy(dest: TIEVisionImage); overload; safecall;
procedure copy(const srcRect: TIEVisionRect; dest: TIEVisionImage); overload; safecall;
function copy(const srcRect: TIEVisionRect): TIEVisionImage; overload; safecall;
procedure copy(const srcRect: TIEVisionRect; const dstRect: TIEVisionRect; dest: TIEVisionImage); overload; safecall;
procedure copy(const srcRect: TIEVisionRect; destPtr: pointer; rowLen: int32_t); overload; safecall;

Description

Copies current image to the specified destination.

Parameter | Description
dest | XXX
mask | XXX
srcRect | XXX
dstRect | XXX
destPtr | XXX
rowLen | XXX

Example

// overload nr.1: copies image1 to destination, using specified mask (only pixels with mask > 0)
destination := IEVisionLib.createImage();
image1.copy(destination, mask);

// overload nr.2: copies image1 to destination
destination := IEVisionLib.createImage();
image1.copy(destination);

// overload nr.3: copies specified rectangle of image1 to destination
destination := IEVisionLib.createImage();
image1.copy(IEVisionRect(10, 10, 200, 200), destination);

// overload nr.4: creates a new image from the specified rectangle
destination := image1.copy(IEVisionRect(10, 10, 200, 200));

// overload nr.5: copies specified rectangle of image1 to specified rectangle of destination
destination := IEVisionLib.createImage();
image1.copy(IEVisionRect(10, 10, 200, 200), IEVisionRect(50, 50, 200, 200), destination);

// overload nr.6: copies specified rectangle to destination buffer
image1.copy(IEVisionRect(10, 10, 200, 200), destPointer, destRowLen);


TIEVisionImage.copyFrom

TIEVisionImage.copyFrom

Declaration

procedure copyFrom(srcChannelFormat: TIEVisionChannelFormat; srcChannels: int32_t; srcRowLen: int32_t; srcData: pointer); safecall;

Description

Copies image from memory buffer.

Parameter | Description
srcChannelFormat | Source image channel format.
srcChannels | Source image number of channels.
srcRowLen | Source image row length.
srcData | Source image buffer.

Example

// copies RGB image from ImageEnView1 (TImageEnView)
image1 := IEVisionLib.createImage();
image1.copyFrom(ievUINT8, 3, ImageEnView1.IEBitmap.RowLen, ImageEnView1.IEBitmap.Scanline[ImageEnView1.IEBitmap.Height-1]);
image1.flip(ievY_AXIS);


TIEVisionImage.countNonZero

TIEVisionImage.countNonZero

Declaration

function countNonZero(): int32_t; safecall;

Description

Counts non-zero image pixels.


TIEVisionImage.create

TIEVisionImage.create

Declaration

procedure create(width: int32_t; height: int32_t; channelFormat: TIEVisionChannelFormat; channels: int32_t); safecall;

Description

Allocates (if necessary) an image with the specified parameters.

Parameter | Description
width | Image width.
height | Image height.
channelFormat | Type of channels (8 bit, 8 bit unsigned, 16 bit, etc...).
channels | Number of channels (1 = gray scale, 3 = color).

Example

// create empty image
image := IEVisionLib.createImage();
// allocate 1000x1000 RGB image
image.create(1000, 1000, ievUINT8, 3);


TIEVisionImage.createAlphaMask

TIEVisionImage.createAlphaMask

Declaration

procedure createAlphaMask(); safecall;

Description

Creates the alpha mask.

See Also

- getAlphaMask

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionImage.DCT

TIEVisionImage.DCT

Declaration

procedure DCT(dest: TIEVisionImage; flags: TIEVisionDCTFlags); safecall;

Description

Performs a forward or inverse discrete Cosine transform of the image.

Parameter | Description
dest | Container for the resulting image.
flags | Transformation flags.


TIEVisionImage.determinant

TIEVisionImage.determinant

Declaration

function determinant(): double; safecall;

Description

Returns the determinant of a square floating-point image (matrix).


TIEVisionImage.DFT

TIEVisionImage.DFT

Declaration

procedure DFT(dest: TIEVisionImage; flags: TIEVisionDFTFlags; nonZeroRows: int32_t = 0); safecall;

Description

Performs a forward or inverse Discrete Fourier transform of a 1D or 2D floating-point image.

Parameter | Description
dest | Container for the resulting image.
flags | Transformation flags.
nonZeroRows | When the parameter is not zero, the function assumes that only the first nonzeroRows rows of the input image (ievDFT_INVERSE is not set) or only the first nonzeroRows of the output image (ievDFT_INVERSE is set) contain non-zeros.


TIEVisionImage.dilate

TIEVisionImage.dilate

Declaration

procedure dilate(dilationType: TIEVisionStructuringElementShape; dilationSize: uint32_t; wantExceptions: bool32 = false); safecall;

Description

Dilation is a method of Morphological Image Processing:
https://en.wikipedia.org/wiki/Dilation_%28morphology%29

Parameter | Description
dilationType | Structuring element shape.
dilationSize | Size of structuring element.


TIEVisionImage.dotProduct

TIEVisionImage.dotProduct

Declaration

function dotProduct(rhs: TIEVisionImage): double; safecall;

Description

Calculates the dot product in Euclidian metrics.

Parameter | Description
rhs | Right-hand side image.


TIEVisionImage.eigenVV

TIEVisionImage.eigenVV

Declaration

procedure eigenVV(evects: TIEVisionImage; evals: TIEVisionImage); safecall;

Description

Computes eigenvalues and eigenvectors of a symmetric image (matrix).

Parameter | Description
evects | Output container for the eigen vectors.
evals | Output container for the eigen values.


TIEVisionImage.equalizeHistogram

TIEVisionImage.equalizeHistogram

Declaration

procedure equalizeHistogram(dst: TIEVisionImage); overload; safecall;
procedure equalizeHistogram(); overload; safecall;

Description

Equalizes the histogram.
First overload places the result into destination object.
Second overload stores the resulting image inplace.

Parameter | Description
dst | Container for the destination image.

Example

image1.equalizeHistogram();


TIEVisionImage.erode

TIEVisionImage.erode

Declaration

procedure erode(erosionType: TIEVisionStructuringElementShape; erosionSize: uint32_t; wantExceptions: bool32 = false); safecall;

Description

Erosion is a method of Morphological Image Processing:
https://en.wikipedia.org/wiki/Erosion_%28morphology%29

Parameter | Description
erosionType | Structuring element shape.
erosionSize | Size of structuring element.


TIEVisionImage.fastNlMeansDenoisingColored

TIEVisionImage.fastNlMeansDenoisingColored

Declaration

procedure fastNlMeansDenoisingColored(h: single = 3; hColor: single = 3; templateWindowSize: int32_t = 7; searchWindowSize: int32_t = 21; wantExceptions: bool32 = false); overload; safecall;
procedure fastNlMeansDenoisingColored(outImage: TIEVisionImage; h: single = 3; hColor: single = 3; templateWindowSize: int32_t = 7; searchWindowSize: int32_t = 21; wantExceptions: bool32 = false); overload; safecall;

Description

Perform image denoising using Non-local Means Denoising algorithm with several computational optimizations. Noise is expected to be a gaussian white noise.

Note: Pixel format of input image must be ie24RGB.

Parameter | Description
outImage | ie24RGB image for output
h | Filter strength for image luminance. Larger h values perfectly remove noise but also remove image details, smaller h values preserve details but also noise
hColor | The same as h but for image color. For most images a value of 10 will be enough to remove colored noise and not distort colors
templateWindowSize | Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7
searchWindowSize | Size in pixels of the window that is used to compute weighted average for a given pixel. Should be odd. This value affects performance linearly, i.e. a larger value for searchWindowsSize will mean a longer denoising time. Recommended value 21

Demo

Demos\IEVision\Denoising\Denoising.dpr

Example

begin
ImageEnView.LegacyBitmap := false;
ImageEnView.IO.LoadFromFile('input.jpg');
ImageEnView.IEBitmap.GetIEVisionImage().fastNlMeansDenoisingColored( 10, 10 );
ImageEnView.Update();
end;


TIEVisionImage.filter2D

TIEVisionImage.filter2D

Declaration

procedure filter2D(dst: TIEVisionImage; kernel: TIEVisionImage; anchor: TIEVisionPoint); overload; safecall;
procedure filter2D(kernel: TIEVisionImage; anchor: TIEVisionPoint); overload; safecall;

Description

Convolves an image with the kernel.
First overload places the result into destination object.
Second overload stores the resulting image inplace.

Parameter | Description
dst | Container for the destination image.
kernel | Convolution kernel (or rather a correlation kernel), a single-channel floating point matrix. To apply different kernels to different channels, split the image into separate color planes using splitPlanes and process them individually.
anchor | Anchor of the kernel that indicates the relative position of a filtered point within the kernel. The anchor should lie within the kernel. The special default value (-1, -1) means that the anchor is at the kernel center.


TIEVisionImage.findContours

TIEVisionImage.findContours

Declaration

function findContours(mode: TIEVisionContourRetrMode; method: TIEVisionContourApproxMethod; offset: TIEVisionPoint): TIEVisionVectorObjRef; safecall;

Description

Finds contours.
Image must be ievUINT8, 1 channel. Result will be a vector of vector of points (TIEVisionVectorObjRef will contain TIEVision VectorPoint objects).

Parameter | Description
mode | Contour retrieval mode.
method | Contour approximation method.
offset | Optional offset by which every contour point is shifted.


TIEVisionImage.flip

TIEVisionImage.flip

Declaration

function flip(dst: TIEVisionImage; flipMode: TIEVisionFlipMode): TIEVisionImage; overload; safecall;
function flip(flipMode: TIEVisionFlipMode): TIEVisionImage; overload; safecall;

Description

Flips current image.
First overload stores the resulting image into specified destination. Returns the destination object.
Second overload stores the resulting image inplace. Returns itself.

Parameter | Description
dst | Container for the destination image.
flipMode | Specifies the axis (X, Y or XY).

Example

// horizontal flip
image1.flip(ievX_AXIS);


TIEVisionImage.floodFill

TIEVisionImage.floodFill

Declaration

procedure floodFill(outMask: TIEVisionImage; startingPoint: TIEVisionPoint; loDiff: TIEVisionScalar; upDiff: TIEVisionScalar; connectivity: int32_t = 4; fixedRange: bool32 = false; wantExceptions: bool32 = false); safecall;

Description

Fills specified mask with a connected pixels. Connected pixels will have 255 value in the mask, 0 otherwise.

Parameter | Description
outMask | Output gray scale mask.
startingPoint | Starting pixel of source image.
loDiff | Maximal lower brightness/color difference.
upDiff | Maximal upper brightness/color difference.
connectivity | Determines which neighbors of a pixel are considered.
fixedRange | If True only the difference between the current pixel and starting pixel is considered.

Example

// makes transparent all connected pixels starting from x = 10, y = 10
var mask: TIEVisionImage;
ImageEnView1.LegacyBitmap := false;
ImageEnView1.IO.LoadFromFile('test.jpg');
mask := IEVisionLib.createImage();
ImageEnView1.IEBitmap.GetIEVisionImage().floodFill(mask, IEVisionPoint(10, 10), IEVisionScalar(4, 4, 4), IEVisionScalar(4, 4, 4));
mask.opNot(mask);
ImageEnView1.IEBitmap.AlphaChannel.AssignIEVisionImage(mask);
imageEnview1.Update();


TIEVisionImage.getAlphaMask

TIEVisionImage.getAlphaMask

Declaration

function getAlphaMask(): TIEVisionImage; safecall;

Description

Returns current alpha mask.

See Also

- createAlphaMask

Example

image1.createAlphaMask();
alpha := image1.getAlphaMask();


TIEVisionImage.getChannelFormat

TIEVisionImage.getChannelFormat

Declaration

function getChannelFormat(): TIEVisionChannelFormat; safecall;

Description

Returns the type of channels.

See Also

- getChannels

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionImage.getChannels

TIEVisionImage.getChannels

Declaration

function getChannels(): int32_t; safecall;

Description

Returns the number of channels of current image.
When 1 the image is gray scale. When >=3 the image is colored image (ie RGB).

See Also

- getChannelFormat

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionImage.getColumn

TIEVisionImage.getColumn

Declaration

function getColumn(col: int32_t): TIEVisionImage; safecall;

Description

Creates a new TIEVisionImage object that contains the specified column. No copy is performed, only the actual area is shared among the objects.

Parameter | Description
col | Column to share.

Example

ROI_image := image1.getColumn(5);


TIEVisionImage.getColumns

TIEVisionImage.getColumns

Declaration

function getColumns(startCol: int32_t; endCol: int32_t): TIEVisionImage; safecall;

Description

Creates a new TIEVisionImage object that contains the specified range of columns. No copy is performed, only the actual area is shared among the objects.

Parameter | Description
startCol | First column to share.
endCol | Last column (not included) to share.

Example

ROI_image := image1.getColumns(10, 100);


TIEVisionImage.getDiagonal

TIEVisionImage.getDiagonal

Declaration

function getDiagonal(diag: int32_t): TIEVisionImage; safecall;

Description

Creates a new TIEVisionImage object that contains the specified diagonal. No copy is performed, only the actual area is shared among the objects.

Parameter | Description
diag | Index of the diagonal, with the following values: d=0 is the main diagonal, d>0 is a diagonal from the lower half. For example, d=1 means the diagonal is set imme- diately below the main one. d<0 is a diagonal from the upper half. For example, d=1 means the diagonal is set imme- diately above the main one.


TIEVisionImage.getHeight

TIEVisionImage.getHeight

Declaration

function getHeight(): int32_t; safecall;

Description

Returns current image height.

See Also

- getWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionImage.getMetadata

TIEVisionImage.getMetadata

Declaration

function getMetadata(): TIEVisionPropertyTree; safecall;

Description

Returns a property tree with all meta properties of the image.


TIEVisionImage.getRect

TIEVisionImage.getRect

Declaration

function getRect(rect: TIEVisionRect): TIEVisionImage; safecall;

Description

Creates a new TIEVisionImage object that contains the specified region. No copy is performed, only the actual area is shared among the objects.

Parameter | Description
rect | Region to share.

Example

ROI_image := image1.getRect(IEVisionRect(10, 10, 200, 200));


TIEVisionImage.getRow

TIEVisionImage.getRow

Declaration

function getRow(row: int32_t): TIEVisionImage; safecall;

Description

Creates a new TIEVisionImage object that contains the specified single row. No copy is performed, only the actual area is shared among the objects.

Parameter | Description
row | Row to share.

Example

ROI_image := image1.getRow(25);


TIEVisionImage.getRowLen

TIEVisionImage.getRowLen

Declaration

function getRowLen(): int32_t; safecall;

Description

Returns the length, in bytes, of a single row.


TIEVisionImage.getRows

TIEVisionImage.getRows

Declaration

function getRows(startRow: int32_t; endRow: int32_t): TIEVisionImage; safecall;

Description

Creates a new TIEVisionImage object that contains the specified range of rows. No copy is performed, only the actual area is shared among the objects.

Parameter | Description
startRow | First row to share.
endRow | Last row (not included) to share.

Example

ROI_image := image1.getRows(10, 100);


TIEVisionImage.getScanline

TIEVisionImage.getScanline

Declaration

function getScanline(row: int32_t): pointer; safecall;

Description

Returns a pointer to the specified row.

Parameter | Description
row | Row index to retrieve.


TIEVisionImage.getWidth

TIEVisionImage.getWidth

Declaration

function getWidth(): int32_t; safecall;

Description

Returns current image width.

See Also

- getHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionImage.hasAlphaMask

TIEVisionImage.hasAlphaMask

Declaration

function hasAlphaMask(): bool32; safecall;

Description

Returns true if the object doesn't contain an alpha mask.


TIEVisionImage.houghLines

TIEVisionImage.houghLines

Declaration

function houghLines(rho: double; theta: double; threshold: int32_t; srn: double = 0; stn: double = 0; wantExceptions: bool32 = false): TIEVisionVectorFloatPair; safecall;

Description

Finds lines in a binary image using the standard Hough transform.
Returns a vector of lines. Each line is represented by a two-element vector, the distance from the coordinate origin and the distance from the coordinate origin).

Note: Pixel format of input image must be ie8g.

Parameter | Description
rho | Distance resolution of the accumulator in pixels.
theta | Angle resolution of the accumulator in radians.
threshold | Accumulator threshold parameter. Only those lines are returned that get enough votes.
srn | For the multi-scale Hough transform, it is a divisor for the distance resolution rho.
stn | For the multi-scale Hough transform, it is a divisor for the distance resolution theta.

Demo

Demos\IEVision\LinesDetect\LinesDetect.dpr

Example

ImageEnView.LegacyBitmap := false;
ImageEnView.IO.LoadFromFile('input.jpg');
ImageEnView.IEBitmap.PixelFormat := ie8g;
ImageEnView.IEBitmap.GetIEVisionImage().blur(IEVisionSize(3, 3), IEVisionPoint(-1, -1));
ImageEnView.IEBitmap.GetIEVisionImage().canny(50, 200, 3);
lines := ImageEnView.IEBitmap.GetIEVisionImage().houghLines(1, PI / 180, 200);


TIEVisionImage.houghLinesP

TIEVisionImage.houghLinesP

Declaration

function houghLinesP(rho: double; theta: double; threshold: int32_t; minLineLength: double = 0; maxLineGap: double = 0; wantExceptions: bool32 = false): TIEVisionVectorScalarInt32; safecall;

Description

Finds line segments in a binary image using the probabilistic Hough transform.
Returns a vector of line segments. Each line is represented by a 4-element vector (x1, y1, x2, y2), where (x1, y1) and (x2, y2) are the ending points of each detected line segment.

Note: Pixel format of input image must be ie8g.

Parameter | Description
rho | Distance resolution of the accumulator in pixels.
theta | Angle resolution of the accumulator in radians.
threshold | Accumulator threshold parameter. Only those lines are returned that get enough votes.
minLineLength | Minimum line length. Line segments shorter than that are rejected.
maxLineGap | Maximum allowed gap between points on the same line to link them.

Example

var
lines: TIEVisionVectorScalarInt32;
i: integer;
begin
ImageEnView.LegacyBitmap := false;
ImageEnView.IO.LoadFromFile('input.jpg');
ImageEnView.IEBitmap.PixelFormat := ie8g;
ImageEnView.IEBitmap.GetIEVisionImage().blur(IEVisionSize(3, 3), IEVisionPoint(-1, -1));
ImageEnView.IEBitmap.GetIEVisionImage().canny(50, 200, 3);
lines := ImageEnView.IEBitmap.GetIEVisionImage().houghLinesP(1, PI / 180, 200, 100, 10);
// draw results
ImageEnView.IEBitmap.PixelFormat := ie24RGB;
ImageEnView.IEBitmap.Origin := ieboBOTTOMLEFT;
for i := 0 to lines.size() - 1 do
begin
with lines.getScalarInt32(i) do
begin
with ImageEnView.IEBitmap.Canvas do
begin
Pen.Color := clRed;
MoveTo(val[0], val[1]);
LineTo(val[2], val[3]);
end;
end;
end;
ImageEnView.Update();
end;


TIEVisionImage.inpaint

TIEVisionImage.inpaint

Declaration

procedure inpaint(mask: TIEVisionImage; range: double; method: TIEVisionInpaintMethod = ievINPAINT_NS); overload; safecall;
procedure inpaint(brushWidth: int32_t; brushHeight: int32_t; const subimageRect: TIEVisionRect; range: double; method: TIEVisionInpaintMethod = ievINPAINT_NS); overload; safecall;

Description

Restores the selected region in an image using the region neighborhood.
First overload needs a mask to identify the area to be inpainted.
Second overload builds automatically the mask using specified brush size.

Parameter | Description
mask | Inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that needs to be inpainted.
range | Radius of a circlular neighborhood of each point inpainted that is considered by the algorithm.
method | Inpainting method
brushWidth | Width of area to inpaint.
brushHeight | Height of area to inpaint.
subimageRect | Rectangle of area of interest (which includes the area to inpaint).

Demo

Demos\IEVision\Inpaint_Brush\Inpaint_Brush.dpr
Demos\IEVision\Inpaint_Selection\Inpaint_Selection.dpr


TIEVisionImage.inRange

TIEVisionImage.inRange

Declaration

procedure inRange(lower: TIEVisionScalar; upper: TIEVisionScalar; dest: TIEVisionImage); overload; safecall;
procedure inRange(lower: TIEVisionImage; upper: TIEVisionImage; dest: TIEVisionImage); overload; safecall;

Description

Checks if image pixels lie between the specified values.
First overload gets a range of two scalar values.
Second overload gets an matrix (image) of lower and upper values.

Parameter | Description
lower | Lower value or matrix of values.
upper | Upper value or matrix of value.
dest | Container used to store results. Contains 255 if related pixel is inside the range.


TIEVisionImage.integral

TIEVisionImage.integral

Declaration

procedure integral(sum: TIEVisionImage); overload; safecall;
procedure integral(sum: TIEVisionImage; sqsum: TIEVisionImage; tilted_sum: TIEVisionImage); overload; safecall;

Description

Calculates the integral of an image.

Parameter | Description
sum | Integral image as (W + 1) x (H + 1) , 32-bit integer or floating-point (32f or 64f).
sqsum | Integral image for squared pixel values. It is (W + 1) x (H + 1), double-precision floating-point (64f) image (matrix).
tilted_sum | Integral for the image rotated by 45 degrees. It is (W + 1) x (H + 1) image (matrix) with the same data type as sum.


TIEVisionImage.invert

TIEVisionImage.invert

Declaration

function invert(dest: TIEVisionImage; invertMethod: TIEVisionInvertMethod): double; safecall;

Description

Finds the inverse or pseudo-inverse of an image (matrix).

Parameter | Description
dest | Container for the resulting image.
invertMethod | Inversion method.


TIEVisionImage.isAllWhite

TIEVisionImage.isAllWhite

Declaration

function isAllWhite(): bool32; safecall;

Description

Returns true if the image contains all whites (255 values).


TIEVisionImage.isEmpty

TIEVisionImage.isEmpty

Declaration

function isEmpty(): bool32; safecall;

Description

Returns true if the object doesn't contain an image.


TIEVisionImage.LUT

TIEVisionImage.LUT

Declaration

procedure LUT(dest: TIEVisionImage; lut: TIEVisionImage); safecall;

Description

Performs a look-up table transform of an image. Source must be an image of 8-bit pixels.

Parameter | Description
dest | Container for the resulting image.
lut | Look-up table of 256 elements. In case of multi-channel source image, the table should either have a single channel (in this case the same table is used for all channels) or the same number of channels as in the source image.


TIEVisionImage.makeBorder

TIEVisionImage.makeBorder

Declaration

procedure makeBorder(dst: TIEVisionImage; top, bottom, left, right: int32_t; borderType: TIEVisionBorderType; value: TIEVisionScalar); overload; safecall;
procedure makeBorder(top, bottom, left, right: int32_t; borderType: TIEVisionBorderType; value: TIEVisionScalar); overload; safecall;

Description

Forms a border around the image.
First overload places the result into destination object.
Second overload stores the resulting image inplace.

Resulting image size will be width = old_width + left + right, height = old_height + top + bottom.

Parameter | Description
dst | Container for the destination image.
top | Specifies how many pixels on the top to add.
bottom | Specifies how many pixels on the bottom to add.
left | Specifies how many pixels on the left to add.
right | Specifies how many pixels on the right to add.
borderType | Border type.
value | Border value if borderType is ievBORDER_CONSTANT.


TIEVisionImage.max

TIEVisionImage.max

Declaration

procedure max(source1: TIEVisionImage; source2: TIEVisionImage); overload; safecall;
procedure max(source1: TIEVisionImage; source2: double); overload; safecall;

Description

Calculates per-element maximum of two image or an image and a scalar.

Parameter | Description
source1 | First source image.
source2 | Second source image or scalar value.


TIEVisionImage.merge

TIEVisionImage.merge

Declaration

procedure merge(channel1: TIEVisionImage; channel2: TIEVisionImage; channel3: TIEVisionImage); overload; safecall;
procedure merge(channel1: TIEVisionImage; channel2: TIEVisionImage; channel3: TIEVisionImage; channel4: TIEVisionImage); overload; safecall;

Description

Merges specified channels and places the result in this object.

Parameter | Description
channel1 | Channel 1.
channel2 | Channel 2.
channel3 | Channel 3.
channel4 | Channel 4.

Example

image1.merge(channel_Blue, channel_Green, channel_Red);


TIEVisionImage.min

TIEVisionImage.min

Declaration

procedure min(source1: TIEVisionImage; source2: TIEVisionImage); overload; safecall;
procedure min(source1: TIEVisionImage; source2: double); overload; safecall;

Description

Calculates per-element minimum of two image or an image and a scalar.

Parameter | Description
source1 | First source image.
source2 | Second source image or scalar value.


TIEVisionImage.minMax

TIEVisionImage.minMax

Declaration

procedure minMax(out minVal: double; out maxVal: double); overload; safecall;
procedure minMax(out minVal: double; out maxVal: double; out minLoc: TIEVisionPoint; out maxLoc: TIEVisionPoint); overload; safecall;
procedure minMax(out minVal: double; out maxVal: double; out minLoc: TIEVisionPoint; out maxLoc: TIEVisionPoint; mask: TIEVisionImage); overload; safecall;

Description

Finds the global minimum and maximum in a whole image or sub-image.

Parameter | Description
minVal | Output for minimum value.
maxVal | Output for maximum value.
minLoc | Minimum value location.
maxLoc | Maximum value location.


TIEVisionImage.mulSpectrums

TIEVisionImage.mulSpectrums

Declaration

procedure mulSpectrums(rhs: TIEVisionImage; dest: TIEVisionImage; flags: TIEVisionMulSpectrumsFlags); safecall;

Description

Performs the per-element multiplication of two Fourier spectrums.

Parameter | Description
rhs | Right-hand side image.
dest | Container for the resulting image.
flags | Operation flags.


TIEVisionImage.mulTransposed

TIEVisionImage.mulTransposed

Declaration

procedure mulTransposed(dest: TIEVisionImage; order: bool32; delta: TIEVisionImage; scale: double = 1.0); overload; safecall;
procedure mulTransposed(dest: TIEVisionImage; order: bool32; scale: double = 1.0); overload; safecall;

Description

Calculates the product of an image (matrix) and its transposition.

Parameter | Description
dest | Container for the resulting image.
order | If true performs: st = scale(src - delta)T (src - delta), otherwise performs: dst = scale(src - delta)(src - delta)T
delta | Optional delta matrix subtracted from src before the multiplication.
scale | Optional scale factor for the matrix product.


TIEVisionImage.norm

TIEVisionImage.norm

Declaration

function norm(): double; overload; safecall;
function norm(mask: TIEVisionImage): double; overload; safecall;

Description

Calculates an absolute image norm, an absolute difference norm, or a relative difference norm.

Parameter | Description
mask | Operation mask.


TIEVisionImage.operatorASSIGN

TIEVisionImage.operatorASSIGN

Declaration

procedure operatorASSIGN(src: TIEVisionImage); safecall;

Description

Clones the source image replacing the old content.

Parameter | Description
src | Source image to clone.

See Also

- share

Example

// copies the entire content of image1 to image2
image2.operatorASSIGN(image1);


TIEVisionImage.opNot

TIEVisionImage.opNot

Declaration

procedure opNot(dest: TIEVisionImage); safecall;

Description

Inverts every bit of an image.

Parameter | Description
dest | Container for the resulting image.


TIEVisionImage.perspectiveTransform

TIEVisionImage.perspectiveTransform

Declaration

procedure perspectiveTransform(dest: TIEVisionImage; matrix: TIEVisionImage); safecall;

Description

Performs the perspective image (matrix) transformation of vectors.

Parameter | Description
dest | Container for the resulting image.
matrix | 3x3 or 4x4 floating-point transformation matrix.


TIEVisionImage.pixel_BGR8

TIEVisionImage.pixel_BGR8

Declaration

function pixel_BGR8(row: int32_t; col: int32_t): PIEVisionBGR8; safecall;

Description

Returns the pixel value at the specified position. Channel format must be 8 bit unsigned, three channels (diposed as B-G-R).

Parameter | Description
row | Vertial position.
col | Horizontal position.


TIEVisionImage.pixel_float32

TIEVisionImage.pixel_float32

Declaration

function pixel_float32(row: int32_t; col: int32_t): float_p; safecall;

Description

Returns the pixel value at the specified position. Channel format must be 32 bit floating point, single channel.

Parameter | Description
row | Vertial position.
col | Horizontal position.


TIEVisionImage.pixel_float64

TIEVisionImage.pixel_float64

Declaration

function pixel_float64(row: int32_t; col: int32_t): double_p; safecall;

Description

Returns the pixel value at the specified position. Channel format must be 64 bit floating point, single channel.

Parameter | Description
row | Vertial position.
col | Horizontal position.


TIEVisionImage.pixel_RGB8

TIEVisionImage.pixel_RGB8

Declaration

function pixel_RGB8(row: int32_t; col: int32_t): PIEVisionRGB8; safecall;

Description

Returns the pixel value at the specified position. Channel format must be 8 bit unsigned, three channels (diposed as R-G-B).

Parameter | Description
row | Vertial position.
col | Horizontal position.


TIEVisionImage.pixel_uint8

TIEVisionImage.pixel_uint8

Declaration

function pixel_uint8(row: int32_t; col: int32_t): uint8_p; safecall;

Description

Returns the pixel value at the specified position. Channel format must be 8 bit unsigned, single channel.

Parameter | Description
row | Vertial position.
col | Horizontal position.

Example

// read value of pixel at 10, 10
value := image1.pixel_uint8(10, 10)^;


TIEVisionImage.pixel_uint16

TIEVisionImage.pixel_uint16

Declaration

function pixel_uint16(row: int32_t; col: int32_t): uint16_p; safecall;

Description

Returns the pixel value at the specified position. Channel format must be 16 bit unsigned, single channel.

Parameter | Description
row | Vertial position.
col | Horizontal position.

Example

// read value of pixel at 10, 10
value := image1.pixel_uint16(10, 10)^;


TIEVisionImage.pyrDown

TIEVisionImage.pyrDown

Declaration

procedure pyrDown(dst: TIEVisionImage); overload; safecall;
procedure pyrDown(); overload; safecall;

Description

Smoothes an image and downsamples it.
First overload places the result into destination object.
Second overload stores the resulting image inplace.

Size of the destination image is computed as new_width = (width+1)/2, new_height = (height+1)/2).

Parameter | Description
dst | Container for the destination image.


TIEVisionImage.pyrUp

TIEVisionImage.pyrUp

Declaration

procedure pyrUp(dst: TIEVisionImage); overload; safecall;
procedure pyrUp(); overload; safecall;

Description

Upsamples an image and then smoothes it.
First overload places the result into destination object.
Second overload stores the resulting image inplace.

Size of the destination image is computed as new_width = width*2, new_height = height*2

Parameter | Description
dst | Container for the destination image.


TIEVisionImage.reduce

TIEVisionImage.reduce

Declaration

procedure reduce(dest: TIEVisionImage; dim: int32_t = -1; op: TIEVisionReduceOp = ievREDUCE_SUM); safecall;

Description

Reduces an image (matrix) to a vector.

Parameter | Description
dest | Container for the resulting image.
dim | Dimension index along which the matrix is reduced. 0 means that the matrix is reduced to a single row. 1 means that the matrix is reduced to a single column.
op | Reduction operation.


TIEVisionImage.repeatImage

TIEVisionImage.repeatImage

Declaration

procedure repeatImage(ny, nx: int32_t; dest: TIEVisionImage); safecall;

Description

Fills the destination image with repeated copies of the source image.

Parameter | Description
ny | Flag to specify how many times the source is repeated along the vertical axis.
nx | Flag to specify how many times the source is repeated along the horizontal axis.
dest | Container for resuling image.


TIEVisionImage.resize

TIEVisionImage.resize

Declaration

function resize(dst: TIEVisionImage; interpolation: TIEVisionInterpolation = ievLINEAR): TIEVisionImage; overload; safecall;
function resize(newWidth: int32_t; newHeight: int32_t; interpolation: TIEVisionInterpolation = ievLINEAR): TIEVisionImage; overload; safecall;

Description

Resizes (resamples) current image to the specified size, using an interpolation filter.
First overload stores the resized image in the specified destination object. Uses destination size as resize parameters. Source image remains untouched. Returns the destination object.
Second overload resizes the image inplace, returning itself.

Parameter | Description
dst | Container for the resized image.
interpolation | Interpolation filter.
newWidth | New image width. If less than 0, this is autocalculated.
newHeight | New image height. If less than 0, this is autocalculated.

Example

// resizes image1 to 1000x1000, using CUBIC interpolation
image1.resize(1000, 1000, ievCUBIC);

// resizes image1 to the size of image2 (1000x1000)
image2.create(1000, 1000, ievUINT8, 3);
image1.resize(image2, ievCUBIC);


TIEVisionImage.save

TIEVisionImage.save

Declaration

procedure save(filename: PAnsiChar); overload; safecall;
procedure save(filename: PAnsiChar; fileType: TIEVisionFileFormat); overload; safecall;

Description

Saves current image to the specified file.

Parameter | Description
filename | Filename of output file.
fileType | File format of the file.

Example

// save to output.jpg, as jpeg
image1.save('output.jpg');

// save to output.dat, as jpeg
image1.save('output.dat', ievJPEG);


TIEVisionImage.scaleAdd

TIEVisionImage.scaleAdd

Declaration

procedure scaleAdd(scale: double; rhs: TIEVisionImage; dest: TIEVisionImage); safecall;

Description

Calculates the sum of a scaled image and another image.

Parameter | Description
scale | Scale factor for left-hand side image (this).
rhs | Right-hand side image.
dest | Container for resulting image.


TIEVisionImage.setIdentity

TIEVisionImage.setIdentity

Declaration

procedure setIdentity(); safecall;

Description

Initializes a scaled identity image (matrix).


TIEVisionImage.setValue

TIEVisionImage.setValue

Declaration

procedure setValue(value: TIEVisionScalar; mask: TIEVisionImage); overload; safecall;
procedure setValue(value: TIEVisionScalar); overload; safecall;

Description

Sets all or some of the image pixels to the specified value.

Parameter | Description
value | Scalar value to set.
mask | Operation mask (set only when > 0).

Example

// fills with BGR = (200, 100, 0)
image1.setValue(IEVisionScalar(200, 100, 0));


TIEVisionImage.setZero

TIEVisionImage.setZero

Declaration

procedure setZero(); safecall;

Description

Sets all pixels to zero.


TIEVisionImage.share

TIEVisionImage.share

Declaration

procedure share(src: TIEVisionImage); safecall;

Description

Shares the content of source image with this image, replacing the old content.

Parameter | Description
src | Image to share.

See Also

- operatorASSIGN

Example

// sares the entire content of image1 with image2
image2.share(image1);


TIEVisionImage.smooth

TIEVisionImage.smooth

Declaration

procedure smooth(dst: TIEVisionImage; smoothType: TIEVisionSmoothType = ievGAUSSIAN; param1: int32_t = 3; param2: int32_t = 0; param3: double = 0.0; param4: double = 0.0); overload; safecall;
procedure smooth(smoothType: TIEVisionSmoothType = ievGAUSSIAN; param1: int32_t = 3; param2: int32_t = 0; param3: double = 0.0; param4: double = 0.0); overload; safecall;

Description

Smooths the image.
First overload places the result into destination object.
Second overload stores the resulting image inplace.

Parameter | Description
dst | Container for the destination image.
smoothType | Type of the smoothing.
param1 | Parameter 1. Depends by smoothType.
param2 | Parameter 2. Depends by smoothType.
param3 | Parameter 3. Depends by smoothType.
param4 | Parameter 4. Depends by smoothType.

smoothType can be:
Parameter | Description
ievBLUR_NO_SCALE | Linear convolution with param1 x param2 box kernel (all 1's). To smooth different pixels with different-size box kernels, you can use the integral image that is computed using integral.
ievBLUR | Linear convolution with param1 x param2 box kernel (all 1's) with subsequent scaling by 1 / (param1 * param2).
ievGAUSSIAN | Linear convolution with a param1 x param2 Gaussian kernel.
ievMEDIAN | Median filter with a param1 x param1 square aperture.
ievBILATERAL | Bilateral filter with a param1 x param1 square aperture, color sigma= param3 and spatial sigma= param4. If param1=0, the aperture square side is set to round(param4*1.5)*2+1.


TIEVisionImage.splitPlanes

TIEVisionImage.splitPlanes

Declaration

procedure splitPlanes(plane0: TIEVisionImage); overload; safecall;
procedure splitPlanes(plane0: TIEVisionImage; plane1: TIEVisionImage); overload; safecall;
procedure splitPlanes(plane0: TIEVisionImage; plane1: TIEVisionImage; plane2: TIEVisionImage); overload; safecall;
procedure splitPlanes(plane0: TIEVisionImage; plane1: TIEVisionImage; plane2: TIEVisionImage; plane3: TIEVisionImage); overload; safecall;

Description

Divides a multi-channel image (matrix) into several single-channel images.

Parameter | Description
plane0 | Container for plane 0.
plane1 | Container for plane 1.
plane2 | Container for plane 2.
plane3 | Container for plane 3.

Example

blue := IEVisionLib.createImage();
green := IEVisionLib.createImage();
red := IEVisionLib.createImage();
image1.splitPlanes(blue, green, red);


TIEVisionImage.swap

TIEVisionImage.swap

Declaration

procedure swap(secondImage: TIEVisionImage); safecall;

Description

Swaps the content of specified image and this image.

Parameter | Description
secondImage | The other image to swap.

Example

// swap content of image1 and image2
image1.swap(image2);


TIEVisionImage.threshold

TIEVisionImage.threshold

Declaration

procedure threshold(thresh: double; maxval: double; threshType: TIEVisionThresholdType; wantExceptions: bool32 = false); safecall;

Description

Applies a fixed-level threshold to each pixel element.

Note: Pixel format of input image must be ie8g.

Parameter | Description
thresh | Threshold value.
maxval | Maximum value to use with the THRESH_BINARY and THRESH_BINARY_INV thresholding types.
threshType | Thresholding type.

Example

begin
ImageEnView.LegacyBitmap := false;
ImageEnView.IO.LoadFromFile('input.jpg');
ImageEnView.IEBitmap.PixelFormat := ie8g;
ImageEnView.IEBitmap.GetIEVisionImage().threshold(0, 255, ievTHRESH_BINARY or ievTHRESH_OTSU);
ImageEnView.Update();
end;


TIEVisionImage.transpose

TIEVisionImage.transpose

Declaration

procedure transpose(); safecall;

Description

Transposes an image (matrix).


TIEVisionImageList

TIEVisionImageList

Declaration

TIEVisionImageList = interface(TIEVisionBase)

Description

This interface allows you to handle a list of images.
This is a base interface that is inherited by TIEVisionMemoryImageList, TIEVisionMemorySharedImageList and TIEVisionTempFileImageList.

Methods and Properties

clear
getImage
insert
pushBack
remove
setImage
size


TIEVisionImageList.clear

TIEVisionImageList.clear

Declaration

procedure clear(); safecall;

Description

Removes all images in the list.


TIEVisionImageList.getImage

TIEVisionImageList.getImage

Declaration

function getImage(position: int32_t): TIEVisionImage; safecall;

Description

Returns the image at specified index.

Parameter | Description
position | Index of image to retrieve.


TIEVisionImageList.insert

TIEVisionImageList.insert

Declaration

function insert(position: int32_t; image: TIEVisionImage): int32_t; overload; safecall;
function insert(position: int32_t; filename: PAnsiChar): int32_t; overload; safecall;

Description

Inserts an image into the specified index.

Parameter | Description
position | Destination index.
image | Image to insert.
filename | Filename of the image to load and insert.


TIEVisionImageList.pushBack

TIEVisionImageList.pushBack

Declaration

function pushBack(image: TIEVisionImage): int32_t; overload; safecall;
function pushBack(filename: PAnsiChar): int32_t; overload; safecall;

Description

Appends the specified image to the end of list.

Parameter | Description
image | Image to set.
filename | Filename of the image to set.


TIEVisionImageList.remove

TIEVisionImageList.remove

Declaration

procedure remove(position: int32_t); safecall;

Description

Removes the image at specified index.

Parameter | Description
position | Index of image to remove.


TIEVisionImageList.setImage

TIEVisionImageList.setImage

Declaration

procedure setImage(position: int32_t; image: TIEVisionImage); safecall;

Description

Replaces image at the index with the specified one.

Parameter | Description
position | Index of image to replace.
image | Image to set.


TIEVisionImageList.size

TIEVisionImageList.size

Declaration

function size(): int32_t; safecall;

Description

Returns number of images in the list.


TIEVisionInpaintMethod

TIEVisionInpaintMethod

Declaration

TIEVisionInpaintMethod = (
ievINPAINT_NS = 0,
ievINPAINT_TELEA = 1
);


TIEVisionInputOutput

TIEVisionInputOutput

Declaration

TIEVisionInputOutput = interface(TIEVisionBase)

Description

This interface contains a set of helper input/output functions.

Methods and Properties

zcompress
zdecompress


TIEVisionInputOutput.zcompress

TIEVisionInputOutput.zcompress

Declaration

procedure zcompress(inputStream: TIEVisionStream; outputStream: TIEVisionStream; compressionLevel: int32_t = -1); safecall;

Description

Compresses an input stream to output stream using zlib.

Parameter | Description
inputStream | Input stream to compress.
outputStream | Output stream (compressed).
compressionLevel | Optional compression level. See below:

Compression levels:
Parameter | Description
-1 | Default compression.
0 | No compression.
1 | Best speed.
2..8 | Compromises between speed and compression.
9 | Best compression.

See Also

- zdecompress

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionInputOutput.zdecompress

TIEVisionInputOutput.zdecompress

Declaration

procedure zdecompress(inputStream: TIEVisionStream; outputStream: TIEVisionStream); safecall;

Description

Decompresses a zlib stream.

Parameter | Description
inputStream | Input stream to decompress.
outputStream | Resulting decompressed stream.

See Also

- zdecompress

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionInterpolation

TIEVisionInterpolation

Declaration

TIEVisionInterpolation = (
ievNEAREST = 0,
ievLINEAR = 1,
ievCUBIC = 2,
ievAREA = 3,
ievLANCZOS4 = 4
);


TIEVisionInvertMethod

TIEVisionInvertMethod

Declaration

TIEVisionInvertMethod = (
ievLU = 0,
ievSVD = 1,
ievSVD_SYM = 2
);


TIEVisionLanguages

TIEVisionLanguages

Declaration

type
TIEVisionLanguages = record
Code : PAnsiChar;
DisplayName : string;
end;

const
IEOCRLanguageList: array[TIEOCRLanguages] of TIEVisionLanguages = (
(Code: 'grc'; DisplayName: 'Ancient Greek'),
(Code: 'deu_frak'; DisplayName: 'German (Fraktur)'),
(Code: 'eng'; DisplayName: 'English'),
(Code: 'ukr'; DisplayName: 'Ukrainian'),
(Code: 'tur'; DisplayName: 'Turkish'),
(Code: 'tha'; DisplayName: 'Thai'),
(Code: 'tgl'; DisplayName: 'Tagalog'),
(Code: 'tel'; DisplayName: 'Telugu'),
(Code: 'tam'; DisplayName: 'Tamil'),
(Code: 'swe'; DisplayName: 'Swedish'),
(Code: 'swa'; DisplayName: 'Swahili'),
(Code: 'srp_latn'; DisplayName: 'Serbian (Latin)'),
(Code: 'sqi'; DisplayName: 'Albanian'),
(Code: 'spa_old'; DisplayName: 'Spanish (Old)'),
(Code: 'spa'; DisplayName: 'Spanish'),
(Code: 'slv'; DisplayName: 'Slovenian'),
(Code: 'slk'; DisplayName: 'Slovakian'),
(Code: 'ron'; DisplayName: 'Romanian'),
(Code: 'por'; DisplayName: 'Portuguese'),
(Code: 'pol'; DisplayName: 'Polish'),
(Code: 'nor'; DisplayName: 'Norwegian'),
(Code: 'nld'; DisplayName: 'Dutch'),
(Code: 'msa'; DisplayName: 'Malay'),
(Code: 'mlt'; DisplayName: 'Maltese'),
(Code: 'mkd'; DisplayName: 'Macedonian'),
(Code: 'mal'; DisplayName: 'Malayalam'),
(Code: 'lit'; DisplayName: 'Lithuanian'),
(Code: 'lav'; DisplayName: 'Latvian'),
(Code: 'kor'; DisplayName: 'Korean'),
(Code: 'kan'; DisplayName: 'Kannada'),
(Code: 'ita_old'; DisplayName: 'Italian (Old)'),
(Code: 'ita'; DisplayName: 'Italian'),
(Code: 'isl'; DisplayName: 'Icelandic'),
(Code: 'ind'; DisplayName: 'Indonesian'),
(Code: 'chr'; DisplayName: 'Cherokee'),
(Code: 'hun'; DisplayName: 'Hungarian'),
(Code: 'hrv'; DisplayName: 'Croatian'),
(Code: 'hin'; DisplayName: 'Hindi'),
(Code: 'heb'; DisplayName: 'Hebrew'),
(Code: 'glg'; DisplayName: 'Galician'),
(Code: 'frm'; DisplayName: 'Middle French (ca. 1400-1600)'),
(Code: 'frk'; DisplayName: 'Frankish'),
(Code: 'fra'; DisplayName: 'French'),
(Code: 'fin'; DisplayName: 'Finnish'),
(Code: 'eus'; DisplayName: 'Basque'),
(Code: 'est'; DisplayName: 'Estonian'),
(Code: 'epo'; DisplayName: 'Esperanto'),
(Code: 'enm'; DisplayName: 'Middle English (1100-1500)'),
(Code: 'ell'; DisplayName: 'Greek'),
(Code: 'deu'; DisplayName: 'German'),
(Code: 'dan'; DisplayName: 'Danish'),
(Code: 'ces'; DisplayName: 'Czech'),
(Code: 'cat'; DisplayName: 'Catalan'),
(Code: 'bul'; DisplayName: 'Bulgarian'),
(Code: 'ben'; DisplayName: 'Bengali'),
(Code: 'bel'; DisplayName: 'Belarusian'),
(Code: 'aze'; DisplayName: 'Azerbaijani'),
(Code: 'ara'; DisplayName: 'Arabic'),
(Code: 'afr'; DisplayName: 'Afrikaans'),
(Code: 'jpn'; DisplayName: 'Japanese'),
(Code: 'chi_sim'; DisplayName: 'Chinese (Simplified)'),
(Code: 'chi_tra'; DisplayName: 'Chinese (Traditional)'),
(Code: 'rus'; DisplayName: 'Russian'),
(Code: 'vie'; DisplayName: 'Vietnamese'),
(Code: 'mcr'; DisplayName: 'MICR'),
(Code: 'amh'; DisplayName: 'Amharic'),
(Code: 'asm'; DisplayName: 'Assamese'),
(Code: 'aze_cyrl'; DisplayName: 'Azerbaijani (Cyrillic)'),
(Code: 'bod'; DisplayName: 'Tibetan'),
(Code: 'bos'; DisplayName: 'Bosnian'),
(Code: 'ceb'; DisplayName: 'Cebuano'),
(Code: 'cym'; DisplayName: 'Welsh'),
(Code: 'dan_frak'; DisplayName: 'Danish (Fraktur)'),
(Code: 'dzo'; DisplayName: 'Dzongkha'),
(Code: 'equ'; DisplayName: 'Equations'),
(Code: 'fas'; DisplayName: 'Persian'),
(Code: 'gle'; DisplayName: 'Irish'),
(Code: 'guj'; DisplayName: 'Gujarati'),
(Code: 'hat'; DisplayName: 'Haitian'),
(Code: 'iku'; DisplayName: 'Inuktitut'),
(Code: 'jav'; DisplayName: 'Javanese'),
(Code: 'kat'; DisplayName: 'Georgian'),
(Code: 'kat_old'; DisplayName: 'Georgian (Old)'),
(Code: 'kaz'; DisplayName: 'Kazakh'),
(Code: 'khm'; DisplayName: 'Khmer'),
(Code: 'kir'; DisplayName: 'Kyrgyz'),
(Code: 'kur'; DisplayName: 'Kurdish'),
(Code: 'lao'; DisplayName: 'Lao'),
(Code: 'lat'; DisplayName: 'Latin'),
(Code: 'mar'; DisplayName: 'Marathi'),
(Code: 'mya'; DisplayName: 'Burmese'),
(Code: 'nep'; DisplayName: 'Nepali'),
(Code: 'ori'; DisplayName: 'Oriya'),
(Code: 'pan'; DisplayName: 'Punjabi'),
(Code: 'pus'; DisplayName: 'Pashto'),
(Code: 'san'; DisplayName: 'Sanskrit'),
(Code: 'sin'; DisplayName: 'Sinhala'),
(Code: 'slk_frak'; DisplayName: 'Slovakian (Fraktur)'),
(Code: 'srp'; DisplayName: 'Serbian'),
(Code: 'syr'; DisplayName: 'Syriac'),
(Code: 'tgk'; DisplayName: 'Tajik'),
(Code: 'tir'; DisplayName: 'Tigrinya'),
(Code: 'uig'; DisplayName: 'Uyghur'),
(Code: 'urd'; DisplayName: 'Urdu'),
(Code: 'uzb'; DisplayName: 'Uzbek'),
(Code: 'uzb_cyrl'; DisplayName: 'Uzbek (Cyrillic)'),
(Code: 'yid'; DisplayName: 'Yiddish')
);


TIEVisionLibrary.createBackgroundSubtractor

TIEVisionLibrary.createBackgroundSubtractor

Declaration

function createBackgroundSubtractor(wantExceptions: bool32 = false): TIEVisionBackgroundSubtractor; safecall;

Description

Creates a background subtractor object.


TIEVisionLibrary.createBarCodeScanner

TIEVisionLibrary.createBarCodeScanner

Declaration

function createBarCodeScanner(wantExceptions: bool32 = false): TIEVisionBarCodeScanner; safecall;

Description

Creates a bar code scanner object.

Example

var
symbols: TIEVisionVectorObjRef;
s: TIEVisionBarCodeSymbol;
i: integer;
begin
symbols := IEVisionLib.createBarCodeScanner().scan(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0));
for i := 0 to symbols.size() - 1 do
begin
s := TIEVisionBarCodeSymbol( symbols.getObj(i) );
Memo1.Lines.Add('type = ' + s.getSymbolType().c_str());
Memo1.Lines.Add('data = ' + s.getData().c_str());
with s.getBoundingBox() do
Memo1.Lines.Add('rect = ' + inttostr(x) + ' ' + inttostr(y) + ' ' + inttostr(width) + ' ' + inttostr(height));
end;
end;


TIEVisionLibrary.createCascadeClassifier

TIEVisionLibrary.createCascadeClassifier

Declaration

function createCascadeClassifier(): TIEVisionCascadeClassifier; overload; safecall;
function createCascadeClassifier(c: TIEVisionCascadeClassifier): TIEVisionCascadeClassifier; overload; safecall;
function createCascadeClassifier(filename: PAnsiChar): TIEVisionCascadeClassifier; overload; safecall;

Description

First overload creates a new empty cascade classifier.
Second overload creates a cascade classifier from a copy of specified object.
Third overload creates a cascade classifier from file or embedded classifier. Embedded classifiers have ':' prefix and can be:
Const | Classifier
IEVC_EYE | ":EYE"
IEVC_EYE_TREE_EYE_GLASSES | ":EYETREEEYEGLASSES"
IEVC_FRONTAL_FACE_ALT | ":FRONTALFACEALT"
IEVC_FRONTAL_FACE_ALT_2 | ":FRONTALFACEALT2"
IEVC_FRONTAL_FACE_ALT_TREE | ":FRONTALFACEALTTREE"
IEVC_FRONTAL_FACE_DEFAULT | ":FRONTALFACEDEFAULT"
IEVC_FULL_BODY | ":FULLBODY"
IEVC_LOWER_BODY | ":LOWERBODY"
IEVC_PROFILE_FACE | ":PROFILEFACE"
IEVC_UPPER_BODY | ":UPPERBODY"
IEVC_LEFT_EYE_2_SPLITS | ":LEFTEYE2SPLITS"
IEVC_RIGHT_EYE_2_SPLITS | ":RIGHTEYE2SPLITS"
IEVC_LBP_FRONTAL_FACE | ":LBPFRONTALFACE"
IEVC_CASCADE_SMILE | ":CASCADESMILE"
IEVC_FRONTAL_CAT_FACE | ":FRONTALCATFACE"
IEVC_FRONTAL_CAT_FACE_EXT | ":FRONTALCATFACEEXTENDED"
IEVC_LICENSE_PLATE_RUS | ":LICENSEPLATERUS"
IEVC_RUSSIAN_PLATE_NUMBER | ":RUSSIANPLATENUMBER"

Parameter | Description
c | Source classifier to copy.
filename | Filename of classifier to load (or one of the embedded classifiers).

Example

// load embedded eye detector
classifier := IEVisionLib.createCascadeClassifier(IEVC_EYE);

See Also

- IEVision Embedded Classifiers

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionLibrary.createDrawing

TIEVisionLibrary.createDrawing

Declaration

function createDrawing(): TIEVisionDrawing; safecall;

Description

Creates a new drawing object.


TIEVisionLibrary.createExistingMemoryStream

TIEVisionLibrary.createExistingMemoryStream

Declaration

function createExistingMemoryStream(existingBuffer: pointer; existingBufferSize: int32_t): TIEVisionExistingMemoryStream; safecall;

Description

Creates a readonly memory stream from an existing buffer.

Parameter | Description
existingBuffer | Pointer to the existing buffer.
existingBufferSize | Size of the existing buffer.


TIEVisionLibrary.createFaceRecognizer

TIEVisionLibrary.createFaceRecognizer

Declaration

function createFaceRecognizer(wantExceptions: bool32 = false): TIEVisionFaceRecognizer; safecall;

Description

Creates a face recognizer object.


TIEVisionLibrary.createFileStream

TIEVisionLibrary.createFileStream

Declaration

function createFileStream(filename: PAnsiChar; mode: TIEVisionFileStreamMode): TIEVisionFileStream; overload; safecall;
function createFileStream(filename: PWideChar; mode: TIEVisionFileStreamMode): TIEVisionFileStream; overload; safecall;
function createFileStream(): TIEVisionFileStream; overload; safecall;

Description

First two overloads create a file stream using specified mode.
Third overload create an unopened file stream.

Parameter | Description
filename | ANSI or Unicode file name.
mode | File mode.

Example

// open "input.dat" as readonly file
filestream := createFileStream('input.dat', ievREAD);

// create "output.dat"
filestream := createFileStream('output.dat', ievCREATE);

// open "input.dat" as readonly file
filestream := createFileStream();
filestream.open('input.dat', ievREAD);


TIEVisionLibrary.createHaarTraining

TIEVisionLibrary.createHaarTraining

Declaration

function createHaarTraining(): TIEVisionHaarTraining; safecall;

Description

Creates a new Haar training object.


TIEVisionLibrary.createHistogram

TIEVisionLibrary.createHistogram

Declaration

function createHistogram(sizes: TIEVisionVectorInt32; histType: TIEVisionHistogramType; ranges: TIEVisionVectorFloatPair; uniform: bool32 = true): TIEVisionHistogram; overload; safecall;
function createHistogram(bins: int32_t = 256; histType: TIEVisionHistogramType = ievARRAY; rangeMin: single = 0.0; rangeMax: single = 255.0; uniform: bool32 = true): TIEVisionHistogram; overload; safecall;

Description

Creates an empty histogram object.

Parameter | Description
sizes | Number of histogram sizes.
histType | Histogram type.
ranges | Vector of ranges (for each size).
uniform | Uniform histogram.
bins | Number of bins.
rangeMin | Range start.
rangeMax | Range end.


TIEVisionLibrary.createImage

TIEVisionLibrary.createImage

Declaration

function createImage(width: int32_t; height: int32_t; channelFormat: TIEVisionChannelFormat; channels: int32_t): TIEVisionImage; overload; safecall;
function createImage(c: TIEVisionImage): TIEVisionImage; overload; safecall;
function createImage(): TIEVisionImage; overload; safecall;
function createImage(width: int32_t; height: int32_t; channelFormat: TIEVisionChannelFormat; channels: int32_t; rowlen: int32_t; data: pointer): TIEVisionImage; overload; safecall;
function createImage(filename: PAnsiChar): TIEVisionImage; overload; safecall;

Description

First overload creates a new image object from specified sizes and format.
Second overload creates a new image object from a copy of specified object.
Third overload creates a new empty image object.
Fourth overload creates a new image from the specified buffer (shares the same content). The buffer will be not released on destroy.
Fifth overload creates a new image from the specified file. Currently supported file formats are: TIFF, JPEG, BMP, PNG, PXM, J2K (jpeg2000), RAS.

Parameter | Description
width | Image width.
height | Image height.
channelFormat | Channel format.
channels | Number of channels.
c | Source image to copy.
rowlen | Row length in bytes.
data | Raw data buffer.
filename | Filename to load.

Example

// create 1000x1000 RGB image
image := IEVisionLib.createImage(1000, 1000, ievUINT8, 3);

// load 'input.jpg'
image := IEVisionLib.createImage('input.jpeg');

// share ImageEnView1 bitmap
ImageEnView1.IEBitmap.Origin := ieboTOPLEFT;
image := IEVisionLib.createImage(ImageEnView1.IEBitmap.Width, ImageEnView1.IEBitmap.Height,
ievUINT8, 3, ImageEnView1.IEBitmap.Rowlen,
ImageEnView1.IEBitmap.ScanLine[0]);

// the same result of previous code
image := ImageEnView1.IEBitmap.GetIEVisionImage();


TIEVisionLibrary.createInputOutput

TIEVisionLibrary.createInputOutput

Declaration

function createInputOutput(): TIEVisionInputOutput; safecall;

Description

Creates a new input/output object.


TIEVisionLibrary.createMath

TIEVisionLibrary.createMath

Declaration

function createMath(): TIEVisionMath; safecall;

Description

Creates a new math object.


TIEVisionLibrary.createMemoryImageList

TIEVisionLibrary.createMemoryImageList

Declaration

function createMemoryImageList(): TIEVisionMemoryImageList; safecall;

Description

Creates a memory image list.


TIEVisionLibrary.createMemorySharedImageList

TIEVisionLibrary.createMemorySharedImageList

Declaration

function createMemorySharedImageList(): TIEVisionMemorySharedImageList; safecall;

Description

Creates a shared image list.


TIEVisionLibrary.createMemoryStream

TIEVisionLibrary.createMemoryStream

Declaration

function createMemoryStream(): TIEVisionMemoryStream; safecall;

Description

Creates a memory stream.


TIEVisionLibrary.createObjectsFinder

TIEVisionLibrary.createObjectsFinder

Declaration

function createObjectsFinder(): TIEVisionObjectsFinder; safecall;

Description

Creates an object finder.


TIEVisionLibrary.createObjectTracker

TIEVisionLibrary.createObjectTracker

Declaration

function createObjectTracker(): TIEVisionObjectTracker; safecall;

Description

Creates an object tracker.


TIEVisionLibrary.createOCR

TIEVisionLibrary.createOCR

Declaration

function createOCR(language: PAnsiChar = nil; engine: TIEVisionOCREngine = ievOCRFAST): TIEVisionOCR; overload; safecall;
function createOCR(path: PAnsiChar; language: PAnsiChar; engine: TIEVisionOCREngine = ievOCRFAST): TIEVisionOCR; overload; safecall;
function createOCR(path: PAnsiChar; languages: TIEVisionVectorString; engine: TIEVisionOCREngine = ievOCRFAST): TIEVisionOCR; overload; safecall;

Description

Creates an OCR object for the specified language.
Many languages are available as separate files.

Parameter | Description
language | Language code of OCR recognition (ex. 'eng', 'fra').
path | Path to language data files.
engine | OCR engine to use.
languages | A list of languages.

Example

OCR := IEVisionLib.createOCR(IEOCRLanguageList[OCR_English_language].Code);

OR

sLanguage := 'fra'; // French
if FileExists( IncludeTrailingPathDelimiter( ExtractFilePath( Application.ExeName )) + sLanguage + '.traineddata' ) = False then
raise Exception.create( 'Language file not found' );
OCR := IEVisionLib.createOCR( sLanguage );

OR (multiple languages)

var langs: TIEVisionVectorString;
langs := IEVisionLib.createVectorString();
langs.push_back( IEOCRLanguageList[ OCR_English_language ].Code ); // load English
langs.push_back( IEOCRLanguageList[ OCR_Italian_language ].Code ); // load Italian
m_OCR := IEVisionLib.createOCR( '', langs, TIEVisionOCREngine( ComboBox1.ItemIndex ));


TIEVisionLibrary.createPeopleDetector

TIEVisionLibrary.createPeopleDetector

Declaration

function createPeopleDetector(wantExceptions: bool32 = false): TIEVisionPeopleDetector; safecall;

Description

Creates a People Detector object.

Example

objectsFinder := IEVisionLib.createObjectsFinder();
objectsFinder.addClassifier('People Detector', IEVisionLib.createPeopleDetector());


TIEVisionLibrary.createPropertyTree

TIEVisionLibrary.createPropertyTree

Declaration

function createPropertyTree(): TIEVisionPropertyTree; overload; safecall;
function createPropertyTree(src: TIEVisionPropertyTree): TIEVisionPropertyTree; overload; safecall;

Description

Creates a property tree object.
Second overload creates a copy of specified property tree object.

Parameter | Description
src | Property tree to copy.


TIEVisionLibrary.createStitcher

TIEVisionLibrary.createStitcher

Declaration

function createStitcher(tryUseGPU: bool32 = false; wantExceptions: bool32 = false): TIEVisionStitcher; safecall;

Description

Creates a stitcher object.


TIEVisionLibrary.createString

TIEVisionLibrary.createString

Declaration

function createString(): TIEVisionString; overload; safecall;
function createString(src: TIEVisionString): TIEVisionString; overload; safecall;
function createString(src: PAnsiChar): TIEVisionString; overload; safecall;

Description

Creates an ANSI string object.
First overload creates an empty string.
Second overload creates a clone of source string object.
Third overload creates a string from the specified ANSI string.

Parameter | Description
src | String object or ANSI string pointer to copy.


TIEVisionLibrary.createTempDirName

TIEVisionLibrary.createTempDirName

Declaration

function createTempDirName(deleteOnDestroy: bool32 = true): TIEVisionTempDirName; overload; safecall;
function createTempDirName(dirname: PAnsiChar; deleteOnDestroy: bool32 = true): TIEVisionTempDirName; overload; safecall;

Description

Creates a temporary directory name.
Second overload allows you to specify the directory name.

Parameter | Description
deleteOnDestroy | Automatically delete the directory on object destroy.
dirname | Specify dirname manually.


TIEVisionLibrary.createTempFileImageList

TIEVisionLibrary.createTempFileImageList

Declaration

function createTempFileImageList(): TIEVisionTempFileImageList; safecall;

Description

Creates a temporary file image list.


TIEVisionLibrary.createTempFileName

TIEVisionLibrary.createTempFileName

Declaration

function createTempFileName(deleteOnDestroy: bool32 = true): TIEVisionTempFileName; overload; safecall;
function createTempFileName(filename: PAnsiChar; deleteOnDestroy: bool32 = true): TIEVisionTempFileName; overload; safecall;

Description

Creates a temporary file name.
Second overload allows you to specify the file name.

Parameter | Description
deleteOnDestroy | Automatically delete the file on object destroy.
filename | Specify filename manually.


TIEVisionLibrary.createTempFileStream

TIEVisionLibrary.createTempFileStream

Declaration

function createTempFileStream(deleteOnDestroy: bool32 = true): TIEVisionTempFileStream; overload; safecall;
function createTempFileStream(filename: PAnsiChar; deleteOnDestroy: bool32 = true): TIEVisionTempFileStream; overload; safecall;

Description

Creates a temporary file stream.
First overload choices automatically the file name.
Second overload allows you to set a custom file name.

Parameter | Description
deleteOnDestroy | If true the file will be delete on object disposing.
filename | Filename of temporary file.


TIEVisionLibrary.createVectorByte

TIEVisionLibrary.createVectorByte

Declaration

function createVectorByte(): TIEVisionVectorByte; overload; safecall;
function createVectorByte(src: TIEVisionVectorByte): TIEVisionVectorByte; overload; safecall;

Description

Creates a vector of bytes (8 bit unsigned).

Parameter | Description
src | Vector to copy.


TIEVisionLibrary.createVectorDouble

TIEVisionLibrary.createVectorDouble

Declaration

function createVectorDouble(): TIEVisionVectorDouble; overload; safecall;
function createVectorDouble(src: TIEVisionVectorDouble): TIEVisionVectorDouble; overload; safecall;

Description

Creates a vector of floating point values (64 bit).

Parameter | Description
src | Vector to copy.


TIEVisionLibrary.createVectorFloatPair

TIEVisionLibrary.createVectorFloatPair

Declaration

function createVectorFloatPair(): TIEVisionVectorFloatPair; overload; safecall;
function createVectorFloatPair(src: TIEVisionVectorFloatPair): TIEVisionVectorFloatPair; overload; safecall;

Description

Creates a vector of float pairs (two 32 bit floating point values).

Parameter | Description
src | Vector to copy.


TIEVisionLibrary.createVectorImageRef

TIEVisionLibrary.createVectorImageRef

Declaration

function createVectorImageRef(): TIEVisionVectorImageRef; overload; safecall;
function createVectorImageRef(src: TIEVisionVectorImageRef): TIEVisionVectorImageRef; overload; safecall;

Description

Creates a vector of TIEVisionImage references.

Parameter | Description
src | Vector to copy.


TIEVisionLibrary.createVectorInt32

TIEVisionLibrary.createVectorInt32

Declaration

function createVectorInt32(): TIEVisionVectorInt32; overload; safecall;
function createVectorInt32(src: TIEVisionVectorInt32): TIEVisionVectorInt32; overload; safecall;

Description

Creates a vector of integers (signed 32 bit).

Parameter | Description
src | Vector to copy.


TIEVisionLibrary.createVectorPoint

TIEVisionLibrary.createVectorPoint

Declaration

function createVectorPoint(): TIEVisionVectorPoint; overload; safecall;
function createVectorPoint(src: TIEVisionVectorPoint): TIEVisionVectorPoint; overload; safecall;

Description

Creates a vector of points.

Parameter | Description
src | Vector to copy.


TIEVisionLibrary.createVectorRect

TIEVisionLibrary.createVectorRect

Declaration

function createVectorRect(): TIEVisionVectorRect; overload; safecall;
function createVectorRect(src: TIEVisionVectorRect): TIEVisionVectorRect; overload; safecall;

Description

Creates a vector of rectangles.

Parameter | Description
src | Vector to copy.


TIEVisionLibrary.createVectorString

TIEVisionLibrary.createVectorString

Declaration

function createVectorString(): TIEVisionVectorString; overload; safecall;
function createVectorString(src: TIEVisionVectorString): TIEVisionVectorString; overload; safecall;

Description

Creates a vector of strings.
Second overload creates a clone of specified vector of strings.

Parameter | Description
src | Vector to clone.


TIEVisionLibrary.createWString

TIEVisionLibrary.createWString

Declaration

function createWString(): TIEVisionWString; overload; safecall;
function createWString(src: TIEVisionWString): TIEVisionWString; overload; safecall;
function createWString(src: PWideChar): TIEVisionWString; overload; safecall;

Description

Creates a wide string object.
First overload creates an empty string.
Second overload creates a clone of source string object.
Third overload creates a string from the specified wide string.

Parameter | Description
src | String object or wide string pointer to copy.


TIEVisionLibrary.getLibraryInfo

TIEVisionLibrary.getLibraryInfo

Declaration

function getLibraryInfo(info: TIEVisionLibraryInfo; wantExceptions: bool32 = false): TIEVisionString; safecall;

Description

Returns some library infos (version, platform, etc).

Example

ShowMessage( Format('%s %s %s bit (filename: "%s", is trial: %s)', [
IEVisionLib().getLibraryInfo(ievLIBNAME).c_str(),
IEVisionLib().getLibraryInfo(ievLIBVERSION).c_str(),
IEVisionLib().getLibraryInfo(ievLIBPLATFORM).c_str(),
IEVisionLib().getLibraryInfo(ievLIBFILENAME).c_str(),
IEVisionLib().getLibraryInfo(ievISTRIAL).c_str()]) );


TIEVisionLibraryInfo

TIEVisionLibraryInfo

Declaration

TIEVisionLibraryInfo = (
ievLIBNAME = 0,
ievLIBVERSION = 1,
ievLIBPLATFORM = 2,
ievLIBFILENAME = 3,
ievISTRIAL = 4
);


TIEVisionMath.absDiff

TIEVisionMath.absDiff

Declaration

procedure absDiff(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage); overload; safecall;
procedure absDiff(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage); overload; safecall;

Description

Calculates absolute difference of left-hand side image (matrix) and right-hand side image (matrix) or scalar and puts resulting image (matrix) in the specified destination.

Parameter | Description
lhs | Left-hand side image (matrix).
rhs | Right-hand side image (matrix) or scalar.
dest | Container for the resulting image (or matrix).


TIEVisionMath.add

TIEVisionMath.add

Declaration

procedure add(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure add(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage); overload; safecall;
procedure add(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure add(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage); overload; safecall;

Description

Adds left-hand side iamge (matrix) or scalar to the right-hand side image (matrix) or scalar and puts resulting image (matrix) in the specified destination.

Parameter | Description
lhs | Left-hand side image or scalar.
rhs | Right-hand side image or scalar.
dest | Container for the resulting image (or matrix).
mask | Optional operation mask.


TIEVisionMath.boundingRect

TIEVisionMath.boundingRect

Declaration

function boundingRect(points: TIEVisionVectorPoint): TIEVisionRect; safecall;

Description

Calculates the up-right bounding rectangle of a point set.

Parameter | Description
points | Point set.


TIEVisionMath.calcCovarMatrix

TIEVisionMath.calcCovarMatrix

Declaration

procedure calcCovarMatrix(images: TIEVisionVectorImageRef; covMat: TIEVisionImage; avg: TIEVisionImage; flags: TIEVisionCovarFlags); safecall;

Description

Calculates covariant matrix of specified images (matrices).

Parameter | Description
images | A list of images of the same size.
covMat | Output covariant matrix.
avg | Average of all input matrices.
flags | Oprational flags.


TIEVisionMath.cartToPolar

TIEVisionMath.cartToPolar

Declaration

procedure cartToPolar(x: TIEVisionImage; y: TIEVisionImage; magnitude: TIEVisionImage; angle: TIEVisionImage; angleInDegrees: bool32 = false); safecall;

Description

Calculates the magnitude and angle of 2D vectors.

Parameter | Description
x | Array of x-coordinates. This must be a single-precision or double-precision floating-point array.
y | Array of y-coordinates that must have the same size and same type as x.
magnitude | Destination array of magnitudes of the same size and type as x .
angle | Destination array of angles that has the same size and type as x. The angles are measured in radians (from 0 to 2*Pi) or in degrees (0 to 360 degrees).
angleInDegrees | Flag indicating whether the angles are measured in radians, which is the default mode, or in degrees.


TIEVisionMath.contourArea

TIEVisionMath.contourArea

Declaration

function contourArea(points: TIEVisionVectorPoint): double; safecall;

Description

Calculates a contour area.

Parameter | Description
points | Contour vertices.


TIEVisionMath.exp

TIEVisionMath.exp

Declaration

procedure exp(src: TIEVisionImage; dest: TIEVisionImage); safecall;

Description

Calculates the exponent of every image element.

Parameter | Description
src | Source image (matrix).
dest | Container for the resulting image (matrix).


TIEVisionMath.genericMultiply

TIEVisionMath.genericMultiply

Declaration

procedure genericMultiply(src1: TIEVisionImage; src2: TIEVisionImage; alpha: double; src3: TIEVisionImage; beta: double; dest: TIEVisionImage; flags: TIEVisionGEMMFlags = ievGEMM_NONE); safecall;

Description

Performs generalized matrix multiplication.

Parameter | Description
src1 | First multiplied input matrix that should have 32 bit float point (1 channel), 64 bit float point (1 channel) , 32 bit float point (2 channels), or 64 bit float point (2 channels) type.
src2 | Second multiplied input matrix of the same type as src1 .
alpha | Weight of the matrix product.
src3 | Third optional delta matrix added to the matrix product. It should have the same type as src1 and src2.
beta | Weight of src3.
dest | Destination matrix. It has the proper size and the same type as input matrices.
flags | Operation flag.


TIEVisionMath.log

TIEVisionMath.log

Declaration

procedure log(src: TIEVisionImage; dest: TIEVisionImage); safecall;

Description

Calculates the natural logarithm of every image element.

Parameter | Description
src | Source image (matrix).
dest | Container for the resulting image (matrix).


TIEVisionMath.mahalonobisDistance

TIEVisionMath.mahalonobisDistance

Declaration

function mahalonobisDistance(vec1: TIEVisionImage; vec2: TIEVisionImage; invCovMatrix: TIEVisionImage): double; safecall;

Description

Calculates the Mahalanobis distance between two vectors.

Parameter | Description
vec1 | First 1D source vector.
vec2 | Second 1D source vector.
invCovMatrix | Inverse covariance matrix.


TIEVisionMath.mul

TIEVisionMath.mul

Declaration

procedure mul(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage; scale: double = 1.0); safecall;

Description

Calculates the per-element scaled product of two images.

Parameter | Description
lhs | Left-hand side image (matrix).
rhs | Right-hand side image (matrix).
dest | Container for the resulting image (matrix).
scale | Optional scalar multiplier.


TIEVisionMath.opAnd

TIEVisionMath.opAnd

Declaration

procedure opAnd(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage); overload; safecall;
procedure opAnd(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure opAnd(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure opAnd(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage); overload; safecall;

Description

Performs bitwise and of left-hand side image (matrix) and right-hand side image (matrix) or scalar and puts resulting image (matrix) in the specified destination.

Parameter | Description
lhs | Left-hand side image (matrix).
rhs | Right-hand side image or scalar (matrix).
dest | Container for the resulting image (or matrix).
mask | Operation mask.


TIEVisionMath.opDiv

TIEVisionMath.opDiv

Declaration

procedure opDiv(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage; scale: double = 1.0); safecall;

Description

Divides left-hand side image (matrix) with right-side image (matrix) and puts resulting image (matrix) in the specified destination.

Parameter | Description
lhs | Left-hand side image (matrix).
rhs | Right-hand side image (matrix).
dest | Container for the resulting image (or matrix).
scale | Optional scalar multiplier.


TIEVisionMath.opOr

TIEVisionMath.opOr

Declaration

procedure opOr(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure opOr(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage); overload; safecall;
procedure opOr(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure opOr(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage); overload; safecall;

Description

Calculates the per-element bit-wise disjunction of two images or an image and a scalar.

Parameter | Description
lhs | Left-hand side image (matrix).
rhs | Right-hand side image (matrix).
dest | Container for the resulting image (matrix).
mask | Optional operation mask.


TIEVisionMath.optimizeWith_NelderMeadSimplexMethod

TIEVisionMath.optimizeWith_NelderMeadSimplexMethod

Declaration

function optimizeWith_NelderMeadSimplexMethod(func: TIEVisionOptimizerFunction; funcUserData: pointer; solutions: TIEVisionVectorDouble; out optimalValue: double; length: double = 1.0; timeout: int32_t = 1000; eps: double = 1.0e-20): bool32; safecall;

Description

Optimizes (minimizes) the specified function using Nelder Mead Simplex method.
Returns true on success.

Parameter | Description
func | Function to optimize (minimize).
funcUserData | A user pointer sent to function to optimize.
solutions | Initial veriables and output minimizing variables.
optimalValue | Optimal value.
length | Initial length of the simplex.
timeout | Maximum number of iterations.
eps | Small real number to test convergence.

Demos

Demos\IEVision\FaceDetection\FaceDetection.dpr
Demos\IEVision\FaceDetection_LowLevel\FaceDetection_LowLevel.dpr
Demos\IEVision\GetFaces\GetFaces.dpr
Demos\IEVision\TrackObjects\TrackObjects.dpr
Demos\IEVision\TrackObjects_LowLevel\TrackObjects_LowLevel.dpr

Example

// finds values (x0=vars[0] and x1=vars[1]) that minimze (x0-1)*(x0-1) + (x1-6)*(x1-6)
function optFunc(userData: pointer; vars: TIEVisionVectorDouble): double; stdcall;
var
x0, x1: double;
begin
x0 := vars.getDouble(0);
x1 := vars.getDouble(1);
result := (x0-1)*(x0-1) + (x1-6)*(x1-6);
end;

....
// vector of input and output variables
vec := IEVisionLib.createVectorDouble();
// initial values
vec.push_back(-1.2);
vec.push_back(1.0);
// find minimizing values
if not IEVisionLib.createMath().optimizeWith_NelderMeadSimplexMethod(@optFunc, nil, vec, optValue, 1.0, 1000, 1e-20) then
begin
x0 := vec.getDouble(0); // should be "1"
x1 := vec.getDouble(1); // should be "6"
// ...and optValue shoud be "0"
end;
....


TIEVisionMath.opXor

TIEVisionMath.opXor

Declaration

procedure opXor(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure opXor(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage); overload; safecall;
procedure opXor(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure opXor(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage); overload; safecall;

Description

Calculates the per-element bit-wise "exclusive or" operation on two images (matrix) or an image (matrix) and a scalar.

Parameter | Description
lhs | Left-hand side image (matrix).
rhs | Right-hand side image (matrix).
dest | Container for the resulting image (matrix).
mask | Operation mask.


TIEVisionMath.pow

TIEVisionMath.pow

Declaration

procedure pow(src: TIEVisionImage; dest: TIEVisionImage; power: double); safecall;

Description

Raises every image element to a power.

Parameter | Description
src | Source image (matrix).
dest | Container for the resulting image (matrix).
power | Exponent of power.


TIEVisionMath.rectContains

TIEVisionMath.rectContains

Declaration

function rectContains(const rect: TIEVisionRect; const point: TIEVisionPoint): bool32; safecall;

Description

Tests if a point is inside a rectangle.

Parameter | Description
rect | Rectangle.
point | Point to test.


TIEVisionMath.rectIntersect

TIEVisionMath.rectIntersect

Declaration

function rectIntersect(const rect1: TIEVisionRect; const rect2: TIEVisionRect): TIEVisionRect; safecall;

Description

Returns the intersection of two rectangles.

Parameter | Description
rect1 | First rectangle.
rect2 | Second rectangle.


TIEVisionMath.rectTestIntersect

TIEVisionMath.rectTestIntersect

Declaration

function rectTestIntersect(const rect1: TIEVisionRect; const rect2: TIEVisionRect): bool32; safecall;

Description

Tests if two rectangles intersect.

Parameter | Description
rect1 | First rectangle.
rect2 | Second rectangle.


TIEVisionMath.rectUnion

TIEVisionMath.rectUnion

Declaration

function rectUnion(const rect1: TIEVisionRect; const rect2: TIEVisionRect): TIEVisionRect; safecall;

Description

Returns the union of two rectangles.

Parameter | Description
rect1 | First rectangle.
rect2 | Second rectangle.


TIEVisionMath.solve

TIEVisionMath.solve

Declaration

function solve(source1: TIEVisionImage; source2: TIEVisionImage; dest: TIEVisionImage; method: TIEVisionSolveMethod): int32_t; safecall;

Description

Solves one or more linear systems or least-squares problems.

Parameter | Description
source1 | Input matrix on the left-hand side of the system.
source2 | Input matrix on the right-hand side of the system.
dest | Output solution.
method | Solution (matrix inversion) method.


TIEVisionMath.solveCubic

TIEVisionMath.solveCubic

Declaration

procedure solveCubic(coeffs: TIEVisionImage; roots: TIEVisionImage); safecall;

Description

Finds the real roots of a cubic equation.

Parameter | Description
coeffs | Equation coefficients, an array of 3 or 4 elements.
roots | Destination array of real roots that has 1 or 3 elements.


TIEVisionMath.sub

TIEVisionMath.sub

Declaration

procedure sub(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure sub(lhs: TIEVisionImage; rhs: TIEVisionImage; dest: TIEVisionImage); overload; safecall;
procedure sub(lhs: TIEVisionScalar; rhs: TIEVisionImage; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure sub(lhs: TIEVisionScalar; rhs: TIEVisionImage; dest: TIEVisionImage); overload; safecall;
procedure sub(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage; mask: TIEVisionImage); overload; safecall;
procedure sub(lhs: TIEVisionImage; rhs: TIEVisionScalar; dest: TIEVisionImage); overload; safecall;

Description

Subtracts left-hand side image (matrix) or scalar to the right-hand side image (matrix) or scalar and puts resulting image (matrix) in the specified destination.

Parameter | Description
lhs | Left-hand side image or scalar.
rhs | Right-hand side image or scalar.
dest | Container for the resulting image (or matrix).
mask | Optional operation mask.


TIEVisionMath.trace

TIEVisionMath.trace

Declaration

function trace(src: TIEVisionImage): TIEVisionScalar; safecall;

Description

Returns the trace of a matrix.

Parameter | Description
src | Source image.


TIEVisionMath.transform

TIEVisionMath.transform

Declaration

procedure transform(src: TIEVisionImage; dest: TIEVisionImage; transfMatrix: TIEVisionImage); overload; safecall;

Description

Performs the matrix transformation of every image element.

Parameter | Description
src | Source image (matrix).
dest | Container for the resulting image (matrix).
transfMatrix | Transformation 2x2 or 2x3 floating-point matrix.


TIEVisionMath.transpose

TIEVisionMath.transpose

Declaration

procedure transpose(src: TIEVisionImage; dest: TIEVisionImage); safecall;

Description

Transposes a matrix.

Parameter | Description
src | Source image (matrix).
dest | Container for the resulting image (matrix).


TIEVisionMemoryImageList

TIEVisionMemoryImageList

Declaration

TIEVisionMemoryImageList = interface(TIEVisionImageList)

Description

This interface allows you to handle a list of images stored in memory.


TIEVisionMemorySharedImageList

TIEVisionMemorySharedImageList

Declaration

TIEVisionMemorySharedImageList = interface(TIEVisionImageList)

Description

This interface allows you to handle a list of images stored in memory as shared object (the content is shared with the source images).


TIEVisionMemoryStream

TIEVisionMemoryStream

Declaration

TIEVisionMemoryStream = interface(TIEVisionStream)

Description

This is the base interface for all objects with memory streaming features.
This interface allows you to create a memory stream.

See Also

- TIEVisionFileStream
- TIEVisionTempFileStream
- TIEVisionMemoryStream
- TIEVisionExistingMemoryStream

Methods and Properties

clear
reserve


TIEVisionMemoryStream.clear

TIEVisionMemoryStream.clear

Declaration

procedure clear(); safecall;

Description

Empties the memory stream.


TIEVisionMemoryStream.reserve

TIEVisionMemoryStream.reserve

Declaration

procedure reserve(count: int32_t); safecall;

Description

Allocates the specified number of bytes. The actual size of the stream doesn't change.

Parameter | Description
count | Number of bytes to allocate.


TIEVisionMulSpectrumsFlags

TIEVisionMulSpectrumsFlags

Declaration

type TIEVisionMulSpectrumsFlags = int32_t;
const ievMUL_ROWS = 4;
const ievMUL_CONJ = 8;


TIEVisionObjectsFinder.addClassifier

TIEVisionObjectsFinder.addClassifier

Declaration

procedure addClassifier(name: PAnsiChar; classifier: TIEVisionBase); safecall;

Description

Adds a new classifier (object detector) to the classifiers set.

Parameter | Description
name | Name of the classifier. This name is used only for the user convenience.
classifier | Actual object detector.

See Also

- removeClassifier
- IEVision Embedded Classifiers

Example

// load two face detectors
objectsFinder := IEVisionLib.createObjectsFinder();
objectsFinder.addClassifier('face detector 1', IEVisionLib.createCascadeClassifier(IEVC_FRONTAL_FACE_ALT_TREE);
objectsFinder.addClassifier('face detector 2', IEVisionLib.createCascadeClassifier(IEVC_FRONTAL_FACE_DEFAULT));


TIEVisionObjectsFinder.classifierExists

TIEVisionObjectsFinder.classifierExists

Declaration

function classifierExists(name: PAnsiChar): bool32; safecall;

Description

Tests if a classifier has been loaded.

Parameter | Description
name | Name of classifier to test presence.


TIEVisionObjectsFinder.findIn

TIEVisionObjectsFinder.findIn

Declaration

procedure findIn(image: TIEVisionImage); safecall;

Description

Loops among all added classifiers to find objects inside the specified image.
Objects found are returned by getFoundRectCount and getFoundRect.

Parameter | Description
image | Image where to find the objects.

Example

// detect objects
objectsFinder.findIn(ImageEnView1.IEBitmap.GetIEVisionImage());


TIEVisionObjectsFinder.getClassifier

TIEVisionObjectsFinder.getClassifier

Declaration

function getClassifier(name: PAnsiChar): TIEVisionBase; safecall;

Description

Returns the classifier added with this name.

Parameter | Description
name | Classifier name to find.


TIEVisionObjectsFinder.getFoundRect

TIEVisionObjectsFinder.getFoundRect

Declaration

function getFoundRect(name: PAnsiChar; index: int32_t): TIEVisionRect; safecall;

Description

Returns the nth object found for the specified object detector.

Parameter | Description
name | Name of object detector.
index | Index of found rectangle.

See Also

- findIn
- getFoundRectCount
- mergeRects
- mergeAllRects

Example

objectsFinder.findIn(image);
foundRects := objectsFinder.getFoundRectCount('face detector 1');
for i := 0 to foundRects-1 do
with GetFoundRect('face detector 1', i) do
begin
// do something with x, y and width, height
end;


TIEVisionObjectsFinder.getFoundRectCount

TIEVisionObjectsFinder.getFoundRectCount

Declaration

function getFoundRectCount(name: PAnsiChar): int32_t; safecall;

Description

Returns number of found objects for the specified object detector.

Parameter | Description
name | Object detector.

See Also

- findIn
- getFoundRect
- mergeRects
- mergeAllRects

Example

objectsFinder.findIn(image);
foundRects := objectsFinder.getFoundRectCount('face detector 1');


TIEVisionObjectsFinder.mergeAllRects

TIEVisionObjectsFinder.mergeAllRects

Declaration

function mergeAllRects(): TIEVisionVectorRect; safecall;

Description

Merges rectangles that intersect of all object detectors.

See Also

- findIn
- getFoundRect
- getFoundRectCount
- mergeRects

Example

// detect objects
objectsFinder.findIn(image);

// merge intersecting rectangles
rects := objectsFinder.mergeAllRects();

// loop among rectangles
for i := 0 to rects.size-1 do
begin
ImageEnView1.ObjPenWidth[-1] := 2;
with rects.getRect(i) do
begin
... do something with the rectangle coordinates and size
end;
end;


TIEVisionObjectsFinder.mergeRects

TIEVisionObjectsFinder.mergeRects

Declaration

function mergeRects(name1: PAnsiChar; name2: PAnsiChar): TIEVisionVectorRect; safecall;

Description

Merges rectangles that intersect of the specified objects detectors.

Parameter | Description
name1 | Name of an object detector.
name2 | Name of an object detector.

See Also

- findIn
- getFoundRect
- getFoundRectCount
- mergeAllRects

Example

// detect objects
objectsFinder.findIn(image);

// merge intersecting rectangles of "face1" and "face2" detectors
rects := objectsFinder.mergeRects("face1", "face2");

// loop among rectangles
for i := 0 to rects.size-1 do
begin
ImageEnView1.ObjPenWidth[-1] := 2;
with rects.getRect(i) do
begin
... do something with the rectangle coordinates and size
end;
end;


TIEVisionObjectsFinder.removeAllClassifiers

TIEVisionObjectsFinder.removeAllClassifiers

Declaration

procedure removeAllClassifiers(); safecall;

Description

Removes all added classifiers.

See Also

- addClassifier
- removeClassifier

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionObjectsFinder.removeClassifier

TIEVisionObjectsFinder.removeClassifier

Declaration

procedure removeClassifier(name: PAnsiChar); safecall;

Description

Removes the specified classifier.

Parameter | Description
name | Classifier to remove.

See Also

- addClassifier

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionObjectsFinder.setDivisor

TIEVisionObjectsFinder.setDivisor

Declaration

procedure setDivisor(value: int32_t); safecall;

Description

Sets the divisor value. A temporary image is created subsampling the source image by the divisor factor.
Object detector will look for the object inside the temporary image, instead of full image.
Default value is 3 (divide source image by 3). For fine (but slow) detection sets to 1.

Parameter | Description
value | Divisor value.

Example

objectfinder.setDivisor(1);
objectsFinder.findIn(image);


TIEVisionObjectsFinder.setEqualizeHistogram

TIEVisionObjectsFinder.setEqualizeHistogram

Declaration

procedure setEqualizeHistogram(value: bool32); safecall;

Description

If true an histogram equalization is performed before objects detection.

Default: true

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionObjectsFinder.setHaarFlags

TIEVisionObjectsFinder.setHaarFlags

Declaration

procedure setHaarFlags(value: TIEVisionHaarDetectObjectsFlags); safecall;

Description

Specifies Haar classifier flags.

Default: ievDO_CANNY_PRUNING

Note: This setting is specific to the Haar Classifier.

Parameter | Description
value | Haar flags.


TIEVisionObjectsFinder.setHaarMaxSize

TIEVisionObjectsFinder.setHaarMaxSize

Declaration

procedure setHaarMaxSize(size: TIEVisionSize); safecall;

Description

Sets the maximum size of detected object.

Default: (0, 0)


TIEVisionObjectsFinder.setHaarMinNeighbors

TIEVisionObjectsFinder.setHaarMinNeighbors

Declaration

procedure setHaarMinNeighbors(value: int32_t); safecall;

Description

Haar minimum neighbors specifies how many neighbors each candiate rectangle should have to retain it.

Default: 3

Note: This setting is specific to the Haar Classifier.

Parameter | Description
value | Minimum neighbors value.

Example

objectsFinder.setHaarMinNeighbors(4);
objectsFinder.findIn(image);


TIEVisionObjectsFinder.setHaarMinSize

TIEVisionObjectsFinder.setHaarMinSize

Declaration

procedure setHaarMinSize(size: TIEVisionSize); safecall;

Description

Sets the minimum size of detected object.

Default: (0, 0)


TIEVisionObjectsFinder.setHaarScaleFactor

TIEVisionObjectsFinder.setHaarScaleFactor

Declaration

procedure setHaarScaleFactor(value: double); safecall;

Description

Scale factor specifies how much the image size is reduced at each image scale.

Default: 1.1

Note: This setting is specific to the Haar Classifier.

Parameter | Description
value | Scale factor value.


TIEVisionObjectTracker.locateNewPosition

TIEVisionObjectTracker.locateNewPosition

Declaration

function locateNewPosition(image: TIEVisionImage; out backProjectedImage: TIEVisionImage): TIEVisionRotatedRect; safecall;

Description

Locates the new position of the object. Before call locateNewPosition you must call setInitialPosition.

Parameter | Description
image | Source image.
backProjectedImage | Image resulting of backprojection of object histogram.

See Also

- setInitialPosition

Demo

Demos\IEVision\TrackObjects\TrackObjects.dpr


TIEVisionObjectTracker.setInitialPosition

TIEVisionObjectTracker.setInitialPosition

Declaration

procedure setInitialPosition(image: TIEVisionImage; const window: TIEVisionRect); safecall;

Description

Sets the initial object position.

Parameter | Description
image | Source image (where the object stays).
window | Coordinates of rectangle containing the object.

See Also

- locateNewPosition

Demo

Demos\IEVision\TrackObjects\TrackObjects.dpr


TIEVisionOCR.clearAdaptiveInfo

TIEVisionOCR.clearAdaptiveInfo

Declaration

procedure clearAdaptiveInfo(); safecall;

Description

Removes adaptive information. Call this method whenever a new page or document must be processed.

Example

// perform OCR
OCR := IEVisionLib.createOCR(IEOCRLanguageList[OCR_English_language].Code); // english language
// page 0
str_page0 := OCR.recognize(image_page0, IEVisionRect(0, 0, 0, 0));
// page 1
OCR.clearAdaptiveInfo();
str_page1 := OCR.recognize(image_page1, IEVisionRect(0, 0, 0, 0));
// page 2
OCR.clearAdaptiveInfo();
str_page2 := OCR.recognize(image_page2, IEVisionRect(0, 0, 0, 0));


TIEVisionOCR.getBoxes

TIEVisionOCR.getBoxes

Declaration

function getBoxes(): TIEVisionVectorOCRBox; safecall;

Description

Returns a rectangle position and size for each recognized character.

Example

// Draw rectangles around recognized characters
procedure TMainForm.Button2Click(Sender: TObject);
var
boxes: TIEVisionVectorOCRBox;
i: integer;
begin
ImageEnView1.IEBitmap.Canvas.Pen.Color := clRed;
ImageEnView1.IEBitmap.Canvas.Brush.Style := bsClear;

boxes := m_OCR.getBoxes();
for i := 0 to boxes.size()-1 do
with boxes.getOCRBox(i) do
ImageEnView1.IEBitmap.Canvas.Rectangle(rect.x, rect.y, rect.x+rect.width, rect.y+rect.height);

ImageEnView1.Update();
end;


TIEVisionOCR.getOrientation

TIEVisionOCR.getOrientation

Declaration

procedure getOrientation(out orientation: TIEVisionOCROrientation; out writingDirection: TIEVisionOCRWritingDirection; out textlineOrder: TIEVisionOCRTextlineOrder; out deskewAngle: single; wantExceptions: bool32 = false); safecall;

Description

Return detail on the orientation, rotation and text direction of the document. This can be used for non-OCR applications, such as automatically correcting the rotation of scanned documents.
getOrientation should be called after getTextAngle or recognize.

Parameter | Description
orientation | Character orientation, mainly used for document orientation, e.g. a page scanned upside-down would return ievOCROrientPAGE_DOWN
writingDirection | Writing direction
textlineOrder | Line direction, e.g. Right-to-left for Arabic or Hebrew, or Top-to-bottom for some Asian text
deskewAngle | Deskew angle in radians in the range -Pi/4 and Pi/4. The level of rotation required to correct a document scanned at an angle

Note: getOrientation requires the support file Osd.TrainedData for all languages

Example

// AUTOMATICALLY ROTATE CURRENT DOCUMENT IMAGE TO CORRECT ORIENTATION

// Create OCR Engine
m_OCR := IEVisionLib.createOCR( sOcrFilesPath, IEOCRLanguageList[ OCR_English_language ].Code, ievOCRFAST );

// Detect orientation
m_OCR.setSegmentationMode( ievOCRAUTO_OSD );
angle := m_OCR.getTextAngle( ImageEnView1.IEBitmap.GetIEVisionImage() ) * 180 / PI;

// Retrieve orientation details
m_OCR.getOrientation( orientation, writingDirection, textlineOrder, deskewAngle );
deskewAngle := -deskewAngle * 180 / PI;
if orientation = ievOCROrientPAGE_RIGHT then
deskewAngle := deskewAngle - 90
else
if orientation = ievOCROrientPAGE_DOWN then
deskewAngle := deskewAngle - 180
else
if orientation = ievOCROrientPAGE_LEFT then
deskewAngle := deskewAngle - 270;

if deskewAngle <> 0 then
ImageEnView1.Proc.Rotate( -deskewAngle );


TIEVisionOCR.getRegions

TIEVisionOCR.getRegions

Declaration

function getRegions(textOnly: bool32 = false): TIEVisionVectorRect; overload; safecall;
function getRegions(image: TIEVisionImage; textOnly: bool32 = false): TIEVisionVectorRect; overload; safecall;

Description

Detects text regions (layout). In order to get document layout applications must set setSegmentationMode to ievOCRAUTO.
First overload takes last processed image as input.
Second overload takes the specified image as input.

Parameter | Description
image | Source image.
textOnly | If true then returns only text regions.

Example

OCR.setSegmentationMode(ievOCRAUTO);
regions := OCR.getRegions(image);
for i := 0 to regions.size()-1 do
with regions.getRect(i) do
begin
str := m_OCR.recognize(image, IEVisionRect(x, y, width, height));
end;


TIEVisionOCR.getTextAngle

TIEVisionOCR.getTextAngle

Declaration

function getTextAngle(): single; overload; safecall;
function getTextAngle(image: TIEVisionImage): single; overload; safecall;

Description

Returns text angle (orientation) in radians.
First overload takes last processed image as input.
Second overload takes the specified image as input.

Parameter | Description
image | Source image.

See also: getOrientation

Example

// detect orientation
angle := OCR.getTextAngle(image) * 180 / PI;
ImageEnView1.IEBitmap.Origin := ieboBOTTOMLEFT;
ImageEnView1.Proc.Rotate(-angle);


TIEVisionOCR.getWordBoxes

TIEVisionOCR.getWordBoxes

Declaration

function getWordBoxes(): TIEVisionVectorObjRef; safecall;

Description

Extracts words as Unicode text and their bounding boxes.
Returns a list of TIEVisionOCRWordBox objects.

Example

var
boxes: TIEVisionVectorObjRef;
box: TIEVisionOCRWordBox;
i: integer;
begin
ImageEnView1.IEBitmap.Canvas.Pen.Color := clBlue;
ImageEnView1.IEBitmap.Canvas.Brush.Style := bsClear;

boxes := m_OCR.getWordBoxes();
for i := 0 to boxes.size() - 1 do
begin
box := TIEVisionOCRWordBox( boxes.getObj(i) );
with box.getBox() do
ImageEnView1.IEBitmap.Canvas.Rectangle(x, y, x + width, y + height);
end;

ImageEnVect1.Update();
end;


TIEVisionOCR.isWordValid

TIEVisionOCR.isWordValid

Declaration

function isWordValid(word: PAnsiChar): bool32; safecall;

Description

Tests if the specified word is valid for currently loaded language.

Parameter | Description
word | Word to test.


TIEVisionOCR.recognize

TIEVisionOCR.recognize

Declaration

function recognize(image: TIEVisionImage; const rect: TIEVisionRect): TIEVisionWString; safecall;

Description

Performs OCR on the specified area of the image returning an ANSI string.

Parameter | Description
image | Source image.
rect | Rectangle of interest. Setting (0, 0, 0, 0) means "entire image".

Example 1

// perform OCR
OCR := IEVisionLib.createOCR(IEOCRLanguageList[OCR_English_language].Code);
str := OCR.recognize(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0)).c_str();

Example 2

Allow switching of language:

// Set language based on selection
Case LanguageRadioGroup.ItemIndex of
0 : OCR := IEVisionLib.createOCR(IEOCRLanguageList[OCR_English_language].Code);
1 : OCR := IEVisionLib.createOCR(IEOCRLanguageList[OCR_French_language].Code);
2 : OCR := IEVisionLib.createOCR(IEOCRLanguageList[OCR_German_language].Code);
End;

// Perform OCR
str := OCR.recognize(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0)).c_str();

// Reset OCR object
OCR := nil;


TIEVisionOCR.setSegmentationMode

TIEVisionOCR.setSegmentationMode

Declaration

procedure setSegmentationMode(value: TIEVisionOCRPageSegmentationMode); safecall;

Description

Specifies segmentation mode.

Note: setSegmentationMode requires the support file Osd.TrainedData for all languages

Parameter | Description
value | Segmentation mode to set.

Example

OCR.setSegmentationMode(ievOCRAUTO);


TIEVisionOCRBox

TIEVisionOCRBox

Declaration

TIEVisionOCRBox = packed record
text: uint32_t;
cost: single;
rect: TIEVisionRect;
end;


TIEVisionOCREngine

TIEVisionOCREngine

Declaration

TIEVisionOCREngine = (
ievOCRFAST = 0,
ievOCRCUBE = 1,
ievOCRACCURATE = 2
);

Description

The engine(s) used for OCR recognition:
Type | Description
ievOCRFAST | Use only the base OCR engine for faster processing
ievOCRCUBE | Use the Cube OCR engine for better accuracy (slower)
ievOCRACCURATE | Use both the base and Cube OCR engines for best accuracy

Note: If you use the base OCR engine (ievOCRFAST) you will only require the *.trained data support file, e.g. eng.traineddata for processing of an English language document.
Use of ievOCRCUBE and ievOCRACCURATE require you to also enclude the *.cube.* files. e.g. eng.cube.word-freq, eng.cube.size, etc.


TIEVisionOCROrientation

TIEVisionOCROrientation

Declaration

TIEVisionOCROrientation = (
ievOCROrientPAGE_UP = 0,
ievOCROrientPAGE_RIGHT = 1,
ievOCROrientPAGE_DOWN = 2,
ievOCROrientPAGE_LEFT = 3
);


TIEVisionOCRPageSegmentationMode

TIEVisionOCRPageSegmentationMode

Declaration

TIEVisionOCRPageSegmentationMode = (
ievOCROSD_ONLY = 0, // Orientation and script detection only.
ievOCRAUTO_OSD = 1, // Automatic page segmentation with orientation and script detection. (OSD)
ievOCRAUTO_ONLY = 2, // Automatic page segmentation, but no OSD, or OCR.
ievOCRAUTO = 3, // Fully automatic page segmentation, but no OSD.
ievOCRSINGLE_COLUMN = 4, // Assume a single column of text of variable sizes.
ievOCRSINGLE_BLOCK_VERT_TEXT = 5, // Assume a single uniform block of vertically aligned text.
ievOCRSINGLE_BLOCK = 6, // Assume a single uniform block of text. (Default.)
ievOCRSINGLE_LINE = 7, // Treat the image as a single text line.
ievOCRSINGLE_WORD = 8, // Treat the image as a single word.
ievOCRCIRCLE_WORD = 9, // Treat the image as a single word in a circle.
ievOCRSINGLE_CHAR = 10 // Treat the image as a single character.
);


TIEVisionOCRScriptDirection

TIEVisionOCRScriptDirection

Declaration

TIEVisionOCRScriptDirection = (
ievOCRDIR_NEUTRAL = 0, // Text contains only neutral characters.
ievOCRDIR_LEFT_TO_RIGHT = 1, // Text contains no Right-to-Left characters.
ievOCRDIR_RIGHT_TO_LEFT = 2, // Text contains no Left-to-Right characters.
ievOCRDIR_MIX = 3 // Text contains a mixture of left-to-right
);


TIEVisionOCRTextlineOrder

TIEVisionOCRTextlineOrder

Declaration

TIEVisionOCRTextlineOrder = (
ievOCRTxtlineOrderLEFT_TO_RIGHT = 0,
ievOCRTxtlineOrderRIGHT_TO_LEFT = 1,
ievOCRTxtlineOrderTOP_TO_BOTTOM = 2
);


TIEVisionOCRWordBox

TIEVisionOCRWordBox

Declaration

TIEVisionOCRWordBox = interface(TIEVisionBase)

Description

An object that exposes this interface can store an ocr word box (a box that contains a word).

Methods and Properties

getBox
getText


TIEVisionOCRWordBox.getBox

TIEVisionOCRWordBox.getBox

Declaration

function getBox(): TIEVisionRect; safecall;

Description

Returns the bounding rectangle of this box.


TIEVisionOCRWordBox.getConfidence

TIEVisionOCRWordBox.getConfidence

Declaration

function getConfidence(): single; safecall;

Description

Returns confidence (as percentage) of this word.


TIEVisionOCRWordBox.getLanguage

TIEVisionOCRWordBox.getLanguage

Declaration

function getLanguage(): TIEVisionString; safecall;

Description

Returns the language code (ie 'eng') used to recognize this word.


TIEVisionOCRWordBox.getPointSize

TIEVisionOCRWordBox.getPointSize

Declaration

function getPointSize(): int32_t; safecall;

Description

Returns point size in printers points (1/72 inch).


TIEVisionOCRWordBox.getScriptDirection

TIEVisionOCRWordBox.getScriptDirection

Declaration

function getScriptDirection(): TIEVisionOCRScriptDirection; safecall;

Description

Return the overall directionality of this word.


TIEVisionOCRWordBox.getText

TIEVisionOCRWordBox.getText

Declaration

function getText(): TIEVisionWString; safecall;

Description

Returns the text associated to this box.


TIEVisionOCRWordBox.isBold

TIEVisionOCRWordBox.isBold

Declaration

function isBold(): bool32; safecall;

Description

Returns true if current word has Bold attribute.


TIEVisionOCRWordBox.isItalic

TIEVisionOCRWordBox.isItalic

Declaration

function isItalic(): bool32; safecall;

Description

Returns true if current word has Italic attribute.


TIEVisionOCRWordBox.isMonospace

TIEVisionOCRWordBox.isMonospace

Declaration

function isMonospace(): bool32; safecall;

Description

Returns true if current word is monospaced.


TIEVisionOCRWordBox.isSerif

TIEVisionOCRWordBox.isSerif

Declaration

function isSerif(): bool32; safecall;

Description

Returns true if current word is Serif.


TIEVisionOCRWordBox.isSmallCaps

TIEVisionOCRWordBox.isSmallCaps

Declaration

function isSmallCaps(): bool32; safecall;

Description

Returns true if current word is smallcaps.


TIEVisionOCRWordBox.isUnderlined

TIEVisionOCRWordBox.isUnderlined

Declaration

function isUnderlined(): bool32; safecall;

Description

Returns true if current word has Underlined attribute.


TIEVisionOCRWritingDirection

TIEVisionOCRWritingDirection

Declaration

TIEVisionOCRWritingDirection = (
ievOCRWritDirLEFT_TO_RIGHT = 0,
ievOCRWritDirRIGHT_TO_LEFT = 1,
ievOCRWritDirTOP_TO_BOTTOM = 2
);


TIEVisionOptimizerFunction

TIEVisionOptimizerFunction

Declaration

TIEVisionOptimizerFunction = function(userData: pointer; variables: TIEVisionVectorDouble): double; stdcall;

Description

Callback used in optimizeWith_NelderMeadSimplexMethod optimization function.
The optimization algorithm will try to minimize this function.

Parameter | Description
userData | User data (maybe a pointer to an application object).
variables | Variables of the function to minimize.

See Also

- optimizeWith_NelderMeadSimplexMethod

Demo

Demos\IEVision\TrackObjects_LowLevel\TrackObjects_LowLevel.dpr


TIEVisionPeopleDetector.detect

TIEVisionPeopleDetector.detect

Declaration

function detect(image: TIEVisionImage): TIEVisionVectorRect; safecall;

Description

Finds all people's bodies in the specified image.
Returns a list of rectangles for each body found.

Parameter | Description
image | Image where to search for bodies.


TIEVisionPoint

TIEVisionPoint

Declaration

TIEVisionPoint = packed record
x: int32_t;
y: int32_t;
end;


TIEVisionPoint2f

TIEVisionPoint2f

Declaration

TIEVisionPoint2f = packed record
x: single;
y: single;
end;


TIEVisionPropertyTree

TIEVisionPropertyTree

Declaration

TIEVisionPropertyTree = interface(TIEVisionBase)

Description

This interface allows you to create a property tree.
A property tree contains several types of data (doubles, ints, other sub property trees, etc...) associating a key for each value.
Keys are structured as paths (ie. "image.size.width") separated by periods.

Methods and Properties

clear
erase
exists
getDouble
getInt32
getPropertyTree
getRect
getString
load
operatorASSIGN
operatorEQUAL
putDouble
putInt32
putPropertyTree
putRect
putString
save
size
sort
swap


TIEVisionPropertyTree.clear

TIEVisionPropertyTree.clear

Declaration

procedure clear(); safecall;

Description

Removes all properties.


TIEVisionPropertyTree.erase

TIEVisionPropertyTree.erase

Declaration

procedure erase(keypath: PAnsiChar); safecall;

Description

Removes the specified key.
A key path is a list of words separated by periods (ie: "image.size.width").

Parameter | Description
keypath | Path of the key to erase.

Example

propertytree.erase('image.size.width');


TIEVisionPropertyTree.exists

TIEVisionPropertyTree.exists

Declaration

function exists(keypath: PAnsiChar): bool32; safecall;

Description

Returns true if the key exists.
A key path is a list of words separated by periods (ie: "image.size.width").

Parameter | Description
keypath | Path of the key to find.

Example

if propertytree.exists('image.size.width') then
....


TIEVisionPropertyTree.getDouble

TIEVisionPropertyTree.getDouble

Declaration

function getDouble(keypath: PAnsiChar): double; safecall;

Description

Retrieves value of the specified key. The value must be a double (64 bit floating point).
A key path is a list of words separated by periods (ie: "image.property.EXIF.FNumber").

Parameter | Description
keypath | Path of the key to get.

Example

width := propertytree1.getDouble('image.property.EXIF.FNumber');


TIEVisionPropertyTree.getInt32

TIEVisionPropertyTree.getInt32

Declaration

function getInt32(keypath: PAnsiChar): int32_t; safecall;

Description

Retrieves value of the specified key. The value must be an integer (32 bit).
A key path is a list of words separated by periods (ie: "image.size.width").

Parameter | Description
keypath | Path of the key to get.

Example

width := propertytree1.getInt32('image.size.width');


TIEVisionPropertyTree.getPropertyTree

TIEVisionPropertyTree.getPropertyTree

Declaration

function getPropertyTree(keypath: PAnsiChar): TIEVisionPropertyTree; safecall;

Description

Retrieves value of the specified key. The value must be of TIEVisionPropertyTree interface type.
A key path is a list of words separated by periods (ie: "image.size.width").

Parameter | Description
keypath | Path of the key to retrieve.

Example

propertytree2 := propertytree1.getPropertyTree('image.properties');


TIEVisionPropertyTree.getRect

TIEVisionPropertyTree.getRect

Declaration

function getRect(keypath: PAnsiChar): TIEVisionRect; safecall;

Description

Retrieves value of the specified key. The value must be a TIEVisionRect interface.
A key path is a list of words separated by periods (ie: "image.ROI").

Parameter | Description
keypath | Path of the key to get.

Example

rect := propertytree1.getRect('image.ROI');


TIEVisionPropertyTree.getString

TIEVisionPropertyTree.getString

Declaration

function getString(keypath: PAnsiChar): TIEVisionString; safecall;

Description

Retrieves value of the specified key. The value must be of TIEVisionString interface type.
A key path is a list of words separated by periods (ie: "image.property.caption").

Parameter | Description
keypath | Path of the key to get.

Example

ShowMessage( AnsiString( propertytree1.getString('image.property.caption').c_str() ) );


TIEVisionPropertyTree.load

TIEVisionPropertyTree.load

Declaration

procedure load(stream: TIEVisionStream; format: TIEVisionPropertyTreeFormat = ievXML); overload; safecall;
procedure load(filename: PAnsiChar; format: TIEVisionPropertyTreeFormat = ievXML); overload; safecall;

Description

Loads a property tree from file or stream, using the specified format.

See Also

- save

Parameter | Description
stream | Stream to read.
format | Format of the input.
filename | Filename to read.


TIEVisionPropertyTree.operatorASSIGN

TIEVisionPropertyTree.operatorASSIGN

Declaration

procedure operatorASSIGN(rhs: TIEVisionPropertyTree); safecall;

Description

Clones the content of specified parameter.

Parameter | Description
rhs | Property tree to clone.


TIEVisionPropertyTree.operatorEQUAL

TIEVisionPropertyTree.operatorEQUAL

Declaration

function operatorEQUAL(rhs: TIEVisionPropertyTree): bool32; safecall;

Description

Compares this property tree with the specified one.

Parameter | Description
rhs | The other property tree to compare.


TIEVisionPropertyTree.putDouble

TIEVisionPropertyTree.putDouble

Declaration

procedure putDouble(keypath: PAnsiChar; value: double); safecall;

Description

Puts a double (64 bit floating point) into this property tree, using the specified key path.
A key path is a list of words separated by periods (ie: "image.property.EXIF_FNumber").

Parameter | Description
keypath | Path of the key to put.
value | Value to put.

Example

propertytree.putDouble('image.property.EXIF_FNumber', 2.8);


TIEVisionPropertyTree.putInt32

TIEVisionPropertyTree.putInt32

Declaration

procedure putInt32(keypath: PAnsiChar; value: int32_t); safecall;

Description

Puts an integer (32 bit) into this property tree, using the specified key path.
A key path is a list of words separated by periods (ie: "image.size.width").

Parameter | Description
keypath | Path of the key to put.
value | Value to put.

Example

propertytree1.putInt32('image.size.width', 640);


TIEVisionPropertyTree.putPropertyTree

TIEVisionPropertyTree.putPropertyTree

Declaration

procedure putPropertyTree(keypath: PAnsiChar; propertyTree: TIEVisionPropertyTree); safecall;

Description

Puts a property tree into this property tree, using the specified key path.
A key path is a list of words separated by periods (ie: "image.size.width").

Parameter | Description
keypath | Path of the key to put.
propertyTree | Value to put.


TIEVisionPropertyTree.putRect

TIEVisionPropertyTree.putRect

Declaration

procedure putRect(keypath: PAnsiChar; const rect: TIEVisionRect); safecall;

Description

Puts a rectangle (TIEVisionRect) into this property tree, using the specified key path.
A key path is a list of words separated by periods (ie: "image.ROI").

Parameter | Description
keypath | Path of the key to put.
value | Value to put.

Example

propertytree.putRect('image.ROI', IEVisionRect(10, 10, 200, 200));


TIEVisionPropertyTree.putString

TIEVisionPropertyTree.putString

Declaration

procedure putString(keypath: PAnsiChar; value: PAnsiChar); overload; safecall;
procedure putString(keypath: PAnsiChar; value: TIEVisionString); overload; safecall;

Description

Puts an ANSI string or string object into this property tree, using the specified key path.
A key path is a list of words separated by periods (ie: "image.size.width").

Parameter | Description
keypath | Path of the key to put.
value | Value to put.

Example

propertytree1.putString('image.size.width', 640);
propertytree1.putString('image.size.height', 480);


TIEVisionPropertyTree.save

TIEVisionPropertyTree.save

Declaration

procedure save(stream: TIEVisionStream; format: TIEVisionPropertyTreeFormat = ievXML); overload; safecall;
procedure save(filename: PAnsiChar; format: TIEVisionPropertyTreeFormat = ievXML); overload; safecall;

Description

Saves the entire property tree to file or stream, using the specified format.

See Also

- load

Parameter | Description
stream | Stream to write.
format | Format of the output.
filename | Filename to write.


TIEVisionPropertyTree.size

TIEVisionPropertyTree.size

Declaration

function size(): int32_t; safecall;

Description

Returns the number of properties

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVisionPropertyTree.sort

TIEVisionPropertyTree.sort

Declaration

procedure sort(); safecall;

Description

Sorts all keys of the property tree.


TIEVisionPropertyTree.swap

TIEVisionPropertyTree.swap

Declaration

procedure swap(rhs: TIEVisionPropertyTree); safecall;

Description

Swaps this property tree with the specified one.

Parameter | Description
ros | The other property tree to swap.


TIEVisionPropertyTreeFormat

TIEVisionPropertyTreeFormat

Declaration

TIEVisionPropertyTreeFormat = (
ievXML = 0,
ievINFO = 1,
ievINI = 2,
ievJSON = 3
);


TIEVisionRect

TIEVisionRect

Declaration

TIEVisionRect = packed record
x: int32_t;
y: int32_t;
width: int32_t;
height: int32_t;
end;


TIEVisionReduceOp

TIEVisionReduceOp

Declaration

TIEVisionReduceOp = (
ievREDUCE_SUM = 0,
ievREDUCE_AVG = 1,
ievREDUCE_MAX = 2,
ievREDUCE_MIN = 3
);


TIEVisionRGB8

TIEVisionRGB8

Declaration

TIEVisionRGB8 = packed record
r: uint8_t;
g: uint8_t;
b: uint8_t;
end;


TIEVisionRGB16

TIEVisionRGB16

Declaration

TIEVisionRGB16 = packed record
r: uint16_t;
g: uint16_t;
b: uint16_t;
end;


TIEVisionRotatedRect

TIEVisionRotatedRect

Declaration

TIEVisionRotatedRect = packed record
center: TIEVisionPoint2f; // mass center of the rectangle
size: TIEVisionSize2f; // size
angle: single; // rotation angle in degrees
end;


TIEVisionScalar

TIEVisionScalar

Declaration

TIEVisionScalar = packed record
val: array [0..3] of double;
end;


TIEVisionScalarInt32

TIEVisionScalarInt32

Declaration

TIEVisionScalarInt32 = packed record
val: array [0..3] of int32_t;
end;


TIEVisionSeekOffset

TIEVisionSeekOffset

Declaration

TIEVisionSeekOffset = (
ievSET = 0, // set absolute position
ievCUR = 1, // set from current position
ievEND = 2 // set from the end
);


TIEVisionSize

TIEVisionSize

Declaration

TIEVisionSize = packed record
width: int32_t;
height: int32_t;
end;


TIEVisionSize2f

TIEVisionSize2f

Declaration

TIEVisionSize2f = packed record
width: single;
height: single;
end;


TIEVisionSmoothType

TIEVisionSmoothType

Declaration

TIEVisionSmoothType = (
ievBLUR_NO_SCALE = 0,
ievBLUR = 1,
ievGAUSSIAN = 2,
ievMEDIAN = 3,
ievBILATERAL = 4
);


TIEVisionSolveMethod

TIEVisionSolveMethod

Declaration

TIEVisionSolveMethod = (
ievSOLVE_LU = 0,
ievSOLVE_SVD = 1,
ievSOLVE_SVD_SYM = 2
);


TIEVisionSortOrder

TIEVisionSortOrder

Declaration

TIEVisionSortOrder = (
ievASCENDING = 0,
ievDESCENDING = 1
);


TIEVisionStitcher.stitch

TIEVisionStitcher.stitch

Declaration

function stitch(images: TIEVisionVectorImageRef; out status: TIEVisionStitchingStatus; wantExceptions: bool32 = false): TIEVisionImage; safecall;

Description

Tries to stitch the given images.

Parameter | Description
images | Input images.
status | Status code.

Example

var
images: TIEVisionVectorImageRef;
pano: TIEVisionImage;
status: TIEVisionStitchingStatus;
begin
images := IEVisionLib.createVectorImageRef();
images.push_back(IEVisionLib.createImage('image1.jpg'));
images.push_back(IEVisionLib.createImage('image2.jpg'));
images.push_back(IEVisionLib.createImage('image3.jpg'));

pano := IEVisionLib.createStitcher().stitch(images, status);

if status = ievSSOK then
begin
ImageEnView.IEBitmap.AssignIEVisionImage(pano);
ImageEnView.Update;
end
end;


TIEVisionStitchingStatus

TIEVisionStitchingStatus

Declaration

type TIEVisionStitchingStatus = (
ievSSOK = 0,
ievSSERR_NEED_MORE_IMGS = 1,
ievSSERR_HOMOGRAPHY_EST_FAIL = 2,
ievSSERR_CAMERA_PARAMS_ADJUST_FAIL = 3
);


TIEVisionStream

TIEVisionStream

Declaration

TIEVisionStream = interface(TIEVisionBase)

Description

This is the base interface for all objects with streaming features.

See Also

- TIEVisionFileStream
- TIEVisionTempFileStream
- TIEVisionMemoryStream
- TIEVisionExistingMemoryStream

Methods and Properties

eof
loadFromFile
read
saveToFile
seek
silent_getc
silent_read
silent_write
size
tell
write


TIEVisionStream.eof

TIEVisionStream.eof

Declaration

function eof(): bool32; safecall;

Description

Tests whether the file position is at the end of a file.


TIEVisionStream.loadFromFile

TIEVisionStream.loadFromFile

Declaration

procedure loadFromFile(filename: PAnsiChar); overload; safecall;
procedure loadFromFile(filename: PWideChar); overload; safecall;

Description

Loads the stream from the specified file.

Parameter | Description
filename | Source path and filename.

Example

stream1.loadFromFile('input.dat');


TIEVisionStream.read

TIEVisionStream.read

Declaration

procedure read(ptr: pointer; size: int64); safecall;

Description

Reads buffer from stream.

Parameter | Description
ptr | Pointer to destination buffer.
size | Number of bytes to read.


TIEVisionStream.saveToFile

TIEVisionStream.saveToFile

Declaration

procedure saveToFile(filename: PAnsiChar); overload; safecall;
procedure saveToFile(filename: PWideChar); overload; safecall;

Description

Saves the stream to the specified file.

Parameter | Description
filename | Destination path and filename.

Example

stream1.saveToFile('output.dat');


TIEVisionStream.seek

TIEVisionStream.seek

Declaration

procedure seek(offset: int64; whence: TIEVisionSeekOffset); safecall;

Description

Moves stream to the specified position.

Parameter | Description
offset | Absolute or relative offset.
whence | Where the offset starts.

Example

stream1.seek(0, ievSET); // reset position to zero


TIEVisionStream.silent_getc

TIEVisionStream.silent_getc

Declaration

function silent_getc(): int32_t; safecall;

Description

Reads a char (8 bit) from stream.


TIEVisionStream.silent_read

TIEVisionStream.silent_read

Declaration

function silent_read(ptr: pointer; size: int64): int64; safecall;

Description

Reads buffer from stream without raising exceptions on failure.

Parameter | Description
ptr | Pointer to destination buffer.
size | Number of bytes to read.


TIEVisionStream.silent_write

TIEVisionStream.silent_write

Declaration

function silent_write(ptr: pointer; size: int64): int64; safecall;

Description

Writes buffer to stream without raising exceptions on failure.

Parameter | Description
ptr | Point to source buffer.
size | Number of bytes to write.


TIEVisionStream.size

TIEVisionStream.size

Declaration

function size(): int64; safecall;

Description

Returns the stream size.


TIEVisionStream.tell

TIEVisionStream.tell

Declaration

function tell(): int64; safecall;

Description

Returns the current stream position.


TIEVisionStream.write

TIEVisionStream.write

Declaration

procedure write(ptr: pointer; size: int64); safecall;

Description

Writes buffer to stream.

Parameter | Description
ptr | Pointer to source buffer.
XXX | Number of bytes to write.


TIEVisionString

TIEVisionString

Declaration

TIEVisionString = interface(TIEVisionBase)

Description

An object that exposes this interface can store an ANSI string.

Methods and Properties

append
at
c_str
length
operatorASSIGN
operatorEQUAL
saveToFile


TIEVisionString.append

TIEVisionString.append

Declaration

procedure append(src: TIEVisionString); overload; safecall;
procedure append(src: PAnsiChar); overload; safecall;

Description

Appends a string or ANSI string.

Parameter | Description
src | String to append.

Example

string1.append(string2); // equiv. to string1 := string1 + string2;
string1.append('hello'); // equiv. to string1 := string1 + 'hello';


TIEVisionString.at

TIEVisionString.at

Declaration

function at(pos: int32_t): AnsiChar; safecall;

Description

Returns the character at specified position.

Parameter | Description
pos | Character index (0=first character).

Example

c = string1.at(0); // equiv. to "c := string1[0]"


TIEVisionString.c_str

TIEVisionString.c_str

Declaration

function c_str(): PAnsiChar; safecall;

Description

Returns a zero terminated string.

Example

ShowMessage( AnsiString(string1.c_str()) );


TIEVisionString.length

TIEVisionString.length

Declaration

function length(): int32_t; safecall;

Description

Returns the string length.


TIEVisionString.operatorASSIGN

TIEVisionString.operatorASSIGN

Declaration

procedure operatorASSIGN(src: TIEVisionString); safecall;

Description

Replaces current string with the content of source string.

Parameter | Description
src | The source string.

Example

string1.operatorASSIGN(string2); // equiv. to "string1 := string2"


TIEVisionString.operatorEQUAL

TIEVisionString.operatorEQUAL

Declaration

function operatorEQUAL(src: TIEVisionString): bool32; safecall;

Description

Compares current string with the content of source string.

Parameter | Description
src | The source string.

Example

string1.operatorEQUAL(string2); // equiv. to "string1 = string2"


TIEVisionString.saveToFile

TIEVisionString.saveToFile

Declaration

procedure saveToFile(filename: PAnsiChar); safecall;

Description

Saves string content to a file.

Parameter | Description
filename | The output filename with path.

Example

string1.saveToFile('output.txt');


TIEVisionStructuringElementShape

TIEVisionStructuringElementShape

Declaration

TIEVisionStructuringElementShape = (
ievMORPH_RECT = 0,
ievMORPH_CROSS = 1,
ievMORPH_ELLIPSE = 2
);


TIEVisionSVBFlags

TIEVisionSVBFlags

Declaration

TIEVisionSVBFlags = (
ievSVB_NONE = 0,
ievSVB_MODIFY_A = 1,
ievSVB_U_T = 2,
ievSVB_V_T = 4
);


TIEVisionSVDFlags

TIEVisionSVDFlags

Declaration

TIEVisionSVDFlags = (
ievSVD_NONE = 0,
ievSVD_MODIFY_A = 1,
ievSVD_U_T = 2,
ievSVD_V_T = 4
);


TIEVisionTempDirName

TIEVisionTempDirName

Declaration

TIEVisionTempDirName = interface(TIEVisionBase)

Description

This interface allows you to create temporary directory name. The directory name is chosen automatically.

See Also

- TIEVisionTempFileName
- TIEVisionTempDirName

Methods and Properties

c_str


TIEVisionTempDirName.c_str

TIEVisionTempDirName.c_str

Declaration

function c_str(): PAnsiChar; safecall;

Description

Returns the automatically chosen file name.


TIEVisionTempFileImageList

TIEVisionTempFileImageList

Declaration

TIEVisionTempFileImageList = interface(TIEVisionImageList)

Description

This interface allows you to handle a list of images stored on disk and removed when the object is destroyed.

Methods and Properties

getFilename
insertExistingFile
pushBackExistingFile


TIEVisionTempFileImageList.getFilename

TIEVisionTempFileImageList.getFilename

Declaration

function getFilename(position: int32_t): PAnsiChar; safecall;

Description

Returns the filename assigned to the specified image index.

Parameter | Description
position | Index of the image filename to retrieve.


TIEVisionTempFileImageList.insertExistingFile

TIEVisionTempFileImageList.insertExistingFile

Declaration

function insertExistingFile(position: int32_t; filename: PAnsiChar; deleteOnDestroy: bool32 = true): int32_t; safecall;

Description

Inserts an existing file to the list.

Parameter | Description
position | Inserting position.
filename | Filename of existing file.
deleteOnDestroy | Flag to delete the file on destroy.


TIEVisionTempFileImageList.pushBackExistingFile

TIEVisionTempFileImageList.pushBackExistingFile

Declaration

function pushBackExistingFile(filename: PAnsiChar; deleteOnDestroy: bool32 = true): int32_t; safecall;

Description

Appends an existing file to the list.

Parameter | Description
Filename of existing file. | XXX
deleteOnDestroy | Flag to delete the file on destroy.


TIEVisionTempFileName

TIEVisionTempFileName

Declaration

TIEVisionTempFileName = interface(TIEVisionBase)

Description

This interface allows you to create temporary file name. The file name is chosen automatically.

See Also

- TIEVisionTempFileName
- TIEVisionTempDirName

Methods and Properties

c_str


TIEVisionTempFileName.c_str

TIEVisionTempFileName.c_str

Declaration

function c_str(): PAnsiChar; safecall;

Description

Returns the automatically chosen file name.


TIEVisionTempFileStream

TIEVisionTempFileStream

Declaration

TIEVisionTempFileStream = interface(TIEVisionFileStream)

Description

This is the base interface for all objects with temporary file streaming features.
This interface allows you to create a temporary file that is removed when the class is disposed. The file name is chosen automatically.

See Also

- TIEVisionFileStream
- TIEVisionTempFileStream
- TIEVisionMemoryStream
- TIEVisionExistingMemoryStream

Methods and Properties

getFilename


TIEVisionTempFileStream.getFilename

TIEVisionTempFileStream.getFilename

Declaration

function getFilename(): PAnsiChar; safecall;

Description

Returns the automatically chosen file name.


TIEVisionTermCriteria

TIEVisionTermCriteria

Declaration

TIEVisionTermCriteria = packed record
ctype: TIEVisionTermCriteriaType;
maxIter: int32_t;
epsilon: double;
end;


TIEVisionTermCriteriaType

TIEVisionTermCriteriaType

Declaration

type TIEVisionTermCriteriaType = int32_t;
const ievITER = 1;
const ievNUMBER = 1;
const ievEPS = 2;


TIEVisionThresholdType

TIEVisionThresholdType

Declaration

type TIEVisionThresholdType = int32_t;
const ievTHRESH_BINARY = 0;
const ievTHRESH_BINARY_INV = 1;
const ievTHRESH_TRUNC = 2;
const ievTHRESH_TOZERO = 3;
const ievTHRESH_TOZERO_INV = 4;
const ievTHRESH_OTSU = 8; // must be combined with other values
const ievTHRESH_TRIANGLE = 16; // must be combined with other values


TIEVisionVectorByte

TIEVisionVectorByte

Declaration

TIEVisionVectorByte = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of bytes (unsigned 8 bit).

Methods and Properties

getUInt8
push_back
setUInt8


TIEVisionVectorByte.getUInt8

TIEVisionVectorByte.getUInt8

Declaration

function getUInt8(pos: int32_t): uint8_t; safecall;

Description

Returns value of the specified item.

Parameter | Description
pos | Item index (0 = first item).


TIEVisionVectorByte.push_back

TIEVisionVectorByte.push_back

Declaration

procedure push_back(value: uint8_t); safecall;

Description

Appends a new byte.

Parameter | Description
value | Byte value to add.


TIEVisionVectorByte.setUInt8

TIEVisionVectorByte.setUInt8

Declaration

procedure setUInt8(pos: int32_t; value: uint8_t); safecall;

Description

Parameter | Description
pos | Item index to set.
value | Value to set.


TIEVisionVectorDouble

TIEVisionVectorDouble

Declaration

TIEVisionVectorDouble = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of doubles (64 bit floating point).

Methods and Properties

getDouble
push_back
setDouble


TIEVisionVectorDouble.getDouble

TIEVisionVectorDouble.getDouble

Declaration

function getDouble(pos: int32_t): double; safecall;

Description

Returns the specified item.

Parameter | Description
pos | Item index.


TIEVisionVectorDouble.push_back

TIEVisionVectorDouble.push_back

Declaration

procedure push_back(value: double); safecall;

Description

Appends a new item.

Parameter | Description
value | Value to add.


TIEVisionVectorDouble.setDouble

TIEVisionVectorDouble.setDouble

Declaration

procedure setDouble(pos: int32_t; value: double); safecall;

Description

Replaces/Sets a value at specified position.

Parameter | Description
pos | Item index.
value | Value to set.


TIEVisionVectorFloatPair

TIEVisionVectorFloatPair

Declaration

TIEVisionVectorFloatPair = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of float pairs (two 32 bit floats, TIEVisionFloatPair).

Methods and Properties

getFloatPair
push_back
setFloatPair


TIEVisionVectorFloatPair.getFloatPair

TIEVisionVectorFloatPair.getFloatPair

Declaration

function getFloatPair(pos: int32_t): TIEVisionFloatPair; safecall;

Description

Returns the float pair at the specified index.

Parameter | Description
pos | Item index to retrieve.


TIEVisionVectorFloatPair.push_back

TIEVisionVectorFloatPair.push_back

Declaration

procedure push_back(value: TIEVisionFloatPair); safecall;

Description

Appends a new float pair value.

Parameter | Description
value | Float pair to add.

Example

vector1.push_back( IEVisionFloatPair(1.2, 1.3) );


TIEVisionVectorFloatPair.setFloatPair

TIEVisionVectorFloatPair.setFloatPair

Declaration

procedure setFloatPair(pos: int32_t; value: TIEVisionFloatPair); safecall;

Description

Sets a new value for the specified item.

Parameter | Description
pos | Item index to set (0 = first item).
value | Item value.

Example

vector1.setFloatPair(0, IEVisionFloatPair(1.2, 1.3) );


TIEVisionVectorImageRef

TIEVisionVectorImageRef

Declaration

TIEVisionVectorImageRef = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of image references (TIEVisionImage).

Methods and Properties

getImage
push_back
setImage


TIEVisionVectorImageRef.getImage

TIEVisionVectorImageRef.getImage

Declaration

function getImage(pos: int32_t): TIEVisionImage; safecall;

Description

Returns the image reference at specified index.

Parameter | Description
pos | Image index.


TIEVisionVectorImageRef.push_back

TIEVisionVectorImageRef.push_back

Declaration

procedure push_back(value: TIEVisionImage); safecall;

Description

Appends a new image reference.

Parameter | Description
value | Image reference to set.

Example

imagelist.push_back( image1 );


TIEVisionVectorImageRef.setImage

TIEVisionVectorImageRef.setImage

Declaration

procedure setImage(pos: int32_t; value: TIEVisionImage); safecall;

Description

Replaces/Set the image reference.

Parameter | Description
pos | Image index.
value | Image reference to set.

Example

imagelist.setImage( image1 );


TIEVisionVectorInt32

TIEVisionVectorInt32

Declaration

TIEVisionVectorInt32 = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of integers (32 bit).

Methods and Properties

getInt32
push_back
setInt32


TIEVisionVectorInt32.getInt32

TIEVisionVectorInt32.getInt32

Declaration

function getInt32(pos: int32_t): int32_t; safecall;

Description

Returns the specified item.

Parameter | Description
pos | Item index (0 = first item).


TIEVisionVectorInt32.push_back

TIEVisionVectorInt32.push_back

Declaration

procedure push_back(value: int32_t); safecall;

Description

Appends a new integer.

Parameter | Description
value | Integer to add.


TIEVisionVectorInt32.setInt32

TIEVisionVectorInt32.setInt32

Declaration

procedure setInt32(pos: int32_t; value: int32_t); safecall;

Description

Sets the item value.

Parameter | Description
pos | Item index to set.
value | Integer value.

Example

intvector.setInt32(0, 123); // like: intvector[0] := 123


TIEVisionVectorObjRef

TIEVisionVectorObjRef

Declaration

TIEVisionVectorObjRef = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of object references (inherited from TIEVisionBase).

Methods and Properties

getObj
push_back
setObj


TIEVisionVectorObjRef.getObj

TIEVisionVectorObjRef.getObj

Declaration

function getObj(pos: int32_t): TIEVisionBase; safecall;

Description

Returns the object at specified index.

Parameter | Description
pos | Object index.


TIEVisionVectorObjRef.push_back

TIEVisionVectorObjRef.push_back

Declaration

procedure push_back(value: TIEVisionBase); safecall;

Description

Appends a new object reference.

Parameter | Description
value | Object reference to add.


TIEVisionVectorObjRef.setObj

TIEVisionVectorObjRef.setObj

Declaration

procedure setObj(pos: int32_t; value: TIEVisionBase); safecall;

Description

Replaces/Sets an object reference.

Parameter | Description
pos | Item index.
value | Object reference to set.


TIEVisionVectorOCRBox

TIEVisionVectorOCRBox

Declaration

TIEVisionVectorOCRBox = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of OCR boxes (TIEVisionOCRBox).

Methods and Properties

getOCRBox
push_back
setOCRBox


TIEVisionVectorOCRBox.getOCRBox

TIEVisionVectorOCRBox.getOCRBox

Declaration

function getOCRBox(pos: int32_t): TIEVisionOCRBox; safecall;

Description

Returns the specified item.

Parameter | Description
pos | Item index.


TIEVisionVectorOCRBox.push_back

TIEVisionVectorOCRBox.push_back

Declaration

procedure push_back(value: TIEVisionOCRBox); safecall;

Description

Appends a new item.

Parameter | Description
value | Item to append.


TIEVisionVectorOCRBox.setOCRBox

TIEVisionVectorOCRBox.setOCRBox

Declaration

procedure setOCRBox(pos: int32_t; value: TIEVisionOCRBox); safecall;

Description

Replaces/Sets the specified item.

Parameter | Description
pos | Item index.
value | Value to set.


TIEVisionVectorPoint

TIEVisionVectorPoint

Declaration

TIEVisionVectorPoint = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of points (TIEVisionPoint).

Methods and Properties

getPoint
push_back
setPoint


TIEVisionVectorPoint.getPoint

TIEVisionVectorPoint.getPoint

Declaration

function getPoint(pos: int32_t): TIEVisionPoint; safecall;

Description

Returns the point at specified position.

Parameter | Description
pos | Item index.


TIEVisionVectorPoint.push_back

TIEVisionVectorPoint.push_back

Declaration

procedure push_back(value: TIEVisionPoint); safecall;

Description

Appends a new point to the vector.

Parameter | Description
value | Point to add.

Example

vector1.push_back( IEVisionPoint(10, 20) );


TIEVisionVectorPoint.setPoint

TIEVisionVectorPoint.setPoint

Declaration

procedure setPoint(pos: int32_t; value: TIEVisionPoint); safecall;

Description

Replaces/Sets an item value.

Parameter | Description
pos | Item index.
value | Value of the item.

Example

vector1.setPoint(0, IEVisionPoint(10, 20));


TIEVisionVectorRect

TIEVisionVectorRect

Declaration

TIEVisionVectorRect = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of rectangles (TIEVisionRect).

Methods and Properties

getRect
push_back
setRect


TIEVisionVectorRect.getRect

TIEVisionVectorRect.getRect

Declaration

function getRect(pos: int32_t): TIEVisionRect; safecall;

Description

Returns the specified item.

Parameter | Description
pos | Item index (0 = first item).


TIEVisionVectorRect.push_back

TIEVisionVectorRect.push_back

Declaration

procedure push_back(value: TIEVisionRect); safecall;

Description

Appends a new item.

Parameter | Description
value | The rectangle to append.

Example

vector1.push_back(IEVisionRect(0, 0, 200, 200));


TIEVisionVectorRect.setRect

TIEVisionVectorRect.setRect

Declaration

procedure setRect(pos: int32_t; value: TIEVisionRect); safecall;

Description

Replaces/Sets an item value.

Parameter | Description
pos | Item index (0 = first item).
value | Value to set.

Example

vector1.setRect(IEVisionRect(0, 0, 200, 200));


TIEVisionVectorScalarInt32

TIEVisionVectorScalarInt32

Declaration

TIEVisionVectorScalarInt32 = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of four integers (four 32 bit integers, TIEVisionScalarInt32).

Methods and Properties

getScalarInt32
push_back
setScalarInt32


TIEVisionVectorScalarInt32.getScalarInt32

TIEVisionVectorScalarInt32.getScalarInt32

Declaration

function getScalarInt32(pos: int32_t; wantExceptions: bool32 = false): TIEVisionScalarInt32; safecall;

Description

Returns the four integers scalar at the specified index.

Parameter | Description
pos | Item index to retrieve.


TIEVisionVectorScalarInt32.push_back

TIEVisionVectorScalarInt32.push_back

Declaration

procedure push_back(value: TIEVisionScalarInt32); safecall;

Description

Appends a new value.

Parameter | Description
value | Four integers scalar to add.


TIEVisionVectorScalarInt32.setScalarInt32

TIEVisionVectorScalarInt32.setScalarInt32

Declaration

procedure setScalarInt32(pos: int32_t; value: TIEVisionScalarInt32); safecall;

Description

Sets a new value for the specified item.

Parameter | Description
pos | Item index to set (0 = first item).
value | Item value.


TIEVisionVectorString

TIEVisionVectorString

Declaration

TIEVisionVectorString = interface(TIEVisionBaseVector)

Description

An object that exposes this interface can store a vector of strings (TIEVisionString).

Methods and Properties

getString
getCString
push_back
setString


TIEVisionVectorString.getCString

TIEVisionVectorString.getCString

Declaration

function getCString(pos: int32_t): PAnsiChar; safecall;

Description

Returns an ANSI zero terminated string.

Parameter | Description
pos | Index of string to return (0=first string).

Example

ShowMessage(AnsiString(vector1.getCString(0)));


TIEVisionVectorString.getString

TIEVisionVectorString.getString

Declaration

function getString(pos: int32_t): TIEVisionString; safecall;

Description

Returns the string at specified index.

Parameter | Description
pos | Index of string to return (0=first string).


TIEVisionVectorString.push_back

TIEVisionVectorString.push_back

Declaration

procedure push_back(str: TIEVisionString); overload; safecall;
procedure push_back(str: PAnsiChar); overload; safecall;

Description

Appends a string object or an ANSI string.

Parameter | Description
str | String to append.

Example

vector1.push_back("hello");


TIEVisionVectorString.setString

TIEVisionVectorString.setString

Declaration

procedure setString(pos: int32_t; value: TIEVisionString); overload; safecall;
procedure setString(pos: int32_t; value: PAnsiChar); overload; safecall;

Description

Replaces/Sets an item with the specified string object or ANSI stirng.

Parameter | Description
pos | Item index to set.
value | String object or ANSI string.

Example

i := vector1.push_back('before');
vector1.setString(i, 'replaced');


TIEVisionWString

TIEVisionWString

Declaration

TIEVisionWString = interface(TIEVisionBase)

Description

An object that exposes this interface can store a wide string.

Methods and Properties

append
at
c_str
convertFromUTF8
length
operatorASSIGN
operatorEQUAL
saveToFile


TIEVisionWString.append

TIEVisionWString.append

Declaration

procedure append(src: TIEVisionWString); overload; safecall;
procedure append(src: PWideChar); overload; safecall;

Description

Appends a string or wide string.

Parameter | Description
src | String to append.

Example

string1.append(string2); // equiv. to string1 := string1 + string2;
string1.append('hello'); // equiv. to string1 := string1 + 'hello';


TIEVisionWString.at

TIEVisionWString.at

Declaration

function at(pos: int32_t): WideChar; safecall;

Description

Returns the character at a specified position.

Parameter | Description
pos | Character index (0=first character).

Example

c = string1.at(0); // equiv. to "c := string1[0]"


TIEVisionWString.c_str

TIEVisionWString.c_str

Declaration

function c_str(): PWideChar; safecall;

Description

Returns a zero terminated string.

Example

ShowMessage( WideString(string1.c_str()) );


TIEVisionWString.convertFromUTF8

TIEVisionWString.convertFromUTF8

Declaration

procedure convertFromUTF8(src: PAnsiChar); safecall;

Description

Converts UTF8 zero terminated string to UTF16.

Parameter | Description
src | Source UTF8 string.


TIEVisionWString.length

TIEVisionWString.length

Declaration

function length(): int32_t; safecall;

Description

Returns the string length.


TIEVisionWString.operatorASSIGN

TIEVisionWString.operatorASSIGN

Declaration

procedure operatorASSIGN(src: TIEVisionWString); safecall;

Description

Replaces the current string with a source string.

Parameter | Description
src | The source string.

Example

string1.operatorASSIGN(string2); // equiv. to "string1 := string2"


TIEVisionWString.operatorEQUAL

TIEVisionWString.operatorEQUAL

Declaration

function operatorEQUAL(src: TIEVisionWString): bool32; safecall;

Description

Compares the current string with a source string.

Parameter | Description
src | The source string.

Example

string1.operatorEQUAL(string2); // equiv. to "string1 = string2"


TIEVisionWString.saveToFile

TIEVisionWString.saveToFile

Declaration

procedure saveToFile(filename: PAnsiChar); safecall;

Description

Saves string content to a file as UTF-16 (little endian).

Parameter | Description
filename | The output filename with path.

Example

string1.saveToFile('output.txt');


TIEVMeasureHintEvent

TIEVMeasureHintEvent

Declaration

TIEVMeasureHintEvent = procedure(Sender: TObject; var Text: string; Value: double) of object;

Description

Text is the text to display. Application can change it by customiizing hint.
Value is the measure value to display.


TIEVNewObject

TIEVNewObject

Declaration

TIEVNewObject = procedure(Sender: TObject; hobj: integer) of object;

Description

hobj is the handle of the new created object.


TIEVObjectClickEvent

TIEVObjectClickEvent

Declaration

TIEVObjectClickEvent = procedure(Sender: TObject; hobj: integer) of object;

Description

hobj is the clicked object.


TIEVObjectKind

TIEVObjectKind

Declaration

TIEVObjectKind = (iekNONE, iekLINE, iekBOX, iekELLIPSE, iekARC, iekBITMAP, iekTEXT, iekRULER, iekPOLYLINE, iekANGLE, iekMEMO, iekLINELABEL);

Description

Specifies the object type.

Value | Description
iekLINE | Line object
iekBOX | Box object
iekELLIPSE | Ellipse object
iekARC | Arc object (only to read DXF)
iekBITMAP | Bitmap object
iekTEXT | Text object
iekRULER | Ruler object
iekPOLYLINE | Poly line (open polygon), also good for free hand painting
iekANGLE | Angle measurement object
iekMEMO | Multiline text object
iekLINELABEL | Line object with a text associated


TIEVObjectMoveResizeEvent

TIEVObjectMoveResizeEvent

Declaration

TIEVObjectMoveResizeEvent = procedure(Sender: TObject; hobj: integer; Grip: integer; var OffsetX, OffsetY: integer) of object;

Description

hobj is the moved or resized object
Grip is the grip number when resized (1=top-left, 2=bottom-right, 3=center-translation, 4=top-right, 5=bottom-left, 6=left side, 7=right side, 8=upper side, 9=bottom side).
OffsetX, OffsetY : the translation offsets when moved


TIEVRulerType

TIEVRulerType

Declaration

TIEVRulerType = (iertRuler, iertQuoteBegin, iertQuoteCenter, iertQuoteEnd);

Description

Value | Description
iertRuler | the standard ruler
iertQuoteBegin | display the length value on the left
iertQuoteCenter | display the length value on the center
iertQuoteEnd | display the length value on the right


TIEVSoftShadow

TIEVSoftShadow

Description

This class specifies how a shadow will be rendered.

Fields

Enabled
Intensity
OffsetX
OffsetY
Radius
ShadowColor
Assign

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVSoftShadow.Assign

TIEVSoftShadow.Assign

Declaration

procedure Assign(Source: TIEVSoftShadow);

Description

Copies the state of another TIEVSoftShadow object.


TIEVSoftShadow.Enabled

TIEVSoftShadow.Enabled

Declaration

Enabled: Boolean

Description

Enable/disable the shadow.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVSoftShadow.Intensity

TIEVSoftShadow.Intensity

Declaration

Intensity: Integer

Description

This is the shadow intensity, with values in the range 0 and 100 (maximum).

Default: 100

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVSoftShadow.OffsetX

TIEVSoftShadow.OffsetX

Declaration

OffsetX: Integer

Description

The horizontal relative position of the shadow (negative values position the shadow to the right).

Default: 3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVSoftShadow.OffsetY

TIEVSoftShadow.OffsetY

Declaration

OffsetY: Integer

Description

The vertical position of the shadow (negative values position the shadow above).

Default: 3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVSoftShadow.Radius

TIEVSoftShadow.Radius

Declaration

Radius: Double

Description

The radius of the shadow (which controls its blur)

Default: 3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVSoftShadow.ShadowColor

TIEVSoftShadow.ShadowColor

Declaration

ShadowColor: TRGB;

Description

Specifies the shadow color.

Default: 0,0,0 (black)

Example

ImageEnMView.SoftShadow.ShadowColor := TColor2TRGB( clBlue );

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEVStyle

TIEVStyle

Declaration

TIEVStyle = set of (ievsSelectable, ievsMoveable, ievsSizeable, ievsVisible, ievsHideGrips);

Description

Value | Description
ievsSelectable | the object is selectable (user can select it)
ievsMoveable | the object is moveable (draggable) - requires ievsSelectable
ievsSizeable | the object is sizeable (user can change borders) - requires ievsSelectable
ievsVisible | the object is visible
ievsHideGrips | hide selection grips


TIEVTextEditEvent

TIEVTextEditEvent

Declaration

TIEVTextEditEvent = procedure(Sender: TObject; hobj: integer; VisualObject: TObject) of object;

Description

hobj is the object handle to edit.
VisualObject is a TIEEdit (for iekTEXT objects) or TIETextControl (for iekMEMO objects) control, which handles editing operations.


TIEVUndoMode

TIEVUndoMode

Declaration

TIEVUndoMode = (ieumSeparated, ieumShared);

Description

ieumShared activates the unique Undo/Redo system for image processing and vectorial objects.
ieumSeparated separates image processing and vectorial undo/redo systems.


TIEVValType

TIEVValType

Declaration

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEWallpaperStyle

TIEWallpaperStyle

Declaration

TIEWallpaperStyle = (iewoNormal, iewoStretch, iewoTile);

Description

Value | Description
iewoNormal | Draw the wallpaper image at the top left
iewoStretch | Stretch the wallpaper to the ImageEnView size
iewoTile | Tile the wallpaper over the background

Example

// Tile a bitmap over the background
ImageEnView1.WallpaperStyle := iewoTile;
ImageEnView1.Wallpaper.LoadFromFile('D:\MyWallpaper.bmp');


TIEWia.ConnectedDeviceIndex

TIEWia.ConnectedDeviceIndex

Declaration

property ConnectedDeviceIndex: integer;

Description

Returns the currently connected device index.
This property is useful when you connect to a device using Windows dialog, to know which device has been connected, so next time it can be connected directly.


TIEWia.ConnectTo

TIEWia.ConnectTo

Declaration

function ConnectTo(idx : integer) : boolean;overload;
function ConnectTo(const sName : string) : boolean; overload;

Description

Connect to the specified device. Returns True if successful.

Example

// Connect to the second device
ImageEnView.IO.WiaParams.ConnectTo( 1 );

// Connect to a named scanner
ImageEnView.IO.WiaParams.ConnectTo('CanoScan FB620');


TIEWia.ConnectToUsingDialog

TIEWia.ConnectToUsingDialog

Declaration

function ConnectToUsingDialog: boolean;

Description

Shows a system dialog that allows users to select a WIA device. Returns True if user presses OK.

Example

If ImageEnView.IO.WiaParams.ConnectToUsingDialog then
ImageEnView.IO.Acquire(ieaWIA);


TIEWia.DeleteItem

TIEWia.DeleteItem

Declaration

procedure DeleteItem(item: TIEWiaItem);

Description

Deletes the specified item. At the end of session the item should be actually removed.

Demo

Demos\ImageAcquisition\CameraGetImages\CameraGetImages.dpr


TIEWia.DeleteTakenPicture

TIEWia.DeleteTakenPicture

Declaration

property DeleteTakenPicture: boolean;

Description

If true, the photographed image (using TakePicture) will be not saved in the camera memory.

Demo

Demos\ImageAcquisition\CameraGetImages\CameraGetImages.dpr


TIEWia.Device

TIEWia.Device

Declaration

property Device: TIEWiaItem;

Description

Returns the currently connected (selected) device. This is the 'root' item.


TIEWia.DevicesInfo

TIEWia.DevicesInfo

Declaration

property DevicesInfo[idx: integer]: TIEWiaDeviceInfo;

Description

Returns info about the specified WIA device.

Example

// this fills a combobox with all installed devices
with ImageEnView.IO.WIAParams do
for i := 0 to DevicesInfoCount-1 do
ComboBox1.Items.Add( DevicesInfo[I].Name );
end;


TIEWia.DevicesInfoCount

TIEWia.DevicesInfoCount

Declaration

property DevicesInfoCount: integer;

Description

Returns the number of WIA devices available.


TIEWia.FillTreeView

TIEWia.FillTreeView

Declaration

procedure FillTreeView(Items: TTreeNodes; IncludeDescription: boolean);

Description

Fills a TTreeView component with the content of WIA device.

Example

TreeView1.Items.Clear;
ImageEnView1.IO.WIAParams.FillTreeView(TreeView1.Items, false);
TreeView1.FullExpand;

Demo

Demos\ImageAcquisition\CameraGetImages\CameraGetImages.dpr


TIEWia.GetDeviceProperty

TIEWia.GetDeviceProperty

Declaration

function GetDeviceProperty(PropId: TPropID): Variant;

Description

Gets a device property value as Variant.
WIA device properties.

Example

// returns the horizontal bed size
HorizBedSize := ImageEnView.IO.WiaParams.GetDeviceProperty(WIA_DPS_HORIZONTAL_BED_SIZE);


TIEWia.GetItemProperty

TIEWia.GetItemProperty

Declaration

function GetItemProperty( PropId: TPropID; item: TIEWiaItem=nil ): Variant;

Description

Gets an item (image) property as Variant.
WIA item properties

Example

// get the horizontal resolution
Xres := ImageEnView1.IO.WiaParams.GetItemProperty(WIA_IPS_XRES) );


TIEWia.GetItemPropertyAttrib

TIEWia.GetItemPropertyAttrib

Declaration

procedure GetItemPropertyAttrib( PropId: TPropID; item: TIEWiaItem; var attrib: TIEWiaAttrib; var values: TIEWiaValues );

Description

Fills attrib and values parameters. They allow knowing a property range and access rights.
WIA item properties

Example

// this gets the minimum and maximum values allowed for horizontal resolution
var
attrib: TIEWiaAttrib;
values: TIEWiaValues;
begin
ImageEnView1.IO.WIAParams.GetItemPropertyAttrib(WIA_IPS_XRES, nil, attrib, values);
Edit.Hint := 'Min='+inttostr(values.min)+' Max='+inttostr(values.max);
values.free;
end;


TIEWia.GetItemThumbnail

TIEWia.GetItemThumbnail

Declaration

function GetItemThumbnail(item: TIEWiaItem; destBitmap: TIEBitmap): boolean;

Description

Downloads the thumbnail of specified item in destBitmap . Return true on success.

Demo

Demos\ImageAcquisition\CameraGetImages\CameraGetImages.dpr


TIEWia.IsItemDeleted

TIEWia.IsItemDeleted

Declaration

function IsItemDeleted(item: TIEWiaItem): boolean;

Description

Returns true when the item is marked as deleted.

Demo

Demos\ImageAcquisition\CameraGetImages\CameraGetImages.dpr


TIEWia.SaveTransferBufferAs

TIEWia.SaveTransferBufferAs

Declaration

property SaveTransferBufferAs: string

Description

Specifies a filename where to transfer the raw data received from the WIA device.
This is useful when you want jpegs from a Camera, without losing quality by resaving.

The file may be changed to raw, bmp or jpeg according to the actual image type received from the device.

Demo

Demos\ImageAcquisition\CameraGetImages\CameraGetImages.dpr


TIEWia.SetDeviceProperty

TIEWia.SetDeviceProperty

Declaration

function SetDeviceProperty(PropId: dword; val: integer): boolean;

Description

Sets a device property value as integer.
WIA device properties.


TIEWia.SetDevicePropertyVariant

TIEWia.SetDevicePropertyVariant

Declaration

function SetDevicePropertyVariant(PropId: dword; val: Variant): boolean;

Description

Sets a device property value as Variant.
WIA device properties.

Example

// sets the string to print (when the scanner supports the endorser)
ImageEnView.IO.WiaParams.SetDeviceProperty(WIA_DPS_ENDORSER_STRING, 'Hello World!');


TIEWia.SetItemProperty

TIEWia.SetItemProperty

Declaration

function TIEWia.SetItemProperty(PropId: dword; val: integer; item: TIEWiaItem=nil): boolean;

Description

Sets an item (image) property as integer.
WIA item properties

Example

// sets horizontal resolution to 150 dpi
ImageEnView1.IO.WiaParams.SetItemProperty(WIA_IPS_XRES, 150);


TIEWia.SetItemPropertyVariant

TIEWia.SetItemPropertyVariant

Declaration

function SetItemPropertyVariant(PropId: dword; val: Variant; item: TIEWiaItem=nil): boolean;

Description

Sets an item (image) property as Variant.
WIA item properties

Example

// sets horizontal resolution to 150 dpi
ImageEnView1.IO.WiaParams.SetItemProperty(WIA_IPS_XRES, 150);


TIEWia.ShowAcquireDialog

TIEWia.ShowAcquireDialog

Declaration

function ShowAcquireDialog(SystemDialog: boolean): boolean;

Description

Shows a system dialog that allows user to set parameters and display a preview of the image.
You still need to call Acquire to get the image.
Returns True if user presses OK (or Acquire).

Example

If ImageEnView.IO.WiaParams.ShowAcquireDialog(true) then
ImageEnView.IO.Acquire(ieaWIA);


TIEWia.TakePicture

TIEWia.TakePicture

Declaration

property TakePicture: boolean;

Description

If true, the next acquire will take a new picture from the camera.

Demo

Demos\ImageAcquisition\CameraGetImages\CameraGetImages.dpr


TIEWia.TransferFormat

TIEWia.TransferFormat

Declaration

property TransferFormat: TIETransferFormat;

Description

Specifies the desired format for transfer of raw data from the WIA device. This is useful when you want jpegs from a Camera, without losing quality or a BMP from a scanner for maximum quality.
TransferFormat is also filled with the actual used format at the end of image transfer.

Demo

Demos\ImageAcquisition\CameraGetImages\CameraGetImages.dpr


TIEWia.UpdateItems

TIEWia.UpdateItems

Declaration

procedure UpdateItems;

Description

Reload items tree.


TIEWiaAttrib

TIEWiaAttrib

Declaration

TIEWiaAttrib = set of (iewaRead, iewaWrite, iewaSyncRequired, iewaNone, iewaRange, iewaList, iewaFlag, iewaCacheable);


TIEWiaDeviceInfo

TIEWiaDeviceInfo

Declaration

TIEWiaDeviceInfo = class
Name: string;
ID: string;
DeviceType: (iewScanner, iewDigitalCamera, iewStreamingVideo);
DriverVersion: string;
PortName: string;
ServerName: string;
Vendor: string;
end;


TIEWiaItem

TIEWiaItem

Declaration

TIEWiaItem = class
This: IWiaItem;
Children: TList;
ItemType: TIEWiaItemType;
constructor Create;
destructor Destroy; override;
end;


TIEWiaItemType

TIEWiaItemType

Declaration

TIEWiaItemType = set of (
witFree,
witImage,
witFile,
witFolder,
witRoot,
witAnalyze,
witAudio,
witDevice,
witDeleted,
witDisconnected,
witHPanorama,
witVPanorama,
witBurst,
witStorage,
witTransfer,
witGenerated,
witHasAttachments,
witVideo,
witTwainCapabilityPassThrough,
witRemoved,
witMask
);


TIEWiaValues

TIEWiaValues

Declaration

TIEWiaValues = class
max: variant;
min: variant;
count: integer;
normal: variant;
step: variant;
property values[idx: integer]: variant;
end;


TIEWICReader.Close

TIEWICReader.Close

Declaration

procedure Close;

Description

Closes currently open stream or file freeing allocated resources.
This method is implicitly called by Free method.

Example

with TIEWICReader.Create do
begin
Open('input.hdp', ioHDP);
GetFrame(0, ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free; // Calls Close() implicitly
end;
ImageEnView1.Update;


TIEWICReader.DPIX

TIEWICReader.DPIX

Declaration

property DPIX: double;

Description

X-axis dots per inch (dpi) resolution. This property is filled by GetFrame method.

See also: DPIY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEWICReader.DPIY

TIEWICReader.DPIY

Declaration

property DPIY: double;

Description

Y-axis dots per inch (dpi) resolution. This property is filled by GetFrame method.

See also: DPIX

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEWICReader.FrameCount

TIEWICReader.FrameCount

Declaration

property FrameCount: integer;

Description

Returns the total number of frames in the image.

Example

with TIEWICReader.Create do
begin
Open('input.tif', ioTIFF);
fCount := FrameCount;
for i := 0 to fCount-1 do
GetFrame(i, bitmap[i]);
Free;
end;


TIEWICReader.FrameHeight

TIEWICReader.FrameHeight

Declaration

function FrameHeight(): DWORD;

Description

Retrieves the height of the frame.


TIEWICReader.FrameWidth

TIEWICReader.FrameWidth

Declaration

function FrameWidth(): DWORD;

Description

Retrieves the width of the frame.


TIEWICReader.GetFrame

TIEWICReader.GetFrame

Declaration

procedure GetFrame(frameIndex: integer; destBitmap: TIEBitmap; IOParams: TIOParams = nil; Aborting: pboolean = nil);

Description

Retrieves the specified frame of the image.
If IOParams is specified then it is filled also with EXIF metatags.

See also: Open

Example

with TIEWICReader.Create do
begin
Open('input.tif', ioTIFF);
fCount := FrameCount;
for i := 0 to fCount-1 do
GetFrame(i, bitmap[i]);
Free;
end;


TIEWICReader.IsAvailable

TIEWICReader.IsAvailable

Declaration

function IsAvailable: boolean;

Description

Returns true if WIC is available. This should always be true on Windows Vista or newer (or Windows XP SP2 with .NET 3.0).

See also: IEWICAvailable

Example

with TIEWICReader.Create do
if IsAvailable then
begin
Open('input.hdp', ioHDP);
GetFrame(0, ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;
ImageEnView1.Update;


TIEWICReader.Open

TIEWICReader.Open

Declaration

function Open(Stream: TStream; fileType: TIOFileType): boolean; overload;
function Open(const FileName: WideString; fileType: TIOFileType = ioUnknown): boolean; overload;

Description

Opens a stream or file, enabling subsequent calls to GetFrame. For streams, the TIOFileType must be specified (one of: ioBMP, ioPNG, ioICO, ioJPEG, ioGIF, ioTIFF, ioHDP). For files, the TIOFileType is based on the file extension if not specified.
You should call Free or Close in order to terminate reading.

Example

with TIEWICReader.Create do
begin
Open('input.hdp', ioHDP);
GetFrame(0, ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free; // Calls Close() implicitly
end;
ImageEnView1.Update;


TIEWICTIFFCompressionMethod

TIEWICTIFFCompressionMethod

Declaration

TIEWICTIFFCompressionMethod = (ieWICTiffCompressionNone, ieWICTiffCompressionCCITT3, ieWICTiffCompressionCCITT4, ieWICTiffCompressionLZW, ieWICTiffCompressionRLE, ieWICTiffCompressionZIP);

Description

Specifies the Tagged Image File Format (TIFF) compression options.

Value | Description
ieWICTiffCompressionNone | No compression.
ieWICTiffCompressionCCITT3 | A CCITT3 compression algorithm. This algorithm is only valid for 1bpp pixel formats.
ieWICTiffCompressionCCITT4 | A CCITT4 compression algorithm. This algorithm is only valid for 1bpp pixel formats.
ieWICTiffCompressionLZW | A LZW compression algorithm.
ieWICTiffCompressionRLE | A RLE compression algorithm. This algorithm is only valid for 1bpp pixel formats.
ieWICTiffCompressionZIP | A ZIP compression algorithm.


TIEWICWriter.Close

TIEWICWriter.Close

Declaration

procedure Close;

Description

Commit changes to output stream or file.
This method is implicitly called by Free method.


TIEWICWriter.CompressionQuality

TIEWICWriter.CompressionQuality

Declaration

property CompressionQuality: double;

Description

0.0 specifies the least efficient compression scheme available, typically resulting in a fast encode but larger output.
A value of 1.0 specifies the most efficient scheme available, typically taking more time to encode but producing smaller output.
HD Photo does not support this encoder option.
You must set this property before each PutFrame call.


TIEWICWriter.DPIX

TIEWICWriter.DPIX

Declaration

property DPIX: double;

Description

X-axis dots per inch (dpi) resolution. You must set this property before each PutFrame call.

See also: DPIY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEWICWriter.DPIY

TIEWICWriter.DPIY

Declaration

property DPIY: double;

Description

Y-axis dots per inch (dpi) resolution. You must set this property before each PutFrame call.

See also: DPIX

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIEWICWriter.FrequencyOrder

TIEWICWriter.FrequencyOrder

Declaration

property FrequencyOrder: boolean;

Description

This parameter specifies that the image must be encoded in frequency order, with the lowest frequency data appearing first in the file, and image content grouped by its frequency rather than its spatial orientation.
Organizing a file by frequency order provides the highest performance results for any frequency-based decoding, and is the preferred option.
Device implementations of HD Photo encoders may choose to organize a file in spatial order to reduce the memory footprint required during encoding.
The default value is true and it is recommended that applications and devices always use frequency order unless there are performance or application-specific reasons to use spatial order.

You must set this property before each PutFrame call.


TIEWICWriter.HorizontalTileSlices

TIEWICWriter.HorizontalTileSlices

Declaration

property HorizontalTileSlices: integer;

Description

HorizontalTileSlices and VerticalTileSlices specify the horizontal and vertical tiling of the image prior to compression encoding for the most optimal region decode performance.
Dividing the image into rectangular tiles during encoding makes it possible to decode regions of the image without the need to process the entire compressed data stream.
The default value of 0 specifies no subdivision, so the entire image is treated as a single tile.
A value of 1 for each parameter will create a single horizontal and a single vertical division, effectively dividing the image into four equally sized tiles.
The maximum value of 4095 for each parameter divides the image into 4096 tile rows with 4096 tiles per row.
In other words, the parameter values equal the number of horizontal and vertical tiles (respectively) minus 1.
A tile can never be smaller than 16 pixels in width or height, so the HD Photo encoder may adjust this parameter to maintain the required minimum tile size.
Because there is storage and processing overhead associated with each tile, these values should be chosen carefully to meet the specific scenario and unless there is a very specific reason, large numbers of small tiles should be avoided.

The default value for both parameters is 0.

You must set this property before each PutFrame call.


TIEWICWriter.ImageQuality

TIEWICWriter.ImageQuality

Declaration

property ImageQuality: double;

Description

0.0 specifies the lowest possible fidelity rendition and 1.0 specifies the highest fidelity, which for HD Photo results in mathematically lossless compression.
You must set this property before each PutFrame call.

Example

with TIEWICWriter.Create do
begin
Open('output.hdp', ioHDP);
ImageQuality := 0.7;
PutFrame(ImageEnView1.IEBitmap);
Free;
end;


TIEWICWriter.IsAvailable

TIEWICWriter.IsAvailable

Declaration

function IsAvailable: boolean;

Description

Returns true if WIC is available. This should always be true on Windows Vista or newer (or Windows XP SP2 with .NET 3.0).

See also: IEWICAvailable

Example

with TIEWICWriter.Create do
if IsAvailable then
begin
Open('output.hdp', ioHDP);
PutFrame(ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;


TIEWICWriter.Lossless

TIEWICWriter.Lossless

Declaration

property Lossless: boolean;

Description

Setting this parameter to true enables mathematically lossless compression mode and overrides the ImageQuality parameter setting.

Default: False

Note: You must set this property before each PutFrame call.

Example

with TIEWICWriter.Create do
begin
Open('output.hdp', ioHDP);
Lossless := true;
PutFrame(ImageEnView1.IEBitmap);
Free;
end;


TIEWICWriter.Open

TIEWICWriter.Open

Declaration

function Open(Stream: TStream; fileType: TIOFileType): boolean;
function Open(const FileName: WideString; fileType: TIOFileType): boolean;

Description

Creates specified image format in stream or file, enabling subsequent calls to PutFrame calls.
You should call Free or Close in order to commit changes.

Example

// saves ImageEnView1 to output.hdp, which is the same as ImageEnView1.IO.SaveToFile('output.hdp')
with TIEWICWriter.Create do
begin
Open('output.hdp', ioHDP);
PutFrame(ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;


TIEWICWriter.Overlap

TIEWICWriter.Overlap

Declaration

property Overlap: integer;

Description

This parameter selects the optional overlap processing level:
Value | Description
0 | No overlap processing is enabled.
1 | One level of overlap processing is enabled, modifying 4x4 block encoded values based on values of neighboring blocks.
2 | Two levels of overlap processing are enabled; in addition to the first level processing, encoded values of 16x16 macro blocks are modified based on the values of neighboring macro blocks.

Default: 1

Notes:
- UseCodecOptions must be true
- You must set this property before each PutFrame call


TIEWICWriter.PutFrame

TIEWICWriter.PutFrame

Declaration

procedure PutFrame(srcBitmap: TIEBitmap; IOParams: TIOParams = nil);

Description

Adds a new frame to current open stream or file.
You can call multiple PutFrame only if the writing file format accepts more than one frame.
If IOParams is specified parameters (DPI, compression) are read from it.
PutFrame doesn't write EXIF metatags: you must use InjectTIFFEXIF to inject EXIF in HDPhoto or TIFF files.
It is important that you close the stream/file before inject EXIF metatags.

Example

// saves ImageEnView1 to output.hdp, which is the same as ImageEnView1.IO.SaveToFile('output.hdp')
with TIEWICWriter.Create do
begin
Open('output.hdp', ioHDP);
PutFrame(ImageEnView1.IEBitmap, ImageEnView1.IO.Params);
Free;
end;
ImageEnView1.IO.InjectTIFFEXIF('output.hdp');


TIEWICWriter.Quality

TIEWICWriter.Quality

Declaration

property Quality: integer;

Description

This parameter controls the compression quality for the main image. A value of 1 sets lossless mode.
Increasing values result in higher compression ratios and lower image quality.

Default: 1

Notes:
- UseCodecOptions must be true
- You must set this property before each PutFrame call

Example

with TIEWICWriter.Create do
begin
Open('output.hdp', ioHDP);
UseCodecOptions := true;
Quality := 10;
PutFrame(ImageEnView1.IEBitmap);
Free;
end;


TIEWICWriter.Subsampling

TIEWICWriter.Subsampling

Declaration

property Subsampling: integer;

Description

This parameter only applies to RGB images. It enables additional compression in the chroma space, preserving luminance detail at the expense of color detail:

Value | Description
3 | 4: 4: 4 encoding preserves full chroma resolution.
2 | 4: 2: 2 encoding reduces chroma resolution to 1/2 of luminance resolution.
1 | 4: 2: 0 encoding reduces chroma resolution to 1/4 of luminance resolution.
0 | 4: 0: 0 encoding discards all chroma content, preserving luminance only. Because the codec uses a slightly modified definition of luminance to improve performance, it is preferred to convert an RGB image to monochrome before encoding rather than use this chroma subsampling mode.

Any value greater than 3 returns an error. The default value is 3.

UseCodecOptions must be true.
You must set this property before each PutFrame call.


TIEWICWriter.TIFFCompressionMethod

TIEWICWriter.TIFFCompressionMethod

Declaration

property TIFFCompressionMethod: TIEWICTIFFCompressionMethod;

Description

Specifies the Tagged Image File Format (TIFF) compression options.

You must set this property before each PutFrame call.

Example

// writes a TIFF using CCITT4 compression (make sure ImageEnView1.IEBitmap.PixelFormat=ie1g)
with TIEWICWriter.Create do
begin
Open('output.tif', ioTIFF);
TIFFCompressionMethod := ieWICTiffCompressionCCITT4;
PutFrame(ImageEnView1.IEBitmap);
Free;
end;


TIEWICWriter.UseCodecOptions

TIEWICWriter.UseCodecOptions

Declaration

property UseCodecOptions: boolean;

Description

If this parameter is true, the Quality, Overlap and Subsampling parameters are used in place of the ImageQuality encoder canonical parameter.
When false, the Quality, Overlap and Subsampling parameters are set based on a table lookup determined by the ImageQuality parameter.

Default: False

Note: You must set this property before each PutFrame call.

Example

with TIEWICWriter.Create do
begin
Open('output.hdp', ioHDP);
UseCodecOptions := true;
Quality := 10;
PutFrame(ImageEnView1.IEBitmap);
Free;
end;


TIEWICWriter.VerticalTileSlices

TIEWICWriter.VerticalTileSlices

Declaration

property VerticalTileSlices: integer;

Description

HorizontalTileSlices and VerticalTileSlices specify the horizontal and vertical tiling of the image prior to compression encoding for the most optimal region decode performance.
Dividing the image into rectangular tiles during encoding makes it possible to decode regions of the image without the need to process the entire compressed data stream.
The default value of 0 specifies no subdivision, so the entire image is treated as a single tile.
A value of 1 for each parameter will create a single horizontal and a single vertical division, effectively dividing the image into four equally sized tiles.
The maximum value of 4095 for each parameter divides the image into 4096 tile rows with 4096 tiles per row.
In other words, the parameter values equal the number of horizontal and vertical tiles (respectively) minus 1.
A tile can never be smaller than 16 pixels in width or height, so the HD Photo encoder may adjust this parameter to maintain the required minimum tile size.
Because there is storage and processing overhead associated with each tile, these values should be chosen carefully to meet the specific scenario and unless there is a very specific reason, large numbers of small tiles should be avoided.

The default value for both parameters is 0.

You must set this property before each PutFrame call.


TIEWordTransitionParams

TIEWordTransitionParams

Declaration

TIEWordTransitionParams = class
Word : string;
FontName : string;
Style : TFontStyles;
Quality : Word;
end;

Description

Properties for customizing the "Word" transition effects:

- iettRandomBoxesWithWord
- iettRandomWord *
- iettExpandingWord *
- iettWordWipeOut *
- iettWordWipeIn *
- iettWordWipeInAndOut *
- iettWordHalfSweep
- iettWordFullSweep
- iettWordFullExpandingSweep

Property | Description
Word | The text that is displayed during the transition. It can be a single character, e.g. a letter or a symbol from Wingdings, or a whole word
FontName | The font to use to display the text, e.g. "Arial" or "Wingdings". Ensure you specify a font that is available on the destination system (default: "Arial")
Style | The style that is used to display the text, can include fsBold, fsItalic, fsUnderline and/or fsStrikeOut (default: [fsBold])
Quality | The smoothness of the text. The value specifies the height in pixels of the bitmap used to create each letter. A high value will give performance issues on some systems, whereas a low value will give the letter a blocky apperance. Practical range is 20 - 2000; default is 200

Note: Effects with an asterisk will cycle through each specified letter, displaying one at a time. If you wish to display a whole (only a short one is recommended) then enclose it in quotations, e.g. "HI!"
Other effects will always display the full word.

Example

// Display snowflakes in random positions
IEGlobalSettings().WordTransitionParams.Word := 'T'; // Snowflake in the Wingdings font
IEGlobalSettings().WordTransitionParams.FontName := 'Wingdings';
IEGlobalSettings().WordTransitionParams.Style := [fsBold];

ImageEnView1.PrepareTransition;
ImageEnView1.IO.LoadFromFile(GetImageOfIndex(FCurrentImage));
ImageEnView1.RunTransition(iettRandomWord, 2000);

// Transition, showing each letter of the word "ImageEn" in turn
IEGlobalSettings().WordTransitionParams.Word := 'ImageEn';
ImageEnView1.PrepareTransition;
ImageEnView1.IO.LoadFromFile(GetImageOfIndex(FCurrentImage));
ImageEnView1.RunTransition(iettWordWipeInAndOut, 5000);

// Transition wiping the screen with the word "GO!"
IEGlobalSettings().WordTransitionParams.Word := '"GO!"'; // Enclose in quotes to avoid cyling. Small words are best
ImageEnView1.PrepareTransition;
ImageEnView1.IO.LoadFromFile(GetImageOfIndex(FCurrentImage));
ImageEnView1.RunTransition(iettWordWipeInAndOut, 5000);


TIEWPDObject

TIEWPDObject

Declaration

TIEWPDObject = Record
ID : WideString;
FriendlyName : WideString; // The WPD name. A file without an extension - Best for folders
Filename : WideString; // Original name in WPD. Name of file with extension (but without a path) - Best for files
Path : WideString;
ObjectType : TIEWPDObjectType;
end;


TIEWPDObjectAdvancedProps

TIEWPDObjectAdvancedProps

Declaration

TIEWPDObjectAdvancedProps = Record
ObjectID : WideString;
ParentID : WideString;
FriendlyName : WideString; // The WPD name. A file without an extension - Best for folders
Filename : WideString; // Original name in WPD. Name of file with extension (but without a path) - Best for files
PersistentUniqueID : WideString;
ObjectFormat : TWPDObjectFormat;
ContentType : TWPDContentType;
IsHidden : Boolean;
IsSystem : Boolean;
DateCreated : TDateTime;
DateModified : TDateTime;
SizeBytes : Largeuint; // Is Int64
end;


TIEWPDObjectType

TIEWPDObjectType

Declaration

TIEWPDObjectType = (iewFile, iewFolder);


TIEWPDObjectTypes

TIEWPDObjectTypes

Declaration

TIEWPDObjectTypes = set of TIEWPDObjectType;


TIEWriteImageStream

TIEWriteImageStream

Declaration

TIEWriteImageStream = procedure(Stream: TStream; Bitmap: TIEBitmap; var IOParams: TIOParams; var Progress: TProgressRec);

Description

The procedure to save the image in Bitmap to a Stream.

Use Progress to return progress information (e.g. for 35% progress Progress.val := 35 and Progress.tot := 100) and notify of save failure (Progress.Aborting^ := True).


TIEWrongImageEvent

TIEWrongImageEvent

Declaration

TIEWrongImageEvent = procedure(Sender: TObject; OutBitmap: TIEBitmap; idx: integer; var Handled: boolean) of object;

Description

Used by OnWrongImage whenever TImageEnMView cannot load the image specified in ImageFileName property, for instance when the file is corrupted or of an unrecognized format.

idx specifies the image index.
If you change the OutBitmap, also set Handled to True.
If Handled is false, TImageEnMView replaces the bitmap with a question mark image.


TIEZoomEvent

TIEZoomEvent

Declaration

TIEZoomEvent = procedure(Sender: TObject; var NewZoom: double) of object;


TileBitmapOntoCanvas

TileBitmapOntoCanvas

Declaration

Procedure TileBitmapOntoCanvas(Canvas : TCanvas; iWidth, iHeight : Integer; Bitmap : TBitmap); overload;
Procedure TileBitmapOntoCanvas(Canvas : TCanvas; iWidth, iHeight : Integer; Graphic : TGraphic); overload;

Description

Fill the canvas by tiling the specified bitmap (i.e. for wallpaper type effects)

Note: Defined in iexCanvasUtils unit

Example

// Create a checkered wallpaper image
WPBmp := CreateWallpaperBitmap( wpDiagCheckers, clRed, clWhite );
TileBitmapOntoCanvas( DestBmp.Canvas, DestBmp.Width, DestBmp.Height, WPBmp );
WPBmp.Free;

See Also

- CreateWallpaperBitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEn

TImageEn

Description

This component is included only to preserve compatibility with legacy applications.
We suggest that new implementations use TImageEnView and its associated properties IO and Proc.

Starting with version 2.1.7, TImageEn is the same as TImageEnView.


TImageEnDBVect.AbsolutePath

TImageEnDBVect.AbsolutePath

Declaration

property AbsolutePath: string;

Description

Returns the base path where the stored images are when DataField points to a string field.
The final path is calculated by concatenation of AbsolutePath and string field.

The default value is an empty string. If the AbsolutePath property is empty, then the string field should be an absolute path.


TImageEnDBVect.AutoDisplay

TImageEnDBVect.AutoDisplay

Declaration

property AutoDisplay: Boolean;

Description

AutoDisplay determines whether to automatically display the contents of a graphic BLOB in the database image control.

If AutoDisplay is True (the default value), the image automatically displays new data when the underlying BLOB field changes (such as when moving to a new record).
If AutoDisplay is False, the image clears whenever the underlying BLOB field changes. To display the data, the user can double-click on the control or select it and press Enter. In addition, calling the LoadPicture method ensures that the control is showing data.
Change the value of AutoDisplay to False if the automatic loading of BLOB fields seems to take too long.


TImageEnDBVect.DataField

TImageEnDBVect.DataField

Declaration

property DataField: string;

Description

DataField specifies the field from which the database image displays data.

Use DataField to bind the image control to a field in the dataset.
To fully specify a database field, both the dataset and the field within that dataset must be defined.
The DataSource property of the image control specifies the dataset which contains the DataField. DataField should specify a graphic field.


TImageEnDBVect.DataFieldImageFormat

TImageEnDBVect.DataFieldImageFormat

Declaration

property DataFieldImageFormat: TDataFieldImageFormat;

Description

Specifies the image format to save in the Blob field or path reference.

See the IOParams property for specific image format parameters.


TImageEnDBVect.DataSource

TImageEnDBVect.DataSource

Declaration

property DataSource: TDataSource;

Description

DataSource links the image control to a dataset.

Use DataSource to link the image control to a dataset in which the data can be found.
To fully specify a database field for the image control, both the dataset and a field within that dataset must be defined.
Use the DataField property to specify the particular field within the dataset.


TImageEnDBVect.DoIOPreview

TImageEnDBVect.DoIOPreview

Declaration

function DoIOPreview: boolean;

Description

Executes the IOPreviews dialog. This dialog gets/sets the parameters of image file formats.
The dialog shown depends upon the DataFieldImageFormat property.


TImageEnDBVect.Field

TImageEnDBVect.Field

Declaration

property Field: TField;

Description

Field is the TField component the database image is linked to.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnDBVect.IOParams

TImageEnDBVect.IOParams

Declaration

property IOParams: TIOParams;

Description

IOParams allow you to set or get all file format parameters such as bits per pixel or type of compression.

Read-only

Example

Table1.Edit;
ImageEnDBView1.IOParams.BMP_Compression := ioBMP_RLE;
Table1.Post;


TImageEnDBVect.IOPreviewsParams

TImageEnDBVect.IOPreviewsParams

Declaration

property IOPreviewsParams: TIOPreviewsParams;

Description

Specifies features of the input/output preview dialog. Set ioppDefaultLockPreview to set down the "Lock preview" button when the dialog is showed.

Note: Only ioppDefaultLockPreview is permitted for TImageEnDBVect

Example

// Show preview by default
ImageEnDBVect1.IOPreviewsParams := [ ioppDefaultLockPreview ];


TImageEnDBVect.JpegQuality

TImageEnDBVect.JpegQuality

Declaration

property JpegQuality: integer;

Description

JpegQuality is the stored image quality factor, from 1 to 100. The higher the value, the better the image quality and the larger resultant memory required.

This is the same as TIOParamsVas.JPEG_Quality.


TImageEnDBVect.LoadedFieldImageFormat

TImageEnDBVect.LoadedFieldImageFormat

Declaration

function LoadedFieldImageFormat: TDataFieldImageFormat;

Description

Returns the image format stored in the Blob field (loads directly from blob).

Note: If you change DataFieldImageFormat, to store a several image formats, LoadedFieldImageFormat maintains the original value.


TImageEnDBVect.LoadPicture

TImageEnDBVect.LoadPicture

Declaration

procedure LoadPicture;

Description

LoadPicture loads the image stored in the field into the database image control.


TImageEnDBVect.OnUnableToLoadImage

TImageEnDBVect.OnUnableToLoadImage

Declaration

property OnUnableToLoadImage: TUnableToLoadImageEvent;

Description

Occurs when TImageEnDBVect or TImageEnDBView fails to load an image from blob field.


TImageEnDBVect.PreviewFont

TImageEnDBVect.PreviewFont

Declaration

property PreviewFont: TFont;

Description

If PreviewFontEnabled is set to True then PreviewFont specifies the font used in the IOPreviews dialog. Ensure the size of font matches the labels length.

Example

ImageEnDBVect1.PreviewFont.Name := 'MS Times New Roman';
ImageEnDBVect1.PreviewFontEnabled := True;
ImageEnDBVect1.DoPreviews([peAll]);


TImageEnDBVect.PreviewFontEnabled

TImageEnDBVect.PreviewFontEnabled

Declaration

property PreviewFontEnabled: TFont;

Description

By default (when PreviewFontEnabled = False) IO Preview dialogs are displayed using the system font (e.g. Tahoma or Segoe UI).
If you set PreviewFontEnabled to True then you can use PreviewFont to specify a custom font for the IO Preview dialogs.

Example

ImageEnDBView1.PreviewFont.Name := 'MS Times New Roman';
ImageEnDBView1.PreviewFontEnabled := False;
ImageEnDBView1.DoPreviews([peAll]);


TImageEnDBVect.ReadOnly

TImageEnDBVect.ReadOnly

Declaration

property ReadOnly: Boolean;

Description

ReadOnly determines whether the user can change the contents of the field using the image control.


TImageEnDBView.AbsolutePath

TImageEnDBView.AbsolutePath

Declaration

property AbsolutePath: string;

Description

Specifies the base path where the stored images are when DataField points to a string field.
The final path is calculated by concatenation of AbsolutePath and string field.

The default value is an empty string. If the AbsolutePath property is empty, then the string field should be an absolute path.


TImageEnDBView.AutoDisplay

TImageEnDBView.AutoDisplay

Declaration

property AutoDisplay: Boolean;

Description

AutoDisplay determines whether to automatically display the contents of a graphic BLOB in the database image control.

If AutoDisplay is True (the default value), the image automatically displays new data when the underlying BLOB field changes (such as when moving to a new record).
If AutoDisplay is False, the image clears whenever the underlying BLOB field changes.

To display the data, the user can double-click on the control or select it and press Enter. In addition, calling the LoadPicture method ensures that the control is showing data.
Change the value of AutoDisplay to False if the automatic loading of BLOB fields seems to take too long.


TImageEnDBView.DataField

TImageEnDBView.DataField

Declaration

property DataField: string;

Description

DataField specifies the field from which the database image displays data.

Use DataField to bind the image control to a field in the dataset.
To fully specify a database field, both the dataset and the field within that dataset must be defined.
The DataSource property of the image control specifies the dataset which contains the DataField. DataField should specify a graphic field.


TImageEnDBView.DataFieldImageFormat

TImageEnDBView.DataFieldImageFormat

Declaration

property DataFieldImageFormat: TDataFieldImageFormat;

Description

Specifies the image format to save in the Blob field or path reference.

See the IOParams property for specific image format parameters.


TImageEnDBView.DataSource

TImageEnDBView.DataSource

Declaration

property DataSource: TDataSource;

Description

DataSource links the image control to a dataset.

Use DataSource to link the image control to a dataset in which the data can be found.
To fully specify a database field for the image control, both the dataset and a field within that dataset must be defined.
Use the DataField property to specify the particular field within the dataset.


TImageEnDBView.DoIOPreview

TImageEnDBView.DoIOPreview

Declaration

function DoIOPreview: boolean;

Description

Executes the IOPreviews dialog. This dialog gets/sets the parameters of image file formats.
The dialog shown depends on the DataFieldImageFormat property.


TImageEnDBView.Field

TImageEnDBView.Field

Declaration

property Field: TField;

Description

Field is the TField component the database image is linked to.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnDBView.IOParams

TImageEnDBView.IOParams

Declaration

property IOParams: TIOParams;

Description

IOParams allow you to set or get all file format parameters such as bits per pixel or type of compression.

Read-only

Example

Table1.Edit;
ImageEnDBView1.IOParams.BMP_Compression := ioBMP_RLE;
Table1.Post;


TImageEnDBView.IOPreviewsParams

TImageEnDBView.IOPreviewsParams

Declaration

property IOPreviewsParams: TIOPreviewsParams;

Description

Specifies features of the input/output preview dialog.

Example

// Show preview by default
ImageEnDBView1.IOPreviewsParams := ImageEnDBView1.IOPreviewsParams + [ ioppDefaultLockPreview ];


TImageEnDBView.JpegQuality

TImageEnDBView.JpegQuality

Declaration

property JpegQuality: integer;

Description

Specifies the quality factor, from 1 to 100. The higher the value, the better the image quality and the larger resultant memory needed.

This is the example of IOParams.JPEG_Quality.


TImageEnDBView.LoadedFieldImageFormat

TImageEnDBView.LoadedFieldImageFormat

Declaration

function LoadedFieldImageFormat(): TDataFieldImageFormat;

Description

Returns the image format stored in the Blob field (load directly from blob).

Note: If you change DataFieldImageFormat, to store as several image formats, LoadedFieldImageFormat maintains the original value.


TImageEnDBView.LoadPicture

TImageEnDBView.LoadPicture

Declaration

procedure LoadPicture;

Description

LoadPicture loads the image stored in the field into the database image control.


TImageEnDBView.OnBeforeLoadImage

TImageEnDBView.OnBeforeLoadImage

Declaration

property OnBeforeLoadImage: TIEBeforeLoadImageEvent;

Description

Occurs immediately before an image is loaded.


TImageEnDBView.OnUnableToLoadImage

TImageEnDBView.OnUnableToLoadImage

Declaration

property OnUnableToLoadImage: TUnableToLoadImageEvent;

Description

Occurs when TImageEnDBVect or TImageEnDBView fails to load an image from blob field.


TImageEnDBView.PreviewFont

TImageEnDBView.PreviewFont

Declaration

property PreviewFont: TFont;

Description

If PreviewFontEnabled is set to True then PreviewFont specifies the font used in the IOPreviews dialog. Ensure the size of font matches the labels length.

Example

ImageEnDBView1.PreviewFont.Name := 'MS Times New Roman';
ImageEnDBView1.PreviewFontEnabled := True;
ImageEnDBView1.DoPreviews([peAll]);


TImageEnDBView.PreviewFontEnabled

TImageEnDBView.PreviewFontEnabled

Declaration

property PreviewFontEnabled: TFont;

Description

By default (when PreviewFontEnabled = False) IO Preview dialogs are displayed using the system font (e.g. Tahoma or Segoe UI).
If you set PreviewFontEnabled to True then you can use PreviewFont to specify a custom font for the IO Preview dialogs.

Example

ImageEnDBView1.PreviewFont.Name := 'MS Times New Roman';
ImageEnDBView1.PreviewFontEnabled := False;
ImageEnDBView1.DoPreviews([peAll]);


TImageEnDBView.ReadOnly

TImageEnDBView.ReadOnly

Declaration

property ReadOnly: Boolean;

Description

ReadOnly determines whether the user can change the contents of the field using the image control.


TImageEnDBView.StreamHeaders

TImageEnDBView.StreamHeaders

Declaration

property StreamHeaders: boolean

Description

If True, TImageEnDBView adds an additional header before standard image format.

To read older ImageEn data fields, leave this property as True.
To read data field from other programs, set this property to False.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnDBView.UseMemoryStream

TImageEnDBView.UseMemoryStream

Declaration

property UseMemoryStream: boolean

Description

If True (default), TImageEnDBView will use a temporary memory stream to retrieve data from blob stream.
Otherwise will use CreateBlobStream.


TImageEnFolderMView.AppendFile

TImageEnFolderMView.AppendFile

Declaration

function AppendFile(const sFilename : string; bSelectIt : Boolean = True; bCheckFileType : Boolean = True) : integer;

Description

AppendFile adds a new file at last position in the grid and returns the new image position. If bSelectIt is enabled the new file will be selected.
If bCheckFileType is enabled then the file is only added if it is permitted by folder parameters: FileTypes, FileTypesMask, ExclusionMask, ShowFolders and ShowHiddenFiles

Result is -1 if the file does not exist.

Note: Unlike the AppendImage methods, the added file will be loaded on demand and filled with the details and properties of TImageEnFolderMView

Example

IEFolderMView1.Add('D:\MyNewImage.jpg');


TImageEnFolderMView.AppendImage

TImageEnFolderMView.AppendImage

Note: It is better to use AppendFile than AppendImage as it provides better support for TImageEnFolderMView properties.

See Also

- AppendFile
- AppendImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.AutoDragFiles

TImageEnFolderMView.AutoDragFiles

Declaration

property AutoDragFiles : TIEFileDragDropActions;

Description

Whether files can be dragged from the grid to other Windows applications, such as Explorer.

Default: [] (drag drop will not occur automatically)

Value | Description
[] | Dragging of files is not automatically initiated due to user action
[iedpMove] | A user can drag files to another application to move them
[iedpCopy] | A user can drag files to another application to copy them
[iedpCopy, iedpMove] | A user can drag files to another application to move or copy them (the desination application will determine which action takes place. Generally this will be copying, or moving if the Shift key is pressed


TImageEnFolderMView.AutoDropFiles

TImageEnFolderMView.AutoDropFiles

Declaration

property AutoDropFiles : Set of TIEFileDragDropActions;

Description

Whether files can be dropped onto the grid from other Windows applications, such as Explorer.

Default: [] (drag drop is disabled)

Value | Description
[] | Dropping of files is disabled
[iedpMove] | Files that are dropped onto the control will be moved to the current Folder
[iedpCopy] | Files that are dropped onto the control will be copied to the current Folder
[iedpCopy, iedpMove] | Files that are dropped onto the control can be moved or copied to the current Folder. If the Shift key is pressed, they will be moved, otherwise they will be copied.

Note: You can use the OnDropFiles to override the handling of specific dropped files


TImageEnFolderMView.AutoRefresh

TImageEnFolderMView.AutoRefresh

Declaration

property AutoRefresh : Boolean;

Description

When enabled the current Folder will be monitored for changes and new files that appear automatically appended and deleted files will be automatically removed


TImageEnFolderMView.CanOpenParentFolder

TImageEnFolderMView.CanOpenParentFolder

Declaration

function CanOpenParentFolder : boolean;

Description

Returns true if there is a folder above the current Folder that can be accessed (e.g. using OpenParentFolder)

Example

// Enable our "Go Up" button
btnGoUp.Enabled := IEFolderMView1.CanOpenParentFolder;


TImageEnFolderMView.CanPasteFilesFromClipboard

TImageEnFolderMView.CanPasteFilesFromClipboard

Declaration

function CanPasteFilesFromClipboard : Boolean;

Description

Returns true if there are files on the clipboard that can be pasted into the control.

See also: PasteFilesFromClipboard

Example

// Enable our Paste button
btnPaste.Enabled := IEFolderMView1.CanPasteFilesFromClipboard;


TImageEnFolderMView.CopyFilesToCurrentFolder

TImageEnFolderMView.CopyFilesToCurrentFolder

Declaration

function CopyFilesToCurrentFolder(ssFilenames : TStrings) : Boolean;

Description

Copies the specified files to the current Folder and refreshes the grid.

Result is False if the action failed or was aborted.

Progress, confirmation and other options are controlled by FileOperationOptions.


TImageEnFolderMView.CopySelectedFilesToClipboard

TImageEnFolderMView.CopySelectedFilesToClipboard

Declaration

function CopySelectedFilesToClipboard : Integer;

Description

Copies all filenames of selected files to the clipboard. These files can be pasted in Windows Explorer or using PasteFilesFromClipboard

Result is the count of files added to the clipboard.

Note: An exception will be raised if an error occurs


TImageEnFolderMView.CopySelectedFilesToFolder

TImageEnFolderMView.CopySelectedFilesToFolder

Declaration

function CopySelectedFilesToFolder(const sDestFolder : string) : Boolean;

Description

Copies the selected files from the current folder to sDestFolder

Result is False if the action failed or was aborted.

Progress, confirmation and other options are controlled by FileOperationOptions.


TImageEnFolderMView.CreateNewFolder

TImageEnFolderMView.CreateNewFolder

Declaration

function CreateNewFolder(const sFolderName : string) : Boolean;

Description

Creates a new folder within the current Folder of the name sFolderName.

Note: sFolderName must NOT be a full path (just a new name)

Example

// Create a new folder of the name, "New Folder"
IEFolderMView1.CreateNewFolder('New Folder');


TImageEnFolderMView.CutSelectedFilesToClipboard

TImageEnFolderMView.CutSelectedFilesToClipboard

Declaration

function CutSelectedFilesToClipboard : Integer;

Description

Cuts all filenames of selected files to the clipboard. These files can be pasted in Windows Explorer or using PasteFilesFromClipboard

Result is the count of files added to the clipboard.

Note:
- This is best used in combination with AutoRefresh
- An exception will be raised if an error occurs
- TImageEnFolderMView does not change the visual style of cut files


TImageEnFolderMView.DefaultFolder

TImageEnFolderMView.DefaultFolder

Declaration

property DefaultFolder : TIEDefaultFolder;

Description

The initial value for Folder.

Example 1

procedure TForm1.FormCreate(Sender: TObject);
begin
// Default to the "My Pictures" folder
IEFolderMView1.DefaultFolder := iedfMyPictures;
end;

Example 2

procedure TForm1.FormCreate(Sender: TObject);
begin
// Default to a custom folder
IEFolderMView1.DefaultFolder := iedfSpecified; // Note: This line is optional at run-time
IEFolderMView1.Folder := 'D:\My Custom Folder';
end;


TImageEnFolderMView.DeleteSelectedFilesFromFolder

TImageEnFolderMView.DeleteSelectedFilesFromFolder

Declaration

function DeleteSelectedFilesFromFolder : Boolean;

Description

Deletes the selected files from the current folder. Do not confuse this method with DeleteSelectedImages the files are deleted from the system.

Result is False if the action failed or was aborted.

If ieioSendToRecycleBin is specified for FileOperationOptions the files are moved to the Recycle Bin (though this will depend on the user's settings in Windows). Otherwise they are permanently deleted.

Example

// Send selected file to Recycle Bin
IEFolderMView1.FileOperationOptions := FileOperationOptions + [ieioSendToRecycleBin];
IEFolderMView1.DeleteSelectedFilesFromFolder;

// Permanently delete the selected file with confirmation
IEFolderMView1.FileOperationOptions := FileOperationOptions - [ieioSendToRecycleBin] + [ieioShowConfirmation];
IEFolderMView1.DeleteSelectedFilesFromFolder;


TImageEnFolderMView.EnableSpecialFolders

TImageEnFolderMView.EnableSpecialFolders

Declaration

property EnableSpecialFolders: Boolean;

Description

Whether the user can navigate up from a root to a drives display ("This PC") and from there to the "Desktop".

When false, the top level folder of TImageEnMView is a drive root (e.g. C:\).

When enabled, the folder tree is as follows:

+ Desktop
+ Drives
+ C:\
+ Folder 1 on C
+ Folder 2 on C
+ D:\
+ Folder 1 on D
+ Folder 2 on D

Notes:
- When enabled, Folder may return the constants: IEF_Desktop_Folder or IEF_Drives_Folder
- These are not true special folders. IEF_Desktop_Folder is the Windows desktop plus a "This PC" icon to access the drives folder. IEF_Drives_Folder simply lists available drives on a system.

Example

// Display the Windows desktop
IEFolderMView1.Folder := IEF_Desktop_Folder;

// Check the user is not creating a folder in the drives folder
if IEFolderMView1.Folder = IEF_Drives_Folder then
ShowMessage( 'You cannot create a folder in "My Computer"' );


TImageEnFolderMView.ExclusionMask

TImageEnFolderMView.ExclusionMask

Declaration

property ExclusionMask: String;

Description

Specify any file types that you do not want to be added to the grid. Must be a comma-separated list of file extensions (e.g. 'lyr,all,iev')

Note: These types will be excluded regardless of your setting for FileTypes

Example

// Retrieve all images except JPEGs
IEFolderMView1.LockUpdate;
try
IEFolderMView1.Folder := 'C:\Images\';
IEFolderMView1.FileTypes := iefAllImages;
IEFolderMView1.ExclusionMask := 'jpg,jpeg,jpe';
finally
// Re-enable updating and refresh file list
IEFolderMView1.UnlockUpdate;
end;


TImageEnFolderMView.ExecuteFile

TImageEnFolderMView.ExecuteFile

Declaration

function ExecuteFile(idx : Integer = IEF_CURRENT_FILE) : boolean;

Description

Executes the file at idx using the standard windows functionality.

Note: No check is made whether the file type is supported by ImageEn or not.

Result is true unless an error was encountered.

If you specify IEF_CURRENT_FILE for idx then currently selected folder will be opened.

Example

case IEFolderMView1.ImageType[idx] of
ieftFolder : IEFolderMView1.OpenFolder(idx);
ieftSupportedImage : DisplayImage(idx);
ieftFile : IEFolderMView1.ExecuteFile(idx);
end;


TImageEnFolderMView.FileLimit

TImageEnFolderMView.FileLimit

Declaration

property FileLimit: Integer;

Description

Specifies the maximum number of images to retrieve from a folder. If this is -1 (default) then all images are retrieved.

Default: -1

Note: Changing this property will not affect the current content. The change will occur next time the folder is refreshed.


TImageEnFolderMView.FileOperationOptions

TImageEnFolderMView.FileOperationOptions

Declaration

property FileOperationOptions : TIEFileOperationOptions;

Description

Configure settings for when moving, copying or deleting files.

Affected Methods

- CopyFilesToCurrentFolder
- CopySelectedFilesToClipboard
- CutSelectedFilesToClipboard
- DeleteSelectedFilesFromFolder
- MoveFilesToCurrentFolder
- MoveSelectedFilesToFolder
- PasteFilesFromClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.FileTypes

TImageEnFolderMView.FileTypes

Declaration

property FileTypes: TIEFolderFileTypes;

Description

The file types that TImageEnFolderMView will retrieve from your Folder.

If FileTypes is iefCustom then use FileTypesMask to specify your file types.

See Also

- Folder
- FileTypesMask
- ExclusionMask
- SetFolderEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.FileTypesMask

TImageEnFolderMView.FileTypesMask

Declaration

property FileTypesMask: string;

Description

Specifies the file types to retrieve from your Folder. File types must be specified as a comma-separated list of extensions (e.g. 'jpg,jpeg,jpe'). If an empty string is specified all extensions will be returned.

Note: Property is ignored unless FileTypes has been set to iefCustom

Example

// Retrieve only JPEG images
IEFolderMView1.LockUpdate;
try
IEFolderMView1.Folder := 'C:\Images\';
IEFolderMView1.FileTypes := iefCustom;
IEFolderMView1.FileTypesMask := 'jpg,jpeg,jpe';
finally
// Re-enable updating and call update
IEFolderMView1.UnlockUpdate;
end;

See Also

- Folder
- FileTypes
- ExclusionMask
- SetFolderEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.FillFromDirectory

TImageEnFolderMView.FillFromDirectory

DO NOT USE for TImageEnFolderMView! Use Folder and associated properties instead.

See also: FillFromDirectory

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.Folder

TImageEnFolderMView.Folder

Declaration

property Folder: string;

Description

Specifies the folder to search for files with which we fill the control. You can specify multiple folders by delimiting them with IEM_Folder_Delimiter (which is a bar: |). Files in sub-folders will be included if <TImageEnFolderMView.IncludeSubFolders> is enabled.

The type of files to be retrieved is specified by FileTypes and FileTypesMask. You can exclude particular types with ExclusionMask.

To update all folder properties at once, use SetFolderEx.

The following constants can be specified in place of a folder path:
Constant | Description
IEF_Desktop_Folder | Windows Desktop
IEF_Drives_Folder | "This PC" (Windows 8 or newer) or "My Computer" (Windows XP)
IEF_Root_Directory | The drive containing Windows (usually C:\)
IEF_MyDocuments_Folder | The user's "Documents" folder
IEF_MyPictures_Folder | The user's "Pictures" folder
IEF_MyVideos_Folder | The user's "Videos" folder

Note: The value of Folder at start-up is defined by DefaultFolder. If DefaultFolder is not iedfSpecified then any value you have set for Folder at design time is ignored.

Example 1

// Retrieve only JPEG images
IEFolderMView1.LockUpdate;
try
IEFolderMView1.Folder := 'C:\Images\';
IEFolderMView1.FileTypes := iefCustom;
IEFolderMView1.FileTypesMask := 'jpg,jpeg,jpe';
finally
// Re-enable updating and refresh content
IEFolderMView1.UnlockUpdate;
end;

// This is the same as calling:
IEFolderMView1.SetFolderEx('C:\Images\', iefCustom, 'jpg,jpeg,jpe');

Example 2

// Display "My Pictures" folder
IEFolderMView1.Folder := IEF_MyPictures_Folder;

Example 3

// Display content of all drives on system by delimiting them with IEM_Folder_Delimiter
procedure TForm1.btnShowAllDrives(Sender: TObject);
var
vDrivesSize : Cardinal;
vDrives : array[0..128] of Char;
vDrive : PChar;
sDrives: string;
begin
sDrives := '';
vDrivesSize := GetLogicalDriveStrings(SizeOf(vDrives), vDrives);
if vDrivesSize > 0 then
begin
vDrive := vDrives;
while vDrive^ <> #0 do
begin
sDrives := sDrives + StrPas(vDrive) + IEM_Folder_Delimiter;
Inc(vDrive, SizeOf(vDrive));
end;
end;
IEFolderMView.Folder := sDrives;
end;


TImageEnFolderMView.FolderInteract

TImageEnFolderMView.FolderInteract

Declaration

property FolderInteract : TIEFolderInteractOptions;

Description

Configure the behaviour when interacting with the control.


TImageEnFolderMView.IncludeSubFolders

TImageEnFolderMView.IncludeSubFolders

Declaration

property IncludeSubFolders: Boolean;

Description

When enabled, files within any sub-folders of <TImageEnFolderMView.Folder> will be included.

Note: IncludeSubFolders has no effect with special folders such as IEF_Desktop_Folder or IEF_Drives_Folder. It will also be slow if there are many sub-folders so use with caution.

Example

// Retrieve JPEG images from all folders of an inserted DVD
IEFolderMView1.LockUpdate;
try
IEFolderMView1.Folder := 'E:\';
IEFolderMView1.IncludeSubFolders := True;
IEFolderMView1.FileTypesMask := 'jpg,jpeg,jpe';
finally
// Re-enable updating and refresh content
IEFolderMView1.UnlockUpdate;
end;


TImageEnFolderMView.InsertFile

TImageEnFolderMView.InsertFile

Declaration

function InsertFile(idx : Integer; const sFilename : string; bSelectIt : Boolean = True; bCheckFileType : Boolean = True) : Boolean;

Description

InsertFile adds a new file at the specified position in the grid. If bSelectIt is enabled the new file will be selected.
If bCheckFileType is enabled then the file is only added if it is permitted by folder parameters: FileTypes, FileTypesMask, ExclusionMask, ShowFolders and ShowHiddenFiles

Result is False if the file does not exist.

Note: Unlike the InsertImage methods, the added file will be loaded on demand and filled with the details and properties of TImageEnFolderMView

Example

// Add file to the start of the list
IEFolderMView1.Add(0, 'D:\MyNewImage.jpg');


TImageEnFolderMView.InsertImage

TImageEnFolderMView.InsertImage

Note: It is better to use InsertFile than InsertImage as it provides better support for TImageEnFolderMView properties.

See Also

- InsertFile
- InsertImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.InsertImageEx

TImageEnFolderMView.InsertImageEx

Note: It is better to use InsertFile than InsertImageEx as it provides better support for TImageEnFolderMView properties.

See Also

- InsertFile
- InsertImageEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.LoadOnDemand

TImageEnFolderMView.LoadOnDemand

Declaration

property LoadOnDemand : Boolean;

Description

If enabled, images are only loaded as they are displayed (i.e. not until they are scrolled into view). Set to false to load all images immediately (which will be much slower)

Default: True

Note: Changing this property will not affect the current content. The change will occur next time the folder is refreshed.


TImageEnFolderMView.LockUpdate

TImageEnFolderMView.LockUpdate

Declaration

procedure LockUpdate;

Description

Increments the lock update counter. While LockUpdateCount is greater than zero all component updating is disabled.

Use UnLockUpdate to unlock.

Example

// Disable updating of component
IEFolderMView1.LockUpdate;
try
... Perform activities, e.g. appending many files
finally
// Re-enable Updating and refresh view
IEFolderMView1.UnlockUpdate;
end;


TImageEnFolderMView.LockUpdateCount

TImageEnFolderMView.LockUpdateCount

Declaration

property LockUpdateCount: Integer;

Description

Returns the lock updating state. A value of 0 means no locking. A value greater than zero means locking is in place (i.e. updating is disabled).

Calling LockUpdate increments LockUpdateCount, UnLockUpdate decrements it.


TImageEnFolderMView.MoveFilesToCurrentFolder

TImageEnFolderMView.MoveFilesToCurrentFolder

Declaration

function MoveFilesToCurrentFolder(ssFilenames : TStrings) : Boolean;

Description

Moves the specified files to the current Folder and refreshes the grid.

Result is False if the action failed or was aborted.

Progress, confirmation and other options are controlled by FileOperationOptions.


TImageEnFolderMView.MoveSelectedFilesToFolder

TImageEnFolderMView.MoveSelectedFilesToFolder

Declaration

function MoveSelectedFilesToFolder(const sDestFolder : string) : Boolean;

Description

Moves the selected files from the current folder to sDestFolder (and removes them from the grid)

Result is False if the action failed or was aborted.

Progress, confirmation and other options are controlled by FileOperationOptions.


TImageEnFolderMView.OnCustomSortCompare

TImageEnFolderMView.OnCustomSortCompare

Declaration

property OnCustomSortCompare: TIEImageEnMViewSortCompareEx;

Description

Occurs whenever the content needs to be sorted if SortOrder is set to iesbCustom.

Example

// custom sort function (by DPI)
function TMyForm.IEFolderMView1CustomSortCompare(i1, i2: Integer): Integer;
var
dpi1, dpi2: Integer;
begin
dpi1 := IEFolderMView1.Params[i1].DPI;
dpi2 := IEFolderMView1.Params[i2].DPI;

if dpi1 < dpi2 then
result := -1
else
if dpi1 > dpi2 then
result := 1
else
result := 0;

// Or more concise: Result := dpi1 - dpi2;
end;

// Sort By DPI
procedure TForm1.btnCustomSortClick(Sender: TObject);
begin
IEFolderMView1.SortOrder := iesbCustom;
end;


TImageEnFolderMView.OnDropFiles

TImageEnFolderMView.OnDropFiles

Declaration

property OnDropFiles: TIEDropFilesEvent;

Description

Occurs whenever files are dropped onto the control.

ssFiles is a list of files that have been dropped.
DropEffect is the action that will be performed on the files. It can be modified to override the default handling. Supported values are: DROPEFFECT_NONE (0), DROPEFFECT_COPY (1) or DROPEFFECT_MOVE (2)

Note: You must enable AutoDropFiles for files to be dropped

Example

function TMyForm.IEFolderMView1DropFiles(Sender: TObject; ssFiles: TStrings; var DropEffect: Integer);
begin
// Do not allow multiple files to be dropped
if ssFiles.Count > 1 then
begin
DropEffect := DROPEFFECT_NONE;
MessageBeep( MB_ERROR );
end;
end;


TImageEnFolderMView.OnFolderChanged

TImageEnFolderMView.OnFolderChanged

Declaration

property OnFolderChanged: TNotifyEvent;

Description

Occurs after a folder is opened (i.e. after Folder has been set).


TImageEnFolderMView.OnFolderChanging

TImageEnFolderMView.OnFolderChanging

Declaration

property OnFolderChanging: TIEFolderChangeEvent;

Description

Occurs whenever the Folder is being changed.

Example

function TMyForm.IEFolderMView1FolderChanging(Sender: TObject; var sNewFolder: String; var bAllow: boolean);
begin
// Do not allow user to change from C:\
if pos( 'C:\', Uppercase( sNewFolder )) = 0 then
begin
bAllow := False;
MessageBeep( MB_ERROR );
end;
end;


TImageEnFolderMView.OpenFolder

TImageEnFolderMView.OpenFolder

Declaration

function OpenFolder(idx : Integer = IEF_CURRENT_FILE) : boolean;

Description

If the frame at idx is a file folder, then it will be opened (i.e. Folder will change to that location)

Result is true if the frame at idx is a folder.

If you specify IEF_CURRENT_FILE for idx then currently selected folder will be opened.


TImageEnFolderMView.OpenParentFolder

TImageEnFolderMView.OpenParentFolder

Declaration

function OpenParentFolder : boolean;

Description

Changes Folder to the parent of the current folder

Result is true if there is a parent folder.

See also: CanOpenParentFolder

Note: If ieboEnableFolderShortcuts is specified for FolderInteract then the control will automatically Go Up if the user clicks Backspace or Alt+Up


TImageEnFolderMView.PasteFilesFromClipboard

TImageEnFolderMView.PasteFilesFromClipboard

Declaration

function PasteFilesFromClipboard : Boolean;

Description

Copies any files found on the clipboard to the current folder. Files can be copied using Windows Explorer or CopySelectedFilesToClipboard.

Result is False if the action failed or was aborted.

Notes:
- You do NOT need to call CanPasteFilesFromClipboard before pasting, but CanPasteFilesFromClipboard is useful to enable your Paste controls
- Progress, confirmation and other options are controlled by FileOperationOptions.


TImageEnFolderMView.PopupMenuUseSystem

TImageEnFolderMView.PopupMenuUseSystem

Declaration

property PopupMenuUseSystem: Boolean;

Description

If enabled and a PopUpMenu has not been specified then a Windows Explorer popup menu will be shown when right-clicking a file.

Default: True

Note: If AutoRefresh is not enabled, the control may not update the display of files that are moved or renamed

See Also

- PopupSystemMenu

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.PopupSystemMenu

TImageEnFolderMView.PopupSystemMenu

Declaration

procedure PopupSystemMenu(X, Y: Integer);

Description

Displays the system menu for the specified files at position x,y. This menu is the same as that displayed when right-clicking a selection of files in Windows Explorer.

Note: If AutoRefresh is not enabled, the control may not update the display of files that are moved or renamed

Example

PopupSystemMenu(Form1.Handle, ssSelectedFiles, ClickPos.X, ClickPos.Y);


TImageEnFolderMView.PromptForFolder

TImageEnFolderMView.PromptForFolder

Declaration

function PromptForFolder : boolean;

Description

Display a folder selection dialog and allows the user to select a folder. The grid will be then set to that Folder.

Result is true if a folder was selected.


TImageEnFolderMView.RefreshFileList

TImageEnFolderMView.RefreshFileList

Declaration

procedure RefreshFileList;

Description

Refills the control with files found in the folder Folder.

This can be useful if you have not enabled AutoRefresh.


TImageEnFolderMView.RefreshSorting

TImageEnFolderMView.RefreshSorting

Declaration

procedure RefreshSorting;

Description

Reapplies the current sort settings (SortOrder, SortAscending and SortCaseSensitive).

Note: TImageEnFolderMView will automatically apply sorting when refreshing files and setting sort properties, but this method may be used if files are added due to folder monitoring


TImageEnFolderMView.RemoveFile

TImageEnFolderMView.RemoveFile

Declaration

procedure RemoveFile(const sFilename : string);

Description

Removes the file sFilename from the control.

Example

IEFolderMView1.RemoveFile('D:\MyOldmage.jpg');


TImageEnFolderMView.RenameFile

TImageEnFolderMView.RenameFile

Declaration

function RenameFile(idx : Integer; const sNewName : string) : boolean;

Description

Renames the file at idx to sNewName using the standard windows functionality.

Note: sNewName must be a name only, without a folder path

Result is true unless an error was encountered.

If you specify IEF_CURRENT_FILE for idx then currently selected file will be renamed.

Example

// Rename current file to "Selected.jpg"
RenameFile(IEF_CURRENT_FILE, 'Selected.jpg');


TImageEnFolderMView.SelectedFilename

TImageEnFolderMView.SelectedFilename

Declaration

property SelectedFilename: WideString;

Description

Returns the full path of the currently selected frame (using SelectedImage) or '' if nothing is selected.

You can set SelectedFilename to make it the selected filename. If the filename is not found, the first item will be selected

See also: SelectedFilenames

Example

// Show preview of image in ImageEnView when a file is selected
procedure TForm1.IEFolderMView1ImageSelect(Sender: TObject);
begin
if IEFolderMView1.SelectedFilename = '' then
ImageEnView1.Blank
else
ImageEnView1.IO.LoadFromFile(IEFolderMView1.SelectedFilename);
end;


TImageEnFolderMView.SelectedFilenames

TImageEnFolderMView.SelectedFilenames

Declaration

function SelectedFilenames(Dest : TStrings): Integer;

Description

Adds the filenames of all selected files to the specified strings object. Result is the count of selected files.

See also: SelectedFilename

Example

// Add all selected filenames to a listbox
IEFolderMView1.SelectedFilenames(Listbox1.Items);


TImageEnFolderMView.SetFolderEx

TImageEnFolderMView.SetFolderEx

Declaration

procedure SetFolderEx(const sFolder: string; xFileTypes: TIEFolderFileTypes; const sFileTypesMask: string = ''; const sExclusionMask: string = '');

Description

Specifies the folder and filtering options in one step (to avoid premature updating).

It is the same as making the following calls:
LockUpdate
try
Folder
FileTypes
FileTypesMask
ExclusionMask
finally
UnLockUpdate
end;

Example

// Retrieve all JPEG images in C:\Images\
IEFolderMView1.SetFolderEx('C:\Images\', iefCustom, 'jpg,jpeg,jpe');

// This is the same as calling:
IEFolderMView1.LockUpdate;
try
IEFolderMView1.Folder := 'C:\Images\';
IEFolderMView1.FileTypes := iefCustom;
IEFolderMView1.FileTypesMask := 'jpg,jpeg,jpe';
finally
IEFolderMView1.UnlockUpdate;
end;


TImageEnFolderMView.SetSortOrderEx

TImageEnFolderMView.SetSortOrderEx

Declaration

procedure SetSortOrderEx(xSortOrder: TIEImageEnMViewSortBy; bSortAscending: Boolean = True; bSortCaseSensitive: Boolean = False);

Description

Specifies both sort options in one step (to avoid premature updating).

It is the same as making the following calls:
LockUpdate
try
SortOrder
SortAscending
SortCaseSensitive
finally
UnLockUpdate
end;


TImageEnFolderMView.ShowFolders

TImageEnFolderMView.ShowFolders

Declaration

property ShowFolders: Boolean;

Description

Enable to display folders with your files. When folders are displayed they can be opened by mouse or keyboard click

Default: True

See Also: ShowHiddenFiles

Example

// Show folders
IEFolderMView1.LockUpdate;
try
IEFolderMView1.Folder := 'C:\';
IEFolderMView1.ShowFolders := True;
finally
// Re-enable updating and refresh content
IEFolderMView1.UnlockUpdate;
end;


TImageEnFolderMView.ShowHiddenFiles

TImageEnFolderMView.ShowHiddenFiles

Declaration

property ShowHiddenFiles: Boolean;

Description

Enable to display system and hidden files.

Default: false

See Also

- ShowFolders

Example

// Show hidden files
IEFolderMView1.LockUpdate;
try
IEFolderMView1.Folder := 'C:\';
IEFolderMView1.ShowFolders := True;
IEFolderMView1.ShowHiddenFiles := True;
finally
// Re-enable updating and refresh content
IEFolderMView1.UnlockUpdate;
end;


TImageEnFolderMView.Sort

TImageEnFolderMView.Sort

Declaration

procedure Sort(Compare: TIEImageEnMViewSortCompare);
procedure Sort(Compare: TIEImageEnMViewSortCompareEx);
procedure Sort(OrderBy: TIEImageEnMViewSortBy; Ascending: boolean = true; CaseSenstive : boolean = true);

Description

Sorts all images in the TImageEnFolderMView by property (filename, dimensions, etc) or using a custom comparison function.

DO NOT USE for TImageEnFolderMView! Use properties SortOrder and SortAscending instead.


TImageEnFolderMView.SortAscending

TImageEnFolderMView.SortAscending

Declaration

property SortAscending: Boolean;

Description

Whether the sort order specified by SortOrder is ascending or descending.

Note: you can set both sort properties at once, using SetSortOrderEx.

Example

// Sort by file name reverse alphabetically
IEFolderMView1.LockUpdate;
try
IEFolderMView1.SortOrder := iesbFilename;
IEFolderMView1.SortAscending := False;
finally
IEFolderMView1.UnlockUpdate;
end;

// Which is the same as:
IEFolderMView1.SetSortOrderEx(iesbFilename, False);


TImageEnFolderMView.SortCaseSensitive

TImageEnFolderMView.SortCaseSensitive

Declaration

property SortCaseSensitive: Boolean;

Description

Whether text comparisons when sorting are case sensitive or not.

See also: SetSortOrderEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnFolderMView.SortOrder

TImageEnFolderMView.SortOrder

Declaration

property SortOrder: TIEImageEnMViewSortBy;

Description

The order in which your files are displayed. You can reverse the sort order by setting SortAscending to false.

Note: you can set both sort properties at once, using SetSortOrderEx.

Example 1

// Sort by filename
IEFolderMView1.SortOrder := iesbFilename;

Example 2

// Sort by filename in reverse alphabetical order
IEFolderMView1.LockUpdate;
try
IEFolderMView1.SortOrder := iesbFilename;
IEFolderMView1.SortAscending := False;
finally
IEFolderMView1.UnlockUpdate;
end;

// Which is the same as:
IEFolderMView1.SetSortOrderEx(iesbFilename, False);


TImageEnFolderMView.UnLockUpdate

TImageEnFolderMView.UnLockUpdate

Declaration

function UnlockUpdate: integer;

Description

Decrement the lock update counter (use after calling LockUpdate).

If the lock count is zero, then Update is called to refresh the view.

Returns the lock count.

Example

// Disable updating of component while setting properties
IEFolderMView1.LockUpdate;
try
IEFolderMView1.Folder := 'C:\Images\';
IEFolderMView1.FileTypes := iefCustom;
IEFolderMView1.FileTypesMask := 'jpg,jpeg,jpe';
IEFolderMView1.SortOrder := iesbFilename;
IEFolderMView1.SortAscending := True;
finally
// Re-enable updating and call update
IEFolderMView1.UnlockUpdate;
end;


TImageEnIO.Aborting

TImageEnIO.Aborting

Declaration

property Aborting: Boolean;

Description

During an operation such as loading or saving, setting Aborting to true will halt the current process.

If set to True while loading, the loaded image will be truncated (i.e. only a portion of the image is loaded).
If set to True while saving, the file will be closed and truncated (i.e. it will be unreadable and should be deleted).

Aborting can also be read after loading or saving to determine if an abort has occured.

Load Error Example

MyImageEnMView.LoadFromFileGIF('C:\MyGif.gif');
if MyImageEnMView.Aborting then
ShowMessage('GIF Load Error!');

Which is the same as:
if MyImageEnMView.LoadFromFileGIF('C:\MyGif.gif') = False then
ShowMessage('GIF Load Error!');

Abort Loading Example

// Begin to load image
procedure TForm1.btnLoadClick(Sender: TObject);
begin
ImageEnView1.IO.LoadFromFile('C:\xyx.bmp');
end;

// Progress of load
procedure TForm1.ImageEnIO1Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
Application.ProcessMessages; // <- important!
end;

// STOP! button
procedure TForm1.btnStopClick(Sender: TObject);
begin
// Cancel loading
ImageEnView1.IO.Aborting := True;
end;


TImageEnIO.Acquire

TImageEnIO.Acquire

Declaration

function Acquire(bResetParams : Boolean = False) : boolean;

Description

Perform a single image acquisition from the SelectedAcquireSource, which may be a camera card, Twain or WIA device. SelectedAcquireSource is set when the user chooses a source if you have called SelectAcquireSource or manually set a source using SetAcquireSource.
If bResetParams is True then SetDefaultParams is called before Acquire to reset the IO parameters (if you have already loaded an image from file).
Result is true if there was a successful acquisition.

Note: For acquisition of multiple images use TImageEnMIO.Acquire.

Demo

Demos\ImageAcquisition\AllAcquire\AllAcquire.dpr

Examples

// Prompt the user to choose a scanner source and then acquire
if ImageEnView1.IO.SelectAcquireSource([ieaTwain, ieaWIA, ieaDCIM]) then
ImageEnView1.IO.Acquire;

// Capture from the default WIA device
if ImageEnView1.IO.SetSource(ieaWIA, Default_Device) then
ImageEnView1.IO.Acquire;

// Select the second Twain device and capture
if ImageEnView1.IO.SetSource(ieaTwain, 1) then
ImageEnView1.IO.Acquire;

// Capture from the Twain device named, CanoScan FB620
if ImageEnView1.IO.SetSource(ieaTwain, 'CanoScan FB620') then
ImageEnView1.IO.Acquire;

// Retrieve from the camera card listed as H:\ drive
if ImageEnView1.IO.SetSource(ieaDCIM, 'H') then
ImageEnView1.IO.Acquire;

// Capture without a dialog
ImageEnView1.IO.AcquireParams.VisibleDialog := False;
if ImageEnView1.IO.Acquire then
ImageEnView1.IO.SaveToFile('D:\newimage.jpg'); // save scanned image


TImageEnIO.AcquireParams

TImageEnIO.AcquireParams

Declaration

property AcquireParams : TIEAcquireParams;

Description

AcquireParams is a powerful interface that provides generic access to all image acquistion APIs, Twain, WIA and DCIM Retrieval. AcquireParams accesses TwainParams, WIAParams and DCIMParams.

If you have called SelectAcquireSource or Acquire then you can access common parameters for the device without having to know the API

See the TIEAcquireParams object for more details.

Demo

Demos\ImageAcquisition\AllAcquire\AllAcquire.dpr


TImageEnIO.AssignParams

TImageEnIO.AssignParams

Declaration

procedure AssignParams(Source: TObject);

Description

Assign the file format parameters from another TImageEnIO component or TIOParams object.


TImageEnIO.AsyncMode

TImageEnIO.AsyncMode

Declaration

property AsyncMode: Boolean;

Description

Set to True to enable asynchronous input/output operations.

When asynchronous mode is enabled, each input/output method creates a new thread to executes the task then returns without waiting for the task to complete.

Note: Applicable only when TImageEnIO is attached to a TIEBitmap object.

Demo

Demos\InputOutput\Preload\Preload.dpr

Example

// multithread saving
Var
Bmp: TIEBitmap;
Io: TImageEnIO;
Begin
Bmp:= TIEBitmap.Create;
Io := TImageEnIO.CreateFromBitmap(bmp);

Io.LoadFromFile('C:\input.bmp');
Io.AsyncMode := True; // So it will create a thread for each input/output task
Io.SaveToFile('D:\i1.jpg'); // thread 1
Io.SaveToFile('D:\i2.jpg'); // thread 2
Io.SaveToFile('D:\i3.jpg'); // thread 3

Io.Free; // Free method will wait for all tasks to end!
Bmp.Free;
End;


TImageEnIO.AsyncRunning

TImageEnIO.AsyncRunning

Declaration

property AsyncRunning: Integer;

Description

Returns the number of threads that are running.

See also: AsyncMode

Example

// multithread saving
Var
Bmp: TIEBitmap;
Io: TImageEnIO;
Begin
Bmp := TIEBitmap.Create;
Io := TImageEnIO.CreateFromBitmap(bmp);

Io.LoadFromFile('C:\input.bmp');
Io.AsyncMode := True; // this makes a thread foreach input/output task
Io.SaveToFile('D:\i1.jpg'); // thread-1
Io.SaveToFile('D:\i2.jpg'); // thread-2
Io.SaveToFile('D:\i3.jpg'); // thread-3

// waits all threads finish
Io.WaitThreads();
...
End;


TImageEnIO.AttachedBitmap

TImageEnIO.AttachedBitmap

Declaration

property AttachedBitmap: TBitmap;

Description

Use this property to attach a TImageEnIO to a normal TBitmap object to provide wider format support and functionality.

This property is mutually exclusive with AttachedTImage and AttachedImageEn.

Example

var
bmp: TBitmap;
Begin
bmp := TBitmap.Create;
ImageEnIO1.AttachedBitmap := bmp;
ImageEnIO1.LoadFromFile('C:\alfa.tif');
...
End;


TImageEnIO.AttachedIEBitmap

TImageEnIO.AttachedIEBitmap

Declaration

property AttachedIEBitmap: TIEBitmap

Description

Contains the attached TIEBitmap object (same value as the IEBitmap property).

Example

// multithread saving
Var
Bmp: TIEBitmap;
Io: TImageEnIO;
Begin
Bmp := TIEBitmap.Create;
Io := TImageEnIO.CreateFromBitmap(bmp);

Io.LoadFromFile('C:\input.bmp');
Io.AsyncMode := True; // this makes a thread foreach input/output task
Io.SaveToFile('D:\i1.jpg'); // thread 1
Io.SaveToFile('D:\i2.jpg'); // thread 2
Io.SaveToFile('D:\i3.jpg'); // thread 3

Io.Free; // free method waits for all tasks end!
Bmp.Free;
End;


TImageEnIO.AttachedImageEn

TImageEnIO.AttachedImageEn

Declaration

property AttachedImageEn: TIEView;

Description

Use this property to attach a TImageEnIO to a TImageEnView, TImageEnDBView, TImageEnVect or any other inherited component.

This property is mutually exclusive with AttachedTImage and AttachedBitmap.

Note: TIEView is the base class of TImageEnView and TImageEnMView.

Example

ImageEnIO1.AttachedImageEn := ImageEnView1;


TImageEnIO.AttachedTImage

TImageEnIO.AttachedTImage

Declaration

property AttachedTImage: TImage;

Description

Use this property to attach a TImageEnIO to a TImage (to widen its format support and functionality).

This property is mutually exclusive with AttachedImageEn and AttachedBitmap.

Example

ImageEnIO1.AttachedTImage := Image1;


TImageEnIO.AutoAdjustDPI

TImageEnIO.AutoAdjustDPI

Declaration

property AutoAdjustDPI: Boolean;

Description

When set to True and the current (loaded or scanned) image has a horizontal DPI that does not not equal its vertical DPI, ImageEn will resize the image to make them equal.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.Background

TImageEnIO.Background

Declaration

property Background: TColor;

Description

The background color of the image (shown in unoccupied areas if the current image is smaller than the control size).

Note: When TImageEnIO is attached to TImageEnView, the TImageEnIO.Background is equal to Background.


TImageEnIO.Bitmap

TImageEnIO.Bitmap

Declaration

property Bitmap: TBitmap; (Read-only)

Description

References the bitmap contained in TImageEnIO, TImageEnView or TImageEnMView.

Example

// Use the standard LoadFromFile method of TBitmap
ImageEnView1.IO.Bitmap.LoadFromFile('C:\my.bmp');
ImageEnView1.IO.Bitmap.PixelFormat := pf24bit;
ImageEnView1.Update;


TImageEnIO.CaptureFromScreen

TImageEnIO.CaptureFromScreen

Declaration

procedure CaptureFromScreen(Source: TIECSSource; MouseCursor: TCursor = -1);

Description

Captures the current desktop or active window.

MouseCursor defines the cursor to draw because ImageEn cannot get it from Windows. Use -1 for none.

Example

// Save the current desktop to 'screen.png'
ImageEnView1.io.CaptureFromScreen(iecsScreen, -1);
ImageEnView1.io.SaveToFile('D:\screen.png');


TImageEnIO.ChangeBackground

TImageEnIO.ChangeBackground

Declaration

property ChangeBackground: Boolean;

Description

When set to True, the background color of the attached TImageEnView will automatically be set to to the image background color.

Default: False

Note: Not all file formats contains background color information.


TImageEnIO.CloseAVIFile

TImageEnIO.CloseAVIFile

Declaration

procedure CloseAVIFile;

Description

Closes an AVI file that was opened with OpenAVIFile or CreateAVIFile.

Demo

Demos\VideoCapture\DesktopToAvi\DesktopToAvi.dpr

Example

// Save the first AVI frame to 'frame1.jpg', second frame to 'frame2.jpg'
ImageEnView1.IO.OpenAVIFile( 'C:\film.avi' );

ImageEnView1.IO.LoadFromAVI( 0 );
ImageEnView1.IO.SaveToFile('D:\frame1.jpg');

ImageEnView1.IO.LoadFromAVI( 1 );
ImageEnView1.IO.SaveToFile('D:\frame2.jpg');
...
ImageEnView1.IO.CloseAVIFile;


TImageEnIO.CloseMediaFile

TImageEnIO.CloseMediaFile

Declaration

procedure CloseMediaFile;

Description

Close a video file that was opened with OpenMediaFile.

Example

// Save frame 10 as 'frame10.jpg'
ImageEnView1.IO.OpenMediaFile('C:\film.mpeg');
ImageEnView1.IO.LoadFromMediaFile(10);
ImageEnView1.IO.SaveToFile('D:\frame10.jpg');
ImageEnView1.IO.CloseMediaFile;


TImageEnIO.ClosePDFFile

TImageEnIO.ClosePDFFile

Declaration

procedure ClosePDFFile;

Description

Closes the active Adobe PDF file, opened using CreatePDFFile.

Demo

Demos\InputOutput\PDFBuilder\PdfBuilder.dpr

Example

ImageEnView1.IO.CreatePDFFile( 'D:\output.pdf' );

// load and save page 1
ImageEnView1.IO.LoadFromFile('C:\page1.tiff');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPDF;

// load and save page 2
ImageEnView1.IO.LoadFromFile('C:\page2.tiff');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPDF;

...Other pages...

// close PDF file
ImageEnView1.IO.ClosePDFFile;

See Also

- CreatePDFFile
- SaveToPDF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.ClosePSFile

TImageEnIO.ClosePSFile

Declaration

procedure ClosePSFile;

Description

Closes a PostScript file opened using CreatePSFile.

Demo

Demos\InputOutput\PDFBuilder\PdfBuilder.dpr

Example

ImageEnView1.IO.CreatePSFile( 'output.ps' );

// load and save page 1
ImageEnView1.IO.LoadFromFile('C:\page1.tiff');
ImageEnView1.IO.Params.PS_Compression := ioPS_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPS;

// load and save page 2
ImageEnView1.IO.LoadFromFile('C:\page2.tiff');
ImageEnView1.IO.Params.PS_Compression := ioPS_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPS;

...Other pages...

// close PS file
ImageEnView1.IO.ClosePSFile;

See Also

- CreatePSFile
- SaveToPS

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.Create

TImageEnIO.Create

Declaration

constructor Create(Owner: TComponent);

Description

Creates a new instance of TImageEnIO. You can set Owner = nil to create an owner-less component.


TImageEnIO.CreateAVIFile

TImageEnIO.CreateAVIFile

Declaration

function CreateAVIFile(const FileName: WideString; rate: Integer; const codec: AnsiString): TIECreateAVIFileResult;

Description

Creates a new, empty AVI file.

FileName

: Full destination path

Rate

: Specifies the number of frames per second

Code

: The compression codec to use (must be installed on system) as a four characters string.
For example:
'cvid' : cinepak by Radius
'msvc' : Microsoft Video 1
'mp42' : Microsoft MPEG4 V2

More codecs are listed at www.fourcc.org or by searching for registered fourcc codes and wave formats on MSDN

You can save each frame to the created AVI file using the SaveToAVI method.

Finally, call CloseAVIFile to close the file.

Example

ImageEnView.IO.CreateAVIFile('D:\output.avi', 20, 'DIB ');

// save frame 0
ImageEnView.IO.LoadFromFile('C:\frame0.jpg');
ImageEnView.IO.Params.BitsPerSample := 8;
ImageEnView.IO.Params.SamplesPerPixel := 1;
ImageEnView.IO.SaveToAVI;

// save frame 1
ImageEnView.IO.LoadFromFile('C:\frame1.jpg');
ImageEnView.IO.Params.BitsPerSample := 8;
ImageEnView.IO.Params.SamplesPerPixel := 1;
ImageEnView.IO.SaveToAVI;

// close the file
ImageEnView.IO.CloseAVIFile;


TImageEnIO.CreateFromBitmap

TImageEnIO.CreateFromBitmap

Declaration

constructor CreateFromBitmap(Bitmap: TIEBitmap);
constructor CreateFromBitmap(Bitmap: TBitmap);

Description

Creates a new instance of TImageEnIO, assigning the property AttachedIEBitmap or AttachedBitmap.

Example

with TImageEnIO.CreateFromBitmap(myBitmap) do
begin
DoPrintPreviewDialog( iedtDialog, '' )
Free;
end;

// If an area of the image is selected, print the selection, otherwise print the whole image
procedure TForm1.PrintImageClick(Sender: TObject);
var
bmp: TIEBitmap;
IO: TImageEnIO;
begin
if ImageEnView1.Selected = False then
ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog, '' )
else
begin
bmp := TIEBitmap.Create;
IO := TImageEnIO.CreateFromBitmap( bmp );
try
ImageEnView1.CopySelectionToBitmap( bmp );
IO.DoPrintPreviewDialog( iedtDialog, '' );
finally
IO.Free;
bmp.Free;
end;
end;
end;


TImageEnIO.CreatePDFFile

TImageEnIO.CreatePDFFile

Declaration

procedure CreatePDFFile(const FileName: WideString);

Description

Creates a new, empty Adobe PDF file of the specified filename. You can add pages using SaveToPDF and when complete, close the file using ClosePDFFile.

Note: All images in the resulting PDF file will be aligned to the upper-left corner of the paper.

Demo

Demos\InputOutput\PDFBuilder\PdfBuilder.dpr

Example

ImageEnView1.IO.CreatePDFFile( 'D:\output.pdf' );

// load and save page 1
ImageEnView1.IO.LoadFromFile('C:\page1.tiff');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPDF;

// load and save page 2
ImageEnView1.IO.LoadFromFile('C:\page2.tiff');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPDF;

...Other pages...

// close PDF file
ImageEnView1.IO.ClosePDFFile;


TImageEnIO.CreatePDFFromFileList

TImageEnIO.CreatePDFFromFileList

Declaration

function CreatePDFFromFileList(const sDestFilename : string;
ssFileList : TStrings;
const aPaperSize : TIOPDFPaperSize;
const aCompression : TIOPDFCompression;
const sTitle : string;
const sAuthor : string;
const bFailOnUnsupportedImage : Boolean = True;
const bRaiseExceptions : Boolean = False
) : Boolean;

Description

Generates a PDF file from all images specified in a TStrings list, by combining the functions of CreatePDFFile, SaveToPDF and ClosePDFFile.
Result is true unless an error is encountered.

Parameter | Description
sDestFilename | The .PDF filename to save the file to
ssFileList | A list of all images to add to the PDF file
aPaperSize | The size at which to create the PDF file
aCompression | The level of compression to use
sTitle | The title for the PDF document (appears in "Properties")
sAuthor | The author for the PDF document (appears in "Properties")
bFailOnUnsupportedImage | When true this procedure will fail if unsupported images (or other file types) are found in ssFileList. If false, unsupported file types are skipped
bRaiseExceptions | When true this procedure will generate an exception if it fails. If false, you will need to check the result to detect failure

Example

CreatePDFFromFileList('D:\MyNewPDF.pdf',
ssMyImageList,
iepA4,
ioPDF_JPEG,
'My Cool PDF',
'Mr Developer');


TImageEnIO.CreatePSFile

TImageEnIO.CreatePSFile

Declaration

procedure CreatePSFile(const FileName: WideString);

Description

Creates a new, empty PostScript file of the specified filename. You can add pages using SaveToPS and when complete, close the file using ClosePSFile.

Note: All images in the resulting PostScript file will be aligned to the upper-left corner of the paper.

Demo

Demos\InputOutput\PDFBuilder\PdfBuilder.dpr

Example

ImageEnView1.IO.CreatePSFile( 'D:\output.ps' );

// load and save page 1
ImageEnView1.IO.LoadFromFile('C:\page1.tiff');
ImageEnView1.IO.Params.PS_Compression := ioPS_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPS;

// load and save page 2
ImageEnView1.IO.LoadFromFile('C:\page2.tiff');
ImageEnView1.IO.Params.PS_Compression := ioPS_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPS;

...Other pages...

// close PS file
ImageEnView1.IO.ClosePSFile;


TImageEnIO.CreatePSFromFileList

TImageEnIO.CreatePSFromFileList

Declaration

function CreatePSFromFileList(const sDestFilename : string;
ssFileList : TStrings;
const aPaperSize : TIOPDFPaperSize;
const aCompression : TIOPSCompression;
const sTitle : string = '';
const bFailOnUnsupportedImage : Boolean = True;
const bRaiseExceptions : Boolean = False
) : Boolean;

Description

Generates a PS file from all images specified in a TStrings list, by combining the functions of CreatePSFile, SaveToPS and ClosePSFile.
Result is true unless an error is encountered.

Parameter | Description
sDestFilename | The .PS filename to save the file to
ssFileList | A list of all images to add to the PS file
aPaperSize | The size at which to create the PS file
aCompression | The level of compression to use
sTitle | The title for the PS document
bFailOnUnsupportedImage | When true this procedure will fail if unsupported images (or other file types) are found in ssFileList. If false, unsupported file types are skipped
bRaiseExceptions | When true this procedure will generate an exception if it fails. If false, you will need to check the result to detect failure

Example

CreatePSFromFileList('D:\MyNewPS.PS',
ssMyImageList,
iepA4,
ioPS_JPEG);


TImageEnIO.DCIMParams

TImageEnIO.DCIMParams

Declaration

property DCIMParams: TIEDcimAcquire;

Description

Use the DCIMParams property to handle retrieval of images from camera cards and connected camera devices (which appear as USB drives).

Notes:
- Use DCIMParams only when you need access to DCIM specific functionality (when SelectedAcquireSource.Api is ieaDCIM). For generic access to all image acquisitions sources (Twain, WIA, etc.) use AcquireParams instead
- Not available in Delphi/C++ Builder 5

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.DefaultDitherMethod

TImageEnIO.DefaultDitherMethod

Declaration

property DefaultDitherMethod: TIEDitherMethod;

Description

Specifies the dithering method to apply when a color image needs to be converted to black/white.

Default: ieThreshold

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.DialogsMeasureUnit

TImageEnIO.DialogsMeasureUnit

Declaration

property DialogsMeasureUnit: TIEDialogsMeasureUnit

Description

Specifies the measurement unit used in the Print Preview dialog

Example

ImageEnView1.IO.DialogsMeasureUnit := ieduCm;
ImageEnView1.IO.DoPrintPreviewDialog(iedtDialog);


TImageEnIO.DoPreviews

TImageEnIO.DoPreviews

Declaration

function DoPreviews(pp: TPreviewParams = [ppAll]): boolean;

Description

Executes the Previews dialog allowing the user to review and modify the parameters of image file formats (for example, JPEG quality, TIFF compression, etc).

pp is the set of image formats parameters to show in the dialog.
The style of the dialog is affected by SimplifiedParamsDialogs

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

Example

ImageEnView1.IO.LoadFromFile('C:\myimage.gif'); // loads a GIF image
ImageEnView1.IO.DoPreviews([ppGIF]); // sets GIF parameters (background, transparency...)
ImageEnView1.IO.SaveToFile('D:\newimage.gif'); // saves some image with new parameters


TImageEnIO.DoPrintPreviewDialog

TImageEnIO.DoPrintPreviewDialog

Declaration

function DoPrintPreviewDialog(DialogType: TIEDialogType = iedtDialog; const TaskName: WideString = ''; PrintAnnotations: Boolean = false; const Caption: WideString = ''; PrintLayers: Boolean = false): Boolean;

Description

Displays a print preview dialog to allow the user to configure and print the current image.

Specifes the text that describes the task in the Print Manager and network header pages
Parameter | Description
FC>DialogType | Select the style of print dialog
FC>TaskName |
FC>PrintAnnotations | If true and the image contains imaging or ImageEn annotations they will be printed
FC>Caption | Specifies the caption of the Print Preview dialog
FC>PrintLayers | If true and the attached TImageEnView image contains multiple layers, they will be printed. If False, only the image (i.e. current layer) is printed

Note: The language used in the dialog is controlled by MsgLanguage. The styling can also be adjusted using UseButtonGlyphsInDialogs

Demos

Demos\FullApps\PhotoEn3\ImageEx.dpr
Demos\InputOutput\PrintSelected\PrintSelected.dpr

Example

ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog );

ImageEnView1.IO.DoPrintPreviewDialog( iedtMaxi );

// Preview image with layers
ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog, '', False, '', True );

// If an area of the image is selected, print the selection, otherwise print the whole image
procedure TForm1.PrintImageClick(Sender: TObject);
var
bmp: TIEBitmap;
IO: TImageEnIO;
begin
if ImageEnView1.Selected = False then
ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog, '' )
else
begin
bmp := TIEBitmap.Create;
IO := TImageEnIO.CreateFromBitmap( bmp );
try
ImageEnView1.CopySelectionToBitmap( bmp );
IO.DoPrintPreviewDialog( iedtDialog, '' );
finally
IO.Free;
bmp.Free;
end;
end;
end;

See Also

- PrintPreviewParams
- DialogsMeasureUnit

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.DShowParams

TImageEnIO.DShowParams

Declaration

property DShowParams: TIEDirectShow;

Description

DShowParams is a TIEDirectShow instance which allows control of some Direct Show features, such as video capture, audio capture, multimedia files capture as well video rendering, and multimedia file writing.

Demos

Demos\VideoCapture\DirectShow1\DShow.dpr
Demos\VideoCapture\DirectShow2\DShowCap.dpr
Demos\VideoCapture\VideoEffects\VideoEffects.dpr
Demos\Display\VideoPlayer\VideoPlayer.dpr

Examples

Capture Skeleton

// Fills ComboBox1 with the names of all video capture inputs
ComboBox1.Items.Assign( ImageEnView1.IO.DShowParams.VideoInputs );

// Select the first video input available
ImageEnView1.IO.DShowParams.SetVideoInput( 0 );

// Enables frame grabbing
// ImageEnView1.OnDShowNewFrame event occurs for each frame acquired
ImageEnView1.IO.DShowParams.EnableSampleGrabber := True;

// connect to the video input: this begins video capture
ImageEnView1.IO.DShowParams.Connect;

...

// Disconnect the video input
ImageEnView1.IO.DShowParams.Disconnect;

Capture a frame

// We are inside the OnDShowNewFrame event:
procedure Tfmain.ImageEnView1DShowNewFrame(Sender: TObject);
begin
// copy current sample to ImageEnView bitmap
ImageEnView1.IO.DShowParams.GetSample(ImageEnView1.IEBitmap);
// refresh ImageEnView1
ImageEnView1.Update;
end;

Setting video capture size

// We'd like to acquire 640x480 frames
ImageEnView1.IO.DShowParams.SetCurrentVideoFormat( 640, 480, '' );

Select a TV Tuner channel

// We want channel 15
ImageEnView1.IO.DShowParams.TunerChannel := 15;

Showing capture card dialogs

// Show video dialog
ImageEnView1.IO.DShowParams.ShowPropertyPages(iepVideoInput, ietFilter);

// Show video source dialog
ImageEnView1.IO.DShowParams.ShowPropertyPages(iepVideoInputSource, ietFilter);

// Show tuner dialog
ImageEnView1.IO.DShowParams.ShowPropertyPages(iepTuner, ietFilter);

// Show format dialog
ImageEnView1.IO.DShowParams.ShowPropertyPages(iepVideoInput, ietOutput);

Read from a multimedia file, and save with another compression

ImageEnView1.IO.DShowParams.FileInput := 'input.avi';
ImageEnView1.IO.DShowParams.FileOutput := 'output.avi';
ImageEnView1.IO.DShowParams.SetVideoCodec( ... );
ImageEnView1.IO.DShowParams.SetAudioCodec( ... );

ImageEnView1.IO.DShowParams.EnableSampleGrabber := True;
ImageEnView1.IO.DShowParams.Connect;

See the \VideoCapture\DirectShow1\ and \VideoCapture\DirectShow2\ demos for more info.


TImageEnIO.ExecuteOpenDialog

TImageEnIO.ExecuteOpenDialog

Declaration

function ExecuteOpenDialog(const InitialDir : WideString = ''; const InitialFileName : WideString = ''; AlwaysAnimate : boolean = False;
FilterIndex: Integer = 0; const ExtendedFilters : WideString = ''; const Title : WideString = '';
const Filter : WideString = ''; DefaultFilter : TIOFileType = -1; LimitToFileType : TIOFileType = -1) : WideString; overload;
function ExecuteOpenDialog(const Title : WideString; DefaultFilter : TIOFileType; LimitToFileType : TIOFileType = -1; AlwaysAnimate : boolean = False) : WideString; overload;

Description

Executes the open dialog allowing the user to browse for an image file. It encapsulates the TOpenImageEnDialog component.

Parameter | Description
InitialDir | Folder displayed on opening (leave as '' for no default)
InitialFileName | Default file name with extension (leave as '' for no default)
AlwaysAnimate | Enable to animate GIF and AVI (without user needing to click the play button). Default is False
FilterIndex | The index of the default selected item in the filter. Default is 0.Note: While this can change the first five items are generally: 1: Common graphics formats 2: All Graphics formats 3: JPEG 4: TIFF 5: GIFHowever, it is generally safer to use the DefaultFilter parameter instead
ExtendedFilters | Any additional file formats to add to the filter (example: 'Fun Bitmap|*.fun;*.fan')
Title | The dialog title. If unspecified the Windows default title is used
Filter | Override the default filter with a custom one (e.g. 'JPEG Image (JPG)|*.jpg|GIF Image (GIF)|*.gif')
DefaultFilter | Specify the file type that is displayed by default. This setting overrides FilterIndex, but is ignored if you have specified InitialFileName. Default is -1
LimitToFileType | Limits the filter to a specified ImageEn file type, plus "All Supported Types" and "All Files" (only relevant if Filter is not set). Default is -1

Returns a null string ('') if the user clicks Cancel.

Examples

// Prompt to load a file into an ImageEnView
sFilename := ImageEnView1.IO.ExecuteOpenDialog;
if sFilename <> '' then
ImageEnView1.IO.LoadFromFile(sFileName);

// Prompt to load an image, defaulting to JPEG format (second overloaded method)
sFilename := ImageEnView1.IO.ExecuteOpenDialog('Select an Image', ioJPEG);
if sFilename <> '' then
ImageEnView1.IO.LoadFromFile(sFileName);

// Prompt to load an image, forcing GIF format (second overloaded method)
sFilename := ImageEnView1.IO.ExecuteOpenDialog('Select an Image', -1, ioGIF);
if sFilename <> '' then
ImageEnView1.IO.LoadFromFile(sFileName);


TImageEnIO.ExecuteSaveDialog

TImageEnIO.ExecuteSaveDialog

Declaration

function ExecuteSaveDialog(const InitialDir : WideString = ''; const InitialFileName : WideString = ''; AlwaysAnimate : boolean = False;
FilterIndex: Integer = 0; const ExtendedFilters : WideString = ''; const Title : WideString = '';
const Filter : WideString = ''; DefaultFilter : TIOFileType = -1; LimitToFileType : TIOFileType = -1) : WideString;overload;
function ExecuteSaveDialog(const Title : WideString; DefaultFilter : TIOFileType; LimitToFileType : TIOFileType = -1; AlwaysAnimate : boolean = False) : WideString; overload;

Description

Executes the save dialog allowing the user to specify a save filename. It encapsulates the TSaveImageEnDialog component.

Parameter | Description
InitialDir | Folder displayed on opening (leave as '' for no default)
InitialFileName | Default file name with extension (leave as '' for no default)
AlwaysAnimate | Enable to animate GIF and AVI (without user needing to click the play button). Default is False
FilterIndex | The index of the default selected item in the filter. Default is 0.Note: While this can change the first five items are generally: 1: Common graphics formats 2: All Graphics formats 3: JPEG 4: TIFF 5: GIFHowever, it is generally safer to use the DefaultFilter parameter instead
ExtendedFilters | Any additional file formats to add to the filter (example: 'Fun Bitmap|*.fun;*.fan')
Title | The dialog title. If unspecified the Windows default title is used
Filter | Override the default filter with a custom one (e.g. 'JPEG Image (JPG)|*.jpg|GIF Image (GIF)|*.gif')
DefaultFilter | Specify the file type that is displayed by default. This setting overrides FilterIndex, but is ignored if you have specified InitialFileName. Default is -1
LimitToFileType | Limits the filter to a specified ImageEn file type. Default is -1

Returns a null string ('') if the user clicks Cancel.

Examples

// Prompt to save a file in an ImageEnView
sFilename := ImageEnView1.IO.ExecuteSaveDialog;
if sFilename <> '' then
ImageEnView1.IO.SaveToFile(sFileName)

// Prompt to save an image, defaulting to JPEG format (second overloaded method)
sFilename := ImageEnView1.IO.ExecuteOpenDialog('Save your Image', ioJPEG);
if sFilename <> '' then
ImageEnView1.IO.SaveToFile(sFileName)

// Prompt to save an image, forcing GIF format (second overloaded method)
sFilename := ImageEnView1.IO.ExecuteOpenDialog('Save your Image', -1, ioGIF);
if sFilename <> '' then
ImageEnView1.IO.SaveToFile(sFileName)


TImageEnIO.FilteredAdjustDPI

TImageEnIO.FilteredAdjustDPI

Declaration

property FilteredAdjustDPI: Boolean;

Description

If set to True, ImageEn applies a resampling filter to enhance quality when adjusting an image's DPI.

Note: Only valid when AutoAdjustDPI is True. It can slow down the loading process.


TImageEnIO.IEBitmap

TImageEnIO.IEBitmap

Declaration

property IEBitmap: TIEBitmap

Description

Contains the attached TIEBitmap object (same value as the AttachedIEBitmap property).


TImageEnIO.ImageEnVersion

TImageEnIO.ImageEnVersion

Declaration

property ImageEnVersion: String;

Description

Returns the ImageEn version as a string.


TImageEnIO.ImportMetafile

TImageEnIO.ImportMetafile

Declaration

function ImportMetafile(const FileName: WideString; Width, Height: Integer; WithAlpha: Boolean): Boolean;
function ImportMetafile(Stream: TStream; Width: Integer = -1; Height: Integer = -1; WithAlpha: boolean = True): Boolean;
function ImportMetafile(meta: TMetafile; Width: Integer = -1; Height: Integer = -1; WithAlpha: Boolean = True): Boolean;
function ImportMetafile(meta: TIEMetafile; Width: Integer = -1; Height: Integer = -1; WithAlpha: Boolean = True); Boolean;

Description

Imports a WMF or EMF vectorial image. If the file does not represent a valid image format, ImportMetafile raises an EInvalidGraphic exception.

Width and Height specify the image size (the rectangle where the vectorial image will be painted).
To maintain the image aspect ratio set only one size, assigning -1 to the other, e.g. ImportMetafile('axi.emf', -1, 500);

If WithAlpha is true then ImportMetaFile creates an alpha channel, making only the metafile content visible.

Note: ImportMetafile converts the vectorial image to a raster image, so you must limit the rasterized image sizes. The maximum allowed size is stored in the public field named MaxImageEMFSize.

Example

// import vectorial image 'alfa.wmf', resizing to 500xHHH (HHH is autocalculated)
ImageEnView1.IO.ImportMetafile('C:\alfa.wmf', 500, -1, true);


TImageEnIO.InjectJpegEXIF

TImageEnIO.InjectJpegEXIF

Declaration

function InjectJpegEXIF(const FileName: WideString): Boolean;

Description

Replaces the EXIF information in the specified JPEG file with the current EXIF (in Params) without loading or modifying the original image.

The method returns False if the operation could not be performed.

Example

// copy the EXIF info (not the image) from file one.jpg inside two.jpg, without loading any image
ImageEnView1.IO.ParamsFromFile('D:\one.jpg');
ImageEnView1.IO.InjectJpegEXIF('D:\two.jpg');

// removes EXIF info from image.jpg
ImageEnView1.IO.Params.EXIF_HasExifData := false;
ImageEnView1.IO.InjectJpegEXIF('D:\image.jpg');


TImageEnIO.InjectJpegEXIFStream

TImageEnIO.InjectJpegEXIFStream

Declaration

function InjectJpegEXIFStream(InputStream, OutputStream: TStream): Boolean;

Description

Replaces the EXIF information in the JPEG file in InputStream stream with the current EXIF (in Params) without loading or modifying the original image.

OutputStream contains the modified stream.

The method returns False if the operation could not be performed.


TImageEnIO.InjectJpegIPTC

TImageEnIO.InjectJpegIPTC

Declaration

function InjectJpegIPTC(const FileName: WideString): Boolean;

Description

Replaces the IPTC information in the specified JPEG file with the current IPTC (in Params) without loading or modifying the original image.

The method returns False if the operation could not be performed.

Example

// copy the IPTC info (not the image) from file one.jpg to the inside of file two.jpg, without loading any images
ImageEnView1.IO.ParamsFromFile('D:\one.jpg');
ImageEnView1.IO.InjectJpegIPTC('D:\two.jpg');

// removes IPTC info from image.jpg
ImageEnView1.IO.Params.IPTC_Info.Clear;
ImageEnView1.IO.InjectJpegIPTC('D:\image.jpg');


TImageEnIO.InjectJpegIPTCStream

TImageEnIO.InjectJpegIPTCStream

Declaration

function InjectJpegIPTCStream(InputStream, OutputStream: TStream): Boolean;

Description

Replaces the IPTC information of the JPEG file in the InputStream stream with the current IPTC (in Params) without loading or modifying the original image.

OutputStream contains the modified stream.

The method returns False if the operation could not be performed.


TImageEnIO.InjectTIFFEXIF

TImageEnIO.InjectTIFFEXIF

Declaration

function InjectTIFFEXIF(const FileName: WideString; pageIndex: Integer): boolean;
function InjectTIFFEXIF(const InputFileName, OutputFileName: WideString; pageIndex: Integer): boolean;
function InjectTIFFEXIF(InputStream, OutputStream: TStream; pageIndex: Integer): boolean;

Description

Replaces the EXIF information in the specified TIFF or InputStream stream with the current EXIF (in Params) without loading or modifying the original image.

OutputStream contains the modified stream.

The method returns false if the operation could not be performed.

Note: InjectTIFFEXIF works only with TIFF and Microsoft HD Photo file formats.


TImageEnIO.InsertToFileDCX

TImageEnIO.InsertToFileDCX

Declaration

procedure InsertToFileDCX(const FileName: WideString);

Description

Inserts the current image into the specified DCX file, at the position specified by Params.DCX_ImageIndex.

Example

ImageEnView1.IO.Params.DCX_ImageIndex := 1;
ImageEnView1.IO.InsertToFileDCX('D:\multipage.dcx');


TImageEnIO.InsertToFileGif

TImageEnIO.InsertToFileGif

Declaration

function InsertToFileGif(const FileName: WideString): integer;

Description

Inserts a frame into a GIF file at the position specified by GIF_ImageIndex and makes it animated. The file must exist.

FileName is the file name including extension.

Returns the number of images inside the specified file.

Example

// Create an animated gif with images contained in ImageEn1 and ImageEn2 components:
ImageEnView1.IO.SaveToFileGif('D:\anim.gif');
ImageEnView2.IO.Params.GIF_ImageIndex := 1;
ImageEnView2.IO.InsertToFileGif('D:\anim.gif');


TImageEnIO.InsertToFileTIFF

TImageEnIO.InsertToFileTIFF

Declaration

function InsertToFileTIFF(const FileName: WideString): integer;

Description

Insert a frame into a TIFF file at the position specified by ImageIndex. The file must exist.

FileName is the file name including extension.

Returns the number of images inside the file.

Example

// Create a multi-image TIFF from images into two ImageEnViews
ImageEnView1.IO.SaveToFile('D:\multi.tif'); // create with a single image
ImageEnView2.IO.Params.ImageIndex := 1; // prepare to insert as second image
ImageEnView2.IO.InsertToFileTIFF('D:\multi.tif');


TImageEnIO.InsertToStreamTIFF

TImageEnIO.InsertToStreamTIFF

Declaration

function InsertToStreamTIFF(Stream: TStream): integer;

Description

Insert a frame in a TIFF stream at position specified by ImageIndex. The stream position must be at the beginning.
Because ImageEn can only write Little-endian TIFF the input file cannot be Big-endian (see TIFF_ByteOrder).

Returns the number of images inside the file.

Example

ImageEnView1.IO.Params.ImageIndex := 1; // prepare to insert as second image
ImageEnView1.IO.InsertToStreamTIFF(outstream);


TImageEnIO.IsOpenAVI

TImageEnIO.IsOpenAVI

Declaration

function IsOpenAVI: Boolean;

Description

Returns True when OpenAVIFile has a currently open file.


TImageEnIO.IsOpenMediaFile

TImageEnIO.IsOpenMediaFile

Declaration

function IsOpenMediaFile: Boolean;

Description

Returns True if OpenMediaFile has a currently open file.


TImageEnIO.LoadFromAVI

TImageEnIO.LoadFromAVI

Declaration

function LoadFromAVI(FrameIndex: Integer): Boolean;

Description

Reads the frame of index, FrameIndex, opened with OpenAVIFile. Result will be false if the file is not a recognized file type (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Example

// Save first AVI frame to 'frame1.jpg', second frame to 'frame2.jpg'
ImageEnView1.IO.OpenAVIFile( 'C:\film.avi' );

ImageEnView1.IO.LoadFromAVI( 0 );
ImageEnView1.IO.SaveToFile('D:\frame1.jpg');

ImageEnView1.IO.LoadFromAVI( 1 );
ImageEnView1.IO.SaveToFile('D:\frame2.jpg');
...
ImageEnView1.IO.CloseAVIFile;


TImageEnIO.LoadFromBlob

TImageEnIO.LoadFromBlob

Declaration

function LoadFromBlob(aField: TBlobField;
bAutoAdjustOrientation: Boolean = False;
iImageIndex : Integer = -1
): Boolean;

Description

Uses streams to load an image from the blob field of a database table, optionally setting EnableAdjustOrientation to automatically re-orient JPEG camera images and ImageIndex to display a specific image.
Returns True if loading was successful, or False on error

Note: You must define IE_DB_Helpers in iexHelperFunctions.pas to use this method

Example

// Load the image from the MyTableImageBlob field at the current position in the database
ImageEnView1.IO.LoadFromBlob(MyTableImageBlob);


TImageEnIO.LoadFromBlobFast

TImageEnIO.LoadFromBlobFast

Declaration

function LoadFromBlobFast(aField: TBlobField;
iMaxX, iMaxY: integer;
bAutoAdjustOrientation: Boolean = False;
iImageIndex : Integer = -1
): Boolean;

Description

Uses streams to load an image from the blob field of a database table and allows you to specify a maximum size that you require an image so that it can be loaded as fast as possible, by using:
- JPEG_Scale for JPEGs
- RAW_GetExifThumbnail and RAW_HalfSize for Camera Raw files
- IEN_GetThumbnail for IEN files

You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images

Returns True if loading was successful, or False on error

Note: You must define IE_DB_Helpers in iexHelperFunctions.pas to use this method

Example

// Load the image from the MyTableImageBlob field as fast as possible, but bigger than the displaying TImageEnView
ImageEnView1.AutoShrink := True;
ImageEnView1.IO.LoadFromBlobFast(MyTableImageBlob, ImageEnView1.Width, ImageEnView1.Height)


TImageEnIO.LoadFromBuffer

TImageEnIO.LoadFromBuffer

Declaration

procedure LoadFromBuffer(Buffer: Pointer; BufferSize: Integer; Format: TIOFileType = ioUnknown);

Description

Loads an image from the specified buffer.

Parameter | Description
Buffer | The buffer pointer
BufferSize | The buffer length in bytes.
Format | Specifies the expected file format. If Format is ioUnknown, then try to find the format automatically

See also: ParamsFromBuffer

Example

ImageEnView1.IO.LoadFromBuffer(mybuffer, mybufferlength, ioJPEG);


TImageEnIO.LoadFromFile

TImageEnIO.LoadFromFile

Declaration

function LoadFromFile(const FileName: WideString; bCheckUnknown: Boolean = True): Boolean; overload;
function LoadFromFile(const FileName: WideString; FileFormat: TIOFileType): Boolean; overload;

Description

Loads an image from the specified file. It recognizes the image format from the filename extension (if ImageFormat is not specified).
The source can be also an URL if it has the form 'http://'.

FileName is the file name including extension.
FileFormat specifies the image format. If specified as ioUnknown, it will use the file's extension.
bCheckUnknown if the file extension is not known or is incorrect (e.g. a GIF file named MyImage.jpg), then loading will be attempted by analyzing the file content (in the same way as LoadFromFileAuto)

Result will be false if the file is not a recognized file type (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Notes:
- By default, this routine will fail for files with an invalid extension (e.g. a GIF file named MyImage.jpg) or unknown extension. To avoid this you can use the bCheckUnknown overload or LoadFromFileAuto
- Can load IEV (TImageEnVect objects) and IEN+IEV formats when AttachedImageEn is TImageEnView or TImageEnVect.

Example

// Load the second image in the MyImage.tif file
ImageEnView1.IO.Params.TIFF_ImageIndex := 1;
ImageEnView1.IO.LoadFromFile('D:\MyImage.tif');

// Load a file even if this file extension is incorrect
ImageEnView1.IO.LoadFromFile(sFilename, True);

See Also

- LoadFromFileAuto

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.LoadFromFileAuto

TImageEnIO.LoadFromFileAuto

Declaration

function LoadFromFileAuto(const FileName: WideString): Boolean; dynamic;

Description

Loads an image from file. Unlike LoadFromFile it ignores the file extension, instead it analyzes the file content to determine its format. Result will be false if the file is not a recognized file type (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Note: This method can load IEV (TImageEnVect objects) and IEN+IEV formats when AttachedImageEn is TImageEnView or TImageEnVect.

Example

ImageEnView1.IO.LoadFromFileAuto('C:\input.dat');

ImageEnView1.IO.LoadFromFileAuto('C:\input.tif'); // a tiff or a RAW?

if ImageEnView1.IO.LoadFromFileAuto(sFilename) = False then
ShowMessage('Not a supported file type!');

See Also

- LoadFromFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.LoadFromFileAutoEx

TImageEnIO.LoadFromFileAutoEx

Declaration

function LoadFromFileAutoEx(const sFilename: string; bAutoAdjustOrientation: Boolean; iImageIndex : Integer = -1): Boolean;

Description

A modified version of LoadFromFileEx that copes with image files with a incorrect extension (e.g. a GIF file named MyImage.jpg).

This function will attempt to load the file using its extension (using LoadFromFile) but on failure will examine the message content to determine its type (i.e. falling back to LoadFromFileAuto).

Optionally it will set EnableAdjustOrientation to automatically re-orient JPEG camera images and ImageIndex to display a specific image.
Returns True if loading was successful, or False on error (i.e. the file could not be loaded even by examining its content).

Example

// Load MyImage.tiff (even if it is a JPEG or GIF)
ImageEnView1.IO.LoadFromFileAutoEx('D:\MyImage.tiff');


TImageEnIO.LoadFromFileBMP

TImageEnIO.LoadFromFileBMP

Declaration

function LoadFromFileBMP(const FileName: WideString): Boolean;

Description

Loads an image from a BMP file.

FileName is the file name including extension.
Result will be false if the file is not BMP format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Example

ImageEnView1.IO.LoadFromFileBMP('C:\myimage.bmp');


TImageEnIO.LoadFromFileBMPRAW

TImageEnIO.LoadFromFileBMPRAW

Declaration

function LoadFromFileBMPRAW(const FileName: WideString): Boolean;

Description

Loads an image from a BmpRaw file.

FileName is the file name including extension.
Result will be false if the file is not BmpRaw (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Note: This is not the same as a digital camera Raw file, but a true "raw" format (named "BmpRaw" in ImageEn) where you can specify the channel order, placement, alignment, size, etc.

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Examples

// load a RAW image, RGB, interleaved, 8 bit aligned, 1024x768
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Allocate(1024, 768, ie24RGB);
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plInterleaved;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.Params.BMPRAW_HeaderSize := 0;
ImageEnView1.IO.LoadFromFileBMPRAW('C:\input.dat');

// load a RAW image, CMYK, interleaved, 8 bit aligned, 1024x768
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Allocate(1024, 768, ieCMYK);
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plInterleaved;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.Params.BMPRAW_HeaderSize := 0;
ImageEnView1.IO.LoadFromFileBMPRAW('C:\input.dat');


TImageEnIO.LoadFromFileCUR

TImageEnIO.LoadFromFileCUR

Declaration

function LoadFromFileCUR(const FileName: WideString): Boolean;

Description

Loads an image from a cursor file.

FileName is the file name including extension.
Result will be false if the file is not ICO format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Example

ImageEnView1.IO.LoadFromFileCUR('C:\gates.cur');


TImageEnIO.LoadFromFileDCX

TImageEnIO.LoadFromFileDCX

Declaration

function LoadFromFileDCX(const FileName: WideString): Boolean;

Description

Loads an image from a DCX file.

FileName is the file name including extension. Result will be false if the file is not a DCX format (and Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: You can set the page to load using Params.DCX_ImageIndex property.

Example

// I want the second page of 'input.dat' (which is a DCX file)
ImageEnView1.IO.Params.DCX_ImageIndex := 1;
ImageEnView1.IO.LoadFromFileDCX('C:\input.dat');


TImageEnIO.LoadFromFileDICOM

TImageEnIO.LoadFromFileDICOM

Declaration

function LoadFromFileDICOM(const FileName: WideString): Boolean;

Description

Loads an image from a DICOM file. This method is necessary for DICOM files that don't have an extension or a valid DICOM header, but you know to be DICOM format.

FileName is the file name including extension.
Result will be false if the file is not DICOM format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Note: DICOM parameters are stored in DICOM_Tags

Demo

Demos\InputOutput\Dicom\Dicom.dpr

Example

ImageEnView1.IO.LoadFromFileDICOM('heart.dcm');

Load the second image of a multiple image DICOM
ImageEnView1.IO.Params.ImageIndex := 1;
ImageEnView1.IO.LoadFromFileDICOM('D:\MyImage.dcm');


TImageEnIO.LoadFromFileEx

TImageEnIO.LoadFromFileEx

Declaration

function LoadFromFileEx(const sFilename: string; bAutoAdjustOrientation: Boolean; iImageIndex : Integer = -1): Boolean;

Description

Calls LoadFromFile, optionally setting EnableAdjustOrientation to automatically re-orient JPEG camera images and ImageIndex to display a specific image.
Returns True if loading was successful, or False on error

Example

// Load the third page of MyImage.tiff
ImageEnView1.IO.LoadFromFileEx('D:\MyImage.tiff', False, 2);


TImageEnIO.LoadFromFileFast

TImageEnIO.LoadFromFileFast

Declaration

function LoadFromFileFast(const sFilename: string; iMaxX, iMaxY: integer; bAutoAdjustOrientation: Boolean = False): Boolean;

Description

Calls LoadFromFile and allows you to specify a maximum size that you require an image so that it can be loaded as fast as possible, by using:
- JPEG_Scale for JPEGs
- RAW_GetExifThumbnail and RAW_HalfSize for Camera Raw files
- IEN_GetThumbnail for IEN files

You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images

Returns True if loading was successful, or False on error

Example

// Load the image specified in an open dialog as fast as possible, but bigger than the displaying TImageEnView
ImageEnView1.AutoShrink := True;
ImageEnView1.IO.LoadFromFileFast(OpenPictureDialog1.FileName, ImageEnView1.Width, ImageEnView1.Height)


TImageEnIO.LoadFromFileGIF

TImageEnIO.LoadFromFileGIF

Declaration

function LoadFromFileGIF(const FileName: WideString): integer;

Description

Loads an image from a GIF file (87a, 89a and animated GIF).

FileName is the file name including extension.

Returns the number of images contained in GIF file (if this is an animated GIF) or -1 if an error was encountered while loading, such as the file not being GIF format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: If AsyncMode=True the result will always be -1

Example

// Loads the third frame of an animated gif
ImageEnView1.IO.Params.GIF_ImageIndex := 2;
ImageEnView1.IO.LoadFromFileGIF('D:\anim.gif');


TImageEnIO.LoadFromFileHDP

TImageEnIO.LoadFromFileHDP

Declaration

function LoadFromFileHDP(const FileName: WideString): Boolean;

Description

Loads an image from a Microsoft HD Photo file.

FileName is the file name including extension.
Result will be false if the file is not HDP format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Requires: Windows XP (SP2) with .Net 3.0, Windows Vista or newer.


TImageEnIO.LoadFromFileICO

TImageEnIO.LoadFromFileICO

Declaration

function LoadFromFileICO(const FileName: WideString): Boolean;

Description

Loads an image from an icon file.

FileName is the file name including extension.
Result will be false if the file is not ICO format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Demo

Demos\FullApps\PlainIconEditor\PlainIconEditor.dpr

Example

ImageEnView1.IO.LoadFromFileICO('C:\gates.ico');


TImageEnIO.LoadFromFileIEN

TImageEnIO.LoadFromFileIEN

Declaration

function LoadFromFileIEN(const FileName: WideString; Append: Boolean = False): Boolean;

Description

Loads an image from an ImageEn's native image format, which preserves the image and any layers.

FileName is the file name including extension. Result will be false if the file is not ImageEn format (and Aborting will be true). Loading errors due to a file not being available will raise an exception.
If Append is True, the existing content is not cleared, i.e. layers in this file will be added to existing layers.

Notes:
- If the TImageEnIO is attached to a TImageEnView then layers in the file will be loaded, if it is attached to a TIEBitmap or TBitmap then the file will be loaded as a merged image.
- You can also load layers with the PSD format

Example

// Save current layer configuration (compress images as jpeg)
ImageEnView1.IO.Params.IEN_Compression := ioJPEG;
ImageEnView1.IO.SaveToFileIEN( 'D:\layers.ien' );

// Load saved layers
ImageEnView1.IO.LoadFromFileIEN( 'D:\layers.ien' );

Example

ImageEnView1.IO.LoadFromFileIEN('C:\input.dat');

See Also

- IEN_Description
- GetThumbnail
- LoadFromStreamIEN
- SaveToFileIEN
- LayersImport

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.LoadFromFileJ2K

TImageEnIO.LoadFromFileJ2K

Declaration

function LoadFromFileJ2K(const FileName: WideString): Boolean;

Description

Loads an image from a Jpeg2000 (J2K code stream) file.

FileName is the file name including extension.
Result will be false if the file is not a JPEG2000 (and Aborting will be false). Loading errors due to a file not being available will raise an exception.


TImageEnIO.LoadFromFileJP2

TImageEnIO.LoadFromFileJP2

Declaration

function LoadFromFileJP2(const FileName: WideString): Boolean;

Description

Loads an image from a Jpeg2000 (JP2) file.

FileName is the file name including extension.
Result will be false if the file is not JPEG2000 format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.


TImageEnIO.LoadFromFileJpeg

TImageEnIO.LoadFromFileJpeg

Declaration

function LoadFromFileJpeg(const FileName: WideString): Boolean;

Description

Loads an image from a JPEG file. Result will be false if the file is not JPEG format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

FileName is the file name including extension.

Example

ImageEnView1.IO.LoadFromFileJpeg('C:\alfa.jpg');


TImageEnIO.LoadFromFileJPEGFast

TImageEnIO.LoadFromFileJPEGFast

Declaration

function LoadFromFileJPEGFast(const sFilename: string;
iMaxX, iMaxY: integer;
var iFastScaleUsed: Integer;
bAutoAdjustOrientation: Boolean = False
): Boolean;

Description

Calls LoadFromFileJpeg to load a JPEG image and allows you to specify a maximum size that you require an image so that it can be loaded as fast as possible, by using JPEG_Scale.
You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images
Returns True if loading was successful, or False on error. iFastScaleUsed is set with the scaling that was used, i.e. 1 = loaded full size, 2 = loaded at half size, etc.

Example

// Load the JPEG specified in an open dialog as fast as possible, but bigger than the displaying TImageEnView
ImageEnView1.AutoShrink := True;
ImageEnView1.IO.LoadFromFileJpegFast(OpenPictureDialog1.FileName, ImageEnView1.Width, ImageEnView1.Height, iFastScaleUsed)


TImageEnIO.LoadFromFilePCX

TImageEnIO.LoadFromFilePCX

Declaration

function LoadFromFilePCX(const FileName: WideString): Boolean;

Description

Loads an image from a PCX file. Result will be false if the file is not PCX format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

FileName is the file name including extension.

Example

ImageEnView1.IO.LoadFromFilePCX('C:\alfa.pcx');


TImageEnIO.LoadFromFilePNG

TImageEnIO.LoadFromFilePNG

Declaration

function LoadFromFilePNG(const FileName: WideString): Boolean;

Description

Loads an image from a PNG file.

FileName is the file name including extension.
Result will be false if the file is not PNG format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.


TImageEnIO.LoadFromFilePSD

TImageEnIO.LoadFromFilePSD

Declaration

function LoadFromFilePSD(const FileName: WideString): Boolean;

Description

Loads an image from an Adobe PSD file.

FileName is the file name including extension.
Result will be false if the file is not PSD format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

PSD files can contain multiple layers. To load separated layers:
ImageEnView1.IO.Params.PSD_LoadLayers := True;
ImageEnView1.IO.LoadFromFilePSD(filename);

To load only the merged/flattened image (default method):
ImageEnView1.IO.Params.PSD_LoadLayers := False;
ImageEnView1.IO.LoadFromFilePSD(filename);

Example

ImageEnView1.IO.Params.PSD_LoadLayers := True;
ImageEnView1.IO.LoadFromFilePSD('C:\input.psd');


TImageEnIO.LoadFromFilePXM

TImageEnIO.LoadFromFilePXM

Declaration

function LoadFromFilePXM(const FileName: WideString): Boolean;

Description

Loads an image from a PBM, PGM or PPM file.

FileName is the file name including extension.
Result will be false if the file is not a recognized file type (and Aborting will be false). Loading errors due to a file not being available will raise an exception.


TImageEnIO.LoadFromFileRAW

TImageEnIO.LoadFromFileRAW

Declaration

function LoadFromFileRAW(const FileName: WideString): Boolean;

Description

Loads an image from a Digital Camera Raw file.

FileName is the file name including extension.
Result will be false if the file is not a camera RAW format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Demo

Demos\InputOutput\CameraRaw\CameraRaw.dpr


TImageEnIO.LoadFromFileRawFast

TImageEnIO.LoadFromFileRawFast

Declaration

function LoadFromFileRawFast(const sFilename: string; iMaxX, iMaxY: integer): Boolean;

Description

Calls LoadFromFile to load a camera Raw image and allows you to specify a maximum size that you require an image so that it can be loaded as fast as possible, by using RAW_GetExifThumbnail and RAW_HalfSize for Camera Raw files.
Returns True if loading was successful, or False on error

Example

// Load the image specified in an open dialog as fast as possible, but bigger than the displaying TImageEnView
ImageEnView1.AutoShrink := True;
ImageEnView1.IO.LoadFromFileRawFast(OpenPictureDialog1.FileName, ImageEnView1.Width, ImageEnView1.Height)


TImageEnIO.LoadFromFileTGA

TImageEnIO.LoadFromFileTGA

Declaration

function LoadFromFileTGA(const FileName: WideString): Boolean;

Description

Loads an image from a TGA file.

FileName is the file name including extension.
Result will be false if the file is not TGA format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.


TImageEnIO.LoadFromFileTIFF

TImageEnIO.LoadFromFileTIFF

Declaration

function LoadFromFileTIFF(const FileName: WideString): integer:

Description

Loads an image from a TIFF file (rev. 6.0, Packbits, LZW, CCITT G.3 and G.4).

FileName is the file name including extension.
Returns the number of images contained in TIFF file. Result will be -1 if an error was encountered while loading, such as the file not being TIFF format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: If AsyncMode = True then the result will always be -1.

Example

// Load the second image in the MyImage.tif file
ImageEnView1.IO.Params.TIFF_ImageIndex := 1;
ImageEnView1.IO.LoadFromFileTIFF('D:\MyImage.tif');


TImageEnIO.LoadFromFileWBMP

TImageEnIO.LoadFromFileWBMP

Declaration

function LoadFromFileWBMP(const FileName: WideString): Boolean;

Description

Loads an image from a WBMP (Wireless bitmap) file.

FileName is the file name including extension.
Result will be false if the file is not WBMP format (and Aborting will be false). Loading errors due to a file not being available will raise an exception.


TImageEnIO.LoadFromMediaFile

TImageEnIO.LoadFromMediaFile

Declaration

procedure LoadFromMediaFile(FrameIndex: Integer);

Description

Loads the specified frame from a media file that was opened using OpenMediaFile.

The first frame has index 0.

Example

// Save frame 10 as 'frame10.jpg'
ImageEnView1.IO.OpenMediaFile('C:\film.mpeg');
ImageEnView1.IO.LoadFromMediaFile(10);
ImageEnView1.IO.SaveToFile('D:\frame10.jpg');
ImageEnView1.IO.CloseMediaFile;


TImageEnIO.LoadFromResource

TImageEnIO.LoadFromResource

Declaration

procedure LoadFromResource(const ModulePath: WideString; const ResourceType: String; const ResourceName: String; Format: TIOFileType);

Description

Loads the specified image resource from PE files like EXE, DLL, OCX, ICL, BPL, etc.

Parameter | Description
ModulePath | Specifies the path and filename of PE module.
ResourceType | Resource type as string (ie 'Bitmap', 'Cursor').
ResourceName | Resource name as string (ie 'INTRESOURCE:100', 'Hand').
Format | Specifies the expected file format. If Format is ioUnknown, then try to find the format automatically. ioUnknown should fail for BMP, ICO and CUR resources.

See also: TIEResourceExtractor

Example

// Load resource 143, in "Bitmap"s, from "explorer.exe" (should be a small Windows logo)
ImageEnView1.IO.LoadFromResource('explorer.exe', 'Bitmap', 'INTRESOURCE:143', ioBMP);


TImageEnIO.LoadFromStream

TImageEnIO.LoadFromStream

Declaration

function LoadFromStream(Stream: TStream; FileFormat: TIOFileType = ioUnknown): Boolean;

Description

Load an image from the specified stream into the attached TImageEnView or TIEBitmap.
If FileFormat is ioUnknown the file format is detected by reading the image header (using FindStreamFormat).
The result will be false if an error is encountered, e.g. the file in the stream is not a recognized format (Aborting will be true).

If the StreamHeaders property is True, the stream must have a special header (saved with SaveToStream).

Note: This method can load IEV (TImageEnVect objects) and IEN+IEV formats when AttachedImageEn is TImageEnView or TImageEnVect.

Examples

// load an image from a stream
if ImageEnView1.IO.LoadFromStreamFormat( stm ) = False then
ShowMessage('Not an image!');

// load a jpeg from a stream
if ImageEnView1.IO.LoadFromStreamFormat( stm, ioJPEG ) = False then
ShowMessage('Not a JPEG!');


TImageEnIO.LoadFromStreamBMP

TImageEnIO.LoadFromStreamBMP

Declaration

function LoadFromStreamBMP(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a BMP file. The result will be false if an error is encountered, e.g. the file in the stream is not BMP format (Aborting will be true).

Note: If StreamHeaders property is True, the stream must have a special header (saved with SaveToStreamBMP).

Example

// loads a BMP file with LoadfFromStreamBMP
var
fs: TFileStream;
Begin
fs := TFileStream.Create('C:\myfile.bmp', fmOpenRead);
ImageEnView1.IO.LoadFromStreamBMP(fs);
fs.free;
End;


TImageEnIO.LoadFromStreamBMPRAW

TImageEnIO.LoadFromStreamBMPRAW

Declaration

function LoadFromStreamBMPRAW(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a BmpRaw file. The result will be false if an error is encountered, e.g. the file in the stream is not BmpRaw format (Aborting will be true).

Note: This is not the same as a digital camera Raw file, but a true "raw" format (named "BmpRaw" in ImageEn) where you can specify the channel order, placement, alignment, size, etc.

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Examples

// load a RAW image, RGB, interleaved, 8 bit aligned, 1024x768
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Allocate(1024, 768, ie24RGB);
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plInterleaved;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.Params.BMPRAW_HeaderSize := 0;
ImageEnView1.IO.LoadFromStreamBMPRAW( stream );

// load a RAW image, CMYK, interleaved, 8 bit aligned, 1024x768
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Allocate(1024, 768, ieCMYK);
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plInterleaved;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.Params.BMPRAW_HeaderSize := 0;
ImageEnView1.IO.LoadFromStreamBMPRAW( stream );


TImageEnIO.LoadFromStreamCUR

TImageEnIO.LoadFromStreamCUR

Declaration

function LoadFromStreamCUR(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a cursor file. The result will be false if an error is encountered, e.g. the file in the stream is not CUR format (Aborting will be true).


TImageEnIO.LoadFromStreamDCX

TImageEnIO.LoadFromStreamDCX

Declaration

function LoadFromStreamDCX(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a DCX file. The result will be false if an error is encountered, e.g. the file in the stream is not DCX format (Aborting will be true).

Note: You can set the page to load using Params.DCX_ImageIndex property.


TImageEnIO.LoadFromStreamDICOM

TImageEnIO.LoadFromStreamDICOM

Declaration

function LoadFromStreamDICOM(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a DICOM file. The result will be false if an error is encountered, e.g. the file in the stream is not DICOM format (Aborting will be true).

Note: DICOM parameters are stored in DICOM_Tags.


TImageEnIO.LoadFromStreamEx

TImageEnIO.LoadFromStreamEx

Declaration

function LoadFromStreamEx(Stream: TStream; FileType: TIOFileType = 0; bAutoAdjustOrientation: Boolean; iImageIndex : Integer = -1): Boolean;

Description

Calls LoadFromStream, optionally setting EnableAdjustOrientation to automatically re-orient JPEG camera images and ImageIndex to display a specific image.
If you know the FileType type of the stream, pass it to speed up loading.
Returns True if loading was successful, or False on error

Example

// Load the third page of a TIFF stream
ImageEnView1.IO.LoadFromStreamEx(MyStream, False, 2);


TImageEnIO.LoadFromStreamFast

TImageEnIO.LoadFromStreamFast

Declaration

function LoadFromStreamFast(Stream: TStream; FileType: TIOFileType = 0; iMaxX, iMaxY: integer; bAutoAdjustOrientation: Boolean = False): Boolean;

Description

Calls LoadFromStream and allows you to specify a maximum size that you require an image so that it can be loaded as fast as possible, by using:
- JPEG_Scale for JPEGs
- RAW_GetExifThumbnail and RAW_HalfSize for Camera Raw files
- IEN_GetThumbnail for IEN files

You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images.

If you know the FileType type of the stream, pass it to speed up loading.

Returns True if loading was successful, or False on error

Example

// Load an image as fast as possible, but bigger than the displaying TImageEnView
ImageEnView1.AutoShrink := True;
ImageEnView1.IO.LoadFromStreamFast( MyStream, ImageEnView1.Width, ImageEnView1.Height )


TImageEnIO.LoadFromStreamGIF

TImageEnIO.LoadFromStreamGIF

Declaration

function LoadFromStreamGIF(Stream: TStream): integer;

Description

Loads an image from a stream containing a GIF file.

Returns the number of images contained in the stream (if this is an animated stream) or -1 if an error was encountered while loading, such as the file not being GIF format (Aborting will be true). File access errors will raise an exception. If AsyncMode=True the result will always be -1.

Note: If StreamHeaders property is True, the stream must have a special header (saved using SaveToStreamGIF).

Example

// loads a GIF file with LoadfFromStreamGIF
var
fs: TFileStream;
Begin
fs := TFileStream.Create('C:\myfile.gif', fmOpenRead);
ImageEnView1.IO.LoadFromStreamGIF(fs);
fs.free;
End;


TImageEnIO.LoadFromStreamHDP

TImageEnIO.LoadFromStreamHDP

Declaration

function LoadFromStreamHDP(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a Microsoft HD Photo file. The result will be false if an error is encountered, e.g. the file in the stream is not HDP format (Aborting will be true).

Requires: Windows XP (SP2) with .Net 3.0, Windows Vista or newer.


TImageEnIO.LoadFromStreamICO

TImageEnIO.LoadFromStreamICO

Declaration

function LoadFromStreamICO(Stream: TStream): Boolean;

Description

Loads an image from a stream containing an icon file. The result will be false if an error is encountered, e.g. the file in the stream is not ICO format (Aborting will be true).


TImageEnIO.LoadFromStreamIEN

TImageEnIO.LoadFromStreamIEN

Declaration

function LoadFromStreamIEN(Stream: TStream; Append: Boolean = False): Boolean;

Description

Loads an image from a stream containing a file in ImageEn's native format, which preserves the image and any layers.

The result will be false if an error is encountered, e.g. the file in the stream is not IEN format (Aborting will be true).
If Append is True, the existing content is not cleared, i.e. layers in this file will be added to existing layers.

Note: If the TImageEnIO is attached to a TImageEnView then layers in the file will be loaded, if it is attached to a TIEBitmap or TBitmap then the file will be loaded as a merged image.

Example

// Save current layer configuration (compress images as jpeg)
ImageEnView1.IO.Params.IEN_Compression := ioJPEG;
ImageEnView1.IO.SaveToStreamIEN( Stream );

// Load saved layers
ImageEnView1.IO.LoadFromStreamIEN( Stream );

See Also

- IEN_Description
- GetThumbnail
- LoadFromFileIEN
- SaveToStreamIEN
- LayersImport

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.LoadFromStreamJ2K

TImageEnIO.LoadFromStreamJ2K

Declaration

function LoadFromStreamJ2K(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a Jpeg2000 (J2K code stream) file. The result will be false if an error is encountered, e.g. the file in the stream is not JPEG2000 format (Aborting will be true).


TImageEnIO.LoadFromStreamJP2

TImageEnIO.LoadFromStreamJP2

Declaration

function LoadFromStreamJP2(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a Jpeg2000 (JP2) file. The result will be false if an error is encountered, e.g. the file in the stream is not JPEG2000 format (Aborting will be true).


TImageEnIO.LoadFromStreamJpeg

TImageEnIO.LoadFromStreamJpeg

Declaration

function LoadFromStreamJpeg(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a JPEG file. The result will be false if an error is encountered, e.g. the file in the stream is not JPEG format (Aborting will be true).

Note: If StreamHeaders property is True, the stream must have a special header (saved with SaveToStreamJPEG).

Example

// loads a JPEG file with LoadfFromStreamJPEG
var
fs: TFileStream;
Begin
fs := TFileStream.Create('C:\myfile.jpg', fmOpenRead);
ImageEnView1.IO.LoadFromStreamJPG(fs);
fs.free;
End;


TImageEnIO.LoadFromStreamJPEGFast

TImageEnIO.LoadFromStreamJPEGFast

Declaration

function LoadFromStreamJPEGFast(Stream: TStream;
iMaxX, iMaxY: integer;
var iFastScaleUsed: Integer;
bAutoAdjustOrientation: Boolean = False
): Boolean;

Description

Calls LoadFromStreamJpeg to load a JPEG image and allows you to specify a maximum size that you require an image so that it can be loaded as fast as possible, by using JPEG_Scale.
You can also set EnableAdjustOrientation to automatically re-orient JPEG camera images
Returns True if loading was successful, or False on error. iFastScaleUsed is set with the scaling that was used, i.e. 1 = loaded full size, 2 = loaded at half size, etc.

Example

// Load the JPEG from a stream as fast as possible, but bigger than the displaying TImageEnView
ImageEnView1.AutoShrink := True;
ImageEnView1.IO.LoadFromStreamJpegFast(MyStream, ImageEnView1.Width, ImageEnView1.Height, iFastScaleUsed)


TImageEnIO.LoadFromStreamPCX

TImageEnIO.LoadFromStreamPCX

Declaration

function LoadFromStreamPCX(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a PCX file. The result will be false if an error is encountered, e.g. the file in the stream is not PCX format (Aborting will be true).

Note: If StreamHeaders property is True, the stream must have a special header (saved using SaveToStreamPCX).

Example

// loads a PCX file with LoadfFromStreamPCX
var
fs: TFileStream;
Begin
fs := TFileStream.Create('myfile.pcx', fmOpenRead);
if ImageEnView1.IO.LoadFromStreamPCX(fs) = False then
ShowMessage('Not a PCX file!');
fs.free;
End;


TImageEnIO.LoadFromStreamPNG

TImageEnIO.LoadFromStreamPNG

Declaration

function LoadFromStreamPNG(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a PNG file. The result will be false if an error is encountered, e.g. the file in the stream is not PNG format (Aborting will be true).


TImageEnIO.LoadFromStreamPSD

TImageEnIO.LoadFromStreamPSD

Declaration

function LoadFromStreamPSD(Stream: TStream): Boolean;

Description

Loads an image from a stream containing an Adobe PSD file. The result will be false if an error is encountered, e.g. the file in the stream is not PSD format (Aborting will be true).

PSD files can contain multiple layers. To load separated layers:
ImageEnView1.IO.Params.PSD_LoadLayers := True;
ImageEnView1.IO.LoadFromStreamPSD(stream);

To load only the merged/flattened image (default method):
ImageEnView1.IO.Params.PSD_LoadLayers := False;
ImageEnView1.IO.LoadFromStreamPSD(stream);


TImageEnIO.LoadFromStreamPXM

TImageEnIO.LoadFromStreamPXM

Declaration

function LoadFromStreamPXM(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a PBM, PGM or PPM file. The result will be false if an error is encountered, e.g. the file in the stream is not a recognized format (Aborting will be true).


TImageEnIO.LoadFromStreamRAW

TImageEnIO.LoadFromStreamRAW

Declaration

function LoadFromStreamRAW(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a digital camera Raw file. The result will be false if an error is encountered, e.g. the file in the stream is not a RAW format (Aborting will be true).


TImageEnIO.LoadFromStreamTGA

TImageEnIO.LoadFromStreamTGA

Declaration

function LoadFromStreamTGA(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a TGA file. The result will be false if an error is encountered, e.g. the file in the stream is not TGA format (Aborting will be true).


TImageEnIO.LoadFromStreamTIFF

TImageEnIO.LoadFromStreamTIFF

Declaration

function LoadFromStreamTIFF(Stream: TStream): integer;

Description

Loads an image from a stream containing a TIFF file (rev. 6.0, Packbits, LZW, CCITT G.3 and G.4).

Returns the number of images contained in the stream or -1 if an error was encountered while loading, such as the file not being TIFF format (Aborting will be true). Result will always be -1 if AsyncMode=True.

Note: If StreamHeaders property is True, the stream must have a special header (saved using SaveToStreamTIFF).

Example

// loads a TIFF file with LoadfFromStreamTIFF
var
fs: TFileStream;
Begin
fs := TFileStream.Create('C:\myfile.tif', fmOpenRead);
ImageEnView1.IO.LoadFromStreamTIFF(fs);
fs.free;
End;


TImageEnIO.LoadFromStreamWBMP

TImageEnIO.LoadFromStreamWBMP

Declaration

function LoadFromStreamWBMP(Stream: TStream): Boolean;

Description

Loads an image from a stream containing a WBMP (Wireless bitmap) file. The result will be false if an error is encountered, e.g. the file in the stream is not WBMP format (Aborting will be true).


TImageEnIO.LoadFromText

TImageEnIO.LoadFromText

Declaration

procedure LoadFromText(const FileName: WideString; TextFormat: TIETextFormat = ietfBase64);
procedure LoadFromText(Stream: TStream; TextFormat: TIETextFormat = ietfBase64);

Description

Loads image from text.

Parameters:

Parameter | Description
FileName | Input file name.
Stream | Input stream.
TextFormat | Input text format. Only ietfBase64 is currently supported.

See Also: SaveToText

Example

// save as base64 (inside there is a jpeg)
ImageEnView1.IO.LoadFromFile('image.jpg');
ImageEnView1.IO.SaveToText('image.base64', ioJpeg, ietfBase64);

// reload back
ImageEnView1.IO.LoadFromText('image.base64', ietfBase64);


TImageEnIO.LoadFromURL

TImageEnIO.LoadFromURL

Declaration

function LoadFromURL(const URL: WideString): Boolean;

Description

Loads the image from the internet using the HTTP or FTP protocol.

Password authentication for HTTP is NOT supported, while it is necessary for FTP (even if connecting to an anonymous server).

URL must be in the format:
'http://domain[:port]/resource'
'https://domain[:port]/resource'
'ftp://user:password@domain[:port]/resource'

It is possible to set proxy parameters using ProxyAddress, ProxyUser and ProxyPassword properties.

Example

// load from standard port 80
ImageEnView.IO.LoadFromURL('http://www.imageen.com/image.jpg');

// load from port 8080
ImageEnView.IO.LoadFromURL('http://www.imageen.com:8080/image.jpg');

// load from FTP
ImageEnView.IO.LoadFromURL('ftp://space:shuttle@ftp.imageen.com/Pictures/test.jpg')


TImageEnIO.LoadJpegFromFileCRW

TImageEnIO.LoadJpegFromFileCRW

Declaration

function LoadJpegFromFileCRW(const FileName: WideString): Boolean;

Description

Extract and load the large Jpeg encapsulated inside a CRW (Canon RAW) file. Result will be false if the file is not a recognized file type (and Aborting will be false). Loading errors due to a file not being available will raise an exception.

Example

ImageEnView1.IO.LoadJpegFromFileCRW('C:\input.crw');


TImageEnIO.LoadThumbnailFromExplorer

TImageEnIO.LoadThumbnailFromExplorer

Declaration

function LoadThumbnailFromExplorer(const FileName : WideString; iDesiredWidth : Integer = 120; iDesiredHeight : Integer = 120): Boolean;

Description

Retrieve the thumbnail for the specified file from Windows Explorer. This should work for any format that displays a thumbnail in Windows Explorer, including images and videos.
Use iDesiredWidth and iDesiredHeight to specify the size of the thumbnail that you require.

The Aborting property will be true if the load fails (e.g. if there is not a thumbnail for this file type).

Example

// Load a thumbnail for a video
if ImageEnView1.IO.LoadThumbnailFromExplorer('D:\MyVideo.wmv') = False then
ShowMessage('Load Error!');


TImageEnIO.MediaFoundationSourceReader

TImageEnIO.MediaFoundationSourceReader

Declaration

property MediaFoundationSourceReader: TIEMediaFoundationSourceReader;

Description

MediaFoundationSourceReader is a TIEMediaFoundationSourceReader instance which allows capture samples from webcams, multimedia files and URLs.

This is a minimal setup to capture from a webcam (the first webcam, using first proposed media type):

ImageEnView1.IO.MediaFoundationSourceReader.SetVideoInput(0); // select first video input (first webcam)
ImageEnView1.IO.MediaFoundationSourceReader.SetSelectedStreams('Video', true); // enable first video stream
ImageEnView1.IO.MediaFoundationSourceReader.SelectMediaType('Video', 0); // select first media type of the first video stream
ImageEnView1.IO.MediaFoundationSourceReader.StartCapture(); // start capture

// handler for TImageEnView.OnMediaFoundatioNotify event
procedure TForm1.ImageEnVect1MediaFoundationNotify(Sender, MediaFoundationObject: TObject; NotifyType: TIEMediaFountationNotifyType);
var
sample: TIEMFReceivedSample;
begin
if NotifyType = iemfnFRAME then // is this a frame?
begin
sample := ImageEnView1.IO.MediaFoundationSourceReader.GetNextSample(); // retrieve frame sample
try
sample.DecodeSample(ImageEnView1.IEBitmap); // convert frame sample to bitmap
ImageEnView1.Update(); // update TImageEnView to show the new bitmap
finally
sample.Free(); // free the sample
end;
end;
end;

Look at VideoCapture\MediaFoundation demos for usage samples.


TImageEnIO.MergeMetaFile

TImageEnIO.MergeMetaFile

Declaration

procedure MergeMetafile(const FileName: WideString; x, y, Width, Height: Integer);

Description

Loads a metafile and draws it at the x, y position using sizes of Width and Height.

If Width or Height is -1 the other is auto-calculated to maintain the aspect ratio.

Example

ImageEnView1.io.LoadFromFile('C:\backgroundimage.jpg');
ImageEnView1.io.MergeMetaFile('C:\overimage.wmf', 100, 100, 120, -1);


TImageEnIO.NativePixelFormat

TImageEnIO.NativePixelFormat

Declaration

property NativePixelFormat: Boolean;

Description

By default, ImageEn converts all paletted images to 24 bit (true color). Only black/white images are stored in the original format with 1 bit per pixel.
Setting NativePixelFormat to True disables the conversion and uses the image's native format.

Note: LegacyBitmap must be False to enable NativePixelFormat. Also, use of NativePixelFormat will prevent execution of some image processing operations.

Example

If you have a 16 bit gray scale TIFF and you want to work with 16 bit gray scale pixels, you must write this before loading the image:
ImageEnView1.LegacyBitmap := False; // Do not use Tbitmap
ImageEnView1.IO.NativePixelFormat := True; // Use the original pixel format

Now you can read the pixels using:
word = ImageEnView1.IEBitmap.Pixels_ie16g[x,y];


TImageEnIO.OnAcquireBitmap

TImageEnIO.OnAcquireBitmap

Declaration

property OnAcquireBitmap: TIEAcquireBitmapEvent;

Description

Occurs whenever a new bitmap is acquired during a multi-page acquisition.
Parameter | Description
Sender | Will be either a TImageEnIO or TImageEnMIO control
ABitmap | A TIEBitmap object that contains the acquired image
DpiX, DpiY | Tne DPI of the acquired image
Handled | Has no effect when acquiring via a TImageEnView/TImageEnIO


TImageEnIO.OnAcquireClose

TImageEnIO.OnAcquireClose

Declaration

property OnAcquireClose: TNotifyEvent;

Description

Occurs when the user closes the acquire dialog, which was opened using TwainAcquireOpen.


TImageEnIO.OnDoPreviews

TImageEnIO.OnDoPreviews

Declaration

property OnDoPreviews: TIEDoPreviewsEvent;

Description

OnDoPreviews occurs just before the Format Parameters dialog (shown when clicking the "Advanced" button in ImageEn's Save dialog) shows.

You can disable the dialog box by setting Handled to true.


TImageEnIO.OnFinishWork

TImageEnIO.OnFinishWork

TImageEnMView component

Declaration

property OnFinishWork: TNotifyEvent;

Description

OnFinishWork occurs when an input/output task ends. It is useful for resetting a progress bar or to know when a thread ends in a asynchronous mode.

Example

procedure TForm1.ImageEnIO1Progress(Sender: TObject; per: Integer);
begin
// Show load/save progress
ProgressBar1.Visible := True;
ProgressBar1.Position := per;
Application.ProcessMessages; // <- important!
end;

procedure TForm1.ImageEnIO1FinishWork(Sender: TObject);
begin
// Hide the progress bar
ProgressBar1.Visible := False;
end;

See Also

- TImageEnIO.OnProgress
- TImageEnView.OnFinishWork

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.OnIOPreview

TImageEnIO.OnIOPreview

Declaration

property OnIOPreview: TIEIOPreviewEvent;

Description

OnIOPreview is called before the preview form is displayed (i.e. when calling the DoPreviews method).

Example

procedure TForm1.ImageEnIO1IOPreview(Sender: TObject; PreviewForm: TForm);
begin
with (PreviewForm as TfIOPreviews) do
ProgressBar1.Visible := False;
end;


TImageEnIO.OnProgress

TImageEnIO.OnProgress

Declaration

property OnProgress: TIEProgressEvent;

Description

Occurs during input/output operations. It is commonly used to show task progress.

Notes:
- If you are using it to update a progress bar then you can reset it in the OnFinishWork event.
- To access I/O progress for the IO class of a TImageEnView, use the OnProgress event.

Example

procedure TForm1.ImageEnIO1Progress(Sender: TObject; per: Integer);
begin
// Show load/save progress
ProgressBar1.Visible := True;
ProgressBar1.Position := per;
Application.ProcessMessages; // <- important!
end;

procedure TForm1.ImageEnIO1FinishWork(Sender: TObject);
begin
// Hide the progress bar
ProgressBar1.Visible := False;
end;


TImageEnIO.OpenAVIFile

TImageEnIO.OpenAVIFile

Declaration

function OpenAVIFile(const FileName: WideString): Integer;

Description

Opens an AVI file without reading any frames. The result is the number of frames contained in the AVI.

Example

// Save the first AVI frame to 'frame1.jpg', second frame to 'frame2.jpg'
ImageEnView1.IO.OpenAVIFile( 'C:\film.avi' );

ImageEnView1.IO.LoadFromAVI( 0 );
ImageEnView1.IO.SaveToFile('D:\frame1.jpg');

ImageEnView1.IO.LoadFromAVI( 1 );
ImageEnView1.IO.SaveToFile('D:\frame2.jpg');
...
ImageEnView1.IO.CloseAVIFile;

See Also

- CloseAVIFile
- LoadFromAVI
- IsOpenAVI

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.OpenMediaFile

TImageEnIO.OpenMediaFile

Declaration

function OpenMediaFile(const FileName: WideString): Integer;

Description

Opens a video file using DirectShow. Supported file types are AVI, MPEG, WMV and other DirectX supported formats.

This method will open the file, but doesn't actually get an image. To get a frame use the LoadFromMediaFile method.

To close the media file use CloseMediaFile.

Example

// Save frame 10 as 'frame10.jpg'
ImageEnView1.IO.OpenMediaFile('C:\film.mpeg');
ImageEnView1.IO.LoadFromMediaFile(10);
ImageEnView1.IO.SaveToFile('D:\frame10.jpg');
ImageEnView1.IO.CloseMediaFile;


TImageEnIO.Params

TImageEnIO.Params

Declaration

property Params: TIOParams;

Description

Provides access to the parameters and meta-data of the current image as a TIOParams object. This object contains many format specific properties, such as bits per sample, type of compression, embedded text data, etc. It is filled automatically when loading images or manually using ParamsFromFile. The properties can also be set or modified when saving files.

Example

// Sets color-mapped 256 colors
ImageEnView1.IO.Params.BitsPerSample := 8;
ImageEnView1.IO.Params.SamplesPerPixel := 1;

// Sets JPEG quality of 90%
ImageEnView1.IO.Params.JPEG_Quality := 90;
ImageEnView1.IO.SaveToFile('D:\output.jpg');


TImageEnIO.ParamsFromBuffer

TImageEnIO.ParamsFromBuffer

Declaration

function ParamsFromBuffer(Buffer: Pointer; BufferSize: Integer; Format: TIOFileType = ioUnknown): Boolean;

Description

Loads image parameters (but not the actual image) from the specified buffer. Result is false if a loading error is encountered due to a corrupt or non-standard image format.

Parameter | Description
Buffer | The buffer pointer
BufferSize | The buffer length in bytes.
Format | Specifies the expected file format. If Format is ioUnknown, then try to find the format automatically

See also: LoadFromBuffer

Example

ImageEnView1.IO.ParamsFromBuffer(mybuffer, mybufferlength, ioJPEG);


TImageEnIO.ParamsFromFile

TImageEnIO.ParamsFromFile

Declaration

function ParamsFromFile(const FileName: WideString; bUseExtension: Boolean = False): Boolean; overload;
function ParamsFromFile(const FileName: WideString; Format: TIOFileType): Boolean; overload;

Description

Reads the image properties without loading the image (and without changing the current image). Result is false if a loading error is encountered due to a corrupt or unknown image format.

FileName is the file name with full path.
Format is the file format that the stream or file contains. If ioUnknown is specified then the file content is analyzed to determine the format.
bUseExtension determines that the file format is based on the extension of the file, e.g. image.jpeg will be processed as ioJPEG format.

Examples

// Load the parameters of an image (which may be a BMP file, but we will examine the content to be sure)
ImageEnView1.IO.ParamsFromFile( 'C:\alfa.bmp' );
Label1.Caption := 'alfa.bmp has ' + inttostr(ImageEnView1.IO.Params.BitsPerSample) + ' bits per sample';

// Load the parameters of a BMP
ImageEnView1.IO.ParamsFromFile( 'C:\alfa.bmp', ioBMP );
Label1.Caption := 'alfa.bmp has ' + inttostr(ImageEnView1.IO.Params.BitsPerSample) + ' bits per sample';

// Load the parameters of a file. It will be assumed to a BMP because of the file extension
ImageEnView1.IO.ParamsFromFile( 'C:\alfa.bmp', True );
Label1.Caption := 'alfa.bmp has ' + inttostr(ImageEnView1.IO.Params.BitsPerSample) + ' bits per sample';

// Show the EXIF date of an image
IO := TImageEnIO.Create( nil );
try
IO.ParamsFromFile( sFilename );
ShowMessage( DateTimeToStr(( IO.IOParams.EXIF_DateTimeOriginal2 ));
finally
IO.Free;
end;


TImageEnIO.ParamsFromStream

TImageEnIO.ParamsFromStream

Declaration

function ParamsFromStream(Stream: TStream; Format: TIOFileType = ioUnknown): Boolean;

Description

Reads the image properties without loading the image (and without changing the current image). Result is false if a loading error is encountered due to a corrupt or unknown image format.

Stream is a TStream that contains the image.
Format is the file format that the stream or file contains. If ioUnknown is specified then the file content is analyzed to determine the format.


TImageEnIO.PreviewFont

TImageEnIO.PreviewFont

Declaration

property PreviewFont: TFont;

Description

If PreviewFontEnabled is set to True then PreviewFont specifies the font used in the DoPreviews dialog.

Note: You should ensure the size of the font matches the length of the dialog controls.

Example

ImageEnView1.IO.PreviewFont.Name := 'MS Times New Roman';
ImageEnView1.IO.PreviewFontEnabled := True;
ImageEnView1.IO.DoPreviews([ppAll]);


TImageEnIO.PreviewFontEnabled

TImageEnIO.PreviewFontEnabled

Declaration

property PreviewFontEnabled: Boolean;

Description

When set to True then you can use PreviewFont to specify a custom font for the DoPreviews dialogs.

Example

ImageEnView1.IO.PreviewFont.Name := 'MS Times New Roman';
ImageEnView1.IO.PreviewFontEnabled := True;
ImageEnView1.IO.DoPreviews([ppAll]);


TImageEnIO.PreviewPrintImage

TImageEnIO.PreviewPrintImage

Declaration

procedure PreviewPrintImage(DestBitmap: TBitmap; MaxBitmapWidth: Integer; MaxBitmapHeight: Integer; PrinterObj: TPrinter = nil; MarginLeft: Double = 1; MarginTop: Double = 1; MarginRight: Double = 1; MarginBottom: Double = 1; VerticalPos: TIEVerticalPos = ievpCenter; HorizontalPos: TIEHorizontalPos = iehpCenter; Size: TIESize = iesFitToPage; SpecWidth: Double = 0; SpecHeight: Double = 0; GammaCorrection: Double = 1);

Description

Draws a preview of the printing of the current image by specifying margins, vertical position, horizontal position and size.
It also paints a rectangle over the image to show the margin limits.

Parameter | Description
DestBitmap | Destination bitmap where to paint the preview. Resizes DestBitmap as needed.
MaxBitmapWidth | Maximum destination bitmap width. Preview will be stretched to match this size.
MaxBitmapHeight | Maximum destination bitmap height. Preview will be stretched to match this size.
Printer | This is the Printer object. PreviewPrintImage need it to know printer settings as orientation or page sizes.
MarginLeft | Left page margin in inches. Specying zero causes no margin to be used.
MarginTop | Top page margin in inches. Specying zero causes no margin to be used.
MarginRight | Right page margin in inches. Specying zero causes no margin to be used.
MarginBottom | Bottom page margin in inches. Specying zero causes no margin to be used.
VerticalPos | Determines how the image vertically aligns within the page.
HorizontalPos | Determines how the image horizontally aligns within the page.
Size | How the image should be sized for printing
SpecWidth | The absolute width of the image in inches if Size = iesSpecifiedSize. The number of pages wide if Size = iesMultiplePages
SpecHeight | The absolute height of the image in inches if Size = iesSpecifiedSize. The number of pages high if Size = iesMultiplePages
GammaCorrection | The gamma correction value, use 1.0 to disable gamma correction.

Example

// Paint and display the preview in ImageEnView2 component.
ImageEnView1.IO.PreviewPrintImage(ImageEnView2.Bitmap, ImageEnView2.Width, ImageEnView2.Height, Printer, 0, 0, 0, 0, ievpCenter, iehpCenter, iesFitToPage , 0 , 0 , 1);
ImageEnView2.Update;


TImageEnIO.PreviewsParams

TImageEnIO.PreviewsParams

Declaration

property PreviewsParams: TIOPreviewsParams;

Description

Specifies the features of the File Format Parameters dialog.

Example

ImageEnView1.IO.PreviewsParams := [ioppDefaultLockPreview];
ImageEnView1.IO.DoPreviews([ppTIFF]);


TImageEnIO.PrintImage

TImageEnIO.PrintImage

Declaration

procedure PrintImage(PrtCanvas: TCanvas = nil; MarginLeft: double = 1; MarginTop: double = 1; MarginRight: double = 1; MarginBottom: double = 1; VerticalPos: TIEVerticalPos = ievpCenter; HorizontalPos: TIEHorizontalPos = iehpCENTER; Size: TIESize = iesFitToPage; SpecWidth: double = 0; SpecHeight: double = 0; GammaCorrection: double = 1; PrintAnnotations: Boolean = False; PrintLayers: Boolean = False);

Description

Print the current image by specifying margins, vertical position, horizontal position and size.

Parameter | Description
PrtCanvas | The canvas to bring to. Specify nil to use Printer.Canvas
MarginLeft | Left page margin in inches (Specify zero for no margin)
MarginTop | Top page margin in inches (Specify zero for no margin)
MarginRight | Right page margin in inches (Specify zero for no margin)
MarginBottom | Bottom page margin in inches (Specify zero for no margin)
VerticalPos | How the image is vertically aligned on the page
HorizontalPos | How the image horizontally aligned on the page
Size | How the image should be sized for printing
SpecWidth | The absolute width of the image in inches if Size = iesSpecifiedSize. The number of pages wide if Size = iesMultiplePages
SpecHeight | The absolute height of the image in inches if Size = iesSpecifiedSize. The number of pages high if Size = iesMultiplePages
GammaCorrection | The gamma correction value (Specify 1.0 to disable gamma correction)
FC>PrintAnnotations | If true and the image contains imaging or ImageEn annotations they will be printed
FC>PrintLayers | If true and the attached TImageEnView image contains multiple layers, they will be printed. If False, only the image (i.e. current layer) is printed

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

Example

// Add Printers unit to your uses clause...
uses
Printers;

// Print the image in the center of the page at the original size
Printer.BeginDoc;
ImageEnView1.IO.PrintImage( Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesNormal );
Printer.EndDoc;

// Print the image in the center of the page stretched to page dimensions (respecting the proportions)
Printer.BeginDoc;
ImageEnView1.IO.PrintImage( Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesFitToPage );
Printer.EndDoc;

// Print the image as a poster, four pages wide and six pages high
Printer.BeginDoc;
ImageEnView1.IO.PrintImage( Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesMultiplePages, 4, 6, 1 );
Printer.EndDoc;

// Print all pages of a TIFF
Printer.BeginDoc;
for I := 0 to ImageEnView1.IO.Params.ImageCount - 1 do
begin
ImageEnView1.IO.Params.ImageIndex := I;
ImageEnView1.IO.LoadFromFile( 'C:\input.tif' );
ImageEnView1.IO.PrintImage();
end;
Printer.EndDoc;

// Print the image in the center with layers
Printer.BeginDoc;
ImageEnView1.IO.PrintImage( Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesNormal, 0, 0, 1, False, True );
Printer.EndDoc;


TImageEnIO.PrintImagePos

TImageEnIO.PrintImagePos

Declaration

procedure PrintImagePos(PrtCanvas: TCanvas; x, y: double; Width, Height: double; GammaCorrection: double = 1; PrintAnnotations: Boolean = False; PrintLayers: Boolean = False);

Description

Prints the current image at a specified absolute position and size.

Parameter | Description
PrtCanvas | The canvas to bring to. Specify nil to use Printer.Canvas
FC>x, y | Top-left starting point in inches
FC>Width, Height | Printed image size in inches.
GammaCorrection | The gamma correction value (Specify 1.0 to disable gamma correction)
FC>PrintAnnotations | If true and the image contains imaging or ImageEn annotations they will be printed
FC>PrintLayers | If true and the attached TImageEnView image contains multiple layers, they will be printed. If False, only the image (i.e. current layer) is printed

Example

// Add Printers unit to your uses clause...
uses
Printers;

// print the image two inches from the top and left of the page, and at a width and height of 10 inches (the image will be stretched)
Printer.BeginDoc;
ImageEnView1.IO.PrintImagePos( Printer.Canvas, 2, 2, 10, 10 );
Printer.EndDoc;


TImageEnIO.PrintingFilterOnSubsampling

TImageEnIO.PrintingFilterOnSubsampling

Declaration

property PrintingFilterOnSubsampling: TResampleFilter;

Description

Specifies a filter when an image needs to be resampled for printing.

Filtering enhances the image quality, but slows down processing.


TImageEnIO.PrintPreviewParams

TImageEnIO.PrintPreviewParams

Declaration

property PrintPreviewParams: TIOPrintPreviewParams;

Description

This property provides access to the parameters of the Print Preview dialog.

Note: All measure units are specified by DialogsMeasureUnit property.


TImageEnIO.Reload

TImageEnIO.Reload

Declaration

function Reload(const sFilename : Boolean;

Description

Reload the image.

Example

ImageEnView1.IO.Reload;


TImageEnIO.ReplaceFileGIF

TImageEnIO.ReplaceFileGIF

Declaration

function ReplaceFileGIF(const FileName: WideString): Integer;

Description

Save the current image into the specified multi-page GIF file, replacing the image at the index specified by Params.GIF_ImageIndex.

Example

// We have a multipage GIF, named 'multipage.gif'.
// We want to change only the second page (index 1), making it negative.
ImageEnView1.IO.Params.GIF_ImageIndex := 1; // select page
ImageEnView1.IO.LoadFromFile('D:\multipage.gif');
ImageEnView1.Proc.Negative;
ImageEnView1.IO.ReplaceFileTIFF('D:\multipage.gif');


TImageEnIO.ReplaceFileTIFF

TImageEnIO.ReplaceFileTIFF

Declaration

function ReplaceFileTIFF(const FileName: WideString): Integer;

Description

Save the current image into the specified multi-page TIFF file, replacing the image at the index specified by Params.TIFF_ImageIndex.
Because ImageEn can only write Little-endian TIFF the input file cannot be Big-endian (see TIFF_ByteOrder).

Examples

// We have a multipage tiff, named 'multipage.tif'.
// We want to change only the second page (index 1), making it negative.
ImageEnView1.IO.Params.TIFF_ImageIndex := 1; // select page
ImageEnView1.IO.LoadFromFile('D:\multipage.tif');
ImageEnView1.Proc.Negative;
ImageEnView1.IO.ReplaceFileTIFF('D:\multipage.tif');

// Update the file for the selected frame of a multi-page TIFF in a TImageEnMView
IO := TImageEnIO.Create(nil);
IO.Params.TIFF_ImageIndex := ImageEnMView1.SelectedImage; // select page
IO.IEBitmap.Assign( ImageEnMView1.IEBitmap );
IO.ReplaceFileTIFF( ImageEnMView1.MIO.LastFilename );
IO.Free;


TImageEnIO.ReplaceStreamTIFF

TImageEnIO.ReplaceStreamTIFF

Declaration

function ReplaceStreamTIFF(Stream: TStream): integer;

Description

Save the current image into the specified multi-page TIFF file, replacing the image at the index specified by Params.TIFF_ImageIndex.

Note: The Stream position must be at the beginning of the TIFF content.


TImageEnIO.SaveToAVI

TImageEnIO.SaveToAVI

Declaration

procedure SaveToAVI;

Description

Saves the current image to an AVI file opened using CreateAVIFile.

It is recommended that you set Params.BitsPerSample and Params.SamplesPerPixel before calling SaveToAVI, because AVI requires all images to have the same color depth.

Demo

Demos\VideoCapture\DesktopToAvi\DesktopToAvi.dpr

Example

ImageEnView.IO.CreateAVIFile('output.avi', 20, 'DIB ');

// save frame 0
ImageEnView.IO.LoadFromFile('C:\frame0.jpg');
ImageEnView.IO.Params.BitsPerSample := 8;
ImageEnView.IO.Params.SamplesPerPixel := 1;
ImageEnView.IO.SaveToAVI();

// save frame 1
ImageEnView.IO.LoadFromFile('C:\frame1.jpg');
ImageEnView.IO.Params.BitsPerSample := 8;
ImageEnView.IO.Params.SamplesPerPixel := 1;
ImageEnView.IO.SaveToAVI();

// close the file
ImageEnView.IO.CloseAVIFile();


TImageEnIO.SaveToBlob

TImageEnIO.SaveToBlob

Declaration

function SaveToBlob(aField : TBlobField;
aFileType : TIOFileType;
iJpegQuality: integer = 0): Boolean;

Description

Uses streams to set a blob field with an image, optionally setting JPEG_Quality. You must specify a file type, e.g. ioJPEG.
Returns True if saving was successful, or False on error

Note: You must define IE_DB_Helpers in iexHelperFunctions.pas to use this method

Example

// Update the current image in the table with that displayed in our TImageEnView
MyDBTable.Edit;
ImageEnView1.IO.SaveToFileEx(MyDBTableImageField, ioJPEG, 90)
MyDBTableEditDate.AsDateTime := Now;
MyDBTable.Post;


TImageEnIO.SaveToFile

TImageEnIO.SaveToFile

Declaration

procedure SaveToFile(const FileName: WideString; ImageFormat: TIOFileType = -1);

Description

Saves the current image to Jpeg, Jpeg2000, PNG, TIFF, BMP, WBMP, PS, PDF, PCX, DCX, TGA, PXM, ICO, HDP, GIF, DICOM and any other supported format.

FileName is the file name including extension.
If FImageFormat is -1, then SaveToFile detects the file format from the extension of the specified filename.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

ImageEnView1.IO.SaveToFile('D:\rome.jpg');
ImageEnView1.IO.SaveToFile('D:\florence.tif');
ImageEnView1.IO.SaveToFile('D:\venice.gif');

// Saves a 16 color bitmap
ImageEnView1.IO.Params.BitsPerSample := 4 ;
ImageEnView1.IO.Params.SamplesPerPixel := 1;
ImageEnView1.IO.SaveToFile('D:\Italy.bmp');

// Saves a jpeg into output.dat
ImageEnView1.IO.SaveToFile('D:\output.dat', ioJPEG);


TImageEnIO.SaveToFileBMP

TImageEnIO.SaveToFileBMP

Declaration

procedure SaveToFileBMP(const FileName: WideString);

Description

Saves the current image to a file in BMP format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

// Saves a 256 color compressed bitmap bitmap
ImageEnView1.IO.Params.BitsPerSample := 8;
ImageEnView1.IO.Params.SamplesPerPixel := 1;
ImageEnView1.IO.Params.BMP_Compression := ioBMP_RLE;
ImageEnView1.IO.SaveToFile('D:\Italy.bmp');


TImageEnIO.SaveToFileBMPRAW

TImageEnIO.SaveToFileBMPRAW

Declaration

procedure SaveToFileBMPRAW(const FileName: WideString);

Description

Saves the current image to a file in BmpRaw format.

FileName is the file name including extension.

If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Note: This is not the same as a digital camera Raw file, but a true "raw" format (named "BmpRaw" in ImageEn) where you can specify the channel order, placement, alignment, size, etc.

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Example

// saves current image as RAW image
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plPlanar;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.SaveToFileBMPRAW('C:\output.dat');


TImageEnIO.SaveToFileDCX

TImageEnIO.SaveToFileDCX

Declaration

procedure SaveToFileDCX(const FileName: WideString);

Description

Saves the current image to a file in DCX format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnIO.SaveToFileDicom

TImageEnIO.SaveToFileDicom

Declaration

procedure SaveToFileDicom(const FileName: WideString);

Description

Saves the current image to a file in Dicom medical imaging format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Demo

Demos\InputOutput\Dicom\Dicom.dpr

Example

ImageEnView1.IO.SaveToFileDicom('D:\image.dicom');


TImageEnIO.SaveToFileEx

TImageEnIO.SaveToFileEx

Declaration

function SaveToFileEx(const sFilename : string;
iJpegQuality: integer = 0): Boolean;

Description

Calls SaveToFile, optionally setting JPEG_Quality.
Returns True if saving was successful, or False on error

Example

// Save the image to MyImage.jpeg at 90% quality
ImageEnView1.IO.SaveToFileEx('D:\MyImage.jpeg', 90);


TImageEnIO.SaveToFileGif

TImageEnIO.SaveToFileGif

Declaration

procedure SaveToFileGif(const FileName: WideString);

Description

Saves the current image to a file in GIF format (89a). The GIF will have a single image and it won't be marked as animated.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

// Save an interlaced, 64 color Gif.
ImageEnView1.IO.Params.GIF_Interlaced := True;
ImageEnView1.IO.Params.BitsPerSample := 6;
ImageEnView1.IO.Params.SamplesPerPixel := 1;
ImageEnView1.IO.SaveToFileGif('D:\image.gif');


TImageEnIO.SaveToFileHDP

TImageEnIO.SaveToFileHDP

Declaration

procedure SaveToFileHDP(const FileName: WideString);

Description

Saves the current image to a file in Microsoft HD Photo format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Requires: Windows XP (SP2) with .Net 3.0, Windows Vista or newer.


TImageEnIO.SaveToFileICO

TImageEnIO.SaveToFileICO

Declaration

procedure SaveToFileICO(const FileName: WideString);

Description

Saves the current image to a file in ICO format. ICO format allows storing multiple images with different resolutions and sizes.

FileName is the file name including extension.
ImageEn creates for you the sub-images to save, you have only to set the Params.ICO_BitCount and Params.ICO_Sizes arrays.
To control each image separately, use the IEWriteICOImages function.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Demo

Demos\FullApps\PlainIconEditor\PlainIconEditor.dpr

Example

// save the current image in 'output.ico', It will contain three images with 64x64 32bit (24bit +alphachannel), 32x32 256 colors and 32x32 16 colors

// 64x64 x32bit
ImageEnView.IO.Params.ICO.BitCount[0] := 32;
ImageEnView.IO.Params.ICO.Sizes[0].cx := 64;
ImageEnView.IO.Params.ICO.Sizes[0].cy := 64;

// 32x32 x8bit
ImageEnView.IO.Params.ICO.BitCount[1] := 8;
ImageEnView.IO.Params.ICO.Sizes[1].cx := 32;
ImageEnView.IO.Params.ICO.Sizes[1].cy := 32;

// 32x32 x4bit
ImageEnView.IO.Params.ICO.BitCount[2] := 4;
ImageEnView.IO.Params.ICO.Sizes[2].cx := 32;
ImageEnView.IO.Params.ICO.Sizes[2].cy := 32;

// I don't want other images
ImageEnView.IO.Params.ICO.BitCount[3] := 0;
ImageEnView.IO.Params.ICO.Sizes[3].cx := 0;
ImageEnView.IO.Params.ICO.Sizes[3].cy := 0;

// save
ImageEnView.IO.SaveToFile('D:\output.ico');


TImageEnIO.SaveToFileIEN

TImageEnIO.SaveToFileIEN

Declaration

procedure SaveToFileIEN(const FileName: WideString);

Description

Saves the current image in the connected TImageEnView to a file in ImageEn's native format, which preserves the image and any layers.

FileName is the file name including extension.

Notes:
- An exception will be raised if the TImageEnIO is not attached to a TImageEnView
- If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.
- IEN_Compression cannot be ioTIFF.
- You can also save layers in PSD and SVG format

Example

// Save current layer configuration (compress images as jpeg)
ImageEnView1.IO.Params.IEN_Compression := ioJPEG;
ImageEnView1.IO.SaveToFileIEN( 'D:\layers.ien' );

// Load saved layers
ImageEnView1.IO.LoadFromFileIEN( 'D:\layers.ien' );

See Also

- IEN_Compression
- IEN_Description
- LoadFromFileIEN
- SaveToStreamIEN
- LayersSaveMergedTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.SaveToFileJ2K

TImageEnIO.SaveToFileJ2K

Declaration

procedure SaveToFileJ2K(const FileName: WideString);

Description

Saves the current image to a file in Jpeg2000 (J2K code stream) format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnIO.SaveToFileJP2

TImageEnIO.SaveToFileJP2

Declaration

procedure SaveToFileJP2(const FileName: WideString);

Description

Saves the current image to a file in Jpeg2000 (JP2) format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnIO.SaveToFileJpeg

TImageEnIO.SaveToFileJpeg

Declaration

procedure SaveToFileJpeg(const FileName: WideString);

Description

Saves the current image to a file in JPEG format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

// Saves a gray levels, progressive jpeg image with quality 70
ImageEnView1.IO.Params.JPEG_ColorSpace := ioJPEG_GRAYLEV;
ImageEnView1.IO.Params.JPEG_Quality := 70;
ImageEnView1.IO.Params.JPEG_Progressive := True;
ImageEnView1.IO.SaveToFileJpeg('C:\image.jpg');


TImageEnIO.SaveToFilePCX

TImageEnIO.SaveToFilePCX

Declaration

procedure SaveToFilePCX(const FileName: WideString);

Description

Saves the current image to a file in PCX format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

// Saves a 256 color PCX
ImageEnView1.IO.Params.BitsPerSample := 8;
ImageEnView1.IO.Params.SamplesPerPixel := 1;
ImageEnView1.IO.SaveToFilePCX('D:\image.pcx');


TImageEnIO.SaveToFilePDF

TImageEnIO.SaveToFilePDF

Declaration

procedure SaveToFilePDF(const FileName: WideString);

Description

Saves the current image to a file in Adobe PDF format.

FileName is the file name including extension.

If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Note: The created file will have only one page. See CreatePDFFile to create multi-page PDF files.

Example

ImageEnView1.IO.LoadFromFile('C:\input.bmp');
ImageEnView1.IO.SaveToFilePDF('D:\output.pdf');


TImageEnIO.SaveToFilePNG

TImageEnIO.SaveToFilePNG

Declaration

procedure SaveToFilePNG(const FileName: WideString);

Description

Saves the current image to a file in PNG format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

// Set best compression
ImageEnView1.IO.Params.PNG_Filter := ioPNG_FILTER_PAETH;
ImageEnView1.IO.Params.PNG_Compression := 9;
// Save PNG
ImageEnView1.IO.SaveToFilePNG('D:\max.png');


TImageEnIO.SaveToFilePS

TImageEnIO.SaveToFilePS

Declaration

procedure SaveToFilePS(const FileName: WideString);

Description

Saves the current image to a file in PostScript format.

FileName is the file name including extension.

If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Note: The created file will have only one page. See CreatePSFile to create multi-page PS files.

Example

ImageEnView1.IO.LoadFromFile('D:\input.bmp');
ImageEnView1.IO.SaveToFilePS('D:\output.ps');


TImageEnIO.SaveToFilePSD

TImageEnIO.SaveToFilePSD

Declaration

procedure SaveToFilePSD(const FileName: WideString);

Description

Saves the current image or all layers to a file in PSD format. PSD supports multiple layers, so it can store position and other useful info (like layer name).
PSD files also have a merged representation of the image to fast preview the merged result.

FileName is the file name including extension.

Notes:
- If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.
- You can also save layers in IEN and SVG format


TImageEnIO.SaveToFilePXM

TImageEnIO.SaveToFilePXM

Declaration

procedure SaveToFilePXM(const FileName: WideString);

Description

Saves the current image to a file in PBM, PGM or PPM format.

FileName is the file name including extension.

If the PBM (Portable Bitmap) contains only 1 bpp images (black/white), then the values must be Params.BitsPerPixel = 1 and Params.SamplesPerPixel = 1.
If the PGM (Portable Graymap) contains only 8 bpp images (gray scale), then the values must be Params.BitsPerPixel = 8 and Params.SamplesPerPixel = 1.
If the PPM (Portable Pixmap) contains only 24 bpp images (true color), then the values must be Params.BitsPerPixel = 8 and Params.SamplesPerPixel = 3.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnIO.SaveToFileSVG

TImageEnIO.SaveToFileSVG

Declaration

procedure SaveToFileSVG(const FileName: WideString);

Description

Saves the current image to a file in Scalable Vector Graphics format. SVG is a vector format that can be displayed be web browsers.
If the TImageEnIO is connected to an TImageEnView, then each of the Layers will be output as a scalable object. If connected to a TImageEnVect, the objects will be converted to layers and then output. Otherwise the IEBitmap is output as SVG with an embedded raster image.
FileName is the file name including extension.

SVG Exporting Limitations:
- Gradient fills are not supported at this time
- Mask layers are not supported
- Some shapes of a TIEShapeLayer (those not listed in Supported_Generate_Points_Shapes) will need to rasterized as an image (i.e. will no longer be vectors)

Notes:
- If an internal save error is encountered Aborting will return true (e.g. there are no valid layers). Saving issues due to insufficient write permissions and disk write failures will raise an exception.
- Embedded images will be saved in the format specified by SVG_ImageCompression.
- You can also save layers in IEN and PSD format
- SVG is an export only format. ImageEn does not support loading of SVG files

Demo

Demos\ImageEditing\Layers_AllTypes\Layers.dpr

Example

// Save current layers (compress image layers as jpeg)
ImageEnView1.IO.Params.SVG_ImageCompression := ioJPEG;
ImageEnView1.IO.Params.JPEG_Quality := 80;
ImageEnView1.IO.SaveToFileSVG( 'D:\layers.SVG' );

See Also

- SVG_ImageCompression
- SaveToStreamSVG

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.SavetoFileTGA

TImageEnIO.SavetoFileTGA

Declaration

procedure SaveToFileTGA(const FileName: WideString);

Description

Saves the current image to a file in TGA format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnIO.SaveToFileTIFF

TImageEnIO.SaveToFileTIFF

Declaration

procedure SaveToFileTIFF(const FileName: WideString);

Description

Saves the current image to a file in TIFF format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

ImageEnView1.IO.Params.DocumentName := 'My document';
ImageEnView1.IO.SaveToFileTIFF('C:\image.tiff');


TImageEnIO.SaveToFileWBMP

TImageEnIO.SaveToFileWBMP

Declaration

procedure SaveToFileWBMP(const FileName: WideString);

Description

Saves the current image to a file in WBMP (Wireless bitmap) format.

FileName is the file name including extension.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnIO.SaveToPDF

TImageEnIO.SaveToPDF

Declaration

procedure SaveToPDF;

Description

Saves the current image to the active Adobe PDF file, opened using CreatePDFFile.

Note: All images in the resulting PDF file will be aligned to the upper-left corner of the paper.

Demo

Demos\InputOutput\PDFBuilder\PdfBuilder.dpr

Example

ImageEnView1.IO.CreatePDFFile( 'D:\output.pdf' );

// load and save page 1
ImageEnView1.IO.LoadFromFile('C:\page1.tiff');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPDF;

// load and save page 2
ImageEnView1.IO.LoadFromFile('C:\page2.tiff');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPDF;

...Other pages...

// close PDF file
ImageEnView1.IO.ClosePDFFile;


TImageEnIO.SaveToPS

TImageEnIO.SaveToPS

Declaration

procedure SaveToPS;

Description

Saves the current image to a PostScript file opened using CreatePSFile.

Note: All images in the resulting PostScript file will be aligned to the upper-left corner of the paper.

Demo

Demos\InputOutput\PDFBuilder\PdfBuilder.dpr

Example

ImageEnView1.IO.CreatePSFile( 'D:\output.ps' );

// load and save page 1
ImageEnView1.IO.LoadFromFile('C:\page1.tiff');
ImageEnView1.IO.Params.PS_Compression := ioPS_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPS;

// load and save page 2
ImageEnView1.IO.LoadFromFile('C:\page2.tiff');
ImageEnView1.IO.Params.PS_Compression := ioPS_G4FAX; // G4Fax compression
ImageEnView1.IO.SaveToPS;

...Other pages...

// close PS file
ImageEnView1.IO.ClosePSFile;


TImageEnIO.SaveToStream

TImageEnIO.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream; FileType: TIOFileType);

Description

SaveToStream saves the image to a stream. You must specify the file format (if ioUnknown is specified, the current file type is used).

If StreamHeaders property is True, an additional special header is added, which is needed for multi-image streams.


TImageEnIO.SaveToStreamBMP

TImageEnIO.SaveToStreamBMP

Declaration

procedure SaveToStreamBMP(Stream: TStream);

Description

Saves the current image to a stream in BMP format.

If StreamHeaders property is True, it adds an additional special header as needed for multi-image streams.

Example

// Saves ImageEnView1 and ImageEnView2 images in file images.dat
// images.dat isn't loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('bmpimages.dat', fmCreate);
ImageEnView1.IO.StreamHeaders := True;
ImageEnView1.IO.SaveToStreamBMP(fs);
ImageEnView2.IO.StreamHeaders := True;
ImageEnView2.IO.SaveToStreamBMP(fs);
fs.free;
End;

// Saves a single image in image.bmp
// image.bmp is loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('image.bmp');
ImageEnView1.IO.StreamHeaders := False;
ImageEnView1.IO.SaveToFileBMP(fs);
End;


TImageEnIO.SaveToStreamBMPRAW

TImageEnIO.SaveToStreamBMPRAW

Declaration

procedure SaveToStreamBMPRAW(Stream: TStream);

Description

Saves the current image to a stream in BmpRaw format.

Note: This is not the same as a digital camera Raw file, but a true "raw" format (named "BmpRaw" in ImageEn) where you can specify the channel order, placement, alignment, size, etc.

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Example

// saves current image as RAW image
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plPlanar;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.SaveToStreamBMPRAW(stream);


TImageEnIO.SaveToStreamDCX

TImageEnIO.SaveToStreamDCX

Declaration

procedure SaveToStreamDCX(Stream: TStream);

Description

Saves the current image to a stream in DCX format.


TImageEnIO.SaveToStreamDicom

TImageEnIO.SaveToStreamDicom

Declaration

procedure SaveToStreamDicom(Stream: TStream);

Description

Saves the current image to a stream in DICOM format.

If StreamHeaders property is true, then a special header is added as required for multi-image streams.

Example

// Saves images in ImageEnView1 and ImageEnView2 to the file Images.dat
// Note: images.dat isn't loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('C:\images.dat', fmCreate);
ImageEnView1.IO.StreamHeaders := True;
ImageEnView1.IO.SaveToStreamDicom(fs);
ImageEnView2.IO.StreamHeaders := True;
ImageEnView2.IO.SaveToStreamDicom(fs);
fs.free;
End;

// Saves a single image to image.Dicom
// image.Dicom is loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('image.Dicom');
ImageEnView1.IO.StreamHeaders := False;
ImageEnView1.IO.SaveToFileDicom(fs);
End;


TImageEnIO.SaveToStreamEx

TImageEnIO.SaveToStreamEx

Declaration

function SaveToStreamEx(Stream: TStream; FileType: TIOFileType; iJpegQuality: integer = 0): Boolean;

Description

Calls SaveToStream, optionally setting JPEG_Quality.
You must specify the file format.
Returns True if saving was successful, or False on error

Example

// Save the image to MyImage.jpeg at 90% quality
ImageEnView1.IO.SaveToStreamEx( DestStream, ioJPEG, 90 );


TImageEnIO.SaveToStreamGif

TImageEnIO.SaveToStreamGif

Declaration

procedure SaveToStreamGif(Stream: TStream);

Description

Saves the current image to a stream in GIF format.

If StreamHeaders property is true, then a special header is added as required for multi-image streams.

Example

// Saves images in ImageEnView1 and ImageEnView2 to the file Images.dat
// Note: images.dat isn't loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('C:\images.dat', fmCreate);
ImageEnView1.IO.StreamHeaders := True;
ImageEnView1.IO.SaveToStreamGIF(fs);
ImageEnView2.IO.StreamHeaders := True;
ImageEnView2.IO.SaveToStreamGIF(fs);
fs.free;
End;

// Saves a single image to image.gif
// image.gif is loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('image.gif');
ImageEnView1.IO.StreamHeaders := False;
ImageEnView1.IO.SaveToFileGIF(fs);
End;


TImageEnIO.SaveToStreamHDP

TImageEnIO.SaveToStreamHDP

Declaration

procedure SaveToStreamHDP(Stream: TStream);

Description

Saves the current image to a stream in Microsoft HD Photo file format.

Requires: Windows XP (SP2) with .Net 3.0, Windows Vista or newer.


TImageEnIO.SaveToStreamICO

TImageEnIO.SaveToStreamICO

Declaration

procedure SaveToStreamICO(Stream: TStream);

Description

Saves the current image to a stream in ICO format. ICO format allows storing multiple images with several resolutions and sizes.
ImageEn creates for you the sub-images to save; you have only to set the Params.ICO_BitCount and Params.ICO_Sizes arrays.

To control each image separately, use the IEWriteICOImages function.

Example

// save the current image in 'output.ico', It will contain three images with 64x64 32bit (24bit +alphachannel), 32x32 256 colors and 32x32 16 colors

// 64x64 x32bit
ImageEnView.IO.Params.ICO.BitCount[0] := 32;
ImageEnView.IO.Params.ICO.Sizes[0].cx := 64;
ImageEnView.IO.Params.ICO.Sizes[0].cy := 64;

// 32x32 x8bit
ImageEnView.IO.Params.ICO.BitCount[1] := 8;
ImageEnView.IO.Params.ICO.Sizes[1].cx := 32;
ImageEnView.IO.Params.ICO.Sizes[1].cy := 32;

// 32x32 x4bit
ImageEnView.IO.Params.ICO.BitCount[2] := 4;
ImageEnView.IO.Params.ICO.Sizes[2].cx := 32;
ImageEnView.IO.Params.ICO.Sizes[2].cy := 32;

// I don't want other images
ImageEnView.IO.Params.ICO.BitCount[3] := 0;
ImageEnView.IO.Params.ICO.Sizes[3].cx := 0;
ImageEnView.IO.Params.ICO.Sizes[3].cy := 0;

// save
ImageEnView.IO.SaveToFile('D:\output.ico');


TImageEnIO.SaveToStreamIEN

TImageEnIO.SaveToStreamIEN

Declaration

procedure SaveToStreamIEN(Stream: TStream);

Description

Saves the current image in the connected TImageEnView to a stream in ImageEn's native format, which preserves the image and any layers.

Notes:
- An exception will be raised if the TImageEnIO is not attached to a TImageEnView
- If an internal save error is encountered Aborting will return true
- IEN_Compression cannot be ioTIFF.
- You can also save layers in PSD and SVG format

Example

// Save current layer configuration (compress images as jpeg)
ImageEnView1.IO.Params.IEN_Compression := ioJPEG;
ImageEnView1.IO.SaveToStreamIEN( Stream );

// Load saved layers
ImageEnView1.IO.LoadFromStreamIEN( Stream );

See Also

- IEN_Compression
- IEN_Description
- LoadFromStreamIEN
- SaveToFileIEN
- LayersSaveMergedTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.SaveToStreamJ2K

TImageEnIO.SaveToStreamJ2K

Declaration

procedure SaveToStreamJ2K(Stream: TStream);

Description

Saves the current image to a stream in Jpeg2000 (J2K code stream) format.


TImageEnIO.SaveToStreamJP2

TImageEnIO.SaveToStreamJP2

Declaration

procedure SaveToStreamJP2(Stream: TStream);

Description

Saves the current image to a stream in Jpeg2000 (JP2) format.


TImageEnIO.SaveToStreamJpeg

TImageEnIO.SaveToStreamJpeg

Declaration

procedure SaveToStreamJpeg(Stream: TStream);

Description

Saves the current image to a stream in JPEG format.

If StreamHeaders property is True, it adds an additional special header as needed for multi-image streams.

Example

// Saves ImageEnView1 and ImageEnView2 attached images in file images.dat
// images.dat isn't loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('bmpimages.dat', fmCreate);
ImageEnView1.IO.StreamHeaders := True;
ImageEnView1.IO.SaveToStreamJPEG(fs);
ImageEnView2.IO.StreamHeaders := True;
ImageEnView2.IO.SaveToStreamJPEG(fs);
fs.free;
End;

// Saves a single image in image.jpg
// image.jpg is loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('image.jpg');
ImageEnView1.IO.StreamHeaders := False;
ImageEnView1.IO.SaveToFileJPEG(fs);
End;


TImageEnIO.SaveToStreamPCX

TImageEnIO.SaveToStreamPCX

Declaration

procedure SaveToStreamPCX(Stream: TStream);

Description

Saves the current image to a stream in PCX format.

If StreamHeaders property is True, it adds an additional special header as needed for multi-image streams.

Example

// Saves ImageEnView1 and ImageEnView2 attached images in file images.dat
// images.dat isn't loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('bmpimages.dat', fmCreate);
ImageEnView1.IO.StreamHeaders := True;
ImageEnView1.IO.SaveToStreamPCX(fs);
ImageEnView2.IO.StreamHeaders := True;
ImageEnView2.IO.SaveToStreamPCX(fs);
fs.free;
End;

// Saves a single image in image.pcx
// image.pcx is loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('image.pcx');
ImageEnView1.IO.StreamHeaders := False;
ImageEnView1.IO.SaveToFilePCX(fs);
End;


TImageEnIO.SaveToStreamPDF

TImageEnIO.SaveToStreamPDF

Declaration

procedure SaveToStreamPDF(Stream: TStream);

Description

Saves the current image to a stream in Adobe PDF format. The resulting file will have only one page.


TImageEnIO.SaveToStreamPNG

TImageEnIO.SaveToStreamPNG

Declaration

procedure SaveToStreamPNG(Stream: TStream);

Description

Saves the current image to a stream in PNG format.

Example

// Set best compression
ImageEnView1.IO.Params.PNG_Filter := ioPNG_FILTER_PAETH;
ImageEnView1.IO.Params.PNG_Compression := 9;
// Save PNG
ImageEnView1.IO.SaveToStreamPNG(Stream);


TImageEnIO.SaveToStreamPS

TImageEnIO.SaveToStreamPS

Declaration

procedure SaveToStreamPS(Stream: TStream);

Description

Saves the current image to a stream in PostScript format. The resulting file will have only one page.


TImageEnIO.SaveToStreamPSD

TImageEnIO.SaveToStreamPSD

Declaration

procedure SaveToStreamPSD(Stream: TStream);

Description

Saves the current image to a stream in PSD format. PSD supports multiple layers, so it can store position and other useful info (like layer name). PSD also has a merged representation of the image to fast preview the merged result.

Note: You can also save layers in IEN and SVG format


TImageEnIO.SaveToStreamPXM

TImageEnIO.SaveToStreamPXM

Declaration

procedure SaveToStreamPXM(Stream: TStream);

Description

Saves the current image to a stream in PBM, PGM or PPM format.

If the PBM (Portable Bitmap) contains only 1 bpp images (black/white), then the values must be Params.BitsPerPixel=1 and Params.SamplesPerPixel=1.
If the PGM (Portable Graymap) contains only 8 bpp images (gray scale), then the values must be Params.BitsPerPixel=8 and Params.SamplesPerPixel=1.
If the PPM (Portable Pixmap) contains only 24 bpp images (true color), then the values must be Params.BitsPerPixel=8 and Params.SamplesPerPixel=3.


TImageEnIO.SaveToStreamSVG

TImageEnIO.SaveToStreamSVG

Declaration

procedure SaveToStreamSVG(Stream: TStream);

Description

Saves the current image to a stream in Scalable Vector Graphics format. SVG is a vector format that can be displayed be web browsers.
If the TImageEnIO is connected to an TImageEnView, then each of the Layers will be output as a scalable object. If connected to a TImageEnVect, the objects will be converted to layers and then output. Otherwise the IEBitmap is output as SVG with an embedded raster image.

SVG Exporting Limitations:
- Gradient fills are not supported at this time
- Mask layers are not supported
- Some shapes of a TIEShapeLayer (those not listed in Supported_Generate_Points_Shapes) will need to rasterized as an image (i.e. will no longer be vectors)

Notes:
- SVG_ImageCompression sets the image format for embedded raster images. It should be a web-safe format such as ioPNG or ioJPEG
- If an internal save error is encountered Aborting will return true (e.g. there are no valid layers)
- You can also save layers in IEN and PSD format
- SVG is an export only format. ImageEn does not support loading of SVG files

Example

// Save current layers (compress image layers as jpeg)
ImageEnView1.IO.Params.SVG_ImageCompression := ioJPEG;
ImageEnView1.IO.SaveToStreamSVG( Stream );

See Also

- SVG_ImageCompression
- SaveToFileSVG

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.SaveToStreamTGA

TImageEnIO.SaveToStreamTGA

Declaration

procedure SaveToStreamTGA(Stream: TStream);

Description

Saves the current image to a stream in TGA format.

Stream is the image stream.


TImageEnIO.SaveToStreamTIFF

TImageEnIO.SaveToStreamTIFF

Declaration

procedure SaveToStreamTIFF(Stream: TStream);

Description

Saves the current image to a stream in TIFF format.

If StreamHeaders property is True, it adds an additional special header as needed for multi-image streams.

Example

// Saves ImageEnView1 and ImageEnView2 attached images in file images.dat
// images.dat isn't loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('bmpimages.dat', fmCreate);
ImageEnView1.IO.StreamHeaders := True;
ImageEnView1.IO.SaveToStreamTIFF(fs);
ImageEnView2.IO.StreamHeaders := True;
ImageEnView2.IO.SaveToStreamTIFF(fs);
fs.free;
End;

// Saves a single image in image.tif
// image.tif is loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('image.tif');
ImageEnView1.IO.StreamHeaders := False;
ImageEnView1.IO.SaveToFileTIFF(fs);
End;


TImageEnIO.SaveToStreamWBMP

TImageEnIO.SaveToStreamWBMP

Declaration

procedure SaveToStreamWBMP(Stream: TStream);

Description

Saves the current image to a stream in WBMP (Wireless bitmap) format.


TImageEnIO.SaveToText

TImageEnIO.SaveToText

Declaration

procedure SaveToText(Stream: TStream; ImageFormat: TIOFileType; TextFormat: TIETextFormat = ietfASCIIArt);
procedure SaveToText(const FileName: WideString; ImageFormat: TIOFileType; TextFormat: TIETextFormat = ietfASCIIArt);

Description

Saves the current image in the specified text format.

Parameters:

Parameter | Description
FileName | Output file name.
Stream | Output stream.
ImageFormat | Wanted file format.
TextFormat | Output text format. See allowed values in TIETextFormat.

See Also: LoadFromText

Example

ImageEnView1.IO.LoadFromFile('C:\input.jpg');
ImageEnView1.Proc.Resample(128, -1);
ImageEnView1.IO.SaveToText('D:\output.txt', ioUnknown, ietfASCIIArt);


TImageEnIO.Seek

TImageEnIO.Seek

Declaration

function Seek(Page : TIEIOSeekDestination; FileName : WideString = ''): Integer;

Description

Load the specified page from the last loaded multipage file, including TIFF, GIF, AVI and other video types.
This method uses LoadFromFile to load the file (hence the file name must be provided), unless it is part of TImageEnDBView or TImageEnDBVect where LoadPicture is called instead.

Parameter | Description
Page | Page to load.
FileName | Optional file name. If empty will use the last loaded file name.

Returns the loaded page index.

Example

// load first page
ImageEnView1.IO.Seek(ieioSeekFirst, 'multipage.tiff');

// load next page
ImageEnView1.IO.Seek(ieioSeekNext);


TImageEnIO.SelectAcquireSource

TImageEnIO.SelectAcquireSource

Declaration

function SelectAcquireSource(Apis: TIEAcquireApis = [ieaTwain, ieaWIA]) : boolean;

Description

Prompts the user with a dialog to select a Twain, WIA or DCIM device. Use Apis to specify which sources are available to the user.

Any combination of the following can be used:
Value | Description
ieaTwain | Acquire from Twain device
ieaWIA | Acquire using WIA (scanners or camera)
ieaDCIM | Read from any connected device containing a DCIM folder (e.g. camera card in a slot or a USB connected camera) using the WPD API

Note: If your location is only [ieTwain] or [ieWIA] then the default Twain/WIA selector is shown. Otherwise a custom device selector is used (Use MsgLanguage to control the language in the custom dialog).

Returns False if user press "Cancel" button.

Demo

Demos\ImageAcquisition\AllAcquire\AllAcquire.dpr

Example

if ImageEn1.IO.SelectAcquireSource([ieaTwain, ieaWIA]) then
begin
ImageEn1.IO.Acquire;
ImageEn1.IO.SaveToFile('D:\MyImage.jpg');
end;


TImageEnIO.SelectedAcquireSource

TImageEnIO.SelectedAcquireSource

Declaration

property SelectedAcquireSource : TIEAcquireSource; (Read only)

Description

Returns the acquisition source that is currently active due to selection by the user with SelectAcquireSource or programatically using SetAcquireSource.
A TIEAcquireSource record is returned that provides meta information about the device (SelectedAcquireSource.Name, SelectedAcquireSource.DeviceType) and technical details (SelectedAcquireSource.Api, SelectedAcquireSource.Location).
If no device is selected then SelectedAcquireSource.Api will be ieaNone.

Examples

// Display the selected source
if ImageEnView1.IO.SelectedAcquireSource.Api = ieaNone then
ShowMessage('No device is selected')
else
ShowMessage('The selected device is ' + ImageEnView1.IO.SelectedAcquireSource.Name);

// Read and restore the selected source
var
sDevice : string;
ADevice : TIEAcquireSource;
begin
...
// Read the selected device
sDevice := AcquireSourceToStr(ImageEnView1.IO.SelectedAcquireSource);
...
end;

var
sDevice : string;
ADevice : TIEAcquireSource;
begin
...
// Restore the device selection
ADevice := StrToAcquireSource(sDevice);
ImageEnView1.IO.SetAcquireSource(ADevice.Api, ADevice.Location);
...
end;

See Also

- SelectAcquireSource
- SetAcquireSource

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.SetAcquireSource

TImageEnIO.SetAcquireSource

Declaration

function SetAcquireSource(Api : TIEAcquireApi; Location : Variant) : boolean;

Description

Programatically set the selected acquisition source by an API type and device. The selected device will be used for subsequent calls to Acquire.
Result is false if the device cannot be selected (i.e. is not connected or does not exist).

The API can be one of the following:
Value | Description
ieaTwain | Acquire from Twain device
ieaWIA | Acquire using WIA (scanners or camera)
ieaDCIM | Read from any connected device containing a DCIM folder (e.g. camera card in a slot or a USB connected camera) using the WPD API

Location can be one of the following:
Value | Description
Default_Device | The default device for that API type will be selected
Index | An index of a device, e.g. 0 for the first device (ieaTwain/ieaWIA/ieaDCIM)
Name | The name of a device, e.g. 'CanoScan FB620' (ieaTwain/ieaWIA/ieaDCIM)
Path | The path of a DCIM folder, e.g. 'I:\DCIM\' (ieaDCIM)
Drive Letter | The letter of a connected camera card or device containing a DCIM folder, e.g. 'I' (ieaDCIM)

Examples

// Acquire from the default Twain device
if ImageEnView1.IO.SetAcquireSource(ieaTwain, Default_Device) then
ImageEnView1.IO.Acquire;

// Select a Twain scanner by name
ImageEnView1.IO.SetAcquireSource(ieaTwain, 'CanoScan FB620');

// Select the second WIA device
ImageEnView1.IO.SetAcquireSource(ieaWIA, 1);

// Acquire from the camera card on H drive
if ImageEnView1.IO.SetAcquireSource(ieaDCIM, 'H') then
ImageEnView1.IO.Acquire;

// Read and restore a source
var
sDevice : string;
ADevice : TIEAcquireSource;
begin
...
// Read the selected device
sDevice := AcquireSourceToStr(ImageEnView1.IO.SelectedAcquireSource);
...
end;

var
sDevice : string;
ADevice : TIEAcquireSource;
begin
...
// Restore the device selection
ADevice := StrToAcquireSource(sDevice);
ImageEnView1.IO.SetAcquireSource(ADevice.Api, ADevice.Location);
...
end;

See Also

- Acquire
- SelectedAcquireSource

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.SimplifiedParamsDialogs

TImageEnIO.SimplifiedParamsDialogs

Declaration

property SimplifiedParamsDialogs: Boolean;

Description

When set to true (the default), the File Format Parameters dialog (shown when clicking the "Advanced" button in ImageEn's Save dialog or using DoPreviews) will show a simplified set of parameters. Set to false to display a fuller set of parameters.

Example

The Parameters dialog for TIFF, using SimplifiedParamsDialogs = True:

The Parameters dialog for TIFF, using SimplifiedParamsDialogs = False:


TImageEnIO.StreamHeaders

TImageEnIO.StreamHeaders

Declaration

property StreamHeaders: boolean;

Description

If True, each SaveToStreamXXX method adds an additional special header as needed for multi-image streams.
When a special header is added, the images saved with SaveToStream*** aren't compatible with LoadFromFile*** methods.

Example

// Save ImageEnView1 and ImageEnView2 images in the file, images.dat
// Note: images.dat won't be loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('bmpimages.dat', fmCreate);
ImageEnView1.IO.StreamHeaders := True;
ImageEnView1.IO.SaveToStreamJPEG(fs);
ImageEnView2.IO.StreamHeaders := True;
ImageEnView2.IO.SaveToStreamJPEG(fs);
fs.free;
End;

// Save a single image in image.jpg
// image.jpg is loadable with LoadFromFileXXX methods
var
fs: TFileStream;
Begin
fs := TFileStream.Create('image.jpg');
ImageEnView1.IO.StreamHeaders := False;
ImageEnView1.IO.SaveToFileJPEG(fs);
End;


TImageEnIO.ThreadsCount

TImageEnIO.ThreadsCount

Declaration

property ThreadsCount: Integer;

Description

Returns the count of currently active threads. Valid only if AsyncMode is True.


TImageEnIO.TIEIOSeekDestination

TImageEnIO.TIEIOSeekDestination

Declaration

TIEIOSeekDestination = (ieioSeekFirst, ieioSeekPrior, ieioSeekNext, ieioSeekLast);

Description

Parameter | Description
ieioSeekFirst | Go to first page
ieioSeekPrior | Go to previous page (or first page)
ieioSeekNext | Go to next page (or last page)
ieioSeekLast | Go to last page


TImageEnIO.TwainAcquireClose

TImageEnIO.TwainAcquireClose

Declaration

procedure TwainAcquireClose;

Description

Closes a connection to a Twain device, which was opened with TwainAcquireOpen.

Demo

Demos\ImageAcquisition\Twain\TwainDemo.dpr

Example

ImageEnIO.TwainAcquireOpen;
...
ImageEnIO.TwainAcquireClose;


TImageEnIO.TwainAcquireOpen

TImageEnIO.TwainAcquireOpen

Declaration

function TwainAcquireOpen : boolean;

Description

Opens a connection to the selected scanner. It commonly used to perform a modeless acquisition from a Twain device. The result is false if it fails.

Whenever ImageEn gets an image, the OnAcquireBitmap event occurs.

See also: TwainAcquireClose

Demo

Demos\ImageAcquisition\Twain\TwainDemo.dpr

Example

ImageEnIO.TwainAcquireOpen;
...
ImageEnIO.TwainAcquireClose;


TImageEnIO.TwainParams

TImageEnIO.TwainParams

Declaration

property TwainParams: TIETwainParams;

Description

Use the TwainParams property to control acquisition from Twain scanners and cameras. You can enable/disable the standard user interface, set pixel type (Grayscale, RGB...), DPI, etc.

Note: Use TwainParams only when you need access to Twain specific parameters and functionality (when SelectedAcquireSource.Api is ieaTwain). For generic access to all image acquisitions sources (Twain, WIA, etc.) use AcquireParams instead.

Example

// Acquire a black/white (1bit) image from the default Twain device
ImageEnView1.IO.TwainParams.PixelType.CurrentValue := 0;
if ImageEnView1.IO.SetSource(ieaTwain, Default_Device) then
ImageEnView1.IO.Acquire;

Demo

Demos\ImageAcquisition\Twain\TwainDemo.dpr

See Also

- TIETwainParams
- AcquireParams
- SelectedAcquireSource

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnIO.Update

TImageEnIO.Update

Declaration

procedure Update();

Description

If TImageEnIO is attached to a TImageEnView (or inherited) object, Update will call the Update method of the relevant control.
If TImageEnIO is attached to a TBitmap object, Update sets its Modified property to True.


TImageEnIO.WaitThreads

TImageEnIO.WaitThreads

Declaration

procedure WaitThreads(Aborts: Boolean = false);

Description

Call WaitThreads to wait until all threads complete. If Aborts is True, then all threads will be aborted.

Example

ImageEnIO.LoadFromFile('C:\input.jpg');
ImageEnIO.AsyncMode := True; // Enable multithreading
ImageEnIO.SaveToFile('D:\output1.jpg'); // Save in thread 1
ImageEnIO.SaveToFile('D:\output2.jpg'); // Save in thread 2
ImageEnIO.WaitThreads(false); // Wait until all saving threads terminate


TImageEnIO.WIAParams

TImageEnIO.WIAParams

Declaration

property WIAParams: TIEWia;

Description

Provides access to WIA parameters and allows you to show dialogs and control WIA devices.

Note: Use WIAParams only when you need access to WIA specific functionality (when SelectedAcquireSource.Api is ieaWIA). For generic access to all image acquisitions sources (Twain, WIA, etc.) use AcquireParams instead.

Demo

Demos\ImageAcquisition\WIAScanner\WIAScanner.dpr

Examples

// select first device, set black/white (with threshold) and capture
ImageEnView.IO.WIAParams.SetItemProperty(WIA_IPA_DATATYPE, WIA_DATA_THRESHOLD, nil);
if ImageEnView1.IO.SetSource(ieaWIA, Default_Device) then
ImageEnView1.IO.Acquire;

// set dpi = 150 then capture
ImageEnView.IO.WIAParams.SetItemProperty(WIA_IPS_XRES, 150, nil);
ImageEnView.IO.WIAParams.SetItemProperty(WIA_IPS_YRES, 150, nil);
if ImageEnView1.IO.SetSource(ieaWIA, Default_Device) then
ImageEnView1.IO.Acquire;

See Also

- TIEWia
- AcquireParams
- SelectedAcquireSource

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.Aborting

TImageEnMIO.Aborting

Declaration

property Aborting: boolean;

Description

Applications can abort save/load processing by assigning True to the Aborting property. On loading, the image will be truncated. On saving, the file will be closed and truncated (and will be unreadable).
You can also read the Aborting property to know when aborting has occured (e.g. due to a failed load).

Note: The result from all LoadFromFile() methods returns false if Aborting has occured

Example

MyImageEnMView.LoadFromFileGIF('C:\MyGif.gif');
MyImageEnMView.Aborting then...

Which is the same as:
If MyImageEnMView.LoadFromFileGIF('C:\MyGif.gif') = False then...


TImageEnMIO.Acquire

TImageEnMIO.Acquire

Declaration

function Acquire : boolean;

Description

Perform a multiple image acquisition from the SelectedAcquireSource, which may be a camera card, Twain or WIA device.
SelectedAcquireSource is set when the user chooses a source if you have called SelectAcquireSource or manually set a source using SetAcquireSource.
If no image is selected (see Deselect) then Acquire will append after the last image.

Returns True if the acquisition succeeds.

Demo

Demos\ImageAcquisition\AllAcquire\AllAcquire.dpr

Examples

// Prompt the user to choose a scanner source and then acquire
if ImageEnMView1.MIO.SelectAcquireSource([ieaTwain, ieaWIA, ieaDCIM]) then
ImageEnMView1.MIO.Acquire;

// capture from the default WIA device
if ImageEnMView1.MIO.SetSource(ieaWIA, Default_Device) then
ImageEnMView1.MIO.Acquire;

// select the second Twain device and capture
if ImageEnMView1.MIO.SetSource(ieaTwain, 1) then
ImageEnMView1.MIO.Acquire;

// Capture from the Twain device named, CanoScan FB620
if ImageEnMView1.MIO.SetSource(ieaTwain, 'CanoScan FB620') then
ImageEnMView1.MIO.Acquire;

// Retrieve from the camera card listed as H:\ drive
if ImageEnMView1.MIO.SetSource(ieaDCIM, 'H') then
ImageEnMView1.MIO.Acquire;

// Capture without a dialog
ImageEnMView1.MIO.AcquireParams.VisibleDialog := False;
ImageEnMView1.MIO.Acquire;


TImageEnMIO.AcquireParams

TImageEnMIO.AcquireParams

Declaration

property AcquireParams : TIEAcquireParams;

Description

AcquireParams is a powerful interface that provides generic access to all image acquistion APIs: Twain, WIA and Portable Devices (WPD). AcquireParams accesses TwainParams, WIAParams and DCIMParams.

If you have called SelectAcquireSource or Acquire then you can access common parameters for the device without having to know the API

See the TIEAcquireParams object for more details.

Demo

Demos\ImageAcquisition\AllAcquire\AllAcquire.dpr


TImageEnMIO.AllowMalformedPages

TImageEnMIO.AllowMalformedPages

Declaration

property AllowMalformedPages: boolean;

Description

If true, malformed pages (due to loading a corrupted or non-standard TIFF) will be loaded (where possible).

Default: False (loading is aborted if malformed page is encountered)


TImageEnMIO.AttachedIEMBitmap

TImageEnMIO.AttachedIEMBitmap

Declaration

property AttachedIEMBitmap: TIECustomMultiBitmap

Description

Attach a TIEMultiBitmap object to the TImageEnMIO. Will be nil if the TImageEnIO is attached to a TImageEnMView.

Example

// Print all images in a TIFF file
MyMBitmap := TIEMultiBitmap.create;
AnImageEnMIO := TImageEnMIO.Create( nil );
AnImageEnMIO.AttachedIEMBitmap := MyMBitmap;
AnImageEnMIO.DoPrintPreviewDialog( '' );
...
AnImageEnMIO.Free;
MyMBitmap.Free;

See Also

- AttachedMView

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.AttachedMView

TImageEnMIO.AttachedMView

Declaration

property AttachedMView: TImageEnMView;

Description

Specifies the attached TImageEnMView component.

Note: To use a TImageEnMIO, you must attach it to a TImageEnMView or a TIEMultiBitmap.

See Also

- AttachedIEMBitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.AutoAdjustDPI

TImageEnMIO.AutoAdjustDPI

Declaration

property AutoAdjustDPI: boolean;

Description

When True and the last loaded/scanned image has a horizontal DPI not equal to its vertical DPI, ImageEn resizes the image to make DPIX=DPIY.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.CreateFromIEMBitmap

TImageEnMIO.CreateFromIEMBitmap

Declaration

constructor CreateFromBitmap(MBitmap: TIEMultiBitmap);

Description

Creates a new instance of TImageEnMIO, assigning the property AttachedIEMBitmap.

Example

// Print all images in a TIFF file
MyMBitmap := TIEMultiBitmap.create;
AnImageEnMIO := TImageEnMIO.CreateFromIEMBitmap( MyMBitmap );
AnImageEnMIO.DoPrintPreviewDialog( '' );
...
AnImageEnMIO.Free;
MyMBitmap.Free;


TImageEnMIO.DCIMParams

TImageEnMIO.DCIMParams

Declaration

property DCIMParams: TIEDcimAcquire;

Description

Use the DCIMParams property to handle retrieval of images from camera cards and connected devices (using the Windows Portable Devices API).

Note: Use DCIMParams only when you need access to DCIM specific functionality (when SelectedAcquireSource.Api is ieaDCIM). For generic access to all image acquisitions sources (Twain, WIA, etc.) use AcquireParams instead.

Demo

Demos\ImageAcquisition\Twain\TwainDemo.dpr

See Also

- TIEDcimAcquire
- AcquireParams
- SelectedAcquireSource

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.DefaultDitherMethod

TImageEnMIO.DefaultDitherMethod

Declaration

property DefaultDitherMethod: TIEDitherMethod;

Description

Specifies the dithering method to apply when a color image needs to be converted to black/white.
Default: ieThreshold

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.DialogsMeasureUnit

TImageEnMIO.DialogsMeasureUnit

Declaration

property DialogsMeasureUnit: TIEDialogsMeasureUnit

Description

Specifies the measurement unit used in the print preview dialog (see DoPrintPreviewDialog).

Example

ImageEnView.MIO.DialogsMeasureUnit := ieduCm;
ImageEnView.MIO.DoPrintPreviewDialog('');


TImageEnMIO.DoPreviews

TImageEnMIO.DoPreviews

Declaration

function DoPreviews(idx: integer; pp: TPreviewParams = [ppAll]): boolean;

Description

Executes the Previews dialog for the image idx allowing the user to view and change the parameters of image file formats.
idx can also be IEM_ALL_IMAGES to act on all images or IEM_SELECTED_IMAGES to act on the selected images in the attached TImageEnMView.
pp is the set of the image format parameters to be displayed by the dialog.

Example

ImageEnMView1.Clear; // Clear TImageEnMView
ImageEnMView1.MIO.LoadFromFile( 'C:\myimage.gif' ); // Load GIF image
ImageEnMView1.MIO.DoPreviews( IEM_ALL_IMAGES, [ppGIF] ); // Set GIF parameters (background, transparency...) for ALL images
ImageEnMView1.MIO.SaveToFile( 'D:\newimage.gif' ); // Save image with new parameters


TImageEnMIO.DoPrintPreviewDialog

TImageEnMIO.DoPrintPreviewDialog

Declaration

function DoPrintPreviewDialog(const TaskName: string; PrintAnnotations: boolean; const Caption: string; ThumbnailPrinting: Boolean): boolean;

Description

Executes the multi-page print preview dialog. This function is like DoPrintPreviewDialog of TImageEnIO, but allows working with multiple pages.
Specifes the text that describes the task in the Print Manager and network header pages
Parameter | Description
FC>TaskName |
FC>PrintAnnotations | If true and the image contains imaging or ImageEn annotations they will be printed
FC>Caption | Specifies the caption of the Print Preview dialog
FC>ThumbnailPrinting | If true then it defaults to printing of thumbnails, otherwise the default is read from PrintPreviewParams

Note: The language used in the dialog is controlled by MsgLanguage. The styling can also be adjusted using UseButtonGlyphsInDialogs

See Also

- PrintPreviewParams
- DialogsMeasureUnit

Example

ImageEnMView1.MIO.DoPrintPreviewDialog('');


TImageEnMIO.DuplicateCompressionInfo

TImageEnMIO.DuplicateCompressionInfo

Declaration

procedure DuplicateCompressionInfo;

Description

Clone the compression information of page 0 to all pages.


TImageEnMIO.ExecuteOpenDialog

TImageEnMIO.ExecuteOpenDialog

Declaration

function ExecuteOpenDialog(const InitialDir : WideString = ''; const InitialFileName : WideString = ''; AlwaysAnimate : boolean = False;
FilterIndex: integer = 0; const ExtendedFilters : WideString = ''; MultiSelect : boolean = False;
const Title : WideString = ''; const Filter : WideString = ''; DefaultFilter : TIOFileType = -1;
LimitToFileType : TIOFileType = -1) : String; overload;
function ExecuteOpenDialog(const Title : WideString; DefaultFilter : TIOFileType; LimitToFileType : TIOFileType = -1; AlwaysAnimate : boolean = False; MultiSelect : boolean = False) : String; overload;

Description

Prompts the user with the open dialog to select an image to load. It encapsulates the TOpenImageEnDialog component.

Parameter | Description
InitialDir | Folder displayed on opening (leave as '' for no default)
InitialFileName | Default file name with extension (leave as '' for no default)
AlwaysAnimate | Enable to animate GIF and AVI (without user needing to click the play button). Default is False
FilterIndex | The index of the default selected item in the filter (one-based). Default is 0.Note: While this can change, the first five items are generally: 1: Common graphics formats 2: All Graphics formats 3: JPEG 4: TIFF 5: GIFHowever, it is generally safer to use the DefaultFilter parameter instead
ExtendedFilters | Any additional file formats to add to the filter (example: 'Fun Bitmap|*.fun;*.fan')
MultiSelect | Allow selection of multiple files. The returned string will contain a list of filename separated by the "|" character (e.g. 'C:\one.jpg|C:\two.jpg')
Title | The dialog title. If unspecified the Windows default title is used
Filter | Override the default filter with a custom one (e.g. 'JPEG Image (JPG)|*.jpg|GIF Image (GIF)|*.gif')
DefaultFilter | Specify the file type that is displayed by default. This setting overrides FilterIndex, but is ignored if you have specified InitialFileName. Default is -1
LimitToFileType | Limits the filter to a specified ImageEn file type, plus "All Supported Types" and "All Files" (only relevant if Filter is not set)

Returns a null string ('') if the user clicks Cancel.

Examples

// Prompt to load a file into an ImageEnMView
sFilename := ImageEnMView1.MIO.ExecuteOpenDialog;
if sFilename <> '' then
ImageEnMView1.MIO.LoadFromFile(sFileName);

// Prompt to load a file, defaulting to AVI format (second overloaded method)
sFilename := ImageEnMView1.MIO.ExecuteOpenDialog('Select your video', ioAVI);
if sFilename <> '' then
ImageEnMView1.MIO.LoadFromFile(sFileName);

// Prompt to load a file, forcing GIF format (second overloaded method)
sFilename := ImageEnMView1.MIO.ExecuteOpenDialog('Select an Image', -1, ioGIF);
if sFilename <> '' then
ImageEnMView1.MIO.LoadFromFile(sFileName);


TImageEnMIO.ExecuteSaveDialog

TImageEnMIO.ExecuteSaveDialog

Declaration

function ExecuteSaveDialog(const InitialDir : WideString = ''; const InitialFileName : WideString = ''; AlwaysAnimate : boolean = False;
FilterIndex: integer = 0; const ExtendedFilters : WideString = ''; const Title : WideString = '';
const Filter : WideString = ''; DefaultFilter : TIOFileType = -1; LimitToFileType : TIOFileType = -1) : String; overload;
function ExecuteSaveDialog(const Title : WideString; DefaultFilter : TIOFileType; LimitToFileType : TIOFileType = -1; AlwaysAnimate : boolean = False) : String; overload;

Description

Prompts the user with a save dialog to specify a save filename. It encapsulates the TSaveImageEnDialog component.

Parameter | Description
InitialDir | Folder displayed on opening (leave as '' for no default)
InitialFileName | Default file name with extension (leave as '' for no default)
AlwaysAnimate | Enable to animate GIF and AVI (without user needing to click the play button). Default is False
FilterIndex | The index of the default selected item in the filter (one-based). Default is 0.Note: While this can change, the first five items are generally: 1: Common graphics formats 2: All Graphics formats 3: JPEG 4: TIFF 5: GIFHowever, it is generally safer to use the DefaultFilter parameter instead
ExtendedFilters | Any additional file formats to add to the filter (example: 'Fun Bitmap|*.fun;*.fan')
Title | The dialog title. If unspecified the Windows default title is used
Filter | Override the default filter with a custom one (e.g. 'JPEG Image (JPG)|*.jpg|GIF Image (GIF)|*.gif')
DefaultFilter | Specify the file type that is displayed by default. This setting overrides FilterIndex, but is ignored if you have specified InitialFileName. Default is -1
LimitToFileType | Limits the filter to a specified ImageEn file type. Default is -1

Returns a null string ('') if the user clicks Cancel.

Examples

// Prompt to save a file in an ImageEnMView
sFilename := ImageEnMView1.MIO.ExecuteSaveDialog;
if sFilename <> '' then
ImageEnMView1.MIO.SaveToFile(sFileName);

// Prompt to save a file, defaulting to TIFF format (second overloaded method)
sFilename := ImageEnMView1.MIO.ExecuteSaveDialog('Save your File', ioTIFF);
if sFilename <> '' then
ImageEnMView1.MIO.SaveToFile(sFileName);

// Prompt to save a file, forcing GIF format (second overloaded method)
sFilename := ImageEnMView1.MIO.ExecuteSaveDialog('Save your File', -1, ioGIF);
if sFilename <> '' then
ImageEnMView1.MIO.SaveToFile(sFileName);


TImageEnMIO.FilteredAdjustDPI

TImageEnMIO.FilteredAdjustDPI

Declaration

property FilteredAdjustDPI: boolean;

Description

The FilteredAdjustDPI property is valid when AutoAdjustDPI is true. If set to True, ImageEn applies a resampling filter to the image to enhance quality.
It can slow down the loading process.


TImageEnMIO.IEMBitmap

TImageEnMIO.IEMBitmap

Declaration

property IEMBitmap: TIECustomMultiBitmap

Description

Contains the attached TIEMultiBitmap object or the IEMBitmap of the attached TImageEnMView.

Note: Unlike AttachedIEMBitmap, IEMBitmap is never nil.


TImageEnMIO.ImageEnVersion

TImageEnMIO.ImageEnVersion

Declaration

property ImageEnVersion: string;

Description

A published property returning the ImageEn version as string.


TImageEnMIO.LoadFromBuffer

TImageEnMIO.LoadFromBuffer

Declaration

procedure LoadFromBuffer(Buffer: pointer; BufferSize: integer; Format: TIOFileType = ioUnknown);

Description

Load an image or a multi-page image from the specified buffer.

Parameter | Description
Buffer | The buffer pointer.
BufferSize | The buffer length in bytes.
Format | Specifies the expected file format. If Format is ioUnknown, then try to find the format automatically.

Example

ImageEnMView1.MIO.LoadFromBuffer(mybuffer, mybufferlength, ioJPEG);


TImageEnMIO.LoadFromFile

TImageEnMIO.LoadFromFile

Declaration

function LoadFromFile(const FileName: string; bCheckUnknown: Boolean = False): Boolean; overload;
function LoadFromFile(const FileName: string; FileFormat: TIOFileType): Boolean; overload;

Description

Load a multi-image file into the attached TImageEnMView or TIEMultiBitmap.
With first overload the format is detected from the filename extension (e.g. ".gif" files will be loaded as GIF). With second, you can force loading of the file as a specific type.

FileName is the file name including extension.
FileFormat specifies the image format. If specified as ioUnknown, it will use the file's extension.
bCheckUnknown if the file extension is not known or is incorrect (e.g. a GIF file named MyImage.jpg), then loading will be attempted by analyzing the file content (in the same way as LoadFromFileAuto)

Result will be false if the file is not a recognized file type (Aborting will be true). Loading errors due to a file not being available will raise an exception.
However, if you set bCheckUnknown to true, ImageEn will try to load the file even if it has an unknown or incorrect file extension.

ImageEn supports loading of multiple frames from GIF, TIFF, AVI, DCX, DICOM, ICO and CUR formats. Loading of PDF format is also supported if a relevant plug-in is installed.

Note: Existing content is not cleared

Example

// Load an AVI into our TImageEnMView
ImageEnMView1.Clear;
ImageEnMView1.MIO.LoadFromFile('C:\film.avi');

// Load a file (which is probably a TIFF but may have the wrong extension)
ImageEnMView1.MIO.LoadFromFile('C:\pages.tiff', True);

// Show an error on load failure
if ImageEnMView1.MIO.LoadFromFile(sFilename) = False then
ShowMessage('This is not a supported file type');

// Load file as a .GIF
ImageEnMView1.MIO.LoadFromFile('C:\myimage.xyz', ioGIF);

See Also

- LoadFromFileAuto

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromFileAuto

TImageEnMIO.LoadFromFileAuto

Declaration

function LoadFromFileAuto(const FileName: string): Boolean;

Description

Load an image from file into the attached TImageEnMView or TIEMultiBitmap. To detect the file format it analyzes the file content, it does not use the filename extension.
Result will be false if the file is not a recognized file type (Aborting will be true). Loading errors due to a file not being available will raise an exception.

ImageEn supports loading of multiple frames from GIF, TIFF, AVI, DCX, DICOM, ICO and CUR formats. Loading of PDF format is also supported if a relevant plug-in is installed.

Note: Existing content is not cleared

Example

ImageEnMView1.MIO.LoadFromFileAuto('input.dat');

ImageEnMView1.MIO.LoadFromFileAuto('input.tif'); // a tiff or a RAW?

if ImageEnMView1.MIO.LoadFromFileAuto(sFilename) = False then
ShowMessage('Not a supported file type!');

See Also

- LoadFromFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromFileAVI

TImageEnMIO.LoadFromFileAVI

Declaration

function LoadFromFileAVI(const FileName: string): Boolean;

Description

Load an AVI file into the attached TImageEnMView or TIEMultiBitmap.
Result will be false if the file is not AVI format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Notes:
- Existing content is not cleared
- You can alternatively use LoadFromMediaFile


TImageEnMIO.LoadFromFileCUR

TImageEnMIO.LoadFromFileCUR

Declaration

function LoadFromFileCUR(const FileName: string): Boolean;

Description

Loads all images contained in an a cursor resource file into the attached TImageEnMView or TIEMultiBitmap.
Result will be false if the file is not CUR format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromFileDCX

TImageEnMIO.LoadFromFileDCX

Declaration

function LoadFromFileDCX(const FileName: string): Boolean;

Description

Loads all images contained in a multi-image DCX file into the attached TImageEnMView or TIEMultiBitmap.
Result will be false if the file is not DCX format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromFileDICOM

TImageEnMIO.LoadFromFileDICOM

Declaration

function LoadFromFileDICOM(const FileName: string): Boolean;

Description

Loads a DICOM image or a multipage DICOM into the attached TImageEnMView or TIEMultiBitmap. This method is necessary when the DICOM file hasn't extension and hasn't a valid DICOM header, but you are sure that is a DICOM file.
Result will be false if the file is not DICOM format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Notes:
- DICOM parameters are stored in DICOM_Tags
- Existing content is not cleared

Example

ImageEnMView1.MIO.LoadFromFileDICOM('heart-sequence');


TImageEnMIO.LoadFromFileGIF

TImageEnMIO.LoadFromFileGIF

Declaration

function LoadFromFileGIF(const FileName: string): Boolean;

Description

Load a GIF file into the attached TImageEnMView or TIEMultiBitmap.
Result will be false if the file is not GIF format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: Existing content is not cleared

Demo

Demos\ImageEditing\AnimatedGIF\AnimatedGIF.dpr


TImageEnMIO.LoadFromFileICO

TImageEnMIO.LoadFromFileICO

Declaration

function LoadFromFileICO(const FileName: string): Boolean;

Description

Load all images contained in a multi-image ICO file into the attached TImageEnMView or TIEMultiBitmap.
Result will be false if the file is not ICO format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromFilePDF

TImageEnMIO.LoadFromFilePDF

Declaration

function LoadFromFilePDF(const FileName: string): Boolean;

Description

Loads a PDF image or a multipage PDF into the attached TImageEnMView or TIEMultiBitmap using either the TIEMiscPluginsImageMagick plug-in or the WPPDF commercial plug-in.
This method is necessary when the PDF file hasn't extension and hasn't a valid PDF header, but you are sure that is a PDF file.
Result will be false if the file is not PDF format or no PDF plug-ins are available (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: Existing content is not cleared

Example

ImageEnMView1.Clear;
ImageEnMView1.MIO.LoadFromFilePDF('c:\test.pdf');


TImageEnMIO.LoadFromFiles

TImageEnMIO.LoadFromFiles

Declaration

procedure LoadFromFiles(const FileName: string; AutoDetect: boolean=false; LoadWhenViewed: boolean=false);

Description

Loads multiple files separated by '|' character.
If AutoDetect is true then ImageEn tries to detect file type from header, otherwise it looks only the file extension.
If LoadWhenViewed is true each file is actually loaded only when it needs to be displayed.

Note: Existing content is not cleared

Examples

// Load three files
ImageEnMView1.MIO.LoadFromFiles('one.jpg|two.jpg|three.jpg');

// Execute the open dialog and load the returned list of selected files
filenames := ImageEnMView1.MIO.ExecuteOpenDialog('', '', true, 1, '', true);
ImageEnMView1.MIO.LoadFromFiles(filenames);


TImageEnMIO.LoadFromFileTIFF

TImageEnMIO.LoadFromFileTIFF

Declaration

function LoadFromFileTIFF(const FileName: string): Boolean;

Description

Load a TIFF file into the attached TImageEnMView or TIEMultiBitmap.
Result will be false if the file is not TIFF format (Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromMediaFile

TImageEnMIO.LoadFromMediaFile

Declaration

procedure LoadFromMediaFile(const FileName: string); dynamic;

Description

Load a video using DirectShow. It allows loading of video formats that ImageEn does not natively support such as WMV and MPEG. It is also useful with AVI files when LoadFromFileAVI fails.


TImageEnMIO.LoadFromStream

TImageEnMIO.LoadFromStream

Declaration

function LoadFromStream(Stream: TStream; FileFormat: TIOFileType = ioUnknown): Boolean;

Description

Load an image (or multiple image) from the specified stream into the attached TImageEnMView (at SelectedImage) or TIEMultiBitmap.
If FileFormat is ioUnknown the file format is detected by reading the image header (using FindStreamFormat).
The result will be false if an error is encountered, e.g. the file in the stream is not a recognized format (Aborting will be true).

Notes:
- AVI is not supported
- Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromStreamCUR

TImageEnMIO.LoadFromStreamCUR

Declaration

function LoadFromStreamCUR(Stream: TStream): Boolean;

Description

Loads all images contained in a multi-image CUR stream into the attached TImageEnMView or TIEMultiBitmap.
The result will be false if an error is encountered, e.g. the file in the stream is not CUR format (Aborting will be true).

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromStreamDCX

TImageEnMIO.LoadFromStreamDCX

Declaration

function LoadFromStreamDCX(Stream: TStream): Boolean;

Description

Loads all images contained in a multi-image DCX stream into the attached TImageEnMView or TIEMultiBitmap.
The result will be false if an error is encountered, e.g. the file in the stream is not DCX format (Aborting will be true).

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromStreamDICOM

TImageEnMIO.LoadFromStreamDICOM

Declaration

function TImageEnMIO.LoadFromStreamDICOM(Stream: TStream): Boolean;

Description

Loads a DICOM image or sequence of images from stream into the attached TImageEnMView or TIEMultiBitmap. The result will be false if an error is encountered, e.g. the file in the stream is not DICOM format (Aborting will be true).

Notes:
- DICOM parameters are stored in DICOM_Tags
- Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromStreamGIF

TImageEnMIO.LoadFromStreamGIF

Declaration

function LoadFromStreamGIF(Stream: TStream): Boolean;

Description

Load a GIF from a stream into the attached TImageEnMView (at SelectedImage) or TIEMultiBitmap.
The result will be false if an error is encountered, e.g. the file in the stream is not GIF format (Aborting will be true).

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromStreamICO

TImageEnMIO.LoadFromStreamICO

Declaration

function LoadFromStreamICO(Stream: TStream): Boolean;

Description

Load all images contained in a multi-image ICO stream into the attached TImageEnMView or TIEMultiBitmap.
The result will be false if an error is encountered, e.g. the file in the stream is not ICO format (Aborting will be true).

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromStreamPDF

TImageEnMIO.LoadFromStreamPDF

Declaration

function TImageEnMIO.LoadFromStreamPDF(Stream: TStream): Boolean;

Description

Loads a PDF from a stream into the attached TImageEnMView or TIEMultiBitmap using either the TIEMiscPluginsImageMagick plug-in or the WPViewPDF commercial plug-in.
The result will be false if an error is encountered, e.g. the file in the stream is not PDF format or a PDF plug-in is not found(Aborting will be true).

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromStreamTIFF

TImageEnMIO.LoadFromStreamTIFF

Declaration

function LoadFromStreamTIFF(Stream: TStream): Boolean;

Description

Load a TIFF from a stream into the attached TImageEnMView (at SelectedImage) or TIEMultiBitmap.
The result will be false if an error is encountered, e.g. the file in the stream is not TIFF format (Aborting will be true).

Note: Existing content is not cleared

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.LoadFromURL

TImageEnMIO.LoadFromURL

Declaration

procedure LoadFromURL(URL: string);

Description

Load a multi-page file from the network using the HTTP or FTP protocol. URL must have the syntax:
'http://domain[:port]/resource'
'https://domain[:port]/resource'
'ftp://user:password@domain[:port]/resource'

It is possible to set proxy parameters using ProxyAddress, ProxyUser and ProxyPassword properties.

Note: This function doesn't support password authentication for HTTP, while it is necessary for FTP (also connecting to anonymous server).

Example

// load from standard port 80
ImageEnMView.MIO.LoadFromURL('http://www.imageen.com/image.gif');

// load from port 8080
ImageEnMView.MIO.LoadFromURL('http://www.imageen.com:8080/image.gif');

// load from FTP
ImageEnMView.MIO.LoadFromURL('ftp://space:shuttle@ftp.imageen.com/Pictures/test.jpg')


TImageEnMIO.NativePixelFormat

TImageEnMIO.NativePixelFormat

Declaration

property NativePixelFormat: boolean;

Description

When True, paletted and gray scale images are not converted to 24 bit.
By default, ImageEn converts all paletted images to 24 bit (true color). Only black/white images are stored in the original format with 1 bit per pixel.

Note: If you sett NativePixelFormat=True, you will be unable to execute some image processing operations


TImageEnMIO.OnAcquireBitmap

TImageEnMIO.OnAcquireBitmap

Declaration

property OnAcquireBitmap: TIEAcquireBitmapEvent;

Description

Occurs whenever the scanner acquires an image.
Parameter | Description
Sender | Will be either a TImageEnIO or TImageEnMIO control
ABitmap | A TIEBitmap object that contains the acquired image
DpiX, DpiY | Tne DPI of the acquired image
Handled | Setting Handled to True causes ImageEn to ignore this image (i.e. the current image won't be inserted into the TImageEnMView control, if attached). Handled has no effect when acquiring via a TImageEnView/TImageEnIO

Note: Handled defaults to False.

Example

procedure TForm1.ImageEnMView1AcquireBitmap(Sender: TObject; ABitmap: TIEBitmap; DpiX, DpiY: Integer; var Handled: boolean);
begin
// Skip retrieval of images that are less than 500x500 pixels
If ( ABitmap.Width < 500 ) or ( ABitmap.Height < 500 ) then
Handled := True;
end;


TImageEnMIO.OnAcquireClose

TImageEnMIO.OnAcquireClose

Declaration

property OnAcquireClose: TNotifyEvent;

Description

Occurs when the user closes the acquire dialog, open using TwainAcquireOpen.


TImageEnMIO.OnAfterAcquireBitmap

TImageEnMIO.OnAfterAcquireBitmap

Declaration

property OnAfterAcquireBitmap: TIEAfterAcquireBitmapEvent;

Description

Occurs after an image is acquired from a scanner and added to the image list.


TImageEnMIO.OnDoPreviews

TImageEnMIO.OnDoPreviews

Declaration

property OnDoPreviews: TIEDoPreviewsEvent;

Description

Occurs before DoPreviews is called or the "Advanced" button is clicked (Save dialog).
You can avoid displaying the dialog by setting the Handled parameter to True (and displaying a custom dialog).


TImageEnMIO.OnFinishWork

TImageEnMIO.OnFinishWork

Declaration

property OnFinishWork: TNotifyEvent;

Description

Occurs when an input/output task ends. It is useful for resetting progress bars, or to know when a thread ends in asynchronous mode.


TImageEnMIO.OnProgress

TImageEnMIO.OnProgress

Declaration

property OnProgress: TIEProgressEvent;

Description

Occurs on input/output operations. If you are using it to update a progress bar then you can reset it in the OnFinishWork event.


TImageEnMIO.Params

TImageEnMIO.Params

Declaration

property Params[idx: integer]: TIOParams;

Description

Provides access to the TIOParams object for the image idx to modify image parameters (e.g. bits per sample, compression, etc).
The parameters are updated when you load from files or streams. You can modify these parameters before saving images.

Note: If this TImageEnMIO is connected to a TImageEnMView which is being filled "on demand", then <fc>Params will not be valid until the image is loaded. Either use the OnImageLoaded to delay until the image/params are ready, or force loading by using EnsureImageLoaded

Example

// Change the compression type of a TIFF and save it
for I := 0 to ImageEnMIO1.ParamsCount - 1 do
ImageEnMIO1.Params[ I ].TIFF_Compression := ioTIFF_G4FAX;
ImageEnMIO1.SaveToFileTIFF( ... );


TImageEnMIO.ParamsCount

TImageEnMIO.ParamsCount

Declaration

property ParamsCount: integer;

Description

Returns the number of elements in the Params property (which will be equivalent to the number of images contained in the attached TImageEnMView or TIEMultiBitmap).

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.ParamsFromBuffer

TImageEnMIO.ParamsFromBuffer

Declaration

function ParamsFromBuffer(Buffer: Pointer; BufferSize: Integer; Format: TIOFileType = ioUnknown): Boolean;

Description

Loads image parameters (but not the actual image) from the specified buffer. Result is false if a loading error is encountered due to a corrupt or non-standard image format.

Parameter | Description
Buffer | The buffer pointer
BufferSize | The buffer length in bytes.
Format | Specifies the expected file format. If Format is ioUnknown, then try to find the format automatically

See also: LoadFromBuffer

Example

ImageEnView1.IO.ParamsFromBuffer(mybuffer, mybufferlength, ioJPEG);


TImageEnMIO.ParamsFromFile

TImageEnMIO.ParamsFromFile

Declaration

function ParamsFromFile(const FileName: WideString; Format: TIOFileType = ioUnknown): Boolean; overload;
function ParamsFromFile(const FileName: WideString; bUseExtension: Boolean): Boolean; overload;

Description

Reads the image properties without loading the image (and without changing the current image). Result is false if a loading error is encountered due to a corrupt or unknown image format.

FileName is the file name with full path.
Format is the file format that the stream or file contains. If ioUnknown is specified then the file content is analyzed to determine the format.
bUseExtension determines that the file format is based on the extension of the file, e.g. image.jpeg will be processed as ioJPEG format.

Examples

// Load the parameters of an image (which may be a TIFF file, but we will examine the content to be sure)
ImageEnView1.IO.ParamsFromFile( 'C:\alfa.tiff' );
Label1.Caption := 'alfa.tiff contains ' + inttostr(ImageEnView1.IO.Params[0].ImageCount) + ' images';

// Load the parameters of a TIFF
ImageEnView1.IO.ParamsFromFile( 'C:\alfa.tiff', ioTIFF );
Label1.Caption := 'alfa.tiff contains ' + inttostr(ImageEnView1.IO.Params[0].ImageCount) + ' images';

// Load the parameters of a file. It will be assumed to a TIFF because of the file extension
ImageEnView1.IO.ParamsFromFile( 'C:\alfa.tiff', True );
Label1.Caption := 'alfa.tiff contains ' + inttostr(ImageEnView1.IO.Params[0].ImageCount) + ' images';


TImageEnMIO.ParamsFromStream

TImageEnMIO.ParamsFromStream

Declaration

function ParamsFromStream(Stream: TStream; Format: TIOFileType = ioUnknown): Boolean;

Description

Reads the image properties without loading the image (and without changing the current image). Result is false if a loading error is encountered due to a corrupt or unknown image format.

Stream is a TStream that contains the image.
Format is the file format that the stream or file contains. If ioUnknown is specified then the file content is analyzed to determine the format.


TImageEnMIO.PreviewFont

TImageEnMIO.PreviewFont

Declaration

property PreviewFont: TFont;

Description

If PreviewFontEnabled is set to True then PreviewFont specifies the font used in the Previews dialog. Ensure the size of font matches the labels length.

Example

ImageEnMIO1.PreviewFont.Name := 'MS Times New Roman';
ImageEnMIO1.PreviewFontEnabled := True;


TImageEnMIO.PreviewFontEnabled

TImageEnMIO.PreviewFontEnabled

Declaration

property PreviewFontEnabled: Boolean;

Description

When True, you can use PreviewFont to specify a custom font for the Preview dialogs.

Example

ImageEnMIO1.PreviewFont.Name := 'MS Times New Roman';
ImageEnMIO1.PreviewFontEnabled := True;


TImageEnMIO.PreviewPrintImages

TImageEnMIO.PreviewPrintImages

Declaration

procedure PreviewPrintImages(DestBitmap: TBitmap; MaxBitmapWidth, MaxBitmapHeight: integer; PrinterObj: TPrinter; Columns: integer; Rows: integer; HorizSpace: double; VertSpace: double; PrintSelected: boolean; MarginLeft: double; MarginTop: double; MarginRight: double; MarginBottom: double; DrawBox: boolean; DrawText: boolean; DrawShadow: boolean; BoxColor: TColor = clBlack; iPageNo : Integer = 0);

Description

Display a preview of printing of images (all or just selected) in the attached TImageEnMView or TIEMultiBitmap as rows and columns of thumbnails.

Parameter | Description
DestBitmap | Destination bitmap where to paint the preview. Resizes DestBitmap as needed.
MaxBitmapWidth | Maximum destination bitmap width. Preview will be stretched to match this size.
MaxBitmapHeight | Maximum destination bitmap height. Preview will be stretched to match this size.
Printer | This is the Printer object. PreviewPrintImage need it to know printer settings as orientation or page sizes.
Columns | Specifies how arrange images, specifying the number of columns.
Rows | Specifies how arrange images, specifying the number of rows.
HorizSpace | The horizontal space in inches between images.
VertSpace | The vertical space in inches between images.
PrintSelected | Set to true to print only selected images.
MarginLeft | Page left margin in inches. By specifying all zero values, no margins are used.
MarginTop | Page top margin in inches. By specifying all zero values, no margins are used.
MarginRight | Page right margin in inches. By specifying all zero values, no margins are used.
MarginBottom | Page bottom margin in inches. By specifying all zero values, no margins are used.
DrawBox | Set to true to draw a box around the images (image space). Image is always stretched to maintain aspect ratio.
DrawText | Set to true to draw text associated with every image.
DrawShadow | Set to true to draw a shadow around the image.
BoxColor | Specifies the color of the box around the image if DrawBox is True.
iPageNo | The page of thumbnails to preview. 0 shows the first page, 1 the second, etc.

Example

// Paint and display the preview of thumbnails of the ImageEnMView using a TImageEnView component
ImageEnMView1.MIO.PreviewPrintImages(ImageEnView2.Bitmap, ImageEnView2.Width, ImageEnView2.Height, Printer, 6, 4, ...);


TImageEnMIO.PreviewsParams

TImageEnMIO.PreviewsParams

Declaration

property PreviewsParams: TIOPreviewsParams;

Description

Specifies the features of the input/output preview dialog.

Example

// Show preview by default
ImageEnMView1.MIO.PreviewsParams := ImageEnMView1.MIO.PreviewsParams + [ ioppDefaultLockPreview ];


TImageEnMIO.PrintImage

TImageEnMIO.PrintImage

Declaration

procedure PrintImage(ImageIndex : integer; PrtCanvas : TCanvas = nil; MarginLeft : double = 1; MarginTop : double = 1; MarginRight : double = 1; MarginBottom : double = 1; VerticalPos : TIEVerticalPos = ievpCenter; HorizontalPos : TIEHorizontalPos = iehpCenter; Size : TIESize = iesFitToPage; SpecWidth : double = 0; SpecHeight : double = 0; GammaCorrection : double = 1; PrintAnnotations: boolean = False);

Description

Print the specified image by specifying margins, vertical position, horizonal position and size.

Parameter | Description
ImageIndex | Index of the page/image to print (0 = first image). IEM_SELECTED_IMAGES can be specified for ImageIndex to print all images that the user has selected in the TImageEnMView or IEM_ALL_IMAGES to print all images in the TImageEnMView
PrtCanvas | The printing canvas. Specify nil to use the Printer.Canvas
MarginLeft | Left page margin in inches (Specify zero for no margin)
MarginTop | Top page margin in inches (Specify zero for no margin)
MarginRight | Right page margin in inches (Specify zero for no margin)
MarginBottom | Bottom page margin in inches (Specify zero for no margin)
VerticalPos | Vertical alignment of the image on the page, e.g. ievpCenter to center
HorizontalPos | Horizontal alignment of the image on the page, e.g. iehpCenter to center
Size | How the image should be sized for printing
SpecWidth | The absolute width of the image in inches if Size = iesSpecifiedSize. The number of pages wide if Size = iesMultiplePages
SpecHeight | The absolute height of the image in inches if Size = iesSpecifiedSize. The number of pages high if Size = iesMultiplePages
GammaCorrection | Level of gamma correction, use 1 to disable gamma correction
FC>PrintAnnotations | If true and the image contains imaging or ImageEn annotations they will be printed

Example

// Print the first image in center of the page with original sizes
Printer.BeginDoc;
ImageEnMView1.MIO.PrintImage(0, Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesNormal, 0, 0, 1);
Printer.EndDoc;

// Print the selected image(s) stretched to the page center (respecting the proportions)
Printer.BeginDoc;
ImageEnMView1.MIO.PrintImage(IEM_SELECTED_IMAGES, Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesFitToPage, 0, 0, 1);
Printer.EndDoc;

// Print the first image as a poster, four pages wide and six pages high
Printer.BeginDoc;
ImageEnMView1.MIO.PrintImage(0, Printer.Canvas, 0, 0, 0, 0, ievpCenter, iehpCenter, iesMultiplePages, 4, 6, 1);
Printer.EndDoc;


TImageEnMIO.PrintImagePos

TImageEnMIO.PrintImagePos

Declaration

procedure PrintImagePos(ImageIndex: integer; PrtCanvas: TCanvas; x, y: double; Width, Height: double; GammaCorrection: double = 1.0; PrintAnnotations: boolean = False);

Description

Print the specified image at an absolute position and size.

Parameter | Description
ImageIndex | Index of the page/image to print (0 = first image). IEM_SELECTED_IMAGES can be specified for ImageIndex to print all images that the user has selected in the TImageEnMView or IEM_ALL_IMAGES to print all images in the TImageEnMView
PrtCanvas | The printing canvas. Specify nil to use the Printer.Canvas
x | Left position to print image (in inches)
y | Top position to print image (in inches)
Width | Width to print image (in inches)
Height | Height to print image (in inches)
GammaCorrection | Level of gamma correction, use 1 to disable gamma correction
FC>PrintAnnotations | If true and the image contains imaging or ImageEn annotations they will be printed

Example

// print the image first page at the position 2, 2 and height 10 and width 10 (stretch the image)
Printer.BeginDoc;
ImageEnMView1.MIO.PrintImagePos(0, Printer.Canvas, 2, 2, 10, 10, 1);
Printer.EndDoc;


TImageEnMIO.PrintImages

TImageEnMIO.PrintImages

Declaration

procedure PrintImages(Columns: integer; Rows: integer; HorizSpace: double; VertSpace: double; PrintSelected: boolean; MarginLeft: double; MarginTop: double; MarginRight: double; MarginBottom: double; DrawBox: boolean; DrawText: boolean; DrawShadow: boolean; BoxColor: TColor = clBlack; PrintAnnotations: boolean = False);

Description

Print multiple images (all or just selected) in the attached TImageEnMView or TIEMultiBitmap as rows and columns of thumbnails.

Parameter | Description
Columns | Specifies how arrange images, specifying the number of columns.
Rows | Specifies how arrange images, specifying the number of rows.
HorizSpace | The horizontal space in inches between images.
VertSpace | The vertical space in inches between images.
PrintSelected | Set to true to print only selected images.
MarginLeft | Page left margin in inches. By specifying all zero values, no margins are used.
MarginTop | Page top margin in inches. By specifying all zero values, no margins are used.
MarginRight | Page right margin in inches. By specifying all zero values, no margins are used.
MarginBottom | Page bottom margin in inches. By specifying all zero values, no margins are used.
DrawBox | Set to true to draw a box around the images (image space). The image is always stretched to maintain aspect ratio.
DrawText | Set to true to draw text associated with every image.
DrawShadow | Set to true to draw a shadow around the image.
BoxColor | Specifies the color of the box around the image if DrawBox is True.

Note: If the component is attached only to a TIEMultiBitmap then you should specify the font of Printer.Canvas before printing

Example

// Printing from a TImageEnMView
Printer.BeginDoc;
ImageEnMView1.MIO.PrintImages(6, 4);
Printer.EndDoc;

// Printing images in a TIEMBitmap
MIO := TImageEnIO.Create;
MIO.AttachedIEMBitmap := mbmp;
Printer.BeginDoc;
Printer.Canvas.Font.Name := 'Tahoma';
Printer.Canvas.Font.Size := 14;
MIO.PrintImages(6, 4);
Printer.EndDoc;
MIO.Free;


TImageEnMIO.PrintImagesToFile

TImageEnMIO.PrintImagesToFile

Declaration

procedure PrintImagesToFile(const sFilename : string; iJpegQuality : Integer; iImageWidth, iImageHeight: integer; iColumns : integer; iRows : integer; iHorzSpace : Integer = 6; iVertSpace : Integer = 6; bPrintSelectedOnly: Boolean = False; iHorzMargin : Integer = 12; iVertMargin : Integer = 12; bDrawBox : Boolean = False; bDrawText : Boolean = True; bDrawShadow : Boolean = True; BackgroundColor : TColor = clWhite; BoxColor: TColor = clBlack; iPageNo : Integer = -1);

Description

Outputs multiple images (all or just selected) in the attached TImageEnMView or TIEMultiBitmap as rows and columns of thumbnails to a file.

Parameter | Description
sFilename | The destination filename for these thumbnails. If all pages are being printed (see iPageNo) then this filename will be automatically adjusted in the format image.jpg, image_2.jpg, image_3.jpg, etc.
iJpegQuality | If sFilename is a JPEG file then specify the output quality (e.g. 80)
iImageWidth | The output width for the image
iImageHeight | The output height for the image
iColumns | Specifies how many thumbnails span across the page
iRows | Specifies how many thumbnails span down the page
iHorzSpace | The horizontal space in pixels between thumbnails
iVertSpace | The vertical space in pixels between thumbnails
bPrintSelectedOnly | Set to true to print only selected images. False to print all image in the TImageEnMView
iHorzMargin | Page margin on left and right of the image (in pixels)
iVertMargin | Page margin on top and bottom of the image (in pixels)
bDrawBox | Set to true to draw a box around the images (image space). Image is always stretched to maintain aspect ratio.
bDrawText | Set to true to draw text associated with every image.
bDrawShadow | Set to true to draw a shadow around the image.
BackgroundColor | Specifies the fill color of the image.
BoxColor | Specifies the color of the box around the image if DrawBox is True.
iPageNo | The page of thumbnails to output. If this is -1 (default) then all pages are output and the filename is automatically incremented

Example

// Save image of thumbnails
ImageEnMView1.MIO.PrintImagesToFile('C:\SomeImage.jpg', Screen.Width, Screen.Height, 6, 4, ...);


TImageEnMIO.PrintingFilterOnSubsampling

TImageEnMIO.PrintingFilterOnSubsampling

Declaration

property PrintingFilterOnSubsampling: TResampleFilter;

Description

Specifies a filter when printing an image and it must be resampled. Filtering enhances the image quality but slows processing.


TImageEnMIO.PrintPreviewParams

TImageEnMIO.PrintPreviewParams

Declaration

property PrintPreviewParams: TIOPrintPreviewParams;

Description

Provides access to parameters of the Print Preview dialog.

All measure units are specified by DialogsMeasureUnit property.


TImageEnMIO.SaveToFile

TImageEnMIO.SaveToFile

Declaration

procedure SaveToFile(const FileName: string; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a multi-image format: GIF, TIFF, DCX, ICO, AVI, DICOM, PDF or PS. It detects the file format from the extension.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output to file.

Notes:
- Only multi-frame formats are supported. Saving to a single frame format, such as JPEG, will result in an error (Aborting will return true). To save single frames of a TImageEnMView you can use Write for the relevant frame.
- If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

ImageEn supports saving of multiple frames to GIF, TIFF, AVI, DCX, DICOM, ICO, PDF and PS formats.


TImageEnMIO.SaveToFileAVI

TImageEnMIO.SaveToFileAVI

Declaration

procedure SaveToFileAVI(const FileName: string; const Codec: AnsiString = ''; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap as an AVI file.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: All images in the TImageEnMView/TIEMultiBitmap must be of the same size.

Codec specifies the compression codec to use (must be installed on system) as a four character string. Examples:
'cvid' : cinepak by Radius
'msvc' : Microsoft Video 1
'mp42' : Microsoft MPEG4 V2

More codecs are listed at www.fourcc.org or by searching for registered fourcc codes and wave formats on MSDN

If a codec is not specified, a dialog box appears to allow the user to select a compression.


TImageEnMIO.SaveToFileDCX

TImageEnMIO.SaveToFileDCX

Declaration

procedure SaveToFileDCX(const FileName: string; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap as a DCX file.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToFileDICOM

TImageEnMIO.SaveToFileDICOM

Declaration

procedure SaveToFileDICOM(const FileName: string; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap as a DICOM file.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToFileGIF

TImageEnMIO.SaveToFileGIF

Declaration

procedure SaveToFileGIF(const FileName: string; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap as a GIF file.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Demo

Demos\ImageEditing\AnimatedGIF\AnimatedGIF.dpr

See Also

- IEOptimizeGIF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.SaveToFileICO

TImageEnMIO.SaveToFileICO

Declaration

procedure SaveToFileICO(const FileName: string; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap as a GIF file.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToFilePDF

TImageEnMIO.SaveToFilePDF

Declaration

procedure SaveToFilePDF(const FileName: string; SelectedOnly: Boolean = False);

Description

Creates a multipage Adobe PDF file with all images in the attached TImageEnMView or TIEMultiBitmap.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

// load a multipage TIFF and save it as a PDF file
ImageEnMView.MIO.LoadFromFile('C:\multipage.tiff');
ImageEnMView.MIO.SaveToFilePDF('D:\output.pdf');


TImageEnMIO.SaveToFilePS

TImageEnMIO.SaveToFilePS

Declaration

procedure SaveToFilePS(const FileName: string; SelectedOnly: Boolean = False);

Description

Creates a multi-page PostScript file with all images in the attached TImageEnMView or TIEMultiBitmap.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output to file.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

// load a multipage TIFF and save back to a multipage PostScript file
ImageEnMView.MIO.LoadFromFile('C:\multipage.tiff');
ImageEnMView.MIO.SaveToFilePS('D:\output.ps');


TImageEnMIO.SaveToFileTIFF

TImageEnMIO.SaveToFileTIFF

Declaration

procedure SaveToFileTIFF(const FileName: string; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap as a TIFF file.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToStream

TImageEnMIO.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream; FileFormat: TIOFileType; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a multi-image format: GIF, TIFF, DCX, ICO, AVI, DICOM, PDF or PS.
You must specify a file format, which should be one of: ioGIF, ioTIFF, ioPS, ioPDF, ioDICOM, ioDCX, ioICO, ioUnknown (if ioUnknown is specified, the current file type</L is used if it is a multi-image format).
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output to file.

Notes:
- Only multi-frame formats are supported. Saving to a single frame format, such as JPEG, will result in an error (Aborting will return true). To save single frames of a TImageEnMView you can use Write for the relevant frame
- If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception
- AVI is not supported

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.SaveToStreamDCX

TImageEnMIO.SaveToStreamDCX

Declaration

procedure SaveToStreamDCX(Stream: TStream; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a stream in DCX format.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToStreamDICOM

TImageEnMIO.SaveToStreamDICOM

Declaration

procedure SaveToStreamDICOM(Stream: TStream; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a stream in DICOM format.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToStreamGIF

TImageEnMIO.SaveToStreamGIF

Declaration

procedure SaveToStreamGIF(Stream: TStream; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a stream in GIF format.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToStreamICO

TImageEnMIO.SaveToStreamICO

Declaration

procedure SaveToStreamICO(Stream: TStream; SelectedOnly: Boolean = False);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a stream in ICO format.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToStreamPDF

TImageEnMIO.SaveToStreamPDF

Declaration

procedure SaveToStreamPDF(Stream : TStream; SelectedOnly: boolean = false);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a stream in Adobe PDF format.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToStreamPS

TImageEnMIO.SaveToStreamPS

Declaration

procedure SaveToStreamPS(Stream: TStream);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a stream in PostScript format.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SaveToStreamTIFF

TImageEnMIO.SaveToStreamTIFF

Declaration

procedure SaveToStreamTIFF(Stream: TStream; SaveSelected: boolean=false);

Description

Save all images in the attached TImageEnMView or TIEMultiBitmap to a stream in TIFF format.
If SelectedOnly = True and the component is attached to a TImageEnMView then only the selected images are output.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.


TImageEnMIO.SelectAcquireSource

TImageEnMIO.SelectAcquireSource

Declaration

function SelectAcquireSource(Apis : TIEAcquireApis = [ieaTwain, ieaWIA, ieaDCIM]): boolean;

Description

Prompt the user with a dialog to select a Twain, WIA or portable device.

Use Apis to specify which sources are available to the user. Any combination of the following can be used:
Value | Description
ieaTwain | Acquire from Twain device
ieaWIA | Acquire using WIA (scanners or camera)
ieaDCIM | Read from any connected device containing a DCIM folder (e.g. camera card in a slot or a USB connected camera) using the WPD API

Note: If your location is only [ieTwain] or [ieWIA] then the default Twain/WIA selector is shown. Otherwise a custom device selector is used (Use MsgLanguage to control the language in the custom dialog).

Returns False if user presses the "Cancel" button.

Demo

Demos\ImageAcquisition\AllAcquire\AllAcquire.dpr

Example

if ImageEn1.IO.SelectAcquireSource([ieaTwain, ieaWIA, ieaDCIM]) then
ImageEn1.IO.Acquire;


TImageEnMIO.SelectedAcquireSource

TImageEnMIO.SelectedAcquireSource

Declaration

property SelectedAcquireSource : TIEAcquireSource; (Read-only)

Description

Return the acquisition source that is currently active due to selection by the user with SelectAcquireSource or programatically using SetAcquireSource.
A TIEAcquireSource record is returned that provides meta information about the device (SelectedAcquireSource.Name, SelectedAcquireSource.DeviceType) and technical details (SelectedAcquireSource.Api, SelectedAcquireSource.Location).
If no device is selected then SelectedAcquireSource.Api will be ieaNone.

See Also

- SelectAcquireSource
- SetAcquireSource

Examples

// Display the selected source
if ImageEnMView1.MIO.SelectedAcquireSource.Api = ieaNone then
ShowMessage('No device is selected')
else
ShowMessage('The selected device is ' + ImageEnMView1.MIO.SelectedAcquireSource.Name);

// Read and restore the selected source
var
sDevice : string;
ADevice : TIEAcquireSource;
begin
..
// Read the selected device
sDevice := AcquireSourceToStr(ImageEnMView1.MIO.SelectedAcquireSource);
..
end;

var
sDevice : string;
ADevice : TIEAcquireSource;
begin
..
// Restore the device selection
ADevice := StrToAcquireSource(sDevice);
ImageEnMView1.MIO.SetAcquireSource(ADevice.Api, ADevice.Location);
..
end;


TImageEnMIO.SetAcquireSource

TImageEnMIO.SetAcquireSource

Declaration

function SetAcquireSource(Api : TIEAcquireApi; Location : Variant) : boolean;

Description

Programatically set the selected acquisition source by an API type and device. The selected device will be used for subsequent calls to Acquire.
Result is false if the device cannot be selected (i.e. is not connected or does not exist).

The API can be one of the following:
Value | Description
ieaTwain | Acquire from Twain device
ieaWIA | Acquire using WIA (scanners or camera)
ieaDCIM | Read from any connected device containing a DCIM folder (e.g. camera card in a slot or a USB connected camera) using the WPD API

Location can be one of the following:
Value | Description
Default_Device | The default device for that API type will be selected
Index | An index of a device, e.g. 0 for the first device (ieaTwain/ieaWIA/ieaDCIM)
Name | The name of a device, e.g. 'CanoScan FB620' (ieaTwain/ieaWIA/ieaDCIM)
Path | The path of a DCIM folder, e.g. 'I:\DCIM\' (ieaDCIM)
Drive Letter | The letter of a connected camera card or device containing a DCIM folder, e.g. 'I' (ieaDCIM)

See Also

- Acquire
- SelectedAcquireSource

Examples

// Acquire from the default Twain device
if ImageEnMView1.MIO.SetAcquireSource(ieaTwain, Default_Device) then
ImageEnMView1.MIO.Acquire;

// Select a Twain scanner by name
ImageEnMView1.MIO.SetAcquireSource(ieaTwain, 'CanoScan FB620');

// Select the second WIA device
ImageEnMView1.MIO.SetAcquireSource(ieaWIA, 1);

// Acquire from the camera card on H drive
if ImageEnMView1.MIO.SetAcquireSource(ieaDCIM, 'H') then
ImageEnMView1.MIO.Acquire;

// Read and restore a source
var
sDevice : string;
ADevice : TIEAcquireSource;
begin
..
// Read the selected device
sDevice := AcquireSourceToStr(ImageEnMView1.MIO.SelectedAcquireSource);
..
end;

var
sDevice : string;
ADevice : TIEAcquireSource;
begin
..
// Restore the device selection
ADevice := StrToAcquireSource(sDevice);
ImageEnMView1.MIO.SetAcquireSource(ADevice.Api, ADevice.Location);
..
end;


TImageEnMIO.SimplifiedParamsDialogs

TImageEnMIO.SimplifiedParamsDialogs

Declaration

property SimplifiedParamsDialogs: boolean;

Description

If True, the "Advanced" button of open/save dialogs will show a simplified set of parameters.
Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.TwainAcquireClose

TImageEnMIO.TwainAcquireClose

Declaration

procedure TwainAcquireClose;

Description

Closes a connection opened with TwainAcquireOpen. It is useful for modeless acquisition.

Demo

Demos\ImageAcquisition\Twain\TwainDemo.dpr

Example

ImageEnMIO.TwainAcquireOpen;
..
ImageEnMIO.TwainAcquireClose;


TImageEnMIO.TwainAcquireOpen

TImageEnMIO.TwainAcquireOpen

Declaration

function TwainAcquireOpen : boolean;

Description

Opens a connection to the selected scanner. It is useful for modeless acquisition. Result is false if the method fails.

Whenever ImageEn gets an image the OnAcquireBitmap and OnAfterAcquireBitmap events occur.

Demo

Demos\ImageAcquisition\Twain\TwainDemo.dpr

Example

ImageEnMIO.TwainAcquireOpen;
..
ImageEnMIO.TwainAcquireClose;


TImageEnMIO.TwainParams

TImageEnMIO.TwainParams

Declaration

property TwainParams: TIETwainParams;

Description

TwainParams provides access to properties for acquisition from Twain scanners and cameras. You can enable/disable the standard user interface, set pixeltype (Grayscale, RGB...), DPI, etc.

Note: Use TwainParams only when you need access to Twain specific parameters and functionality (when SelectedAcquireSource.Api is ieaTwain). For generic access to all image acquisitions sources (Twain, WIA, etc.) use AcquireParams instead.

Example

// Acquire a black/white (1bit) image from the default Twain device
ImageEnMView1.MIO.TwainParams.PixelType.CurrentValue := 0;
If ImageEnMView1.MIO.SetSource(ieaTwain, Default_Device) then
ImageEnMView1.MIO.Acquire;

See Also

- TIETwainParams
- AcquireParams
- SelectedAcquireSource

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMIO.Update

TImageEnMIO.Update

Declaration

procedure Update;

Description

Calls the Update method of the attached TImageEnMView component.


TImageEnMIO.WIAParams

TImageEnMIO.WIAParams

Declaration

property WIAParams: TIEWia;

Description

Provides access to parameters, dialogs and methods of connected WIA devices.

Note: Use WIAParams only when you need access to WIA specific functionality (when SelectedAcquireSource.Api is ieaWIA). For generic access to all image acquisitions sources (Twain, WIA, etc.) use AcquireParams instead.

Demo

Demos\ImageAcquisition\WIAScanner\WIAScanner.dpr

Example

// Acquire an image with a horizontal resolution of 150 dpi from the default WIA device
ImageEnMView1.MIO.SetItemProperty(WIA_IPS_XRES, 150);
if ImageEnMView1.MIO.SetSource(ieaWIA, Default_Device) then
ImageEnMView1.MIO.Acquire;

See Also

- TIEWia
- AcquireParams
- SelectedAcquireSource

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.Animation

TImageEnMView.Animation

Declaration

property Animation: TIEAnimation;

Description

Uses a special animated mode to display your images. Two internal animations are available:
- TIEHorizontalFlow: Coverflow style animation
- TIECircularFlow: Circular flow animation

Setting Animation to nil disables animation.

Default: nil (no animation)

Example

ImageEnMView1.Animation := TIEHorizontalFlow.Create();

Demo

Demos\Display\MviewFlow\MviewFlow.dpr

See Also

- OnAnimationText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.AnnotationsVisible

TImageEnMView.AnnotationsVisible

Declaration

property AnnotationsVisible: Boolean;

Description

When enabled, Wang annotations and ImageEn annotations of the image are shown on the thumbnail.

Default: False

Notes:
- This property has no effect if StoreType is ietThumb. It is only supported by ietNormal and ietFastThumb.
- This will slow performance so is only recommended for annotation-specific applications.

Example

// Test application with a TImageEnMView that loads and saves a multiple page TIFF file, and TImageEnVect that allows annotation editing

// Show annotations of selected frame
procedure TForm1.ImageEnMView1ImageSelect(Sender: TObject; idx: Integer);
begin
// Clear TImageEnVect
ImageEnVect1.RemoveAllObjects;
ImageEnVect1.Clear;

// Get selected image
ImageEnMView1.CopyToIEBitmap( idx, ImageEnVect1.IEBitmap );

// Get ImageEn annotations
if ImageEnMView1.MIO.Params[ idx ].ImageEnAnnot.IsEmpty = False then
ImageEnMView1.MIO.Params[ idx ].ImageEnAnnot.CopyToTImageEnVect( ImageEnVect1 );

// Refresh the TImageEnVect
ImageEnVect1.Update;
end;

// Save the annotations
procedure TForm1.btnSaveAnnotClick(Sender: TObject);
begin
if ImageEnMView1.SelectedImage > -1 then
begin
ImageEnMView1.MIO.Params[ ImageEnMView1.SelectedImage ].ImageEnAnnot.CopyFromTImageEnVect( ImageEnVect1 );
ImageEnMView1.UpdateImage( ImageEnMView1.SelectedImage );
end;
end;


TImageEnMView.AppendImage

TImageEnMView.AppendImage

Declaration

function AppendImage: Integer;
function AppendImage(Stream: TStream): integer;
function AppendImage(Bitmap: TIEBitmap): integer;
function AppendImage(Bitmap : TBitmap): integer;
function AppendImage(Width, Height: Integer; PixelFormat: TIEPixelFormat = ie24RGB): Integer;
function AppendImage(const FileName: String): integer;
function AppendImage(const FileName: String;
LoadOnDemand : boolean;
DefaultTopText : TIEImageEnMViewDefaultText = iedtNone;
DefaultInfoText : TIEImageEnMViewDefaultText = iedtNone;
DefaultBottomText : TIEImageEnMViewDefaultText = iedtFilename;
bSelectIt : Boolean = true): integer;

Description

AppendImage appends a new image at last position in the list and returns the new image position.

Note: First overload of AppendImage doesn't create the bitmap. Others load image from a file or a stream.

The parameters for the final overload are as follows:
Parameter | Description
Filename | A file or folder available on the system, or an HTTP or FTP link to a remote file. You can load a particular frame from a multi-frame image or video by delimiting it with IEM_Path_Index_Delimiter
LoadOnDemand | If True, the image will not be loaded from disk until it is displayed (i.e. when it is scrolled into view)
DefaultTopText | Specify the text that is applied to ImageTopText
DefaultInfoText | Specify the text that is applied to ImageInfoText
DefaultBottomText | Specify the text that is applied to ImageBottomText (defaults to the filename)
bSelectIt | The new image will be selected in the control

Examples

ImageEnView1.IO.LoadFromFile( 'C:\MyImage.tif' );
idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImage( idx, ImageEnView1.Bitmap );

// Which is the same as...
ImageEnMView1.AppendImage( 'C:\MyImage.tif' );

// Load the fifth image of MyImage.tif
ImageEnMView1.AppendImage( 'C:\MyImage.tif' + IEM_Path_Index_Delimiter + 4 );

// Append 256 x 256 bitmap
ImageEnMView1.AppendImage( 256, 256, ie24RGB );

// Append a file from the web
ImageEnMView1.AppendImage( 'http://www.imageen.com/graphics/imageen.gif' );

// Show ten frames of a video file
for I := 0 to 9 do
ImageEnMView1.AppendImage( 'D:\Temp\Cement.avi' + IEM_Path_Index_Delimiter + IntToStr( I * 10 ));

// Append all pages of a TIFF to the current content
iPageCount := EnumTIFFIm( sFileName );
for I := 0 to iPageCount - 1 do
ImageEnMView1.AppendImage( sFileName + IEM_Path_Index_Delimiter + IntToStr( I ));

See Also

- InsertImage
- InsertImageEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.AppendSplit

TImageEnMView.AppendSplit

Declaration

function AppendSplit(SourceGrid: TIEBitmap; cellWidth: Integer; cellHeight: Integer; maxCount: Integer = 0): Integer;

Description

Splits the source image into cells of the specified size and adds each cell to the TImageEnMView

Result is the count of added images.

Parameter | Description
SourceGrid | Source bitmap containing cells to split.
cellWidth | Width of a cell.
cellHeight | Height of a cell.
maxCount | Maximum number of cells to add. 0 = all suitable cells.


TImageEnMView.Assign

TImageEnMView.Assign

Declaration

procedure Assign(Source: TPersistent);

Description

Replace the existing content with the frames in TImageEnMView, TIEMultiBitmap, TIEBitmap, TBitmap or TImageList.

Notes:
- Params are NOT copied. See AssignEx
Cannot be used if a TIEDBMultiBitmap is attached to the control

See Also

- AssignEx
- Assign

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.AssignEx

TImageEnMView.AssignEx

Declaration

procedure AssignEx(Source: TObject; bCopyParams: Boolean = False);

Description

Replace the existing content with the frames in TImageEnMView, TIEMultiBitmap, TIEBitmap, TBitmap or TImageList.
if bCopyParams is true then Params are also copied.

Note: Cannot be used if a TIEDBMultiBitmap is attached to the control


TImageEnMView.AssignLayers

TImageEnMView.AssignLayers

Declaration

procedure TImageEnMView.AssignLayers(Source: TImageEnView; HighlightSel: Boolean; DoClear: Boolean = True);

Description

Fill content with the layers of a TImageEnView.
If HighlightSel is true, the selected layers will be also be shown as selected in this TImageEnMView.
Set DoClear to true if you don't wish to clear the existing content.

Example

// Show layer content of a TImageEnView in a TImageEnMView. Allow selection of layers via the TImageEnMView
// For more info, see the demo: \Demos\ImageEditing\Layers\Layers.dpr

procedure Tfmain.ImageEnMView1ImageSelect(Sender: TObject; idx: Integer);
begin
ImageEnView1.LayersCurrent := idx;
end;

procedure Tfmain.ImageEnMView1ImageDeselect(Sender: TObject; idx: Integer);
begin
ImageEnView1.Layers[ idx ].Selected := False;
end;

procedure Tfmain.ImageEnView1LayerNotify(Sender: TObject; layer: Integer; event: TIELayerEvent);
begin
if event in [ ielSelected, ielDeselected, ielMoved, ielResized, ielRotated, ielCreated, ielAction ] then
RefreshLayerViewer();
end;

procedure Tfmain.LayerControlChange(Sender: TObject);
begin
RefreshLayerViewer();
end;

procedure Tfmain.ImageEnView1NewLayer(Sender: TObject; LayerIdx: Integer; LayerKind: TIELayerKind);
begin
RefreshLayerViewer();
end;

procedure Tfmain.RefreshLayerViewer();
begin
ImageEnMView1.AssignLayers( ImageEnView1, True );
end;


TImageEnMView.Background

TImageEnMView.Background

Declaration

property Background: TColor;

Description

Specifies the background color of the component.

Note: This value may be overridden if EnableTheming is enabled.

TImageEnMView Default: clBtnFace
TImageEnFolderMView Default: clWindow

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.BackgroundStyle

TImageEnMView.BackgroundStyle

Declaration

property BackgroundStyle: TIEBackgroundStyle;

Description

Specifies the style of the background (the component region behind the thumbnails).

Example

// Small chessboard background
ImageEnMView1.BackgroundStyle := iebsChessboard;
ImageEnMView1.SetChessboardStyle(5, bsSolid);

// Solid white background
ImageEnMView1.BackgroundStyle := iebsSolid;
ImageEnMView1.Background := clWhite;

// Navy -> Black gradient background
ImageEnMView1.BackgroundStyle := iebsGradient;
ImageEnMView1.Background := clNavy;
ImageEnMView1.GradientEndColor := clBlack;


TImageEnMView.BeginSelectImages

TImageEnMView.BeginSelectImages

Declaration

procedure BeginSelectImages;

Description

Call BeginSelectImages and EndSelectImages to select multiple images without refreshing the component's state.

Generally this will speed up the selection process.

Example

// select the first 100 images
ImageEnMView1.BeginSelectImages;
for i := 0 to 99 do
ImageEnMView1.SelectedImage := i;
ImageEnMView1.EndSelectImages;


TImageEnMView.BiDiMode

TImageEnMView.BiDiMode

Declaration

property BiDiMode: TBiDiMode;

Description

Determine whether grid is filled left to right (bdLeftToRight) or right to left (bdRightToLeft).

Note: bdRightToLeftNoAlign and bdRightToLeftReadingOnly are treated as bdLeftToRight.


TImageEnMView.Bitmap

TImageEnMView.Bitmap

Declaration

property Bitmap: TBitmap;

Description

The currently selected image as a TBitmap object.

See Also

- IEBitmap
- SelectedImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.BottomGap

TImageEnMView.BottomGap

Declaration

property BottomGap: integer;

Description

Specifies the distance between the thumbnail image and its bottom border.

You can use BottomGap to reserve space for painting, e.g. custom text (with OnImageDraw).

Compatibility Notes

In older versions, BottomGap would be internally increased to allow space for bottom text. This does not occur from v6.22.
To maintain consistent styling, an BottomGap of more than twelve is assumed to include text space (i.e. If BottomGap <= 12: ActualGap = BottomGap + Text_Height. If BottomGap > 12: ActualGap = BottomGap Only).

See Also

- UpperGap
- SideGap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.BottomTextFont

TImageEnMView.BottomTextFont

Declaration

property BottomTextFont: TFont;

Description

Specify the font if you are using ImageBottomText to add text to your thumbnails.

Notes:
- If you need to change the font or styling of particular thumbnails, use the OnGetTextEx event.
- The color of this font may be overridden if EnableTheming is enabled.

Example

ImageEnMView1.BottomTextFont.Height := 14;
ImageEnMView1.BottomTextFont.Name := 'Arial';
ImageEnMView1.FillFromDirectory('C:\Pictures');

See Also

- InfoTextFont
- TopTextFont
- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.CalcGridHeight

TImageEnMView.CalcGridHeight

Declaration

function CalcGridHeight(): Integer;

Description

Returns the number of rows displayed in the grid.


TImageEnMView.CalcGridWidth

TImageEnMView.CalcGridWidth

Declaration

function CalcGridWidth(): Integer;

Description

Returns the number of columns displayed in the grid. This is mainly used when the column count is automatically calculated (i.e. when GridWidth = -1).


TImageEnMView.CenterFrame

TImageEnMView.CenterFrame

Declaration

procedure CenterFrame;

Description

Scrolls the view (by calling SetViewXY) to display the current frame at a central position in the view.

Note: This method uses VisibleFrame to determine the current frame, whereas CenterSelected uses SelectedImage.


TImageEnMView.CenterSelected

TImageEnMView.CenterSelected

Declaration

procedure CenterSelected;

Description

Scrolls the view (by calling SetViewXY) to display the currently selected image at a central position in the view.

Note: This method uses SelectedImage to determine the selection, whereas CenterFrame uses VisibleFrame.

Example

ImageEnMView1.SelectedImage := 10;
ImageEnMView1.CenterSelected;


TImageEnMView.CheckAll

TImageEnMView.CheckAll

Declaration

procedure CheckAll;

Description

Marks the checkbox status for all files to "Checked" (if Checkboxes have been enabled).


TImageEnMView.Checkboxes

TImageEnMView.Checkboxes

Declaration

property Checkboxes: TIEMCheckboxType;

Description

Displays a checkbox in each thumbnail box to provide an alternative method for users to select files (as opposed to multiple selection).

Notes:
- Use CheckedCount to return the number of checked items
- Read/write the checked status of each file using Checked
- Set checked status en masse using CheckAll or UncheckAll
- Change the position and style of checkboxes with CheckBoxPos and SetCheckboxParams
- Access the event, OnCheckboxClick, to determine when the user clicks a checkbox

Demo

Demos\Multi\Checkboxes\Checkboxes.dpr

Example

// Copy all checked files to D:\Dest\
for I := 0 to ImageEnMView1.ImageCount - 1 do
if ImageEnMView1.Checked[I] then
WindowsCopy(Handle, ImageEnMView1.ImageFilename[I], 'D:\Dest\', True, True);


TImageEnMView.CheckboxPos

TImageEnMView.CheckboxPos

Declaration

property CheckboxPos : TIEMCheckboxPos;

Description

Specify the corner of the thumbnail where the checkbox is displayed.

See Also

- SetCheckboxParams

Demo

Demos\Multi\Checkboxes\Checkboxes.dpr

Example

// Show checkboxes on bottom left when the user hovers over the thumbnail
ImageEnMView1.Checkboxes := iecbShowOnHover;
ImageEnMView1.CheckboxPos := iecpBottomLeft;


TImageEnMView.Checked

TImageEnMView.Checked

Declaration

property Checked[index : Integer] : Boolean;

Description

Specifies the checked status for the item of the specified index (if Checkboxes have been enabled).

Example

// Copy all checked files to D:\Dest\
for I := 0 to ImageEnMView1.ImageCount - 1 do
if ImageEnMView1.Checked[I] then
WindowsCopy(Handle, ImageEnMView1.ImageFilename[I], 'D:\Dest\', True, True);

See Also

- CheckedCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.CheckedCount

TImageEnMView.CheckedCount

Declaration

function CheckedCount : Integer;

Description

Returns the number of items that have been checked (if Checkboxes have been enabled).

Demo

Demos\Multi\Checkboxes\Checkboxes.dpr

Example

// Note: Use OnClick, not OnCheckboxClick if need to read CheckedCount
procedure TfMain.ImageEnMView1Click(Sender: TObject);
begin
// Display the current count of checked items in the status bar
Statusbar1.SimpleText := 'Checked: ' + IntToStr(ImageEnMView1.CheckedCount);
end;

See Also

- Checked

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.CheckThumbBoundsOnSelect

TImageEnMView.CheckThumbBoundsOnSelect

Declaration

property CheckThumbBoundsOnSelect: Boolean;

Description

When enabled, ImageEn checks the thumbnail bounding rectangle before selecting it. The default is False, which allows more flexible selections.

Note: When using multi-selection, CheckThumbBoundsOnSelect must be set to false (the default)


TImageEnMView.Clear

TImageEnMView.Clear

Declaration

procedure Clear;

Description

Removes all images from the TImageEnMView and releases any associated memory.


TImageEnMView.ClearImageCache

TImageEnMView.ClearImageCache

Declaration

procedure ClearImageCache(idx: Integer);

Description

Clears the cache for image, idx.

Image caching allows you to speed up the thumbnail painting by saving the view of each image to an internal cache. You should call this method only if you have refreshing problems.

See Also

- EnableImageCaching
- ImageCacheSize
- ImageCacheUseDisk

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.CopyToIEBitmap

TImageEnMView.CopyToIEBitmap

Declaration

procedure CopyToIEBitmap(idx: Integer; bmp: TIEBitmap);

Description

Copies the specified image, idx, to the destination TIEBitmap object.

Note: If StoreType is not ietNormal then the returned bmp will not be full resolution

Example

// Show the selected image in a TImageEnView
procedure TMainForm.ImageEnMView1ImageSelect(Sender: TObject; idx: Integer);
begin
ImageEnMView1.CopyToIEBitmap( idx, ImageEnView1.IEBitmap );
ImageEnVeiw1.Update;
end;


TImageEnMView.CreateMorphingSequence

TImageEnMView.CreateMorphingSequence

Declaration

procedure CreateMorphingSequence(Source: TImageEnVect; Target: TImageEnVect; FramesCount: Integer);

Description

Creates a sequence of frames which are the transformation of the Source image to Target image. FramesCount specifies the number of frames to create.

Notes:
- The PixelFormat of both images must be ie24RGB (true color)
- The dimension of the images must be identical
- The Source and Target must contain iekLINE objects to describe the transformation. The number of line objects must be identical and applied in the same order on both TImageEnVect components
- Does not call OnCreateImage

Demo

Demos\Other\Morphing\Morphing.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.DefaultBottomText

TImageEnMView.DefaultBottomText

Declaration

property DefaultBottomText: TIEImageEnMViewDefaultText;

Description

Specifies a default value for ImageBottomText, which will appear below the thumbnail.

TImageEnMView Default: iedtNone
TImageEnFolderMView Default: iedtFilename

You can also set: DefaultTopText and DefaultInfoText

Example

// Display the filename and details for each image
ImageEnMView1.DefaultImageTopText := iedtFilename;
ImageEnMView1.DefaultImageInfoText := iedtImageDimensions;
ImageEnMView1.DefaultImageBottomText := iedtFileEditDateAndSize;

See Also

- OnGetText
- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.DefaultFileIcon

TImageEnMView.DefaultFileIcon

Declaration

property DefaultFileIcon: TIEBitmap;

Description

Image that is displayed for files while loading.

Note: Only valid if ietxEnableInternalIcons is specified in ThumbnailOptionsEx, and ietxShowIconWhileLoading is not included.

See Also

- MissingFileIcon

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.DefaultInfoText

TImageEnMView.DefaultInfoText

Declaration

property DefaultInfoText: TIEImageEnMViewDefaultText;

Description

Specifies a default value for ImageInfoText, which will appear directly below the thumbnail (above DefaultBottomText).

Default: iedtNone

You can also set: DefaultTopText and DefaultInfoText

Example

// Display the filename and details for each image
ImageEnMView1.DefaultImageTopText := iedtFilename;
ImageEnMView1.DefaultImageInfoText := iedtImageDimensions;
ImageEnMView1.DefaultImageBottomText := iedtFileEditDateAndSize;

See Also

- OnGetText
- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.DefaultTopText

TImageEnMView.DefaultTopText

Declaration

property DefaultTopText: TIEImageEnMViewDefaultText;

Description

The text that will display above the thumbnail for images that do not have a custom value specified in ImageTopText.

Default: iedtNone

You can also set: DefaultTopText and DefaultInfoText

Example

// Display the filename and details for each image
ImageEnMView1.DefaultImageTopText := iedtFilename;
ImageEnMView1.DefaultImageInfoText := iedtImageDimensions;
ImageEnMView1.DefaultImageBottomText := iedtFileEditDateAndSize;

See Also

- OnGetText
- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.DeleteImage

TImageEnMView.DeleteImage

Declaration

procedure DeleteImage(idx: integer);

Description

Deletes image, idx (freeing its associated bitmap).


TImageEnMView.DeleteSelectedImages

TImageEnMView.DeleteSelectedImages

Declaration

procedure DeleteSelectedImages;

Description

Removes all selected images.


TImageEnMView.Deselect

TImageEnMView.Deselect

Declaration

procedure Deselect;

Description

Remove selection from all selected images.


TImageEnMView.DisplayImageAt

TImageEnMView.DisplayImageAt

Declaration

procedure DisplayImageAt(idx: Integer; x, y: Integer);

Description

Scrolls the control to display image, idx, at specified position in the current view.

Parameter | Description
idx | Index of the image to display
x | Horizontal offset in client area
y | Vertical offset in client area

Example

// make then tenth image visible at 0, 0 (Top-left of control)
ImageEnMView1.DisplayImageAt(9, 0, 0);


TImageEnMView.DisplayMode

TImageEnMView.DisplayMode

Declaration

property DisplayMode: TIEMDisplayMode;

Description

View | Method
Frame View | To display a single frame of a multi-frame image (e.g. TIFF or AVI) set DisplayMode to mdSingle
Thumbnail View | To display a vertically scrollable thumbnail grid set DisplayMode to mdGrid, and GridWidth to -1
Single Row | Set DisplayMode to mdGrid, and GridWidth to 0
Single Column | Set DisplayMode to mdGrid, and GridWidth to 1

Note: Animation display modes are also available using Animation

Demo

Demos\Multi\Multiview\Multiview.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.DrawImageBackground

TImageEnMView.DrawImageBackground

Declaration

property DrawImageBackground: boolean;

Description

If enabled, the background color of the thumbnail will be set to that of the current image. Otherwise it is set to ThumbnailsBackground.


TImageEnMView.EnableAdjustOrientation

TImageEnMView.EnableAdjustOrientation

Declaration

property EnableAdjustOrientation: Boolean;

Description

When this property is True all images which have orientation information (typically jpeg with EXIF data) will be automatically rotated for display (actual file is not modified).

Orientation information is often found in digital photos from high-end cameras. ImageEn uses the data found in EXIF_Orientation or TIFF_Orientation to determine the orientation.


TImageEnMView.EnableAlphaChannel

TImageEnMView.EnableAlphaChannel

Declaration

property EnableAlphaChannel: Boolean;

Description

Set EnableAlphaChannel to True to enable the alpha channel of thumbnails (e.g. for the display of soft shadows).


TImageEnMView.EnableImageCaching

TImageEnMView.EnableImageCaching

Declaration

property EnableImageCaching: Boolean;

Description

Speeds up thumbnail painting by saving the view of each image to an internal cache. This is enabled by default.

Set to false to disable image caching.

See Also

- ClearImageCache
- ImageCacheSize
- ImageCacheUseDisk

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.EnableLoadEXIFThumbnails

TImageEnMView.EnableLoadEXIFThumbnails

Declaration

property EnableLoadEXIFThumbnails : Boolean;

Description

Images from digital camera often contain a small thumnbail in their Exif data. When this option is enabled, ImageEn will use the EXIF thumbnail for display rather than loading and sub-sampling the full size image. This speeds up loading of large images.

By default, EnableLoadEXIFThumbnails is true.

Note: Has no effect if StoreType is ietNormal.

Example

// Do not use EXIF thumbnails for digital camera images
ImageEnMView1.EnableLoadEXIFThumbnails := False;

See Also

- EnableLoadExplorerThumbnails

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.EnableLoadExplorerThumbnails

TImageEnMView.EnableLoadExplorerThumbnails

Declaration

property EnableLoadExplorerThumbnails : Boolean;

Description

Rather than generating thumbnails, they will be obtained from Windows Explorer. This is significantly quicker, and also thumbnails will be cached to disk for fast reuse.

By default, EnableLoadExplorerThumbnails is False.

Notes:
- Has no effect if StoreType is ietNormal
- Image meta-data will not be valid if EnableLoadExplorerThumbnails is used unless ieixWantParams is enabled

Example

// Use Windows Explorer thumbnails
ImageEnMView1.EnableLoadExplorerThumbnails := True;

See Also

- EnableLoadEXIFThumbnails

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.EnableMultiSelect

TImageEnMView.EnableMultiSelect

Declaration

property EnableMultiSelect: Boolean;

Description

Specify whether the user is able to select multiple images.

Default: false (i.e. multi-selection is disabled)

Example

// select images 0 and 1 (assumes you have set at design time ImageEnMView1.EnableMultiSelect := True)
ImageEnMView1.Deselect;
ImageEnMView1.MultiSelecting := True;
ImageEnMView1.SelectedImage := 0;
ImageEnMView1.SelectedImage := 1;
ImageEnMView1.MultiSelecting := False;

See Also

- MultiSelectedImagesCount
- MultiSelectedImages

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.EndSelectImages

TImageEnMView.EndSelectImages

Declaration

procedure EndSelectImages;

Description

Call BeginSelectImages and EndSelectImages to select multiple images without refreshing the component's state.

Generally this will speed up the selection process.

Example

// select the first 100 images
ImageEnMView1.BeginSelectImages;
for i := 0 to 99 do
ImageEnMView1.SelectedImage := i;
ImageEnMView1.EndSelectImages;


TImageEnMView.EnsureImageLoaded

TImageEnMView.EnsureImageLoaded

Declaration

procedure TImageEnMView.EnsureImageLoaded(idx: integer);

Description

If the content of the TImageEnMView is being loaded on demand (e.g. because you are using LoadFromFileOnDemand) then the image properties such as ImageWidth and ImageHeight, and I/O parameters will not be valid until the image has loaded. Calling EnsureImageLoaded will force an image to be loaded so you can access its properties.
Naturally calling EnsureImageLoaded too often (e.g. for all images) would defeat the purpose of loading on demand and affect performance.

Example

// Get the dimensions of the selected image
if ImageEnMView1.SelectedImage >= 0 then
begin
ImageEnMView1.EnsureImageLoaded( ImageEnMView1.SelectedImage );
StatusBar.Text [ 0 ] := ImageEnMView1.ImageWidth[ ImageEnMView1.SelectedImage ] + ' x ' + ImageEnMView1.ImageHeight[ ImageEnMView1.SelectedImage ];
end;

// Read the Photoshop description of the selected image
if ImageEnMView1.SelectedImage >= 0 then
begin
ImageEnMView1.EnsureImageLoaded( ImageEnMView1.SelectedImage );
StatusBar.Text [ 1 ] := ImageEnMView1.MIO.Params[ ImageEnMView1.SelectedImage ].ReadIPTCField(PhotoShop_IPTC_Records, IPTC_PS_Caption);
end;


TImageEnMView.FilenameToIndex

TImageEnMView.FilenameToIndex

Declaration

function FilenameToIndex(const sFilename : string) : integer;

Description

Returns the index of the specified filename or -1 if the file does not exist in the list.

sFilename must be a full path (file folder and name).

Example

// Set caption of "Image.jpg" to "Cool Image"
idx := IEFolderMView.FilenameToIndex('C:\My Images\Image.jpg');
if idx >=0 then
IEFolderMView.ImageInfoText[idx].Caption := 'Cool Image';


TImageEnMView.FillFromDirectory

TImageEnMView.FillFromDirectory

Declaration

procedure FillFromDirectory(const Directory: WideString; Limit : integer = -1; AllowUnknownFormats : boolean = false; const ExcludeExtensions : WideString = '';
DetectFileFormat : boolean = false; const FilterMask : WideString = ''; IncludeVideoFiles : Boolean = False;
LoadOnDemand : boolean = true;
DefaultTopText : TIEImageEnMViewDefaultText = iedtNone;
DefaultInfoText : TIEImageEnMViewDefaultText = iedtNone;
DefaultBottomText : TIEImageEnMViewDefaultText = iedtFilename;
bShowHiddenFiles : Boolean = False;
bShowFolders : Boolean = False);

Description

Fills the ImageEnMView with files from the specified Directory. For each file ImageFileName will be set with the full path and ImageBottomText with the filename.
You can cancel the insertion of files by setting MIO.Aborting := True;

Parameter | Description
Directory | The folder to search for files
Limit | The maximum number of images to load. Use -1 to retrieve all files
AllowUnknownFormats | If false (default) only known and supported file formats are loaded. Otherwise all files are loaded
ExcludeExtensions | A comma separated list of file extensions to skip (e.g. 'lyr,all,iev')
DetectFileFormat | If true then the image type is detected by reading the header (which can be slow). Otherwise ImageEn only checks the file extension
FilterMask | Limits the fill to file extensions found in a comma separated list (e.g. 'jpg,jpeg,jpe'). Specify an empty string to return all supported extensions
bIncludeVideoFiles | If AllowUnknownFormats is false then video files are excluded by default. Set to true to include supported video file types such as AVI and MPEG. Thumbnails for video files will be retrieved from Windows Explorer if the format is specified in MViewExplorerThumbnailExts
LoadOnDemand | If True (Default), images are only loaded as they are displayed (i.e. not until they are scrolled into view). Set to false to load all images immediately
DefaultTopText | Specify the text that is applied to ImageTopText
DefaultInfoText | Specify the text that is applied to ImageInfoText
DefaultBottomText | Specify the text that is applied to ImageBottomText (defaults to the filename)
bShowHiddenFiles | Enable to include hidden and system files (default is false)
bShowFolders | Enable to include folders (default is false)

Notes:
- Does NOT clear existing content. Use Clear first to replace existing content
- More functionality for the display of thumbnails of file folders is available with TImageEnFolderMView.

Demo

Demos\Multi\Thumbnails\Thumbnails.dpr

Example

ImageEnMView1.Clear;
ImageEnMView1.StoreType := ietFastThumb;
ImageEnMView1.FillFromDirectory('C:\images');


TImageEnMView.FillThumbnail

TImageEnMView.FillThumbnail

Declaration

property FillThumbnail: Boolean;

Description

When enabled, the thumbnail background is filled with the background color. Generally an unselected image is filled with ThumbnailsBackground, and selected one filled with ThumbnailsBackgroundSelected.

Default: True

See also: ThumbnailsBackgroundStyle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.FlatScrollBars

TImageEnMView.FlatScrollBars

Declaration

property FlatScrollBars: Boolean;

Description

Specifies whether the component's scrollbars are flat.


TImageEnMView.Gestures

TImageEnMView.Gestures

Declaration

property Gestures: TIEMViewerGestures;

Description

TImageEnMView supports native Windows gestures:
- Dragging the screen to pan an image
- Pinching to zoom in
- Reverse-pinching to zoom out

ImageEn automatically handles the Windows gesture events, so adding gesture support to your applications requires only that you enable the relevant Gesture property.

Example

// enable Pan (scroll) and Zoom gestures
ImageEnMView1.Gestures.Pan.Enabled := True;
ImageEnMView1.Gestures.Zoom.Enabled := True;


TImageEnMView.GetBitmap

TImageEnMView.GetBitmap

Declaration

function GetBitmap(idx: Integer): TBitmap;

Description

Creates a TBitmap object from the image at index, idx.
Any changes you make to the bitmap will be visible after you call the Update method.
You will need to call ReleaseBitmap to free the TBitmap object.

See also: GetTIEBitmap.

Demo

Demos\Multi\Multiview_PrintFrame\Multiview.dpr

Example

// Save the fifth image to file
bmp := ImageEnMView1.GetBitmap(4);
bmp.SaveToFile('alfa.bmp');
ImageEnMView1.ReleaseBitmap(4);


TImageEnMView.GetImageToFile

TImageEnMView.GetImageToFile

Declaration

procedure GetImageToFile(idx: Integer; const FileName: WideString);

Description

Saves the image at index, idx, to file. The file format is determined by the file extension.

Parameter | Description
idx | The image index (0=first image)
FileName | The destination path and file name

Example

// Separate the pages of a multipage TIFF
ImageEnMView1.MIO.LoadFromFile('multipage.tif');
ImageEnMView1.GetImageToFile(0, 'page1.tif');
ImageEnMView1.GetImageToFile(1, 'page2.tif');

// Save the first image to a JPEG file (at 80% quality)
ImageEnMView1.MIO.Params[0].JPEG_Quality := 80;
ImageEnMView1.GetImageToFile(0, 'D:\MyImage.jpg');


TImageEnMView.GetImageToStream

TImageEnMView.GetImageToStream

Declaration

procedure GetImageToStream(idx: Integer; Stream: TStream; ImageFormat: TIOFileType);

Description

Saves the image at index, idx, to a stream.

Parameter | Description
idx | The image index (Where 0 is the first image)
Stream | The destination stream
ImageFormat | The output file format (e.g. ioTiff or ioJpeg)

Example

// Save the first image to a stream in JPEG format (at 80% quality)
ImageEnMView1.MIO.Params[0].JPEG_Quality := 80;
ImageEnMView1.GetImageToFile(0, MyStream, ioJPEG);


TImageEnMView.GetImageVisibility

TImageEnMView.GetImageVisibility

Declaration

function GetImageVisibility(idx: Integer): Integer;

Description

Returns 0 if image, idx, is not visible, 1 if it's partially visible, or 2 if it's fully visible (i.e. not scrolled out of view).

Note: The result may not be valid if the control is not visible. Call Update() prior to IsVisible if you need to calculate for a non-visible control.

See Also

- IsVisible

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.GetTIEBitmap

TImageEnMView.GetTIEBitmap

Declaration

function GetTIEBitmap(idx: Integer): TIEBitmap;

Description

Creates a TIEBitmap object from the image at index, idx.
Any changes you make to the bitmap will be visible after you call the Update method.
You will need to call ReleaseBitmap to free the TIEBitmap object.

Example

// Save the fifth image to file
bmp := ImageEnMView1.GetTIEBitmap(4); // Note: bmp must be TIEBitmap type
bmp.Write('D:\alfa.png');
ImageEnMView1.ReleaseBitmap(4, False);


TImageEnMView.GradientEndColor

TImageEnMView.GradientEndColor

Declaration

property GradientEndColor: TColor

Description

Specifies the ending color of the gradient when BackgroundStyle is iebsGradient. Background specifies the starting color.

Note: This value may be overridden if EnableTheming is enabled.

Default: clBtnShadow

Example

// Set Navy -> Black gradient background
ImageEnMView1.BackgroundStyle := iebsGradient;
ImageEnMView1.Background := clNavy;
ImageEnMView1.GradientEndColor := clBlack;


TImageEnMView.GridWidth

TImageEnMView.GridWidth

Declaration

property GridWidth: integer;

Description

GridWidth is the number of images per row. This property is active only when DisplayMode is mdGrid.

Valid GridWidth values are:

Value | Description
-1 | Automatically adjust column count to match the component width (standard usage)
0 | Only one row
>0 | GridWidth images per row, e.g. set to 1 for a single vertical column

You can center the thumbnail column(s) using ThumbnailOptionsEx

See Also

- DisplayMode

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.HorizBorder

TImageEnMView.HorizBorder

Declaration

property HorizBorder: integer;

Description

Specifies the horizontal distance between thumbnail cells.

See also: VertBorder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.HScrollBarParams

TImageEnMView.HScrollBarParams

Declaration

property HScrollBarParams: TIEScrollBarParams;

Description

Properties to customize the behavior of the horizontal scroll bar. This includes tracking (display refresh on mouse dragging), up/down buttons scroll distance and pagedown/up scroll distance.

Example

// disable tracking
ImageEnMView1.HScrollBarParams.Tracking := False;


TImageEnMView.IconSize

TImageEnMView.IconSize

Declaration

property IconSize : TIEImageEnMViewIconSize;

Description

For non-image types a system icon is displayed. The default setting is _icoHDStretch which means that a high quality icon is stretched to the display size. On Windows XP and older versions, it automatically downgrades to ieicDoubleSize.

See Also

- ThumbnailOptionsEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.IEBeginDrag

TImageEnMView.IEBeginDrag

Declaration

procedure IEBeginDrag(Immediate: Boolean; Threshold: Integer = -1);

Description

ImageEn's implementation of BeginDrag. You must use this for Drag/Drop operations in TImageEnMView

Demos

Demos\DragDrop\TImageEnMView_DragDrop\TImageEnMView_DragDrop.dpr
Demos\Multi\Multiview2\Multiview2.dpr

See Also

- IEEndDrag
- iemoOptimizeForDragging

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.IEBitmap

TImageEnMView.IEBitmap

Declaration

property IEBitmap: TIEBitmap;

Description

The currently selected image as TIEBitmap object.

See Also

- Bitmap
- SelectedImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.IEEndDrag

TImageEnMView.IEEndDrag

Declaration

procedure IEEndDrag;

Description

ImageEn's implementation of EndDrag. You must use this for Drag/Drop operations in TImageEnMView

Demos

Demos\DragDrop\TImageEnMView_DragDrop\TImageEnMView_DragDrop.dpr
Demos\Multi\Multiview2\Multiview2.dpr

See Also

- IEBeginDrag

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.IEMBitmap

TImageEnMView.IEMBitmap

Declaration

property IEMBitmap: TIEMultiBitmap;

Description

Encapsulates the TIEMultiBitmap object which stores all images of the TImageEnMView.

Note: You must call Update if you modify IEMBitmap directly. Though not for built-in TIEMultiBitmap methods such as Read, Flip, Rotate, Resample, etc.

Example

ImageEnMView1.IEMBitmap.RotateAll( 90 );


TImageEnMView.ImageAtGridPos

TImageEnMView.ImageAtGridPos

Declaration

function ImageAtGridPos(row, col: Integer): Integer;

Description

ImageAtGridPos returns the index of the image at row, col position, e.g. ImageAtGridPos(0, 0) would return the top-left image (i.e. 0).


TImageEnMView.ImageAtPos

TImageEnMView.ImageAtPos

Declaration

function ImageAtPos(x, y: Integer; checkBounds: Boolean = true): Integer;

Description

Use ImageAtPos to determine which image exists at the specified location within the control.
The x, y parameters specify the position in "client coordinates".
If checkBounds is True, thumbnail bounds are checked to ensure that we are positioned within the thumbnail area (Specifying False is useful for finding the nearest thumbnail).

If there is no thumbnail at the specified position, ImageAtPos returns -1.

Example

// Display the file name in the status bar for the image under the cursor
procedure TForm1.ImageEnMView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
// Note: ImageFileName[] will return '' if -1 is passed
StatusBar1.SimpleText := ImageEnMView1.ImageFileName[ ImageEnMView1.ImageAtPos(x, y) ];
end;


TImageEnMView.ImageBackground

TImageEnMView.ImageBackground

Declaration

property ImageBackground: TColor;

Description

Specifies the color of the area between images.


TImageEnMView.ImageBitCount

TImageEnMView.ImageBitCount

Declaration

property ImageBitCount[idx: Integer]: Integer;

Description

Returns the bit count of the image, idx. It can be:
1 : Black/white image
24 : True color image

Note: If images are being loaded on demand, then the image dimensions will not be valid until the image is loaded. Either use the OnImageLoaded to delay until the image is ready, or force loading of the image by using EnsureImageLoaded


TImageEnMView.ImageBottomText

TImageEnMView.ImageBottomText

Declaration

property ImageBottomText[idx: Integer]: WideString;

Description

Use ImageBottomText to specify custom text to appear below the thumbnail of index, idx.
The default bottom text is specified by DefaultBottomText but you can override this for a specific thumbnail by setting a value for ImageBottomText.

Notes:
- The font style is set by BottomTextFont. But you can customize it for specific thumbnails using the OnGetTextEx event.
- BottomGap will be adjusted to fit the text.
- Other text fields that can be set are: ImageTopText and ImageInfoText

You can optionally specify the following constants:
Value | Displays | Example
IEM_Filename | Name of the file | 'MyImage.jpg'
IEM_FilenameNoExt | Name of the file without its extension (or path) | 'MyImage'
IEM_FilePath | Path of the file | 'C:\Data\My Pictures\'
IEM_ImageDimensions | Dimensions and color depth of images (Nothing is shown for non-images) | '1200 x 800'
IEM_ImageDimAndSize | Dimensions of images with the file size | '1200 x 800, 3,900 KB'
IEM_FileSize | Size of the file on disk | '3,900 KB'
IEM_FileCreateDate | The date that the file was created | '7/5/13'
IEM_FileCreateDateTime | The date and time that the file was created | '7/5/13 8:03am'
IEM_FileCreateDateAndSize | The create date of the file and its size | '7/5/13, 3,900 KB'
IEM_FileEditDate | The date that the file was last edited | '7/5/13'
IEM_FileEditDateTime | The date and time that the file was last edited | '7/5/13 8:03am'
IEM_FileEditDateAndSize | The last edit date of the file and its size | '7/5/13, 3,900 KB'
IEM_FileType | The ImageEn type for this file | 'JPEG Image'
IEM_FileExt | The extension only of the file, e.g. JPEG for 'MyImage.jpeg' | 'JPEG'
IEM_ImageDict"xyz" | Returns the value of key xyz from the ImageDictionary | 'Some Dictionary Value'

Example

ImageEnMView1.ImageTopText[idx] := 'Top text';
ImageEnMView1.ImageInfoText[idx] := 'Info text';
ImageEnMView1.ImageBottomText[idx] := 'Bottom text';

// Display the filename and dimensions for each image
for I := 0 to ImageEnMView1.ImageCount - 1 do
begin
ImageInfoText[I] := IEM_ImageDimensions;
ImageBottomText[I] := IEM_Filename;
end;

Compatibility Notes

Prior to v6.0.0, ImageBottomText was a class that held properties for Font, Caption, etc. This was simplified in v6.0.0. ImageBottomText is now only a widestring that carries the caption for a cell.

So code that was previously:
ImageBottomText[idx].Caption := 'Abc';

Is now:
ImageBottomText[idx] := 'Abc';

To set the font of the text, use BottomTextFont. TextBackgroundStyle and TextBackgroundColor now control the background for all cells, and TextTruncSide allows you to change the truncation. These properties affect all cells, so to customize the styling of a particular cell use the OnGetTextEx event.

See Also

- OnGetText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageCacheSize

TImageEnMView.ImageCacheSize

Declaration

property ImageCacheSize: Integer;

Description

Specifies the number of images to be stored in memory, rather than in a memory mapped file. For example, if you know that a TImageEnMView will only contain 20 images then the ImageCacheSize could be set to 20 to disable all memory mapping.

Default: 10

See Also

- ClearImageCache
- EnableImageCaching
- ImageCacheUseDisk

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageCacheUseDisk

TImageEnMView.ImageCacheUseDisk

Declaration

property ImageCacheUseDisk: Boolean;

Description

When enabled, a disk file is used to cache the images and view. Otherwise only system memory is used.
Disabling this option is useful if you have low disk space or don't want ImageEn to write to disk.

Warning: Setting this property will also call Clear

Default: True

See Also

- ClearImageCache
- EnableImageCaching
- ImageCacheSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageCol

TImageEnMView.ImageCol

Declaration

property ImageCol[idx: Integer]: integer; (Read-only)

Description

ImageCol returns the column where is the image idx will be shown. ImageCol[] returns 0 for the first image, 1 for an image on the second column, etc.


TImageEnMView.ImageCount

TImageEnMView.ImageCount

Declaration

property ImageCount: integer; (Read-only)

Description

Returns the number of images stored in the TImageEnMView component.

Example

// Display the filename and dimensions for each image
for I := 0 to ImageEnMView1.ImageCount - 1 do
begin
ImageInfoText[I] := IEM_ImageDimensions;
ImageBottomText[I] := IEM_Filename;
end;


TImageEnMView.ImageCreateDate

TImageEnMView.ImageCreateDate

Declaration

property ImageCreateDate[idx: Integer]: TDateTime;

Description

Returns the creation date for the file at index, idx. If the file is a JPEG then this will be read from the EXIF data for greater accuracy. Otherwise it is read from the file system.

Result is 0 if this frame does not exist as a file on disk and has no exif data.

See also: ImageEditDate.


TImageEnMView.ImageDelayTime

TImageEnMView.ImageDelayTime

Declaration

property ImageDelayTime[idx: Integer]: Double;

Description

ImageDelayTime is the time in milliseconds the image, idx, will be shown during playback (Playing = True).


TImageEnMView.ImageEditDate

TImageEnMView.ImageEditDate

Declaration

property ImageEditDate[idx: Integer]: TDateTime;

Description

Returns the last modification date for the file at index, idx, which is read from the file system.

Result is 0 if this frame does not exist as a file on disk.

See also: ImageCreateDate.


TImageEnMView.ImageEnVersion

TImageEnMView.ImageEnVersion

Declaration

property ImageEnVersion: String;

Description

Returns the ImageEn version as a string.


TImageEnMView.ImageFileName

TImageEnMView.ImageFileName

Declaration

property ImageFileName[idx: Integer]: WideString;

Description

Specifies the file from where TImageEnMView will load the image for index, idx (loading is delayed until it needs to be shown).

A full file path must be specified. Optionally an image index can be specified for multi-page files in the form: "FullFilePath::ImageIndex"

Example 1

// Load image1.jpg as thumbnail 0 and image2.jpg as thumbnail 1
ImageEnView1.ImageFileName[0] := 'C:\image1.jpg';
ImageEnView1.ImageFileName[1] := 'C:\image2.jpg';

Example 2

// Load frame 0 and 1 from input.mpeg
ImageEnView1.ImageFileName[0] := 'C:\input.mpeg::0';
ImageEnView1.ImageFileName[1] := 'C:\input.mpeg::1';

Example 3

This example inserts two images. The first is loaded from 'one.tif' and the second from 'two.tif'.
The images are loaded only when these are shown (otherwise they are freed).

ImageEnMView1.InsertImage(0);
ImageEnMView1.ImageFileName[0] := 'C:\one.tif';
ImageEnMView1.InsertImage(1);
ImageEnMView1.ImageFileName[1] := 'C:\two.tif';

See Also

- LoadFromFileOnDemand

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageFileSize

TImageEnMView.ImageFileSize

Declaration

property ImageFileSize[idx: Integer]: Int64;

Description

Returns the file size (in Bytes) for the file at index, idx. Result is -1 if this frame does not exist as a file on disk.


TImageEnMView.ImageFileType

TImageEnMView.ImageFileType

Declaration

property ImageFileType[idx: Integer]: WideString;

Description

Returns the Window's file type for the file at index, idx.


TImageEnMView.ImageHeight

TImageEnMView.ImageHeight

Declaration

property ImageHeight[idx: Integer]: Integer;

Description

ImageWidth and ImageHeight return the dimensions of the image, idx.

Note: If images are being loaded on demand, then the image dimensions will not be valid until the image is loaded. Either use the OnImageLoaded to delay until the image is ready, or force loading of the image by using EnsureImageLoaded

Example

// Display the image size below the thumbnail
// Ensure you have set the BottomGap property
procedure TForm1.ImageEnMView1ImageDraw(Sender: TObject; idx: Integer; Left, Top: Integer; Canvas: TCanvas);
begin
Canvas.Font.Height := 15;
Canvas.Font.Color := clWhite;
Canvas.TextOut(Left,
Top + imageenmview1.ThumbHeight - imageenmview1.bottomgap + 2,
IntToStr(imageenmview1.ImageWidth[idx]) + 'x' + IntToStr(imageenmview1.ImageHeight[idx]));
end;


TImageEnMView.ImageID

TImageEnMView.ImageID

Declaration

property ImageID[idx: Integer]: integer;

Description

ImageID associates a numeric ID with image, idx. It is mainly used to allow dynamic loading of content into a TImageEnMView.

This ID is returned in the OnImageIDRequest and OnImageIDRequestEx events.

Note: ImageFilename is not valid when using ImageID.

Example

// Display all bitmaps in a TImageList in a TImageEnView
procedure TMyForm.FormShow(Sender: TObject);
var
I : Integer;
begin
ImageEnMView1.Clear;

// Add an ID for every bitmap in a TImageList
for I := 0 to ImageList1.Count - 1 do
begin
ImageEnMView1.InsertImage(I);
ImageEnMView1.ImageID[I] := I;
end;
end;

procedure TMyForm.ImageEnMViewOnImageIDRequest(Sender: TObject; ID: integer; var Bitmap: TBitmap);
begin
// Retrieve the image from a TImageList
Bitmap := TBitmap.create;
ImageList1.GetBitmap(ID, Bitmap);
end;


TImageEnMView.ImageInfoText

TImageEnMView.ImageInfoText

Declaration

property ImageInfoText[idx: Integer]: WideString;

Description

Use ImageInfoText to specify custom text to appear directly below the thumbnail of index, idx (above ImageBottomText).
The default info text is specified by DefaultInfoText but you can override this for a specific thumbnail by setting a value for ImageInfoText.

Notes:
- The font style is set by InfoTextFont. But you can customize it for specific thumbnails using the OnGetTextEx event.
- Other text fields that can be set are: ImageTopText and ImageBottomText

You can optionally specify the following constants:
Value | Displays | Example
IEM_Filename | Name of the file | 'MyImage.jpg'
IEM_FilenameNoExt | Name of the file without its extension (or path) | 'MyImage'
IEM_FilePath | Path of the file | 'C:\Data\My Pictures\'
IEM_ImageDimensions | Dimensions and color depth of images (Nothing is shown for non-images) | '1200 x 800'
IEM_ImageDimAndSize | Dimensions of images with the file size | '1200 x 800, 3,900 KB'
IEM_FileSize | Size of the file on disk | '3,900 KB'
IEM_FileCreateDate | The date that the file was created | '7/5/13'
IEM_FileCreateDateTime | The date and time that the file was created | '7/5/13 8:03am'
IEM_FileCreateDateAndSize | The create date of the file and its size | '7/5/13, 3,900 KB'
IEM_FileEditDate | The date that the file was last edited | '7/5/13'
IEM_FileEditDateTime | The date and time that the file was last edited | '7/5/13 8:03am'
IEM_FileEditDateAndSize | The last edit date of the file and its size | '7/5/13, 3,900 KB'
IEM_FileType | The ImageEn type for this file | 'JPEG Image'
IEM_FileExt | The extension only of the file, e.g. JPEG for 'MyImage.jpeg' | 'JPEG'
IEM_ImageDict"xyz" | Returns the value of key xyz from the ImageDictionary | 'Some Dictionary Value'

Example

ImageEnMView1.ImageTopText[idx] := 'Top text';
ImageEnMView1.ImageInfoText[idx] := 'Info text';
ImageEnMView1.ImageBottomText[idx] := 'Bottom text';

// Display the filename and dimensions for each image
for I := 0 to ImageEnMView1.ImageCount - 1 do
begin
ImageInfoText[I] := IEM_ImageDimensions;
ImageBottomText[I] := IEM_Filename;
end;

Compatibility Notes

Prior to v6.0.0, ImageInfoText was a class that held properties for Font, Caption, etc. This was simplified in v6.0.0. ImageInfoText is now only a widestring that carries the caption for a cell.

So code that was previously:
ImageInfoText[idx].Caption := 'Abc';

Is now:
ImageInfoText[idx] := 'Abc';

To set the font of the text, use InfoTextFont. TextBackgroundStyle and TextBackgroundColor now control the background for all cells, and TextTruncSide allows you to change the truncation. These properties affect all cells, so to customize the styling of a particular cell use the OnGetTextEx event.

See Also

- OnGetText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageOriginalHeight

TImageEnMView.ImageOriginalHeight

Declaration

property ImageOriginalHeight[idx: Integer]: Integer;

Description

Use ImageOriginalHeight to read or set the original height of the image, idx.

This is useful only when images are stored as thumbnails (StoreType = ietThumb/ietFastThumb) and you need to know the original image size.

Note: If images are being loaded on demand, then the image dimensions will not be valid until the image is loaded. Either use the OnImageLoaded to delay until the image is ready, or force loading of the image by using EnsureImageLoaded

See Also

- ImageOriginalWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageOriginalWidth

TImageEnMView.ImageOriginalWidth

Declaration

property ImageOriginalWidth[idx: Integer]: Integer;

Description

Use ImageOriginalWidth to read or set the original width of the image, idx.

This is useful only when images are stored as thumbnails (StoreType = ietThumb/ietFastThumb) and you need to know the original image size.

Note: If images are being loaded on demand, then the image dimensions will not be valid until the image is loaded. Either use the OnImageLoaded to delay until the image is ready, or force loading of the image by using EnsureImageLoaded

See Also

- ImageOriginalHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageRow

TImageEnMView.ImageRow

Declaration

property ImageRow[idx: Integer]: integer; (Read-only)

Description

Returns the row where image idx will be shown. ImageRow[] returns 0 for the first image, 1 for an image on the second row, etc.


TImageEnMView.ImageTag

TImageEnMView.ImageTag

Declaration

property ImageTag[idx: Integer]: integer;

Description

Associates a numeric integer value with the image, idx.

Note:
- This property is not used by TImageEnMView in any way and is provided for custom use (similar to the Tag property of components).
- The value is not loaded/saved from file and streams, or copied/pasted to clipboard.


TImageEnMView.ImageTopText

TImageEnMView.ImageTopText

Declaration

property ImageTopText[idx: Integer]: WideString;

Description

Use ImageTopText to specify custom text to appear above the thumbnail of index, idx.
The default top text is specified by DefaultTopText but you can override this for a specific thumbnail by setting a value for ImageTopText.

Notes:
- The font style is set by TopTextFont. But you can customize it for specific thumbnails using the OnGetTextEx event.
- UpperGap will be adjusted to fit the text.
- Other text fields that can be set are: ImageBottomText and ImageInfoText

You can optionally specify the following constants:
Value | Displays | Example
IEM_Filename | Name of the file | 'MyImage.jpg'
IEM_FilenameNoExt | Name of the file without its extension (or path) | 'MyImage'
IEM_FilePath | Path of the file | 'C:\Data\My Pictures\'
IEM_ImageDimensions | Dimensions and color depth of images (Nothing is shown for non-images) | '1200 x 800'
IEM_ImageDimAndSize | Dimensions of images with the file size | '1200 x 800, 3,900 KB'
IEM_FileSize | Size of the file on disk | '3,900 KB'
IEM_FileCreateDate | The date that the file was created | '7/5/13'
IEM_FileCreateDateTime | The date and time that the file was created | '7/5/13 8:03am'
IEM_FileCreateDateAndSize | The create date of the file and its size | '7/5/13, 3,900 KB'
IEM_FileEditDate | The date that the file was last edited | '7/5/13'
IEM_FileEditDateTime | The date and time that the file was last edited | '7/5/13 8:03am'
IEM_FileEditDateAndSize | The last edit date of the file and its size | '7/5/13, 3,900 KB'
IEM_FileType | The ImageEn type for this file | 'JPEG Image'
IEM_FileExt | The extension only of the file, e.g. JPEG for 'MyImage.jpeg' | 'JPEG'
IEM_ImageDict"xyz" | Returns the value of key xyz from the ImageDictionary | 'Some Dictionary Value'

Example

ImageEnMView1.ImageTopText[idx] := 'Top text';
ImageEnMView1.ImageInfoText[idx] := 'Info text';
ImageEnMView1.ImageBottomText[idx] := 'Bottom text';

// Display the filename and dimensions for each image
for I := 0 to ImageEnMView1.ImageCount - 1 do
begin
ImageInfoText[I] := IEM_ImageDimensions;
ImageBottomText[I] := IEM_Filename;
end;

Compatibility Notes

Prior to v6.0.0, ImageTopText was a class that held properties for Font, Caption, etc. This was simplified in v6.0.0. ImageTopText is now only a widestring that carries the caption for a cell.

So code that was previously:
ImageTopText[idx].Caption := 'Abc';

Is now:
ImageTopText[idx] := 'Abc';

To set the font of the text, use TopTextFont. TextBackgroundStyle and TextBackgroundColor now control the background for all cells, and TextTruncSide allows you to change the truncation. These properties affect all cells, so to customize the styling of a particular cell use the OnGetTextEx event.

See Also

- OnGetText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageType

TImageEnMView.ImageType

Declaration

property ImageType[idx: Integer]: TIEFolderImageType;

Description

Determines the type of file at at index, idx.

Example

case IEFolderMView1.ImageType[idx] of
ieftFolder : Caption := 'Folder';
ieftSupportedImage : Caption := 'Image/Video';
ieftFile : Caption := 'File';
end;


TImageEnMView.ImageUserPointer

TImageEnMView.ImageUserPointer

Declaration

property ImageUserPointer[idx: Integer]: pointer;

Description

ImageUserPointer associates a pointer with image, idx.

Note:
- This property is not used by TImageEnMView in any way and is provided for custom use.
- The value is not loaded/saved from file and streams, or copied/pasted to clipboard.

Example

// Store a description and record ID when adding files to our grid
type
TFileDataRecord = Record
Description : string[100];
RecordID : Byte;
end;

Procedure TfMain.AddImageToGrid(const sFilename, sDescription : string; iRecordID : Integer);
var
POurRecord : ^TFileDataRecord;
iNewIndex: Integer;
begin
// Allocate memory
GetMem(POurRecord, SizeOf(TFileDataRecord));

iNewIndex := ImageEnMView1.AppendImage(sFilename);
POurRecord.Description := sDescription;
POurRecord.RecordID := iRecordID;

ImageEnMView1.ImageUserPointer[iNewIndex] := POurRecord;
end;

// When removing items from the ImageEnMView1 deallocate the memory...
Procedure TfMain.ClearGrid;
begin
for i := 0 to ImageEnMView1.ImageCount - 1 do
FreeMem(ImageEnMView1.ImageUserPointer[i]);
ImageEnMView1.Clear;
end;


TImageEnMView.ImageWidth

TImageEnMView.ImageWidth

Declaration

property ImageWidth[idx: Integer]: Integer;

Description

ImageWidth and ImageHeight return the dimensions of the image, idx.

Note: If images are being loaded on demand, then the image dimensions will not be valid until the image is loaded. Either use the OnImageLoaded to delay until the image is ready, or force loading of the image by using EnsureImageLoaded

Example

// Display the image size below the thumbnail
// Ensure you have set the BottomGap property
procedure TForm1.ImageEnMView1ImageDraw(Sender: TObject; idx: Integer; Left, Top: Integer; Canvas: TCanvas);
begin
Canvas.Font.Height := 15;
Canvas.Font.Color := clWhite;
Canvas.TextOut(Left,
Top + imageenmview1.ThumbHeight - imageenmview1.bottomgap + 2,
IntToStr(imageenmview1.ImageWidth[idx]) + 'x' + IntToStr(imageenmview1.ImageHeight[idx]));
end;


TImageEnMView.ImageX

TImageEnMView.ImageX

Declaration

property ImageX[idx: Integer]: integer;

Description

Returns the X position (in pixels) where image idx will be shown.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ImageY

TImageEnMView.ImageY

Declaration

property ImageY[idx: Integer]: integer;

Description

Returns the Y position (in pixels) where image idx will be shown.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.InfoTextFont

TImageEnMView.InfoTextFont

Declaration

property InfoTextFont: TFont;

Description

Specify the font if you are using ImageInfoText to add text to your thumbnails.

Notes:
- If you need to change the font or styling of particular thumbnails, use the OnGetTextEx event.
- The color of this font may be overridden if EnableTheming is enabled.
- If Style is iemsColumns then InfoTextFont is also used for the header row font (though it can be overriden in the OnGetTextEx event)

See Also

- BottomTextFont
- TopTextFont
- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.InsertImage

TImageEnMView.InsertImage

Declaration

procedure InsertImage(idx: integer);
procedure InsertImage(Idx : integer; Stream : TStream);
procedure InsertImage(Idx : integer; Bitmap : TIEBitmap);
procedure InsertImage(Idx : integer; Bitmap : TBitmap);
procedure InsertImage(Idx : integer; Width, Height : integer; PixelFormat : TIEPixelFormat = ie24RGB);
procedure InsertImage(Idx : integer; const FileName : string);
procedure InsertImage(const FileName: String;
LoadOnDemand : boolean;
DefaultTopText : TIEImageEnMViewDefaultText = iedtNone;
DefaultInfoText : TIEImageEnMViewDefaultText = iedtNone;
DefaultBottomText : TIEImageEnMViewDefaultText = iedtFilename;
bSelectIt : Boolean = true);

Description

Inserts a new image at position, idx (0 is the first).

Note: First overload, InsertImage(idx: integer), doesn't create the bitmap.

The parameters for the final overload are as follows:
Parameter | Description
Filename | A file or folder available on the system, or an HTTP or FTP link to a remote file
LoadOnDemand | If True, the image will not be loaded from disk until it is displayed (i.e. when it is scrolled into view)
DefaultTopText | Specify the text that is applied to ImageTopText
DefaultInfoText | Specify the text that is applied to ImageInfoText
DefaultBottomText | Specify the text that is applied to ImageBottomText (defaults to the filename)
bSelectIt | The new image will be selected in the control

Examples

ImageEnView1.IO.LoadFromFile('C:\000.tif');
ImageEnMView1.InsertImage(0);
ImageEnMView1.SetImage(0, ImageEnView1.Bitmap);

// Which is the same as...
ImageEnMView1.InsertImage(0, 'C:\000.tif');

// Insert 256 x 256 bitmap
ImageEnMView1.InsertImage(0, 256, 256, ie24RGB);

// Insert a file from the web
ImageEnMView1.InsertImage(0, 'http://www.imageen.com/graphics/imageen.gif');

// Show the first ten frames of a video file
for I := 0 to 9 do
ImageEnMView1.InsertImage( I, 'D:\Temp\Cement.avi' + IEM_Path_Index_Delimiter + IntToStr( I * 10 ));

See Also

- InsertImageEx
- AppendImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.InsertImageEx

TImageEnMView.InsertImageEx

Declaration

procedure InsertImageEx(idx: integer; SelectMode : TIEMSelectMode = imsNever);

Description

InsertImageEx inserts a new image in position, idx (0 is the first).

Unlike InsertImage, InsertImageEx doesn't create the bitmap. Also, you can configure whether the image is selected.

Examples

ImageEnView1.IO.LoadFromFile('000.tif');
ImageEnMView1.InsertImageEx(0);
ImageEnMView1.SetImage(0, ImageEnView1.Bitmap);

// Append an image without selecting it
ImageEnMView1.InsertImageEx( ImageEnMView1.ImageCount, imsNever );

See Also

- InsertImage
- DeleteImage
- AppendImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.InsertingPoint

TImageEnMView.InsertingPoint

Declaration

function InsertingPoint(x, y: Integer): Integer;

Description

Returns the index of the image before or after the x, y position. It is useful when an image needs to be inserted at a particular cursor position.

Example

// this drag/drop event copy all selected images of ImageEnMView1 to ImageEnMView2, starting at X, Y mouse position
procedure TForm1.ImageEnMView2DragDrop(Sender, Source: TObject; X, Y: Integer);
var
i: integer;
idx, im: integer;
tmpbmp: TBitmap;
begin
im := ImageEnMView2.InsertingPoint(X, Y);
for i := 0 to ImageEnMView1.MultiSelectedImagesCount-1 do
begin
idx := ImageEnMView1.MultiSelectedImages[i];
tmpbmp := ImageEnMView1.GetBitmap( idx );
ImageEnMView2.InsertImage(im);
ImageEnMView2.SetImage(im, tmpbmp);
inc(im);
ImageEnMView1.ReleaseBitmap( idx );
end;
end;


TImageEnMView.InsertTransitionFrames

TImageEnMView.InsertTransitionFrames

Declaration

procedure InsertTransitionFrames(Idx : integer; iFrameCount : integer; Effect : TIETransitionType; iWidth : Integer = -1; iHeight : Integer = -1; BackgroundColor : TColor = -1; ResamplingFilter: TResampleFilter = rfFastLinear);

Description

Create a series of transition frames from the image at Idx - 1 to the image at Idx (and insert them at position Idx). If Idx = 0 then the transition is from a blank frame to the first image. If Idx = ImageCount then the transition is from the last image to a blank frame.

Parameter | Description
Idx | The insertion position
iFrameCount | The number of frames to insert
Effect | The desired transition effect
iWidth, iHeight | The size to create the transition bitmaps. If either of these are -1 then the size will be the larger of the two images in each dimension. Aspect Ratios will be maintained and any non-image area will be filled with BackgroundColor.
BackgroundColor | The color that will be used for blank frames or non-image area (if -1 then Background is used)
ResamplingFilter | The algorithm that is used to improve quality when resizing images

Notes:
- Does not call OnCreateImage
- Use InsertTransitionFramesEx if you need to create frames for an iettPanZoom transition
- Cannot be used if a TIEDBMultiBitmap is attached to the control

Demo

Demos\Multi\CreateTransitionFrames\CreateTransitionFrames.dpr

Example

// Create ten frames that use a cross dissolve transition from image 5 to image 6
ImageEnMView1.InsertTransitionFrames(6, 10, iettCrossDissolve);

See Also

- InsertTransitionFramesEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.InsertTransitionFramesEx

TImageEnMView.InsertTransitionFramesEx

Declaration

procedure InsertTransitionFramesEx(Idx : Integer; iFrameCount : Integer; Effect : TIETransitionType;
StartRect, EndRect : TRect; RectMaintainAspectRatio : boolean = True;
iWidth : Integer = -1; iHeight : Integer = -1; bStretchSmall : Boolean = False;
BackgroundColor : TColor = -1; ResamplingFilter : TResampleFilter;
Smoothing: Integer = 96; Timing : TIETransitionTiming = iettLinear);

Description

This is an extended version of InsertTransitionFrames that includes more parameters and is primarily used when you need to create a series of frames that show a Pan Zoom from StartRect to EndRect for the image specified at Idx - 1.

Parameter | Description
Idx | The insertion position
iFrameCount | The number of frames to insert
Effect | The desired transition effect
StartRect | When using an iettPanZoom effect this is the portion of the image that is shown at the start
EndRect | When using an iettPanZoom effect this is the portion of the image that is shown at the end
RectMaintainAspectRatio | ImageEn will ensure that the starting and ending rects are automatically adjusted to ensure the resultant image has the correct aspect ratio (iettPanZoom only)
iWidth, iHeight | The size to create the transition bitmaps. If either of these are -1 then the size will be the larger of the two images in each dimension. Aspect Ratios will be maintained and any non-image area will be filled with BackgroundColor.
bStretchSmall | If the images are smaller than the transition bitmap size (iWidth x iHeight) should they be stretched to fit (which can lead to distortion).
BackgroundColor | The color that will be used for blank frames or non-image area (if -1 then Background is used)
ResamplingFilter | The algorithm that is used to improve quality when resizing images
Timing | The rate at which the transition progresses
Smoothing | In order to reduce the "jumpiness" of pan zoom effects, transition frames are alpha blended. A low value will improve smoothness, but increase blurriness. A high value will improve clarity, but increase jumpiness. Typical range is 64 - 196. 255 means no alpha blending

Notes:
- Does not call OnCreateImage
- Cannot be used if a TIEDBMultiBitmap is attached to the control

Example

// Create ten Pan Zoom frames for the image at index 5

// Top Left corner of image
StartingRect := Rect(0, 0, ImageEnMView1.ImageWidth[5] div 4, ImageEnMView1.ImageHeight[5] div 4);

// Bottom right corner of image
EndingRect := Rect(MulDiv(ImageEnMView1.ImageWidth[5], 3, 4), MulDiv(ImageEnMView1.ImageHeight[5], 3, 4), ImageEnMView1.ImageWidth[5], ImageEnMView1.ImageHeight[5]);

// Create frames
ImageEnMView1.InsertTransitionFramesEx(5, 10, iettPanZoom, StartRect, EndRect);

See Also

- InsertTransitionFrames

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.IOOptionsEx

TImageEnMView.IOOptionsEx

Declaration

property IOOptionsEx: TIEMIOOptionsEx;

Description

Controls some advanced options for loading.
Default: [];

Note: You will need to update the display after changing IOOptionsEx, e.g. by calling ImageEnMView1.Update;


TImageEnMView.IsSelected

TImageEnMView.IsSelected

Declaration

function IsSelected(idx: Integer): Boolean;

Description

IsSelected returns true if the image, idx, is currently selected.

Example

// replaces all selected images with 'new.jpg'
for idx := 0 to ImageEnMView1.ImageCount - 1 do
if ImageEnMView1.IsSelected(idx) then
ImageEnMView1.SetImageFromFile(idx, 'new.jpg');
end;

See Also

- MultiSelectedImages

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.IsVisible

TImageEnMView.IsVisible

Declaration

function IsVisible(idx: Integer): Boolean;

Description

Returns True if image, idx, is currently visible (i.e. not scrolled out of view).

Note: The result may not be valid if the control is not visible. Call Update() prior to IsVisible if you need to calculate for a non-visible control.

See Also

- GetImageVisibility

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.JobsRunning

TImageEnMView.JobsRunning

Declaration

property JobsRunning: Integer;

Description

Returns the number of active threads which are loading thumbnails.

Demo

Demos\Multi\Thumbnails\Thumbnails.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.JobsWaiting

TImageEnMView.JobsWaiting

Declaration

property JobsWaiting: Integer;

Description

Returns the number of images/thumbnails waiting to be loaded.

Demo

Demos\Multi\Thumbnails\Thumbnails.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.KeyInteract

TImageEnMView.KeyInteract

Declaration

property KeyInteract: TIEMKeyInteract

Description

Specifies which keyboard activities the component will handle automatically.


TImageEnMView.LoadFromFileOnDemand

TImageEnMView.LoadFromFileOnDemand

Declaration

procedure LoadFromFileOnDemand(const FileName: WideString; Append: Boolean = false);

Description

Fills TImageEnMView with all frames of a multiple image file (AVI, MPEG, TIFF, etc.) by filling ImageFileName with filenames and all indexes of its frames (in the format 'FileName::0', 'FileName::1', etc.).

In this way loading of individual frames will be delayed until they are required (i.e. frames are only loaded when they appear on-screen). It is mainly used for loading the frames of files with numerous frames (such as videos).

When Append is false, the existing content of the TImageEnMView is cleared.

Note: You can set TImageEnMView.MIO.Aborting := True to abort the loading of an OnDemand sequence

Example

ImageEnMView1.LoadFromFileOnDemand('C:\input.mpeg');

If input.mpeg has 1000 frames, then we will now have:
ImageEnMView1.ImageFileName[0] = 'C:\input.mpeg::0'
ImageEnMView1.ImageFileName[1] = 'C:\input.mpeg::1'
...
ImageEnMView1.ImageFileName[999] = 'C:\input.mpeg::999'

Demo

Demos\InputOutput\LargeVideos\LargeVideos.dpr


TImageEnMView.LoadSnapshot

TImageEnMView.LoadSnapshot

Declaration

function LoadSnapshot(FileName: WideString): Boolean;
function LoadSnapshot(Stream: TStream): Boolean;

Description

Loads the image, cache data, text and dimensions of frames that have been save to a stream or file using SaveSnapshot.

This can be used to create caching mechanism, like Windows .db files, to load quickly an entire directory of images.


TImageEnMView.LockPaint

TImageEnMView.LockPaint

Declaration

procedure LockPaint;

Description

Increments the lock paint counter. While LockPaintCount is greater than zero all painting is disabled.

Use UnLockPaint to unlock.

Example

// Disable painting of component
ImageEnMView1.LockPaint;
try
... Perform activities, e.g. appending many files
finally
// Re-enable painting and refresh view
ImageEnMView1.UnlockPaint;
end;


TImageEnMView.LockPaintCount

TImageEnMView.LockPaintCount

Declaration

property LockPaintCount: Integer;

Description

Returns the lock painting state. A value of 0 means no locking. A value greater than zero means locking is in place (i.e. painting is disabled).

Calling LockPaint increments LockPaintCount, UnLockPaint decrements it.


TImageEnMView.LockUpdate

TImageEnMView.LockUpdate

Declaration

procedure LockUpdate;

Description

Increments the lock update counter. While LockUpdateCount is greater than zero all component updating is disabled.

Use UnLockUpdate to unlock.

Example

// Disable updating of component
ImageEnMView1.LockUpdate;
try
... Perform activities, e.g. appending many files
finally
// Re-enable Updating and refresh view
ImageEnMView1.UnlockUpdate;
end;


TImageEnMView.LockUpdateCount

TImageEnMView.LockUpdateCount

Declaration

property LockUpdateCount: Integer;

Description

Returns the lock updating state. A value of 0 means no locking. A value greater than zero means locking is in place (i.e. updating is disabled).

Calling LockUpdate increments LockUpdateCount, UnLockUpdate decrements it.


TImageEnMView.LookAhead

TImageEnMView.LookAhead

Declaration

property LookAhead: Integer;

Description

Specifies the number of images to pre-load (load before they are required for display).

Note: This property only applies when images are loaded on demand, e.g. by setting ImageFileName, FillFromDirectory or LoadFromFileOnDemand.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.MaintainInvisibleImages

TImageEnMView.MaintainInvisibleImages

Declaration

property MaintainInvisibleImages: Integer;

Description

Specifies the number of images to maintain when they are no longer visible (scrolled out of view).

Default: 15

Specify -1 to maintain all images in memory.
Specify 0 to discard all images when they are not visible.

Note: This property only applies when images are loaded on demand, e.g. by setting ImageFileName, FillFromDirectory or LoadFromFileOnDemand.


TImageEnMView.MaximumViewX

TImageEnMView.MaximumViewX

Declaration

property MaximumViewX: Integer;

Description

Returns the maximum value that you can specify for ViewX (naturally "MinimumViewX" is zero).

See also: MaximumViewY.


TImageEnMView.MaximumViewY

TImageEnMView.MaximumViewY

Declaration

property MaximumViewY: Integer;

Description

Returns the maximum value that you can specify for ViewY (naturally "MinimumViewY" is zero).

See also: MaximumViewX.


TImageEnMView.MIO

TImageEnMView.MIO

Declaration

property MIO: TImageEnMIO;

Description

Encapsulates the TImageEnMIO component inside TImageEnMView (it is created automatically the first time that it is used).

Example

ImageEnMView1.MIO.LoadFromFile('C:\film.avi');

ImageEnMView1.MIO.Acquire;


TImageEnMView.MissingFileIcon

TImageEnMView.MissingFileIcon

Declaration

property MissingFileIcon: TIEBitmap;

Description

Image that is displayed for files that cannot be found (i.e. have an invalid file path).

Note: Only valid if ietxEnableInternalIcons is specified in ThumbnailOptionsEx

See Also

- DefaultFileIcon

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.MouseInteract

TImageEnMView.MouseInteract

Declaration

property MouseInteract: TIEMMouseInteract;

Description

Specifies the effect of mouse actions upon the component.


TImageEnMView.MouseWheelParams

TImageEnMView.MouseWheelParams

Declaration

property MouseWheelParams: TIEMouseWheelParams;

Description

MouseWheelParams and MouseWheelParamsAlt allow you to customize the behavior of the mouse wheel. MouseWheelParams is used to specify the default mouse wheel behaviour, whereas MouseWheelParamsAlt is used when the Ctrl key is pressed.

Examples

// For iemwVScroll used with iemwPercentage, TImageEnMView assumes a theoretical grid of 12.5 thumbnails high
// So the default of 8% will scroll one thumbnail with each wheel click
// Whereas 16% would scroll the height of two thumbnails
ImageEnMView1.MouseWheelParams.Action := iemwVScroll;
ImageEnMView1.MouseWheelParams.Variation := iemwPercentage;
ImageEnMView1.MouseWheelParams.value := 4; // half a thumbnail

// Mouse wheel will navigate to the next or previous image
ImageEnMView1.MouseWheelParams.Action := iemwNavigate;

// Explorer like behavior. Mouse wheel scrolls the control and Ctrl + Mouse wheel changes the thumbnail view
ImageEnMView1.MouseWheelParams.Action := iemwVScroll;
ImageEnMView1.MouseWheelParamsAlt.Action := iemwZoomView;

Demo

Demos\Other\MouseWheel\MouseWheelParams.dpr


TImageEnMView.MouseWheelParamsAlt

TImageEnMView.MouseWheelParamsAlt

Declaration

property MouseWheelParams: TIEMouseWheelParams;

Description

MouseWheelParams and MouseWheelParamsAlt allow you to customize the behavior of the mouse wheel. MouseWheelParams is used to specify the default mouse wheel behaviour, whereas TImageEnMView.MouseWheelParamsAlt is used when the Ctrl key is pressed.

Examples

// Explorer like behavior. Mouse wheel scrolls the control and Ctrl + Mouse wheel changes the thumbnail view
ImageEnMView1.MouseWheelParams.Action := iemwVScroll;
ImageEnMView1.MouseWheelParamsAlt.Action := iemwZoomView;

Demo

\Other\MouseWheel\MouseWheelParams.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.MoveImage

TImageEnMView.MoveImage

Declaration

procedure MoveImage(idx: Integer; destination: Integer);

Description

Moves an image from the index position idx to the destination position.

If the destination index is greater than or equal to the image count, the image is moved to the position after the last image.

Notes:
- If you have images of the order ABCD, then calling MoveImage(0, 2) would change it to BCAD
- Cannot be used if a TIEDBMultiBitmap is attached to the control

Example

// Exchange first and second images
ImageEnMView1.MoveImage(0, 1);

// Move first image to the end of the grid
ImageEnMView1.MoveImage(0, ImageEnMView1.ImageCount);


TImageEnMView.MoveSelectedImagesTo

TImageEnMView.MoveSelectedImagesTo

Declaration

procedure MoveSelectedImagesTo(beforeImage: Integer; bUseDisplayOrder: Boolean = true);

Description

Moves all selected images to the postion prior to beforeImage.

To move images after last image set beforeImage to ImageCount.

if bUseDisplayOrder is true, then MultiSelectSortList will be called so that multiple selected files will be inserted in their new position in the order they are displayed. When false, they are inserted in the order that they were selected.

Example

// Move all selected images to the start of the grid
ImageEnMView1.MoveSelectedImagesTo(0);

// Move all selected images to the end of the grid
ImageEnMView1.MoveSelectedImagesTo(ImageEnMView1.ImageCount);


TImageEnMView.MultiSelectedImages

TImageEnMView.MultiSelectedImages

Declaration

property MultiSelectedImages[index: Integer]: Integer;

Description

Returns the index of all selected images, where MultiSelectedImages[0] returns the index of the first selected image, MultiSelectedImages[1] returns the second, etc.

Notes:
- Use MultiSelectedImagesCount to know how many images are selected
- The index returned by MultiSelectedImages is not in any particular order unless MultiSelectSortList is called
- This property is valid even if multiple selection is not enabled (i.e. returning SelectedImage).

Example 1

// replaces all selected images with 'new.jpg'
for i := 0 to ImageEnMView1.MultiSelectedImagesCount - 1 do
begin
iSelIndex := ImageEnMView1.MultiSelectedImages[ i ];
ImageEnMView1.SetImageFromFile(iSelIndex , 'new.jpg');
end;

Example 2

// Get filenames of all selected files

// Sort them by image index
ImageEnMView1.MultiSelectSortList;
lbxFilenames.clear;

for i := 0 to ImageEnMView1.MultiSelectedImagesCount - 1 do
begin
iSelIndex := ImageEnMView1.MultiSelectedImages[ i ];
lbxFilenames.Items.Add(ImageEnMView1.ImageFileName[iSelIndex]);
end;

See Also

- MultiSelectSortList
- MultiSelectedImagesCount
- IsSelected

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.MultiSelectedImagesCount

TImageEnMView.MultiSelectedImagesCount

Declaration

property MultiSelectedImagesCount: Integer;

Description

MultiSelectedImagesCount returns the number of selected images. Selected indexes are returned by MultiSelectedImages.

Note: This property is valid even if multiple selection is not enabled (i.e. returning either 0 or 1).

Example

// replaces all selected images with 'new.jpg'
for i := 0 to ImageEnMView1.MultiSelectedImagesCount - 1 do
begin
iSelIndex := ImageEnMView1.MultiSelectedImages[ i ];
ImageEnMView1.SetImageFromFile(iSelIndex , 'new.jpg');
end;

See Also

- MultiSelectSortList
- MultiSelectedImages
- IsSelected

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.MultiSelectedImagesList

TImageEnMView.MultiSelectedImagesList

Declaration

property MultiSelectedImagesList: TIEArrayOfInteger;

Description

Returns an array of integers representing the indexes of all selected images. Changing the content of this list doesn't change the actual selected images.

Notes:
- The index returned by MultiSelectedImagesList is not in any particular order unless MultiSelectSortList is called
- This property is valid even if multiple selection is not enabled (i.e. returning SelectedImage).


TImageEnMView.MultiSelecting

TImageEnMView.MultiSelecting

Declaration

property MultiSelecting: Boolean;

Description

Set MultiSelecting to True to simulate a CTRL key press. It allows the user to select multiple images with mouse or arrow keys without pressing the CTRL key.
Also, MultiSelecting can be used to select more than one image using the SelectedImage property.

Note: To allow multi-selection, the EnableMultiSelect property must be True.

Example

// select images 0 and 1 (assumes that you have set ImageEnMView1.EnableMultiSelect := True at design time)
ImageEnMView1.Deselect;
ImageEnMView1.MultiSelecting := True;
ImageEnMView1.SelectedImage := 0;
ImageEnMView1.SelectedImage := 1;
ImageEnMView1.MultiSelecting := False;


TImageEnMView.MultiSelectionOptions

TImageEnMView.MultiSelectionOptions

Declaration

property MultiSelectionOptions: TIEMultiSelectionOptions;

Description

Controls the behaviour of selection.

Example

// If you do not specify iemoRegion the entire row is selected:
ImageEnMView1.MultiSelectionOptions := [];

// By specifying iemoRegion only the specified columns are selected:
ImageEnMView1.MultiSelectionOptions := [iemoRegion];


TImageEnMView.MultiSelectSortList

TImageEnMView.MultiSelectSortList

Declaration

procedure MultiSelectSortList;

Description

Sorts the selected items list (MultiSelectedImages) by image index.

Example

// Get filenames of all selected files in the order they are displayed
ImageEnMView1.MultiSelectSortList;
lbxFilenames.clear;
for i := 0 to ImageEnMView1.MultiSelectedImagesCount - 1 do
begin
iSelIndex := ImageEnMView1.MultiSelectedImages[ i ];
lbxFilenames.Items.Add(ImageFileName[iSelIndex]);
end;


TImageEnMView.OnAcquireBitmap

TImageEnMView.OnAcquireBitmap

Declaration

property OnAcquireBitmap: TIEAcquireBitmapEvent;

Description

Occurs whenever a new bitmap is acquired during a multi-page Twain acquisition.
Parameter | Description
Sender | Will be either a TImageEnIO or TImageEnMIO control
ABitmap | A TIEBitmap object that contains the acquired image
DpiX, DpiY | Tne DPI of the acquired image
Handled | Setting Handled to True causes ImageEn to ignore this image (i.e. the current image won't be inserted into the TImageEnMView control, if attached). Handled has no effect when acquiring via a TImageEnView/TImageEnIO

Note: Handled defaults to False.

Example

procedure TForm1.ImageEnMView1AcquireBitmap(Sender: TObject; ABitmap: TIEBitmap; DpiX, DpiY: Integer; var Handled: boolean);
begin
// Skip retrieval of images that are less than 500x500 pixels
If ( ABitmap.Width < 500 ) or ( ABitmap.Height < 500 ) then
Handled := True;
end;


TImageEnMView.OnAfterEvent

TImageEnMView.OnAfterEvent

Declaration

property OnAfterEvent: TIEAfterEventEvent;

Description

Occurs immediately after ImageEn has processed an event.

See TIEAfterEvent for a list of handled events.


TImageEnMView.OnAllDisplayed

TImageEnMView.OnAllDisplayed

Declaration

property OnAllDisplayed: TNotifyEvent;

Description

Occurs when all images have been loaded and displayed.

See Also

- OnImageLoaded

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.OnAnimationText

TImageEnMView.OnAnimationText

Declaration

property OnAnimationText: TIEAnimationTextEvent;

Description

Occurs whenever text needs to be displayed during an animation.

See Also

- Animation

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.OnBeforeImageDraw

TImageEnMView.OnBeforeImageDraw

Declaration

property OnBeforeImageDraw: TIEImageDrawEvent;

Description

Occurs immediately before an image is drawn. It can be used to prepare parameters prior to drawing the image (e.g. ImageTopText, ImageBottomText and ImageInfoText).

Note: OnBeforeImageDraw and OnBeforeImageDrawEx are identical, except that OnBeforeImageDrawEx includes a ThumbRect parameter. Also if OnBeforeImageDrawEx is used the selection is not shown.


TImageEnMView.OnBeforeImageDrawEx

TImageEnMView.OnBeforeImageDrawEx

Declaration

property OnBeforeImageDrawEx: TIEImageDrawEventEx;

Description

Occurs immediately before the image of index, idx, is painted.
Left, Top are the top-left coordinates where the image will be drawn (i.e. destination bitmap coordinates).
Dest is the destination bitmap (containing the canvas where the image must be drawn).
ThumbRect specifies the destination rectangle for the image. You can change this parameter to control where the image is drawn.

Note: When this event is assigned, the selection is not shown.

See the Multi\CustomThumbs demo for more info.

Note: OnBeforeImageDraw and OnBeforeImageDrawEx are identical, except that OnBeforeImageDrawEx includes a ThumbRect parameter. Also if OnBeforeImageDrawEx is used the selection is not shown.


TImageEnMView.OnCheckboxClick

TImageEnMView.OnCheckboxClick

Declaration

property OnCheckboxClick: TIECheckboxClickEvent;

Description

Occurs whenever a user clicks a checkbox.

idx is the index of the clicked image.
bChecked specifies the new status of the image. You can override it, e.g. set it to false if the image cannot be checked

Note: Don't read CheckedCount in this event which will not yet be valid. Use OnClick or OnMouseUp.

Example

procedure TfMain.ImageEnMView1CheckboxClick(Sender: TObject; idx: integer; var bChecked : Boolean);
begin
// Only allow JPEG images to be checked
if bChecked and (IEFileIsOfFormat(ImageEnMView1.ImageFilename[idx], ioJPEG) = False) then
begin
MessageBeep(MB_ICONEXCLAMATION);
bChecked := False;
end;
end;

See also

- Checkboxes
- CheckedCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.OnCreateImage

TImageEnMView.OnCreateImage

Declaration

property OnCreateImage: TIECreateImageEvent;

Description

Occurs whenever (immediately after) a new image is created (i.e whenever a new image is added to the TImageEnMView).


TImageEnMView.OnDestroyImage

TImageEnMView.OnDestroyImage

Declaration

property OnDestroyImage: TIEDestroyImageEvent;

Description

Occurs whenever (immediately before) an image is destroyed (i.e whenever an image is removed from the TImageEnMView).


TImageEnMView.OnDrawProgress

TImageEnMView.OnDrawProgress

Declaration

property OnDrawProgress: TIEMProgressEvent;

Description

Occurs during painting for each image drawn.

Example

procedure TForm1.ImageEnMView1DrawProgress(Sender: TObject; per, idx: Integer);
begin
ProgressBar1.Position := per;
end;


TImageEnMView.OnFinishWork

TImageEnMView.OnFinishWork

Declaration

property OnFinishWork: TNotifyEvent;

Description

Occurs whenever an image processing or input/output task terminates.

It is always called after OnProgress so can be used to reset your progress bar.


TImageEnMView.OnGetText

TImageEnMView.OnGetText

Declaration

property OnGetText: TIEGetTextEvent;

Description

Occurs before text is output when drawing a thumbnail allowing you to insert or modify the displayed text.

Notes:
- If Style is iemsColumns then OnGetText is also called for the header row. The Index will be -1.
- If default text has not been specified for any thumbnails, you may need to set UpperGap/BottomGap to allow space for the text

Example

// Note: In form create we set IEFolderMView.UpperGap := 20;

// Display the file index above the frame
procedure TForm1.IEFolderMViewGetText(Sender: TObject; Index: Integer; Position: TIEMTextPos; var Text: WideString);
begin
if Index = -1 then
Text := 'File Number' // Header row
else
if Position = iemtpTop then
Text := 'File #' + IntToStr(Index + 1);
end;

See Also

- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.OnGetTextEx

TImageEnMView.OnGetTextEx

Declaration

property OnGetTextEx: TIEGetTextExEvent;

Description

Occurs before text is output when drawing a thumbnail allowing you to insert or modify the displayed text and change the styling.

Notes:
- If Style is iemsColumns then OnGetText is also called for the header row. The Index will be -1.
- If default text has not been specified for any thumbnails, or you are increasing the size of the font, you may need to set UpperGap/BottomGap to allow space for the text

Example

// Display the file as bold if it is JPEG
procedure TForm1.IEFolderMViewGetTextEx(Sender: TObject; Index: Integer; Position: TIEMTextPos; var Text: WideString;
var Font : TFont; var BackgroundStyle: TBrushStyle; var BackgroundColor: TColor;
var TruncSide: TIEMTruncSide);
begin
if ( Position <> iemtpBottom ) or ( Index = -1 ) then
exit;
sFileExt := ExtractFileExt( Text );
if IEExtToFileFormat( sFileExt ) = ioJPEG then
Font.Style := [fsBold]
else
Font.Style := [];
end;

// Give text on every thumb a random background color
procedure TForm1.IEFolderMViewGetTextEx(Sender: TObject; Index: Integer; Position: TIEMTextPos; var Text: WideString;
Font : TFont; var BackgroundStyle: TBrushStyle; var BackgroundColor: TColor;
var TruncSide: TIEMTruncSide);
begin
BackgroundColor := RGB( Random( 256 ), Random( 256 ), Random( 256 ));
BackgroundStyle := bsSolid;
end;

See Also

- OnGetText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.OnImageAdd

TImageEnMView.OnImageAdd

Declaration

property OnImageAdd: TIEImageAddEvent;

Description

Occurs whenever an image is added to a TImageEnFolderMView or when using TImageEnMView.FillFromDirectory.

See Also

- OnImageAdded
- OnImageLoaded

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.OnImageAdded

TImageEnMView.OnImageAdded

Declaration

property OnImageAdded: TIEMViewImageNotifyEvent;

Description

Occurs whenever an image has been added to the control.

See Also

- OnImageAdd
- OnImageLoaded

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.OnImageAtPos

TImageEnMView.OnImageAtPos

Declaration

property OnImageAtPos: TIEImageAtPosEvent;

Description

Occurs whenever it is necessary to check if specified coordinates are inside a thumbnail.


TImageEnMView.OnImageDeselect

TImageEnMView.OnImageDeselect

Declaration

property OnImageDeselect: TIEImageSelectEvent;

Description

Occurs whenever the user removes the selection from an image.

Note: EnableMultiSelect must be true.


TImageEnMView.OnImageDraw

TImageEnMView.OnImageDraw

Declaration

property OnImageDraw: TIEImageDrawEvent;

Description

Occurs whenever an image is painted.

Note: OnImageDraw and OnImageDraw2 are identical, except that OnImageDraw2 includes a ThumbRect parameter to return the thumbnail rectangle.

Example

// Display the image index and sizes on bottom of the thumbnail
// Ensure you have set the BottomGap property
procedure TForm1.ImageEnMView1ImageDraw(Sender: TObject; idx: Integer; Left, Top: Integer; Canvas: TCanvas);
begin
with canvas do
begin
Font.Height := 15;
Font.Color := clWhite;
TextOut(Left, Top + imageenmview1.ThumbHeight - imageenmview1.bottomgap + 2, IntToStr(idx));
TextOut(Left, Top, IntToStr(imageenmview1.ImageWidth[idx]) + 'x' + IntToStr(imageenmview1.ImageHeight[idx]));
end;
end;


TImageEnMView.OnImageDraw2

TImageEnMView.OnImageDraw2

Declaration

property OnImageDraw2: TIEImageDraw2Event;

Description

Occurs whenever an image is painted.

Note: OnImageDraw and OnImageDraw2 are identical, except that OnImageDraw2 includes a ThumbRect parameter to return the thumbnail rectangle.

Demo

Demos\Multi\CustomThumbs2\CustomThumbs2.dpr

Example

// Display the image index and sizes on bottom of the thumbnail
// Ensure you have set the BottomGap property
procedure TForm1.ImageEnMView1ImageDraw2(Sender: TObject; idx: Integer; Left, Top: Integer; Canvas: TCanvas);
begin
with canvas do
begin
Font.Height := 15;
Font.Color := clWhite;
TextOut(Left, Top + imageenmview1.ThumbHeight - imageenmview1.bottomgap + 2, IntToStr(idx));
TextOut(Left, Top, IntToStr(imageenmview1.ImageWidth[idx]) + 'x' + IntToStr(imageenmview1.ImageHeight[idx]));
end;
end;


TImageEnMView.OnImageEnGesture

TImageEnMView.OnImageEnGesture

Declaration

property OnImageEnGesture: TIEImageEnGestureEvent;

Description

Occurs whenever a gesture is handled by ImageEn.


TImageEnMView.OnImageIDRequest

TImageEnMView.OnImageIDRequest

Declaration

property OnImageIDRequest: TIEImageIDRequestEvent;

Description

Occurs whenever an image is required, if you have specified a value for its ImageID property.

ID is the value you have specified in ImageID property;
Bitmap is the image to display. It is a TBitmap (use OnImageIDRequestEx if you require a TIEBitmap). The bitmap is copied in TImageEnMView, and then automatically freed.

Example

procedure TMyForm.ImageEnMViewOnImageIDRequest(Sender: TObject; ID: integer; var Bitmap: TBitmap);
begin
// Retrieve the image from a TImageList
Bitmap := TBitmap.create;
ImageList1.GetBitmap(ID, Bitmap);
end;


TImageEnMView.OnImageIDRequestEx

TImageEnMView.OnImageIDRequestEx

Declaration

property OnImageIDRequestEx: TIEImageIDRequestExEvent;

Description

Occurs whenever an image is required if you have specified a value for the ImageID property.

ID is the value you have specified in ImageID property;
Bitmap is the image to display. It is a TIEBitmap (use OnImageIDRequest if you require a TBitmap). The bitmap is copied in TImageEnMView, and then automatically freed.

Example

procedure TMyForm.ImageEnMViewOnImageIDRequestEx(Sender: TObject; ID: integer; var Bitmap: TIEBitmap);
begin
// Create the image dynamically
Bitmap := TIEBitmap.create;
GenerateChartOfID(ID, Bitmap);
end;


TImageEnMView.OnImageLoaded

TImageEnMView.OnImageLoaded

Declaration

property OnImageLoaded: TIEMViewImageNotifyEvent;

Description

Occurs whenever an image is completes loading within the control. If an image is loaded on demand, some properties of the image, such as its Params are not available. This event occurs once the image has completed loading and its content and properties are available.

Note: The OnAllDisplayed event occurs once all images are loaded and displayed

See Also

- OnImageAdded
- OnAllDisplayed

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.OnImageOut

TImageEnMView.OnImageOut

Declaration

property OnImageOut: TIEImageOutEvent;

Description

Occurs during the drawing of thumbnails, just prior to the painting of the image. It can be used to manipulate the image (rotate, color effects, etc) or add annotations.

Note: Only the drawing of the image is affected, not the image itself.

Example

// Rotate all images 90 dec. CCW
procedure TForm1.ImageEnMView1ImageOut(Sender: TObject; idx: Integer; OutBitmap: TIEBitmap);
begin
OutBitmap.Rotate( 90 );
end;


TImageEnMView.OnImageSelect

TImageEnMView.OnImageSelect

Declaration

property OnImageSelect: TIEImageSelectEvent;

Description

Occurs whenever an image is selected.

Example

// Show the selected image in a TImageEnView
procedure TMainForm.ImageEnMView1ImageSelect(Sender: TObject; idx: Integer);
begin
ImageEnMView1.CopyToIEBitmap( idx, ImageEnView1.IEBitmap );
ImageEnVeiw1.Update;
end;


TImageEnMView.OnIOProgress

TImageEnMView.OnIOProgress

Declaration

property OnIOProgress: TIEProgressEvent;

Description

Occurs during input/output operations to advise the progress of the operation.


TImageEnMView.OnPlayFrame

TImageEnMView.OnPlayFrame

Declaration

property OnPlayFrame: TIEPlayFrameEvent;

Description

Occurs whenever a frame is displayed. You can set bShowFrame to False to skip playback of specific frames.

See also: Playing.

Example

// We have two TImageEnMViews showing the same set of images: iemFileList shows thumbnails of all images. iemDisplay shows a slideshow. A button displays a slideshow of all checked images in iemFileList
procedure TMainForm.iemDisplayPlayFrame(Sender: TObject; FrameIndex: integer; var bShowFrame: Boolean);
begin
if iemFileList.Checked[FrameIndex] = False then
bShowFrame := False;
end;


TImageEnMView.OnProgress

TImageEnMView.OnProgress

Declaration

property OnProgress: TIEProgressEvent;

Description

Occurs during image processing or input/output operations. It is useful to display progress to the user of the current task.

You can use OnFinishWork to reset the progress when the task has completed.


TImageEnMView.OnSelectionChanging

TImageEnMView.OnSelectionChanging

Declaration

property OnSelectionChanging: TIESelectionChangingEvent;

Description

Occurs prior to a change in the selected frame/thumbnail due to user action (i.e. mouse or keyboard).

This can be used to prevent changing of a selection (e.g. due to the current selection not being saved).


TImageEnMView.OnViewChange

TImageEnMView.OnViewChange

Declaration

property OnViewChange: TViewChangeEvent;

Description

Occurs when the ViewX or ViewY properties change.


TImageEnMView.OnWrongImage

TImageEnMView.OnWrongImage

Declaration

property OnWrongImage: TIEWrongImageEvent;

Description

Occurs whenever TImageEnMView cannot load the image specified by the ImageFileName property, for instance when the file is corrupt or of an unrecognized format.

You can specify an alternative bitmap to display by changing the OutBitmap property.

Example

Procedure MyForm1OnWrongImage(Sender: TObject; OutBitmap: TIEBitmap; idx: Integer; var Handled: Boolean);
Var
io: TImageEnIO;
begin
io := TImageEnIO.CreateFromBitmap(OutBitmap);
io.LoadFromFile('error_image.bmp');
io.Free;
Handled := True;
end;


TImageEnMView.PaintTo

TImageEnMView.PaintTo

Declaration

procedure PaintTo(Canvas: TBitmap); virtual;

Description

Output the current view to a bitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.Playing

TImageEnMView.Playing

Declaration

property Playing: boolean;

Description

Enable Playing to display each image consecutively for its ImageDelayTime time.
During playback, DisplayMode property is set to mdSingle and the Deselect method is called.
If PlayLoop is enabled then the animation will replay continuously


TImageEnMView.PlayLoop

TImageEnMView.PlayLoop

Declaration

property PlayLoop: boolean;

Description

Set PlayLoop to True to continuously loop playback of animated GIF and AVI files (when Playing is enabled).


TImageEnMView.PrepareSpaceFor

TImageEnMView.PrepareSpaceFor

Declaration

procedure PrepareSpaceFor(Width, Height: Integer; Bitcount: Integer; ImageCount: Integer);

Description

Allocates enough space within the temporary file for ImageCount> images of size Width * Height * BitCount.

Use this method to improve performance only when you plan to add many images of the same size.


TImageEnMView.Proc

TImageEnMView.Proc

Declaration

property Proc: TImageEnProc;

Description

The Proc property encapsulates the TImageEnProc component inside TImageEnMView (it is created automatically the first time that it is used). It allows you to perform image editing on the selected image.

Example

// Reverse colors of the selected image
ImageEnMView1.Proc.Negative;

// Reverse colors of all images in the TImageEnMView
ImageEnMView1.LockUpdate;
for i := 0 to ImageEnMView1.ImageCount - 1 do
begin
ImageEnMView1.SelectedImage := i;
ImageEnMView1.Proc.Negative;
end;
ImageEnMView1.SelectedImage := 0;
ImageEnMView1.UnlockUpdate;


TImageEnMView.ReleaseBitmap

TImageEnMView.ReleaseBitmap

Declaration

procedure ReleaseBitmap(idx: Integer; saveChanges: Boolean = true);

Description

Releases the bitmap created with GetBitmap or GetTIEBitmap method.

Parameter | Description
idx | The image index to release.
saveChanges | If true (default) the bitmap will be written in the cache.

Example

// Save the fifth image to file
bmp := ImageEnMView1.GetTIEBitmap(4); // Note: bmp must be TIEBitmap type
bmp.Write('D:\alfa.png');
ImageEnMView1.ReleaseBitmap(4, False);


TImageEnMView.ReloadImage

TImageEnMView.ReloadImage

Declaration

procedure ReloadImage(idx: Integer);

Description

Reloads the image at index, idx. Works only images loaded on demand (i.e. where you have set ImageFileName or ImageID).


TImageEnMView.RemoveBlankPages

TImageEnMView.RemoveBlankPages

Declaration

function RemoveBlankPages(Tolerance: Double = 0.0; Complete: boolean = true; LeftToRight: boolean = true): Integer;

Description

Locate images in the TImageEnMView of a single color (i.e. blank images) and remove them.

Parameter | Description
Tolerance | Determines how tolerant to be in checking color variance (in the range 0.0 to 1.0). For example, if tolerance is 0.1 then 10% of pixels can be of different color and the image would still be considered "blank"
Complete | If true all images are checked. Otherwise the check stops once the first non blank image has been found and removed.
LeftToRight | If true the scan starts at the first image and proceeds to the last (otherwise it proceeds in reverse order)

Returns the number of removed pages.

Notes:
- Does not call OnDestroyImage
- Cannot be used if a TIEDBMultiBitmap is attached to the control

Examples

// Remove last blank pages
ImageEnMView1.RemoveBlankPages( 0.0, False, False );

// Remove any pages that are 95% blank
ImageEnMView1.RemoveBlankPages( 0.05 );


TImageEnMView.RemoveDuplicates

TImageEnMView.RemoveDuplicates

Declaration

function RemoveDuplicates(): Integer;

Description

Locate images with duplicate content in the TImageEnMView and remove other instances.
Returns the number of removed pages.

Notes:
- Does not call OnDestroyImage
- Cannot be used if a TIEDBMultiBitmap is attached to the control

Examples

// Ensure there are no blank images in our TImageEnMView after filling it from a folder
ImageEnMView1.Clear;
ImageEnMView1.StoreType := ietNormal;
ImageEnMView1.FillFromDirectory('C:\Images');
ImageEnMView1.RemoveDuplicates();


TImageEnMView.SaveSnapshot

TImageEnMView.SaveSnapshot

Declaration

procedure SaveSnapshot(FileName: WideString; SaveCache: Boolean = True; Compressed: Boolean = False; SaveParams: Boolean = False);
procedure SaveSnapshot(Stream: TStream; SaveCache: Boolean = True; Compressed: Boolean = False; SaveParams: Boolean = False);

Description

Saves the image, cache data, text and dimensions of all frames to the specified stream or file.

This can be used to create caching mechanism, like Windows .db files, to load quickly an entire directory of images.

Value | Description
Filename/Stream | Destination for snapshot
SaveCache | If enabled (default), the image cache is also saved. This will speed up display but require more disk space
Compressed | If enabled, an LZ compression algorithm is used to reduce disk space (though saving will be slower)
SaveParams | Enable to save the input/output parameters for all images

You can reload a saved snapshot using LoadSnapshot.


TImageEnMView.ScrollBars

TImageEnMView.ScrollBars

Declaration

property ScrollBars: TScrollType;

Description

Specifies whether the TImageEnView control displays scroll bars.

Note: Scrollbars are never displayed if they are not required (unless ScrollBarsAlwaysVisible is set to true)

Value | Description
ssNone | No scroll bars are shown
ssHorizontal | A single scroll bar is shown along the bottom edge when needed
ssVertical | A single scroll bar is shown along the right edge when needed
ssBoth | Scroll bars are shown on both the bottom and right edges when needed


TImageEnMView.ScrollBarsAlwaysVisible

TImageEnMView.ScrollBarsAlwaysVisible

Declaration

property ScrollBarsAlwaysVisible: Boolean;

Description

When enabled, the scrollbars specified by ScrollBars will always be displayed even when not required.


TImageEnMView.Seek

TImageEnMView.Seek

Declaration

function Seek(Page : TIEIOSeekDestination) : integer;

Description

When DisplayMode is mdSingle then Seek sets VisibleFrame to display the first/previous/next/last image.

Otherwise it sets SelectedImage to move the selection to the first/previous/next/last image.

Returns the new page index.

Example

// Display a single image
ImageEnMView1.DisplayMode := mdSingle;
..
// Advance to the next image
ImageEnMView1.IO.Seek(ieioSeekNext);


TImageEnMView.SelectAll

TImageEnMView.SelectAll

Declaration

procedure SelectAll;

Description

Selects all images (if EnableMultiSelect is true).


TImageEnMView.SelectedFontColor

TImageEnMView.SelectedFontColor

Declaration

property SelectedFontColor: TColor;

Description

By default (when SelectedFontColor = clNone) the color of the text on both selected and unselected thumbnails is the same (as specified by ImageBottomText, ImageInfoText and ImageTopText).
If you specify a color for SelectedFontColor it will be used for selected cells.

Note: This value may be overridden if EnableTheming is enabled.

Default: clNone

See Also

- ThumbnailsBackgroundSelected

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SelectedImage

TImageEnMView.SelectedImage

Declaration

property SelectedImage: integer;

Description

Get or set the currently selected image (which will be drawn with a colored border.

You can get the bitmap of selected image using IEBitmap or Bitmap.

See Also

- SelectedImageAlwaysVisible

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SelectedImageAlwaysVisible

TImageEnMView.SelectedImageAlwaysVisible

Declaration

property SelectedImageAlwaysVisible: Boolean; (Read/Write)

Description

Ensures that the selected cell is always visible when set using SelectedImage or it changes due to appending or deleting images.

Default: True

See Also

- SelectedImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SelectionColor

TImageEnMView.SelectionColor

Declaration

property SelectionColor: TColor;

Description

Specifies the border color of selected cells.

Note: This value may be overridden if EnableTheming is enabled.

See Also

- SelectionWidth
- ThumbnailsBorderColor
- SelectedFontColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SelectionWidth

TImageEnMView.SelectionWidth

Declaration

property SelectionWidth: integer;

Description

Specifies the width (in pixels) of the border around selected frames.

Notes:
- If the control does not have focus, the selection width will be SelectionWidthNoFocus
- This value must be less than HorizBorder and VertBorder.

See Also

- SelectionColor
- ThumbnailsBorderWidth
- SelectedFontColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SelectionWidthNoFocus

TImageEnMView.SelectionWidthNoFocus

Declaration

property SelectionWidthNoFocus: integer;

Description

Specifies the width of the border around selected frames when the component doesn't have focus.
If the value is -1, it defaults to SelectionWidth

Default: -1

See Also

- SelectionWidth
- SelectionColor
- ThumbnailsBorderWidth
- SelectedFontColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SelectSeek

TImageEnMView.SelectSeek

Declaration

procedure SelectSeek(pos: TIESeek);

Description

Moves the selection by the method specified by pos. SelectSeek will scroll the view, where necessary, to ensure the newly selected image is visible.

Example

// This code loads "film.avi" and select the first image
ImageEnMView1.MIO.LoadFromFile('film.avi');
ImageEnMView1.SelectSeek(iskFirst);


TImageEnMView.SetAllText

TImageEnMView.SetAllText

Declaration

procedure SetAllText(TopText : TIEImageEnMViewDefaultText;
InfoText : TIEImageEnMViewDefaultText;
BottomText : TIEImageEnMViewDefaultText);;

Description

Set the values for ImageTopText, ImageInfoText and ImageBottomText.

Example

// Show only the filename
ImageEnMView1.SetAllText( iedtNone, iedtNone, iedtFileName );


TImageEnMView.SetCheckboxParams

TImageEnMView.SetCheckboxParams

Declaration

procedure SetCheckboxParams(iHorzMargin, iVertMargin : Integer; CustomCheckedImage : TBitmap = nil; CustomUncheckedImage : TBitmap = nil);

Description

Specifies the position and style of checkboxes (if Checkboxes have been enabled).

Parameter | Description
iHorzMargin | The position from the left (iecpTopLeft or iecpBottomLeft) or right (iecpTopRight or iecpBottomRight) of the thumbnail where the checkbox is positioned. Default: 4
iVertMargin | The position from the top (iecpTopLeft or iecpTopRight) or bottom (iecpBottomLeft or iecpBottomRight) of the thumbnail where the checkbox is positioned. Default: 4
CustomCheckedImage | If specified, it is the image that will be shown as the "checked" box. If nil the Windows standard checkbox image is used
CustomUncheckedImage | If specified, it is the image that will be shown as the "unchecked" box. If nil the Windows standard checkbox image is used

See Also

- CheckboxPos

Example

// Load custom checkbox images from file and position them at the very top left
CheckBmp := TBitmap.create;
UncheckBmp := TBitmap.create;
try
CheckBmp.LoadFromFile('C:\Images\Checked.bmp');
UncheckBmp.LoadFromFile('C:\Images\Unchecked.bmp');
ImageEnMView1.SetCheckboxParams(0, 0, CheckBmp, UncheckBmp);
ImageEnMView1.CheckboxPos := iecpTopLeft;
ImageEnMView1.Checkboxes := iecbAlways;
finally
CheckBmp.free;
UncheckBmp.free;
end;


TImageEnMView.SetChessboardStyle

TImageEnMView.SetChessboardStyle

Declaration

procedure SetChessboardStyle(Size: Integer; BrushStyle: TBrushStyle = bsSolid; Color1: TColor = clNone; Color2: TColor = clNone);

Description

Sets the size and brush of the chessboard background (when BackgroundStyle is iebsChessboard).

Parameter | Description
Size | Specifies the box size (default 16)
BrushStyle | Specifies the brush style of the boxes (default bsSolid)
Color1 | Color 1 of chessboard. Specifying this as something other than clNone will set Background
Color2 | Color 2 of chessboard. If specified as clNone, then color 2 will be a reverse of Color 1

Example

// Set small chessboard background of Yellow and Blue
ImageEnMView1.SetChessboardStyle( 5, bsSolid, clBlue, clYellow );
ImageEnMView1.BackgroundStyle := iebsChessboard;


TImageEnMView.SetExternalMBitmap

TImageEnMView.SetExternalMBitmap

Declaration

procedure SetExternalMBitmap(value : TIECustomMultiBitmap);

Description

Allows a custom TIEMultiBitmap or TIEDBMultiBitmap object to be attached to the TImageEnMView. The TImageEnMView will automatically display changes to the attached Multi-Bitmap.

It is mainly used to make a TImageEnMView DB aware.

Notes:
- You must create and destroy the external multi-bitmap yourself
- Use SetExternalMBitmap( nil ) to reset usage to the internal TIEMultiBitmap

Example

// Create DB Aware TImageEnMView
procedure TMainForm.FormCreate(Sender: TObject);
begin
... Open a database table ...

fDBMBitmap := TIEDBMultiBitmap.create( DataSource1, 'Name', 'Image' );
ImageEnMView1.SetExternalMBitmap( fDBMBitmap );
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
ImageEnMView1.SetExternalMBitmap( nil );
FreeAndNil( fDBMBitmap );
end;


TImageEnMView.SetImage

TImageEnMView.SetImage

Declaration

procedure SetImage(idx: Integer; srcImage: TIEBaseBitmap); overload;
procedure SetImage(idx: Integer; srcImage: TBitmap); overload;
procedure SetImage(idx: Integer; width, height: Integer; PixelFormat: TIEPixelFormat); overload;

Description

Sets the image assigned to index, idx. The srcImage bitmap is copied internally; therefore you can free srcImage after calling SetImage.

Example

ImageEnView1.IO.LoadFromFile('000.tif');
ImageEnMView1.InsertImageEx(0);
ImageEnMView1.SetImage(0, ImageEnView1.IEBitmap);

See Also

- SetImageFromFile
- SetImageFromStream

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SetImageEx

TImageEnMView.SetImageEx

Declaration

procedure SetImageEx(idx: Integer; srcImage: TBitmap);

Description

Sets the image assigned to index, idx. The srcImage bitmap is copied internally; therefore you can free srcImage after calling SetImageEx.

SetImageEx doesn't call Update (the only difference from SetImage).

Example

ImageEnView1.IO.LoadFromFile('000.tif');
ImageEnMView1.InsertImageEx(0);
ImageEnMView1.SetImageEx(0, ImageEnView1.Bitmap);
ImageEnMView1.Update; // not needed for SetImage()


TImageEnMView.SetImageFromFile

TImageEnMView.SetImageFromFile

Declaration

function SetImageFromFile(idx: Integer; const FileName: WideString; SourceImageIndex: Integer = 0; FileFormat: TIOFileType = ioUnknown): Boolean;

Description

Loads an image from a file and assigns it to the TImageEnMView at index, idx.
Use SourceImageIndex to specify the image index if the source file is a multi-frame file (such as a TIFF or AVI).
Specify a FileFormat for the file if the extension does not match its type.

Example

idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImageFromFile(idx, 'D:\myfile.jpg');

See Also

- SetImage
- SetImageFromStream

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SetImageFromStream

TImageEnMView.SetImageFromStream

Declaration

function SetImageFromStream(idx: Integer; Stream: TStream; SourceImageIndex: Integer = 0; FileFormat: TIOFileType = ioUnknown): Boolean;

Description

Loads an image from a stream and assigns it to the TImageEnMView at index, idx.
Use SourceImageIndex to specify the image index if the source file is a multi-frame file (such as a TIFF or AVI).
If FileFormat is ioUnknown the content will be examined to detect the image type.

Example

idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImageFromStream(idx, stream);

See Also

- SetImage
- SetImageFromFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SetImageRect

TImageEnMView.SetImageRect

Declaration

procedure SetImageRect(idx: Integer; srcImage: TBitmap; x1, y1, x2, y2: Integer);
procedure SetImageRect(idx: Integer; srcImage: TIEBitmap; x1, y1, x2, y2: Integer);

Description

Sets the image assigned to index, idx.

The rectangle x1, y1, x2, y2 of srcImage bitmap is copied internally. After calling SetImageRect you can free the srcImage bitmap.


TImageEnMView.SetModernStyling

TImageEnMView.SetModernStyling

Declaration

procedure SetModernStyling(bAutoGridWidth : Boolean = False; iThumbWidth : Integer = 0; iThumbHeight : Integer = 0; bSoftShadow: Boolean = True);

Description

Call SetModernStyling in FormCreate to update the control with the settings which closely match the current Windows styling.

if bAutoGridWidth is enabled then GridWidth is set to -1. You can also optionally specify default values for GridWidth and GridWidth and add a SoftShadow.

The current implementation of SetModernStyling makes the following changes:

Style := iemsFlat;
Background := clWindow;
ThumbnailsBackground := clWindow;
ThumbnailsBackgroundSelected := $00FCEADA;
SelectionColor := $00CEA27D;
SelectionWidth := 1;
TextMargin := 4;
HorizBorder := 8;
VertBorder := 8;
UpperGap := 0; (or 4 if bSoftShadow = False)
BottomGap := 0; (or 4 if bSoftShadow = False)
SideGap := 0; (or 4 if bSoftShadow = False)
TextBackgroundStyle := bsClear;
ThumbnailDisplayFilter := rfFastLinear;
ThumbnailsBorderWidth := 1;
SoftShadow.Radius := 2;
SoftShadow.OffsetX := 2;
SoftShadow.OffsetY := 2;
SoftShadow.Intensity := 70;
SoftShadow.Enabled := bSoftShadow;

Example

procedure TForm1.FormCreate(Sender: TObject);
begin
ImageEnMView1.SetModernStyling( True );
end;

See Also

- Style
- SetStyleEx
- EnableTheming

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SetPresetThumbnailFrame

TImageEnMView.SetPresetThumbnailFrame

Declaration

procedure SetPresetThumbnailFrame(PresetIndex: Integer; UnselectedColor: TColor; SelectedColor: TColor);

Description

Applies a background style to the thumbnails from an internal set

Value | Description
PresetIndex | The style to use (-1: No custom style, 0: Photo, 1: Film, 2: Album, 3: Picture Frame)
UnselectedColor | Color modification when frame is unselected
SelectedColor | Color modification when frame is selected

Examples

ImageEnMView1.SetPresetThumbnailFrame(0, clWhite, clGreen);

ImageEnMView1.SetPresetThumbnailFrame(2, clWhite, clGreen);

// Clear custom thumbs
ImageEnMView1.SetPresetThumbnailFrame(-1, clWhite, clWhite);

See demo

Multi\Thumbnails2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SetStyleEx

TImageEnMView.SetStyleEx

Declaration

procedure SetStyleEx(aStyle: TIEMStyle;
TopText : TIEImageEnMViewDefaultText;
InfoText : TIEImageEnMViewDefaultText;
BottomText : TIEImageEnMViewDefaultText;
iThumbZoom: Double = 0;
bAdjustSpacing: Boolean = True;
bAdjustStyle: Boolean = True;
bAdjustFont: Boolean = True);

Description

Provides a shortcut method to set the style of the control to several predefined styles:

ImageEnMView1.SetStyleEx( iemsFlat, iedtNone, iedtNone, iedtFileName );

ImageEnMView1.SetStyleEx( iemsFlatAndWide, iedtFileName, iedtFilePath, iedtImageDimAndSize );

ImageEnMView1.SetStyleEx( iemsColumns, iedtFileName, iedtImageDimAndSize, iedtFileCreateDate );

ImageEnMView1.GridWidth := 1;
ImageEnMView1.SetStyleEx( iemsFlatAndWide, iedtNone, iedtNone, iedtFileName, -24 );

Parameter | Description
aStyle | Sets Style to one of iemsFlat, iemsFlatAndWide or iemsColumns
TopText | Sets DefaultTopText
InfoText | Sets DefaultInfoText
BottomText | Sets DefaultBottomText
iThumbZoom | Sets Zoom. If a negative value is specified then Zoom will be set to give a thumbnail of that height in pixels (i.e. -22 would set the thumbnail height to 22 pixels). If 0 is specified, then actual zoom will depend on the specified aStyle
bAdjustSpacing | Sets the following properties with values best for the specified aStyle (and considering SoftShadow):- UpperGap- BottomGap- SideGap- TextMargin- TextBlockWidth- VertBorder- HorizBorder
bAdjustStyle | Sets the ThumbnailsBorderWidth to 0 if aStyle is iemsColumns
bAdjustFont | Sets the TopTextFont to [fsBold] if aStyle is iemsFlatAndWide

Example

// An application with menu items to change the view style
procedure TForm1.FormCreate(Sender: TObject);
begin
IEFolderMView.SetModernStyling( True );
end;

// Show Large Thumbs
procedure TForm1.rdbShowLargeThumbsClick(Sender: TObject);
begin
ImageEnMView1.GridWidth := -1;
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx - [ ietxOnlyShowIcons ];
ImageEnMView1.SetStyleEx( iemsFlat, iedtNone, iedtNone, iedtFileName, 200 );
end;

// Show Thumbs
procedure TForm1.rdbShowThumbsClick(Sender: TObject);
begin
ImageEnMView1.GridWidth := -1;
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx - [ ietxOnlyShowIcons ];
ImageEnMView1.SetStyleEx( iemsFlat, iedtNone, iedtNone, iedtFileName );
end;

// Show Small Thumbs with Detail
procedure TForm1.rdbShowDetailsClick(Sender: TObject);
begin
ImageEnMView1.GridWidth := -1;
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx - [ ietxOnlyShowIcons ];
ImageEnMView1.SetStyleEx( iemsFlatAndWide, iedtFileName, iedtFilePath, iedtImageDimAndSize );
end;

// Show File List
procedure TForm1.rdbShowDetailsClick(Sender: TObject);
begin
ImageEnMView1.GridWidth := 1;
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx + [ ietxOnlyShowIcons ];
ImageEnMView1.SetStyleEx( iemsFlatAndWide, iedtNone, iedtNone, iedtFileName, -24 );
end;

// Show Text Columns
procedure TForm1.rdbShowColumnsClick(Sender: TObject);
begin
ImageEnMView1.GridWidth := -1;
ImageEnMView1.ThumbnailOptionsEx := ImageEnMView1.ThumbnailOptionsEx + [ ietxOnlyShowIcons ];
ImageEnMView1.SetStyleEx( iemsColumns, iedtFileName, iedtImageDimAndSize, iedtFileCreateDate );
end;

Demo

Demos\Multi\MViewStyles\MViewStyles.dpr

See Also

- Style
- SetModernStyling
- ThumbnailOptionsEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SetThumbnailSize

TImageEnMView.SetThumbnailSize

Declaration

procedure SetThumbnailSize(width, height: Integer);

Description

Sets ThumbWidth and ThumbHeight in one step.

If SetImageSize is false, then the specified size is for thumbnail area (including border and text space). Otherwise, if true, it specifies the display size of the image only.

Declaration

// Set thumbnails to 200, 150
ImageEnMView1.SetThumbnailSize( 200, 150 );

// Set so images in the grid are shown at exactly 200, 150
ImageEnMView1.SetThumbnailSize( 200, 150, True );

See Also

- ThumbWidth
- ThumbHeight
- ThumbSizeInfo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SetViewXY

TImageEnMView.SetViewXY

Declaration

procedure SetViewXY(x, y: integer);

Description

Sets ViewX and ViewY simultaneously.


TImageEnMView.ShowText

TImageEnMView.ShowText

Declaration

property ShowText: Boolean;

Description

If enabled, the ImageTopText, ImageBottomText and ImageInfoText are displayed.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ShowThumbnailHint

TImageEnMView.ShowThumbnailHint

Declaration

property ShowThumbnailHint : Boolean;

Description

Automatically fills the control's Hint property with full details of the thumbnail under the cursor.

You can specify the hint display time using CustomHintTimeout


TImageEnMView.SideGap

TImageEnMView.SideGap

Declaration

property SideGap: integer;

Description

Specifies the distance between the thumbnail image and the borders on the left and right.

Note: Generally you will not need to use SideGap if you have enabled soft shadows which already include their own spacing.

See Also

- UpperGap
- BottomGap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.SoftShadow

TImageEnMView.SoftShadow

Declaration

property SoftShadow: TIEVSoftShadow;

Description

Paints a soft shadow beneath the thumbnails.

Notes:
- You will need to enable the alpha channel.
- Soft shadows are hidden if thumbnails are very small

Demo

Demos\Multi\Thumbnails2\Thumbnails2.dpr

Example

ImageEnMView.EnableAlphaChannel := True;
ImageEnMView.SoftShadow.Enabled := True;
ImageEnMView.SoftShadow.ShadowColor := TColor2TRGB( clBlue );


TImageEnMView.Sort

TImageEnMView.Sort

Declaration

procedure Sort(Compare: TIEImageEnMViewSortCompare);
procedure Sort(Compare: TIEImageEnMViewSortCompareEx);
procedure Sort(OrderBy: TIEImageEnMViewSortBy; Ascending: boolean = true; CaseSensitive: boolean = true);

Description

Sorts all images in the TImageEnMView by property (filename, dimensions, etc) or using a custom comparison function.

Example 1

// sort by filename
ImageEnMView1.Sort( iesbFilename );

Example 2

// sort by filename even if files come from different folders
ImageEnMView1.Sort( iesbFilenameWithoutPath );

Example 3

// custom sort function (by DPI)
function XCompareDPI(i1, i2: Integer): Integer;
var
s1, s2: Integer;
begin
s1 := Form1.ImageEnMView1.Params[i1].DPI;
s2 := Form1.ImageEnMView1.Params[i2].DPI;

if s1 < s2 then
result := -1
else
if s1 > s2 then
result := 1
else
result := 0;
end;

// Sort By DPI
procedure TForm1.Button1Click(Sender: TObject);
begin
ImageEnMView1.Sort( XCompareDPI );
end;


TImageEnMView.StoreType

TImageEnMView.StoreType

Declaration

property StoreType: TIEStoreType;

Description

Specifies how image used by the TImageEnMView component are stored in memory (as full size images or thumbnails at their display size)


TImageEnMView.Style

TImageEnMView.Style

Declaration

property Style: TIEMStyle;

Description

Specifies the thumbnail style.

ImageEnMView1.Style := iemsFlat;

ImageEnMView1.Style := iemsACD;

ImageEnMView1.Style := iemsFlatAndWide;

ImageEnMView1.Style := iemsColumns;

Notes on iemsColumns

A header row is displayed with the iemsColumns style. InfoTextFont is used for the font formatting, but this can be overriden in the OnGetTextEx event. The header row caption is based on the default text, but can be overriden in OnGetText or OnGetTextEx.
Columns will be shown for text fields which have text specified (e.g. using DefaultTopText) and a valid width. Columns are displayed in the order: DefaultTopText, DefaultBottomText, DefaultInfoText.

Example

procedure TForm1.rdbShowThumbsClick(Sender: TObject);
begin
IEFolderMView.LockUpdate;
try
IEFolderMView.Style := iemsFlat;
IEFolderMView.Zoom := 100;
IEFolderMView.TopTextFont.Style := [];
IEFolderMView.DefaultTopText := iedtNone;
IEFolderMView.DefaultInfoText := iedtNone;
IEFolderMView.DefaultBottomText := iedtFileName;
IEFolderMView.ThumbnailsBorderWidth := 1;
IEFolderMView.VertBorder := 8;
IEFolderMView.HorizBorder := 8;
finally
IEFolderMView.UnlockUpdate;
InitializeControls;
end;
end;

procedure TForm1.rdbShowDetailsClick(Sender: TObject);
begin
IEFolderMView.LockUpdate;
try
IEFolderMView.Style := iemsFlatAndWide;
IEFolderMView.Zoom := 50;
IEFolderMView.TopTextFont.Style := [ fsBold ];
IEFolderMView.DefaultTopText := iedtFileName;
IEFolderMView.DefaultInfoText := iedtFilePath;
IEFolderMView.DefaultBottomText := iedtImageDimAndSize;
IEFolderMView.ThumbnailsBorderWidth := 1;
IEFolderMView.VertBorder := 8;
IEFolderMView.HorizBorder := 8;
finally
IEFolderMView.UnlockUpdate;
InitializeControls;
end;
end;

procedure TForm1.rdbShowColumnsClick(Sender: TObject);
begin
IEFolderMView.LockUpdate;
try
IEFolderMView.Style := iemsColumns;
IEFolderMView.Zoom := 17;
IEFolderMView.TopTextFont.Style := [];
IEFolderMView.DefaultTopText := iedtFileName;
IEFolderMView.DefaultInfoText := iedtImageDimAndSize;
IEFolderMView.DefaultBottomText := iedtFileCreateDate;
IEFolderMView.ThumbnailsBorderWidth := 0;
IEFolderMView.VertBorder := 0;
IEFolderMView.HorizBorder := 0;
finally
IEFolderMView.UnlockUpdate;
InitializeControls;
end;
end;

Demo

Demos\Multi\MViewStyles\MViewStyles.dpr

See Also

- SetStyleEx
- SetModernStyling
- TextBlockWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TextBackgroundColor

TImageEnMView.TextBackgroundColor

Declaration

property TextBackgroundColor: TColor;

Description

Specify a background Color for your thumbnail text.

Note:
- You can customize the styling of specific frames using the OnGetTextEx event.
- This value may be overridden if EnableTheming is enabled.

Example

// Give Thumbnail text a solid yellow background
ImageEnMView1.TextBackgroundStyle := bsSolid;
ImageEnMView1.TextBackgroundColor := clYellow;
ImageEnMView1.FillFromDirectory('C:\Pictures');

See Also

- ImageTopText
- ImageInfoText
- ImageBottomText
- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TextBackgroundStyle

TImageEnMView.TextBackgroundStyle

Declaration

property TextBackgroundStyle: TBrushStyle;

Description

Specify a background style for your thumbnail text.

Note: You can customize the styling of specific frames using the OnGetTextEx event.

Example

// Give Thumbnail text a solid yellow background
ImageEnMView1.TextBackgroundStyle := bsSolid;
ImageEnMView1.TextBackgroundColor := clYellow;
ImageEnMView1.FillFromDirectory('C:\Pictures');

See Also

- ImageTopText
- ImageInfoText
- ImageBottomText
- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TextBlockWidth

TImageEnMView.TextBlockWidth

Declaration

property TextBlockWidth : integer;

Description

If Style is set to iemsFlatAndWide or iemsColumns then all text is shown on the right-hand side of the thumbnail.

iemsFlatAndWide:

iemsColumns:

TextBlockWidth specifies the width of the text block (Default: -1). If set to -1 then the value is automatic:
- If Style is iemsColumns then the width of all columns will match the width of the control (or the width of all column if custom widths have been set)
- If there is only one column (GridWidth = 1) it will match the width of the control
- If there are multiple columns it will be three times the width of the thumbnail

Note: The actual TextBlockWidth will be automatically adjusted to ensure it fits within the display area

Example

// Display detail thumbnails to the width of the control
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsFlatAndWide;
ImageEnMView1.GridWidth := 1;
ImageEnMView1.TextBlockWidth := -1;
ImageEnMView1.UnlockUpdate;

// Display detail thumbnails 300 pixels wide
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsFlatAndWide;
ImageEnMView1.GridWidth := -1;
ImageEnMView1.TextBlockWidth := 300 - ImageEnMView1.ThumbWidth;
ImageEnMView1.UnlockUpdate;

// Display columns to the width of the control
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsColumns;
ImageEnMView1.TextBlockWidth := -1;
ImageEnMView1.UnlockUpdate;

// Display columns 300 pixels wide
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsColumns;
ImageEnMView1.TextBlockWidth := 300 - ImageEnMView1.ThumbWidth;
ImageEnMView1.UnlockUpdate;


TImageEnMView.TextColumnWidths

TImageEnMView.TextColumnWidths

Declaration

property TextColumnWidths[Col : TIEMTextPos] : Integer;

Description

Specifies the width of each column when Style is set to iemsColumns.

With the iemsColumns display style, data is shown in four columns:
- Thumbnail
- DefaultTopText
- DefaultBottomText
- DefaultInfoText

The width of the thumbnail is set by ThumbWidth whereas the width of each column can be specified by TextColumnWidths. If a column width is set to -1, then it will be automatically calculated. TextColumnWidths set to zero will be hidden (also if the text is set to iedtNone).

Notes:
- Column widths will automatically be adjusted if they are too wide to fit in the available area
- Users can also manually resize column widths by clicking the header area with the mouse

Examples

// Display to the full width of the control with each column width auto-calculated
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsColumns;
ImageEnMView1.TextBlockWidth := -1;
ImageEnMView1.TextColumnWidths[ iemtpTop ] := -1;
ImageEnMView1.TextColumnWidths[ iemtpBottom ] := -1;
ImageEnMView1.TextColumnWidths[ iemtpInfo ] := -1;
ImageEnMView1.UnlockUpdate;

// Display to the full width of the control with the first column 100 pixels wide, the center column hidden, and the last column width auto-calculated
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsColumns;
ImageEnMView1.TextBlockWidth := -1;
ImageEnMView1.TextColumnWidths[ iemtpTop ] := 100;
ImageEnMView1.TextColumnWidths[ iemtpBottom ] := -1;
ImageEnMView1.TextColumnWidths[ iemtpInfo ] := 0;
ImageEnMView1.UnlockUpdate;

// Display to a total width of 300 with each column width auto-calculated
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsColumns;
ImageEnMView1.TextBlockWidth := 300;
ImageEnMView1.TextColumnWidths[ iemtpTop ] := -1;
ImageEnMView1.TextColumnWidths[ iemtpBottom ] := -1;
ImageEnMView1.TextColumnWidths[ iemtpInfo ] := -1;
ImageEnMView1.UnlockUpdate;

// Display to a total width of 300 with the first column 200 wide, and the remaining ones auto-calculated
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsColumns;
ImageEnMView1.TextBlockWidth := 300;
ImageEnMView1.TextColumnWidths[ iemtpTop ] := 200;
ImageEnMView1.TextColumnWidths[ iemtpBottom ] := -1;
ImageEnMView1.TextColumnWidths[ iemtpInfo ] := -1;
ImageEnMView1.UnlockUpdate;

// Display to a total width of 300 by setting specific widths for each column
ImageEnMView1.LockUpdate;
ImageEnMView1.Style := iemsColumns;
ImageEnMView1.TextBlockWidth := -1;
ImageEnMView1.TextColumnWidths[ iemtpTop ] := 200;
ImageEnMView1.TextColumnWidths[ iemtpBottom ] := 50;
ImageEnMView1.TextColumnWidths[ iemtpInfo ] := 50;
ImageEnMView1.UnlockUpdate;

Demo

\Demos\Multi\MViewStyles\MViewStyles.dpr

See Also

- TextBlockWidth
- Style

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TextMargin

TImageEnMView.TextMargin

Declaration

property TextMargin : integer;

Description

Specifies the offset from the border that the text appears:
- Left and right side for all text types (or top and bottom if Style is iemsFlatAndWide)
- From the top for ImageTopText
- From the bottom for ImageBottomText

Note: Setting TextMargin will automatically adjust UpperGap and BottomGap

Default: 0

See Also

- UpperGap
- BottomGap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TextTruncSide

TImageEnMView.TextTruncSide

Declaration

property TextTruncSide: TIEMTruncSide;

Description

Specifies the side to truncate the text if it is too wide to be displayed.


TImageEnMView.ThreadPoolSize

TImageEnMView.ThreadPoolSize

Declaration

property ThreadPoolSize: Integer;

Description

Specifies how many threads can be created to load images (to load images in the background). If ThreadPoolSize is set to 0 all images are loaded in the main thread.


TImageEnMView.ThumbHeight

TImageEnMView.ThumbHeight

Declaration

property ThumbHeight: integer;

Description

Specifies the height of the thumbnails displayed in the TImageEnView.

Note: This is the height of the thumbnail frame (when the Style is iemsFlat). The thumbnail image itself will be ThumbHeight less UpperGap and BottomGap. See ThumbSizeInfo for actual display size. Use SetThumbnailSize if you want to set the display size of the image itself.

See Also

- ThumbWidth
- SetThumbnailSize
- ThumbSizeInfo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ThumbnailClipping

TImageEnMView.ThumbnailClipping

Declaration

property ThumbnailClipping: Integer;

Description

Automatically clips the sides of the thumbnail when displaying it so that it more closely matches the size of the grid cell, for example, if you have a tall/portrait image the top and bottom would not be shown so that the thumbnail is as wide as the display area.

ThumbnailClipping is a percentage so the valid range is 0 to 100.

Possible values
Value | Description
0 | The entire image will be displayed as a thumbnail pointer.
1 - 99 | The percentage of permissible clipping. E.g. 10 would mean that up 10% of the image can be clipped.
100 | The maximum clipping will be performed so that the thumbnail has no border space (and all thumbnails will be displayed at an identical size)


TImageEnMView.ThumbnailDisplayFilter

TImageEnMView.ThumbnailDisplayFilter

Declaration

property ThumbnailDisplayFilter: TResampleFilter;

Description

ThumbnailDisplayFilter specifies a filter to apply when an image (thumbnail) need to be resized for display. Filters improve the quality of the thumbnail, but can slow down the application.
A value of rfNone provides no quality enhancement. Filters such as rfLanczos3 provide excellent quality, but are slower. A typical value is rfFastLinear which improves quality with negligible speed impact.

Notes:
- Unlike ThumbnailResampleFilter, ThumbnailDisplayFilter is used every time the image needs to be displayed
- For black/white images rfFastLinear is always used.

Default: rfNone

Example

// Use high quality thumbnails
ImageEnMView1.ThumbnailDisplayFilter := rfLanczos3;
ImageEnMView1.Repaint;


TImageEnMView.ThumbnailFrame

TImageEnMView.ThumbnailFrame

Declaration

property ThumbnailFrame: TIEBitmap;

Description

Specifies a bitmap to display under the thumbnail.

Examples

ImageEnMView1.ThumbnailFrame := ImageEnViewUnselected.IEBitmap;
ImageEnMView1.ThumbnailFrameSelected := ImageEnViewSelected.IEBitmap;
ImageEnMView1.ThumbnailFrameRect := Rect(10, 10, 50, 50);


TImageEnMView.ThumbnailFrameRect

TImageEnMView.ThumbnailFrameRect

Declaration

property ThumbnailFrameRect: TRect;

Description

Using ThumbnailFrameSelected and ThumbnailFrame, this property specifies where the image (the thumbnail) will be drawn.

Examples

ImageEnMView1.ThumbnailFrame := ImageEnViewUnselected.IEBitmap;
ImageEnMView1.ThumbnailFrameSelected := ImageEnViewSelected.IEBitmap;
ImageEnMView1.ThumbnailFrameRect := Rect(10, 10, 50, 50);


TImageEnMView.ThumbnailFrameSelected

TImageEnMView.ThumbnailFrameSelected

Declaration

property ThumbnailFrameSelected: TIEBitmap;

Description

Specifies a bitmap to display under the thumbnail when it is selected.

Examples

ImageEnMView1.ThumbnailFrame := ImageEnViewUnselected.IEBitmap;
ImageEnMView1.ThumbnailFrameSelected := ImageEnViewSelected.IEBitmap;
ImageEnMView1.ThumbnailFrameRect := Rect(10, 10, 50, 50);


TImageEnMView.ThumbnailOptionsEx

TImageEnMView.ThumbnailOptionsEx

Declaration

property ThumbnailOptionsEx: TIEMThumbnailOptionsEx;

Description

Controls some advanced options for the display of icons and thumbnails.
Default: [ietxShowIconForUnknownFormat, ietxShowIconWhileLoading, ietxEnableInternalIcons, ietxStretchSmallImages];

Note: You will need to update the display after changing ThumbnailOptionsEx, e.g. by calling ImageEnMView1.Update;


TImageEnMView.ThumbnailResampleFilter

TImageEnMView.ThumbnailResampleFilter

Declaration

property ThumbnailResampleFilter: TResampleFilter;

Description

Specifies the filter to use when thumbnails are generated (when assigning images to a TImageEnMView and StoreType = ietThumb). Filters improve the quality of the thumbnail, but can slow down the application.
A value of rfNone provides no quality enhancement. Filters such as rfLanczos3 provide excellent quality, but are slower.

Default: rfFastLinear (improve quality with negligible speed impact)

Note: Unlike ThumbnailDisplayFilter, ThumbnailResampleFilter is only used once for each image (when it first assigned/loaded)

Example

// insert image 1.jpg and 2.jpg. Only 1.jpg will be filtered.
ImageEnMView1.ThumbnailResampleFilter := rfBSpline;
Idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImageFromFile('1.jpg');

ImageEnMView1.ThumbnailResampleFilter := rfNone;
Idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImageFromFile('2.jpg');


TImageEnMView.ThumbnailsBackground

TImageEnMView.ThumbnailsBackground

Declaration

property ThumbnailsBackground: TColor;

Description

Specifies the background color of the thumbnails when they are NOT selected. Use ThumbnailsBackgroundSelected to set the color when selected.

Notes:
- This value may be overridden if EnableTheming is enabled.
- Not used if DrawImageBackground is enabled


TImageEnMView.ThumbnailsBackgroundSelected

TImageEnMView.ThumbnailsBackgroundSelected

Declaration

property ThumbnailsBackgroundSelected: TColor;

Description

Specifies the background color of the thumbnails when they are selected. Use ThumbnailsBackground to set the color when NOT selected.

Notes:
- This value may be overridden if EnableTheming is enabled.
- Not used if DrawImageBackground is enabled


TImageEnMView.ThumbnailsBackgroundStyle

TImageEnMView.ThumbnailsBackgroundStyle

Declaration

property ThumbnailsBackgroundStyle: TIEBackgroundStyle

Description

Specifies the style of the thumbnail background (the region of the thumbnail that does not contain the image).

Note: Only applicable when EnableAlphaChannel is true and the image has an alpha channel to make it transparent.


TImageEnMView.ThumbnailsBorderColor

TImageEnMView.ThumbnailsBorderColor

Declaration

property ThumbnailsBorderColor: TColor;

Description

Specifies the color of the thumbnail border.

Note: This value may be overridden if EnableTheming is enabled.

Example

// draw a thin green border to all thumbnails
ImageEnMView1.ThumbnailsBorderWidth := 1;
ImageEnMView1.ThumbnailsBorderColor := clGreen;

See Also

- ThumbnailsBorderWidth
- SelectionColor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ThumbnailsBorderCurved

TImageEnMView.ThumbnailsBorderCurved

Declaration

property ThumbnailsBorderCurved: Boolean;

Description

Specifies the width (in pixels) of the thumbnail border.

Default: True

Example

// Draw rectangular borders for thumbnails
ImageEnMView1.ThumbnailsBorderCurved := False;

See Also

- ThumbnailsBorderWidth
- SelectionWidth
- SelectionWidthNoFocus

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ThumbnailsBorderWidth

TImageEnMView.ThumbnailsBorderWidth

Declaration

property ThumbnailsBorderWidth: Integer;

Description

Specifies the width (in pixels) of the thumbnail border.

Default: 0

This value should be less than ThumbWidth and ThumbHeight. Specify the color of the border using ThumbnailsBorderColor.

Example

// Draw a thin green border around all thumbnails
ImageEnMView1.ThumbnailsBorderWidth := 1;
ImageEnMView1.ThumbnailsBorderColor := clGreen;

See Also

- SelectionWidth
- SelectionWidthNoFocus
- ThumbnailsBorderCurved

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ThumbnailsInternalBorder

TImageEnMView.ThumbnailsInternalBorder

Declaration

property ThumbnailsInternalBorder: boolean;

Description

If enabled, a border is drawn around the thumbnail interior. Specify the color using ThumbnailsInternalBorderColor.


TImageEnMView.ThumbnailsInternalBorderColor

TImageEnMView.ThumbnailsInternalBorderColor

Declaration

property ThumbnailsInternalBorderColor: TColor;

Description

Specifies the border color when ThumbnailsInternalBorder is True.


TImageEnMView.ThumbSizeInfo

TImageEnMView.ThumbSizeInfo

Declaration

function ThumbSizeInfo(Data: TIEThumbSizeType): TPoint;

Description

Returns internal information about the current displayed size of thumbnail cells in the TImageEnView.

Data can be one of:
Value | Description
itsImage | Returns the size of the thumbnail image as displayed
itsCell | Returns the size of the thumbnail cell (image, text and cell border)
itsOuter | Returns the size of the thumbnail cell and its external spacing (image, text, cell border and horizontal/vertical border)

It takes into account:
- ThumbWidth and ThumbHeight
- Zoom
- SideGap, UpperGap and BottomGap
- HorizBorder and VertBorder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ThumbsRounded

TImageEnMView.ThumbsRounded

Declaration

property ThumbsRounded: Integer;

Description

If value greater than zero is specified for ThumbsRounded then the image is drawn with rounded corners.

Smaller values provide the maximum roundness, while large value produce minimal roundness.

Demo

Demos\Multi\Thumbnails2\Thumbnails2.dpr

Example

ImageEnMView1.ThumbsRounded := 5;


TImageEnMView.ThumbWidth

TImageEnMView.ThumbWidth

Declaration

property ThumbWidth: integer;

Description

Specifies the width of the thumbnails displayed in the TImageEnView.

Note: This is the width of the thumbnail frame (when the Style is iemsFlat). The thumbnail image itself will be ThumbWidth less 2 x SideGap. See ThumbSizeInfo for actual display size. Use SetThumbnailSize if you want to set the display size of the image itself.

See Also

- ThumbHeight
- SetThumbnailSize
- ThumbSizeInfo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TopTextFont

TImageEnMView.TopTextFont

Declaration

property TopTextFont: TFont;

Description

Specify the font if you are using ImageTopText to add text to your thumbnails.

Notes:
- If you need to change the font or styling of particular thumbnails, use the OnGetTextEx event.
- The color of this font may be overridden if EnableTheming is enabled.

See Also

- BottomTextFont
- InfoTextFont
- OnGetTextEx

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TrackMouseSelection

TImageEnMView.TrackMouseSelection

Declaration

property TrackMouseSelection: Boolean;

Description

If True a semi-transparent rectangle is shown during mouse selection.

Default: False

Demo

Demos\Multi\Multiview\Multiview.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TransitionDuration

TImageEnMView.TransitionDuration

Declaration

property TransitionDuration: Integer;

Description

Specifies the duration of the transition in milliseconds.

Example

// Design time properties...
ImageEnMView1.DisplayMode := mdSingle;
ImageEnMView1.TransitionEffect := iettCrossDissolve;
ImageEnMView1.TransitionDuration := 1500;

// Display next frame using cross dissolve effect
ImageEnMView1.VisibleFrame := ImageEnMView1.VisibleFrame + 1;

See Also

- TransitionEffect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TransitionEffect

TImageEnMView.TransitionEffect

Declaration

property TransitionEffect: TIETransitionType;

Description

Specifies the effect to apply when the application changes the currently displayed frame.

Note: DisplayMode must be mdSingle. To change current frame, use the VisibleFrame property.

iettShreddedFromLeft

iettCubeRotateFromTop2

Example

// Design time properties...
ImageEnMView1.DisplayMode := mdSingle;
ImageEnMView1.TransitionEffect := iettCrossDissolve;
ImageEnMView1.TransitionDuration := 1500;

// Display next frame using cross dissolve effect
ImageEnMView1.VisibleFrame := ImageEnMView1.VisibleFrame + 1;

See Also

- TransitionDuration

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.TransitionRunning

TImageEnMView.TransitionRunning

Declaration

property TransitionRunning: Boolean;

Description

Returns true when a transition is running.

Example

// Design time properties...
ImageEnMView1.DisplayMode := mdSingle;
ImageEnMView1.TransitionEffect := iettCrossDissolve;
ImageEnMView1.TransitionDuration := 1500;

// display next frame using cross dissolve
ImageEnMView1.VisibleFrame := ImageEnMView1.VisibleFrame + 1;

// wait for the transition to end
While ImageEnMView1.TransitionRunning do
Application.processmessages;
ShowMessage('transition done!');


TImageEnMView.UncheckAll

TImageEnMView.UncheckAll

Declaration

procedure UncheckAll;

Description

Marks the checkbox status for all files to "Unchecked" (if Checkboxes have been enabled).


TImageEnMView.UnlockPaint

TImageEnMView.UnlockPaint

Declaration

function UnlockPaint: integer;

Description

Decrement the lock paint counter (use after calling LockPaint).

If the lock count is zero, then Update is called to refresh the view.

Returns the lock count.

Example

// Disable painting of component
ImageEnMView1.LockPaint;
try
... Perform activities, e.g. appending many files
finally
// Re-enable painting and refresh view
ImageEnMView1.UnlockPaint;
end;


TImageEnMView.UnLockUpdate

TImageEnMView.UnLockUpdate

Declaration

function UnlockUpdate: integer;

Description

Decrement the lock update counter (use after calling LockUpdate).

If the lock count is zero, then Update is called to refresh the view.

Returns the lock count.

Example

// Disable updating of component
ImageEnMView1.LockUpdate;
try
... Perform activities, e.g. appending many files
finally
// Re-enable updating and call update
ImageEnMView1.UnlockUpdate;
end;


TImageEnMView.UnselectImage

TImageEnMView.UnselectImage

Declaration

procedure UnselectImage(idx: Integer);

Description

Remove selection from the specified image (if multiselection is enabled).


TImageEnMView.Update

TImageEnMView.Update

Declaration

procedure Update;

Description

Updates the display to show the current content and properties.


TImageEnMView.UpdateImage

TImageEnMView.UpdateImage

Declaration

procedure UpdateImage(idx: Integer);

Description

Redraw the image, idx.

Whenever an image (Bitmap) within a TImageEnMView changes, you must update the component with Update or UpdateImage.

Example

// Draw a rectangle on the fourth image
var
bmp: TBitmap;
begin
bmp := ImageEnMView1.GetBitmap(3);
bmp.canvas.rectangle(0, 0, 10, 10);
ImageEnMView1.ReleaseBitmap(3);
UpdateImage(3);
end;


TImageEnMView.UpperGap

TImageEnMView.UpperGap

Declaration

property UpperGap: integer;

Description

Specifies the distance between the thumbnail image and its top border.

You can use UpperGap to reserve space for painting, e.g. custom text (with OnImageDraw).

Compatibility Notes

In older versions, UpperGap would be internally increased to allow space for top text. This does not occur from v6.22.
To maintain consistent styling, an UpperGap of more than twelve is assumed to include text space (i.e. If UpperGap <= 12: ActualGap = UpperGap + Text_Height. If UpperGap > 12: ActualGap = UpperGap Only).

See Also

- BottomGap
- SideGap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.VertBorder

TImageEnMView.VertBorder

Declaration

property VertBorder: integer;

Description

Specifies the vertical distance between thumbnail cells.

See also: HorizBorder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnMView.ViewX

TImageEnMView.ViewX

Declaration

property ViewX: integer;

Description

ViewX is the first column visible at the top-left corner of the control, in pixels (for example, if the user has scrolled horizontally by two columns then it will return 2 * ThumbWidth). It is only relevant when GridWidth has a value greater than zero (otherwise it always returns 0).

You can set ViewX to simulate horizontal scrollbar movement.

See also: ViewY.


TImageEnMView.ViewY

TImageEnMView.ViewY

Declaration

property ViewY: integer;

Description

ViewY is the first row visible at the top-left corner of the control, in pixels (for example, if the user has scrolled vertically by two rows then it will return 2 * ThumbHeight). It is not relevant if GridWidth = 0 (in which case it always returns 0).

You can set ViewY to simulate vertical scrollbar movement.

See also: ViewX.


TImageEnMView.VisibleFrame

TImageEnMView.VisibleFrame

Declaration

property VisibleFrame: Integer;

Description

Specifies the visible image when DisplayMode is mdSingle or Playing is True.


TImageEnMView.VisibleSelection

TImageEnMView.VisibleSelection

Declaration

property VisibleSelection: boolean;

Description

When enabled the selected frame is marked. Otherwise selected and unselected frames look identical.


TImageEnMView.VScrollBarParams

TImageEnMView.VScrollBarParams

Declaration

property VScrollBarParams: TIEScrollBarParams;

Description

Properties to customize the behavior of the vertical scroll bar. This includes tracking (display refresh on mouse dragging), up/down buttons scroll distance and pagedown/up scroll distance.

Example

// disable tracking
ImageEnMView1.VScrollBarParams.Tracking := False;


TImageEnMView.Wallpaper

TImageEnMView.Wallpaper

Declaration

property Wallpaper: TPicture;

Description

Sets a background image that appears behind the thumbnails. Use WallpaperStyle to specify how the wallpaper is painted.

Demo

Demos\Multi\Thumbnails2\Thumbnails2.dpr

Example

// Tile a bitmap over the background
ImageEnMView1.WallpaperStyle := iewoTile
ImageEnMView1.Wallpaper.LoadFromFile('D:\MyWallpaper.bmp');


TImageEnMView.WallpaperStyle

TImageEnMView.WallpaperStyle

Declaration

property WallpaperStyle: TIEWallpaperStyle;

Description

Determines how the wallpaper (specified by Wallpaper) is painted.

Example

// Tile a bitmap over the background
ImageEnMView1.WallpaperStyle := iewoTile
ImageEnMView1.Wallpaper.LoadFromFile('D:\MyWallpaper.bmp');


TImageEnMView.Zoom

TImageEnMView.Zoom

Declaration

property Zoom: Double;

Description

Enlarge or reduce the size of the thumbnail display.

Note: This property is only recomended for handling of temporary display enlargement. It is better to set the size of the thumbnails.

See Also

- ThumbWidth
- ThumbHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnPaletteDialog

TImageEnPaletteDialog

Description

TImageEnPaletteDialog is a dialog that shows a color palette and allows a color to be selected from it.

See also: CalcImagePalette

Methods

Execute
SetPalette

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnPaletteDialog.Execute

TImageEnPaletteDialog.Execute

Declaration

function Execute: boolean;

Description

Executes the dialog. Returns True if the user select a color, otherwise False if the user Cancel the dialog.

Use SelCol property to get the color selected as TColor or NumCol to get as integer index.

Example

Var
fPalDial: TImageEnPaletteDialog;
Begin
fPalDial := TImageEnPaletteDialog.Create(self);
fPalDial.SetPalette(ImageEnIO1.Params.ColorMap^, ImageEnIO1.Params.ColorMapCount);
if fPalDial.Execute then
Panel1.Color := fPalDial.SelCol;
fPalDial.free;
End;


TImageEnPaletteDialog.SetPalette

TImageEnPaletteDialog.SetPalette

Declaration

procedure SetPalette(var Palette: array of TRGB; NumCol: integer);

Description

Sets palette to show in the dialog.

Example

Var
fPalDial: TImageEnPaletteDialog;
Begin
fPalDial := TImageEnPaletteDialog.Create(self);
fPalDial.SetPalette(ImageEnIO1.Params.ColorMap^, ImageEnIO1.Params.ColorMapCount);
if fPalDial.Execute then
Panel1.Color := fPalDial.SelCol;
fPalDial.free;
End;

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.AddInnerShadow

TImageEnProc.AddInnerShadow

Declaration

procedure AddInnerShadow(radius: Double; OffSetX: Integer; OffSetY: Integer; ShadowColor: TColor = clBlack);

Description

Adds a shadow to the inner border of the image.


TImageEnProc.AddSoftShadow

TImageEnProc.AddSoftShadow

Declaration

procedure AddSoftShadow(Radius : Double = 4; OffSetX : Integer = 4; OffSetY : Integer = 4; AdaptSize : Boolean = true; ShadowColor: TColor = clBlack; Intensity : Integer = 100);

Description

Adds a soft shadow (Gaussian Shadow) to the image. The image's alpha channel is used for the shadow effect (it will be added if it does not exist).

Parameter | Description
Radius | The width of the shadow
OffSetX | The offset from the image of the shadow horizontally
OffSetY | The offset from the image of the shadow vertically
AdaptSize | If enabled (default) then the dimensions of your image will be enlarged so that the content does not change when the shadow is added (You can use IESoftShadowSize to calculate how much larger the image will become)
ShadowColor | Color of the shadow (default is clBlack)
Intensity | The shadow intensity in the range of 0 and 100 (default is 100)

Notes:
- The effect will not be visible unless EnableAlphaChannel = True
- The offset values determine the position of the shadow. Positive values make the shadow appear on the right/bottom, whereas negative values place it at the left/top. Values of zero give the image a "Glow" effect

Demo

Demos\ImageEditing\SoftShadow\SoftShadow.dpr

Example

// Add a shadow to the bottom-right of the image (i.e. light appears to come from top-left)
ImageEnProc.AddSoftShadow(5, 4, 4);

// Add a shadow to the top-left of the image
ImageEnProc.AddSoftShadow(5, -4, -4);

// Add a yellow glow to the image
ImageEnProc.AddSoftShadow(5, 0, 0, True, clYellow);

// Add a soft shadow to image in a TBitmap
iBlurRadius := 5;
iOffSet := 4;
ie := TImageEnView.Create(nil);
try
ie.Background := clWhite;
ie.Bitmap.assign(MyBitmap);
ie.update;
ie.Proc.AddSoftShadow(iBlurRadius, iOffSet, iOffSet, True, cShadowColor);
ie.RemoveAlphaChannel(True);
MyBitmap.assign(ie.bitmap);
finally
ie.Free;
end;


TImageEnProc.AdjustBrightnessContrastSaturation

TImageEnProc.AdjustBrightnessContrastSaturation

Declaration

procedure AdjustBrightnessContrastSaturation(Brightness, Contrast, Saturation: Integer);

Description

Adjust brightness, contrast and color saturation in a single step.

Parameter | Description
Brightness | A value between -100 and 512
Contrast | A value between -100 and 100
Saturation | A value between 0 and 512

Note: Set a parameter to zero, to avoid changing that value.

Example

// Enhance brightness, contrast and color saturation
ImageEnView1.Proc.AdjustBrightnessContrastSaturation(50, 10, 10);

// Enhance only brightness and contrast, maintain existing color saturation
ImageEnView1.Proc.AdjustBrightnessContrastSaturation(50, 10, 0);


TImageEnProc.AdjustGainOffset

TImageEnProc.AdjustGainOffset

Declaration

procedure AdjustGainOffset;

Description

Adjust image luminosity by calculating the min and max pixels values and stretching the colors to the maximum allowed value.

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr

Example

ImageEnView1.Proc.AdjustGainOffset;


TImageEnProc.AdjustLumSatHistogram

TImageEnProc.AdjustLumSatHistogram

Declaration

procedure AdjustLumSatHistogram(Saturation, Luminance: Double);

Description

Adjusts Saturation, Luminance and the histogram.

Parameter | Description
Saturation | Value between 0 and 1
Luminance | Value between 0 and 1

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr


TImageEnProc.AdjustSaturation

TImageEnProc.AdjustSaturation

Declaration

procedure AdjustSaturation(Amount: Integer);

Description

Adjusts color saturation. Amount is a value between -100 and 100.


TImageEnProc.AdjustTemperature

TImageEnProc.AdjustTemperature

Declaration

procedure AdjustTemperature(temperature: Integer);

Description

Adjusts the image temperature.
temperature is measured in degrees Kelvin. Minimum value is 1000 (K) and maximum is 40000 (K). Resolution is 100K (so allowed values are 1000, 1100, 1200, etc).

Example

ImageEnView1.Proc.AdjustTemperature(6500);


TImageEnProc.AdjustTint

TImageEnProc.AdjustTint

Declaration

procedure AdjustTint(Amount: Integer);
procedure AdjustTint(Amount: Integer; FixedColorStart: TRGB; FixedColorEnd: TRGB);
procedure AdjustTint(Amount: Integer; FixedColorPos: TPoint);

Description

Adjusts the color tint of the image. Amount (in degrees) is a value between -180 and 180.
Second and third overload leave untouched a specified color range or the color at a position.


TImageEnProc.ApplyFilter

TImageEnProc.ApplyFilter

Declaration

procedure ApplyFilter(filter: TGraphFilter);

Description

Applies a 3x3 filter to the current image (or the selected region).

Example

// Apply emboss filter
Const
filter: TGraphFilter= (Values: ( (-1, 0, 1), (-1, 1, 1), (-1, 0, 1) ); Divisor: 1);
Begin
ImageEnView1.Proc.ApplyFilter(filter);
End;


TImageEnProc.ApplyFilterPreset

TImageEnProc.ApplyFilterPreset

Declaration

procedure ApplyFilterPreset(filter: TIEFilterPresets);

Description

Applies a preset filter to the current image.

filter can be one of the following constants:
fpNone
fpBlur
fpEdge
fpEmboss
fpHighPass1
fpHighPass2
fpHighPass3
fpLowPass1
fpLowPass2

Example

ImageEnView1.Proc.ApplyFilterPreset(fpEdge);


TImageEnProc.AttachedBitmap

TImageEnProc.AttachedBitmap

Declaration

property AttachedBitmap: TBitmap;

Description

Attach a TImageEnProc to a TBitmap to perform image modification and analysis functions on an image.

Note: This property is mutually exclusive with AttachedTImage and AttachedImageEn.

Example

// Prompt the user to perform image modification effects on an image in a TImage
ImageEnView1.Proc.AttachedBitmap := Image1.Picture.Bitmap;
ImageEnView1.Proc.DoPreviews([peAll]);


TImageEnProc.AttachedIEBitmap

TImageEnProc.AttachedIEBitmap

Declaration

property AttachedIEBitmap: TIEBitmap;

Description

Attach a TImageEnProc to a TIEBitmap to perform image modification and analysis functions on an image.

Note: Using TIEBitmap instead of TBitmap allows TImageEnProc to be thread safe and handle large images.

Example

// Load an image with a TIEBitmap, make it negative then save it
var
iebmp: TIEBitmap;
begin
iebmp := TIEBitmap.Create;
ImageEnProc.AttachedIEBitmap := iebmp;
ImageEnIO.AttachedIEBitmap := iebmp;

ImageEnIO.LoadFromFile('animage.tif');
ImageEnProc.Negative;
ImageEnIO.SaveToFile('output.tif');

ImageEnIO.Free;
ImageEnProc.Free;
iebmp.Free;
end;


TImageEnProc.AttachedImageEn

TImageEnProc.AttachedImageEn

Declaration

property AttachedImageEn: TIEView;

Description

Attach TImageEnProc to a TImageEnView, TImageEnDBView or TImageEnVect control.

Notes:
- This property is mutually exclusive with AttachedTImage and AttachedBitmap.
- Use of this property is not normally required as TImageEnView and descendents already offer a Proc property

Example

ImageEnView1.Proc.AttachedImageEn := ImageEnView1;


TImageEnProc.AttachedTImage

TImageEnProc.AttachedTImage

Declaration

property AttachedTImage: TImage;

Description

Use this property to attach TImageEnProc to a TImage (or any other inherited object).

Note: This property is mutually exclusive with AttachedImageEn and AttachedBitmap.

Example

ImageEnView1.Proc.AttachedTImage := Image1;


TImageEnProc.AutoConvertFormat

TImageEnProc.AutoConvertFormat

Declaration

property AutoConvertFormat: Boolean;

Description

When true, all image processing functions automatically convert the source pixel format as required. For example, The Contrast method requires a RGB24 pixel format. If your image is black & white or any other format, it is converted automatically to RGB24.
If AutoConvertFormat = False and you call Contrast with a black & white image, then the method will fail.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.AutoCrop

TImageEnProc.AutoCrop

Declaration

function AutoCrop(Tolerance: Integer; Background: TRGB; DoCrop: Boolean = True): TRect;
function AutoCrop(Tolerance: Integer; Background: TColor; DoCrop: Boolean = True): TRect;

Description

Remove any bordering area of an image of a certain color.

Parameter | Description
Tolerance | How closely we match the color to Background (0 to 255, where 0 matches only the specified color, and 255 would remove everything)
Background | The border color to remove
DoCrop | If False the image is not cropped, but the suggested area for cropping is returned as the result

Returns the area to crop or cropped.

Example

// Remove the black border from a scanned document
ImageEnView1.IO.Acquire;
ImageEnView1.Proc.AutoCrop(10, CreateRGB(0, 0, 0) );

See Also

AutoCrop2
CropTransparentBorder
Crop

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.AutoCrop2

TImageEnProc.AutoCrop2

Declaration

function AutoCrop2(BorderRate: Double = 6; DoCrop: Boolean = True): TRect;

Description

Removes the black border from a white text document using a density analysis algorithm.

Parameter | Description
BorderRate | The difference between border and text. Must be more than 0
DoCrop | If False the image is not cropped, but the suggested area for cropping is returned as the result

Returns the area to crop or cropped.

Example

// Remove the black border from a scanned document
ImageEnView1.IO.Acquire;
ImageEnView1.Proc.AutoCrop2;

See Also

AutoCrop
CropTransparentBorder
Crop

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.AutoImageEnhance1

TImageEnProc.AutoImageEnhance1

Declaration

procedure AutoImageEnhance1(SubsampledSize: Integer = 60; Slope: Integer = 20; Cut: Integer = 25; Neighbour: Integer = 2);

Description

ImageEn offers a selection of functions to automatically enhance an image. AutoImageEnhance1 performs a series of complex operations to improve the contrast and colors in the image.

Parameter | Description
SubsampledSize | For better performance operations are performed on a subsampled image. This parameter specifies the image width (default 60)
Slope | The core function slope (in degrees) which will affect the contrast. Allowed values: 0 to 90°, default 20
Cut | The code function range which will affect the contrast. Allowed values are 0 to 100, default 25
Neighbour | When the subsampled image is used to change the full size image, Neighbour specifies the window size of the conversion. High values slow down processing but produce better results. Default is 2.

Note: The default parameters will generally offer an agreeable result.

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr

See Also

AutoImageEnhance2
AutoImageEnhance3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.AutoImageEnhance2

TImageEnProc.AutoImageEnhance2

Declaration

procedure AutoImageEnhance2(ScaleCount: Integer = 3; ScaleCurve: Integer = 2; Variance: Double = 1.8; ScaleHigh: Integer = 200; Luminance: Boolean = True);

Description

ImageEn offers a selection of functions to automatically enhance an image. AutoImageEnhance2 uses a "Retinex" algorithm to simulate how humans see the world.

Parameter | Description
ScaleCount | The algorithm is applied to different scales of the image. This parameter specifies the number of scales. Default 3.
ScaleCurve | Specifies how build the size of each scale. Allowed values 0..2. Default 2.
Variance | The output variance. Default 1.8.
ScaleHigh | Allowed values from 16 to 250. Default 200.
Luminance | If true the algorithm is applied only to luminance (luminosity) channel, so the algorithm doesn't touch colors.

Note: The default parameters will generally offer an agreeable result.

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr

See Also

AutoImageEnhance1
AutoImageEnhance3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.AutoImageEnhance3

TImageEnProc.AutoImageEnhance3

Declaration

procedure AutoImageEnhance3(Gamma: Double = 0.35; Saturation: Integer = 80);

Description

Enhances luminosity by applying a local adaptation tone mapping algorithm (thanks to Prof. Irwin Scollar).

Parameter | Description
Gamma | Adjust the resulting luminosity. Value must be more than 0
Saturation | Adjusts the color saturation. Allowed values: -100 to 100

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr

Example

ImageEnView1.Proc.AutoImageEnhance3;

See Also

AutoImageEnhance1
AutoImageEnhance2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.AutoSharp

TImageEnProc.AutoSharp

Declaration

procedure AutoSharp(Intensity: Integer; rate: Double);

Description

Automatically enhances the image sharpness by sharpening the contours of detected objects.

Parameter | Description
Intensity | The effect intensity. Values: 0 to 100, Default 68
Rate | The borders detection rate. Values: 0 to 1, Default 0.035

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr

Example

ImageEnView.Proc.AutoSharp;


TImageEnProc.AutoUndo

TImageEnProc.AutoUndo

Declaration

property AutoUndo: Boolean;

Description

When true, all image processing and load operations will automatically call SaveUndo and ClearAllRedo.

Default: True

Example

This code:

ImageEnView1.Proc.AutoUndo := true;
ImageEnView1.Proc.Negative;
ImageEnView1.Proc.ConvertToGray;

Is equivalent to:

ImageEnView1.Proc.AutoUndo := false;
ImageEnView1.Proc.SaveUndo;
ImageEnView1.Proc.Negative;
ImageEnView1.Proc.SaveUndo;
ImageEnView1.Proc.ConvertToGray;
ImageEnView1.Proc.ClearAllRedo;

See Also

SaveUndo
UndoLimit
Undo
ClearAllRedo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Background

TImageEnProc.Background

Declaration

property Background: TColor;

Description

Specifies the color shown in the unoccupied area when the current image is less than the control's size. It is also used also in geometric processing (such as rotation) to fill blank areas.

When TImageEnProc is attached to TImageEnView, TImageEnProc.Background returns the TImageEnView.Background.


TImageEnProc.BeginImageAnalysis

TImageEnProc.BeginImageAnalysis

Declaration

function BeginImageAnalysis(allowedFormats: TIEPixelFormatSet; var x1, y1, x2, y2: Integer; var ProcBitmap: TIEBitmap; var mask: TIEMask): Boolean;

Description

BeginImageAnalysis and EndImageAnalysis allow you to create custom image analysis functions that automatically handle selection area and pixel format consistency.

Parameter | Description
AllowedFormats | The permitted pixel formats
x1, y1, x2, y2 | The destination rectangle coordinates to apply the function
ProcBitmap | The bitmap to process
mask | The selection mask

By using BeginImageAnalysis/EndImageAnalysis, you can avoid considering if the selection is rectangle, elliptical, irregular or magic wand, just process the bitmap as a rectangle.

Example

procedure SearchWhitePixel( proc: TImageEnProc );
var
ProcBitmap: TIEBitmap;
mask: TIEMask;
x1, y1, x2, y2: Integer;
x, y: Integer;
px: PRGB;
begin
// we support only ie24RGB format
if not proc.BeginImageAnalysis([ie24RGB], x1, y1, x2, y2, ProcBitmap, mask) then
exit;
for y := y1 to y2-1 do begin
px := ProcBitmap.Scanline[y];
for x := x1 to x2-1 do begin
with px^ do
if (r = 255) and (g = 255) and (b = 255) then
ShowMessage('Found White Pixel!');
inc(px);
end;
end;
// finalize
proc.EndImageAnalysis(ProcBitmap);
end;

..
ImageEnView.SelectEllipse( 100, 100, 100, 100 );
SearchWhitePixel( ImageEnView.Proc );


TImageEnProc.BeginImageProcessing

TImageEnProc.BeginImageProcessing

Declaration

function BeginImageProcessing(allowedFormats: TIEPixelFormatSet; var x1, y1, x2, y2: Integer; const OpName: String; var ProcBitmap: TIEBitmap; var mask: TIEMask; OpID: Integer = 0; ExtractROI: Boolean = true): Boolean;

Description

BeginImageProcessing and EndImageProcessing allow you to create custom image processing functions that automatically handle selection area, pixel format consistency and undo.

Parameter | Description
AllowedFormats | The permitted pixel formats
x1, y1, x2, y2 | The destination rectangle coordinates to apply the function
OpName | A string describing the function (for the undo caption)
ProcBitmap | The bitmap to process
mask | The selection mask
OpID | An optional ID for the task which is saved with the undo (and available via GetUndoInfo). Any value can be specified or a const.
ExtractROI | If true (default) ProcBitmap contains only the Region Of Interest, otherwise it contains the full original bitmap.

By using BeginImageProcessing/EndImageProcessing, you can avoid considering if the selection is rectangle, elliptical, irregular or magic wand, just process the bitmap as a rectangle.

Example

procedure CustomNegative( proc: TImageEnProc );
var
ProcBitmap: TIEBitmap;
mask: TIEMask;
x1, y1, x2, y2: Integer;
x, y: Integer;
px: PRGB;
begin
// we support only ie24RGB format
if not proc.BeginImageProcessing([ie24RGB], x1, y1, x2, y2, 'CustomNegative', ProcBitmap, mask) then
exit;
for y := y1 to y2-1 do begin
px := ProcBitmap.Scanline[y];
for x := x1 to x2-1 do
begin
with px^ do
begin
r := 255-r;
g := 255-g;
b := 255-b;
end;
inc(px);
end;
end;
// finalize
proc.EndImageProcessing(ProcBitmap, mask);
end;

..
ImageEnView.SelectEllipse( 100, 100, 100, 100 );
CustomNegative( ImageEnView.Proc );


TImageEnProc.Blur

TImageEnProc.Blur

Declaration

procedure Blur(radius: Double);

Description

Apply a Gaussian Blur filter of specified radius (> 0) to reduce image noise and reduce detail.

Example

ImageEnProc.Blur( 4 );


TImageEnProc.BumpMapping

TImageEnProc.BumpMapping

Declaration

procedure BumpMapping(LightX, LightY, LampX, LampY, pcf: Integer; Color: TRGB);

Description

Applies a bump mapping effect to the current image. This effect and a preview are also available in the Image Processing dialog.

Parameter | Description
LightX/LightY | Source light position
LampX/LampY | Width and height of the source light
pcf | Percentage of the effect to apply to the original image (0 to 100)
Color | Source light color

Example

ImageEnView1.Proc.BumpMapping(100, 100, 50, 50, 10, CreateRGB(255, 255, 255));

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CalcAverageRGB

TImageEnProc.CalcAverageRGB

Declaration

function CalcAverageRGB(iSampleCount : Integer = 0): TRGB;

Description

Returns the average RGB values of the selection.

If iSampleCount < 1 then the entire image is analyzed. To speed up processing you can sample a smaller number of points, e.g. 100

Example

// Fill the selected area with the average color
ImageEnView.Proc.Fill( ImageEnView.Proc.CalcAverageRGB() );


TImageEnProc.CalcDensityHistogram

TImageEnProc.CalcDensityHistogram

Declaration

procedure CalcDensityHistogram(VertHist, HorizHist: Pointer; norm_vert, norm_horiz: Integer);

Description

Calculates the vertical horizontal density histograms.

Demo

Demos\ImageAnalysis\DensityAnalysis\DensityAnalysis.dpr


TImageEnProc.CalcImageNumColors

TImageEnProc.CalcImageNumColors

Declaration

function CalcImageNumColors(): Integer;

Description

Returns the number of colors found in the current image. This value is not constrained by the internal format of the image (e.g. a 24 bit image doesn't necessarily have 16 million colors).


TImageEnProc.CalcImagePalette

TImageEnProc.CalcImagePalette

Declaration

procedure CalcImagePalette(var Palette: array of TRGB; MaxCol: Integer);

Description

Fills the Palette array with the colors found in the current image.
Palette is the array to fill.
MaxCol is the size of Palette. If the image has more than MaxCol colors, the image is quantized to match the number of colors specified.

Example

var
MyColorMap256: array [0..255] of TRGB;
MyColorMap1000: array [0..999] of TRGB;
Begin
ImageEnView1.Proc.CalcImagePalette(MyColorMap256, 256);
ImageEnView1.Proc.CalcImagePalette(MyColorMap1000, 1000);
End;

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CalcOrientation

TImageEnProc.CalcOrientation

Declaration

function CalcOrientation: Integer;

Description

Find the correct orientation for a textual image. It is mainly used to detect whether to adjust a document from portrait to landscape.

Notes:
- Apply only to document images (images with text)
- CalcOrientation can only detect 0° or 90° orientation. It cannot detect upside down, inverted text.

Example

Adjust := ImageEnView.Proc.CalcOrientation;
ImageEnView.Proc.Rotate( Adjust );


TImageEnProc.CalcStdDev

TImageEnProc.CalcStdDev

Declaration

function CalcStdDev(): Double;

Description

Return the Standard Deviation of the selected region.


TImageEnProc.CanCopyToClipboard

TImageEnProc.CanCopyToClipboard

Declaration

function CanCopyToClipboard(Source: TIECopyPasteType = iecpAuto): Boolean;

Description

Returns true if a call to CopyToClipboard is possible.

Possible values for Source:
Item | Effect
iecpAuto | Result will always be true, unless the image is blank
iecpFullImage | Result will always be true, unless the image is blank
iecpSelection | Result will be true if there is a valid selection in the associated TImageEnView
iecpLayer | Result will be true if there is a layer selected in the associated TImageEnView which is not the background layer

Notes:
- The Source specified for CanCopyToClipboard, must be the same as that you will use for CopyToClipboard.
- If the TImageEnProc is attached to a TIEBitmap, TImageEnMView or TImageEnFolderMView then only iecpFullImage is relevant (iecpAuto will have the same effect as iecpFullImage. iecpSelection and iecpLayer will always fail)

Example

// Enable the Copy button if copying is possible
btnCopyToClipboard.Enabled := ImageEnView1.Proc.CanCopyToClipboard();

See Also

- CanCutToClipboard
- CutToClipboard
- CopyToClipboard
- CanPasteFromClipboard
- PasteFromClipboard
- PointPasteFromClip

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CanCutToClipboard

TImageEnProc.CanCutToClipboard

Declaration

function CanCutToClipboard(Source: TIECopyPasteType = iecpAuto): Boolean;

Description

Returns true if a call to CutToClipboard is possible.

Possible values for Source:
Item | Effect
iecpAuto | Result will true, if there is a selected portion of image or or layer
iecpFullImage | Result will be true, unless the image is blank
iecpSelection | Result will be true if there is a valid selection in the associated TImageEnView
iecpLayer | Result will be true if there is a layer selected in the associated TImageEnView which is not the background layer

Notes:
- The Source specified for CanCutToClipboard, must be the same as that you will use for CutToClipboard.
- If the TImageEnProc is attached to a TIEBitmap, TImageEnMView or TImageEnFolderMView then only iecpFullImage is relevant (iecpAuto will have the same effect as iecpFullImage. iecpSelection and iecpLayer will always fail)

Example

// Enable the Cut button if cutting is possible
btnCutToClipboard.Enabled := ImageEnView1.Proc.CanCutToClipboard();

See Also

- CutToClipboard
- CanCopyToClipboard
- CopyToClipboard
- CanPasteFromClipboard
- PasteFromClipboard
- PointPasteFromClip

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CanPasteFromClipboard

TImageEnProc.CanPasteFromClipboard

Declaration

function CanPasteFromClipboard(Dest: TIECopyPasteType = iecpAuto; InclImagesAsLayers: Boolean = True): Boolean;

Description

Returns true if the clipboard contains an image or an ImageEn layer that TImageEnProc can paste.
If Dest is iecpSelection then there must also be a valid selection in the associated TImageEnView.
InclImagesAsLayers has no effect unless Dest is iecpLayer. If true, the result will be true if the clipboard contains a layer or an image. If false, the result will be true only if there is a layer on the clipboard.

Notes:
- The Dest you specify for CanPasteFromClipboard, should be the same as the FC>Dest for your call to CanPasteFromClipboard
- If the TImageEnProc is attached to a TIEBitmap, TImageEnMView or TImageEnFolderMView then only iecpFullImage is relevant (iecpAuto will have the same effect as iecpFullImage. iecpSelection and iecpLayer will always fail)

Examples

// Enable the Paste button if pasting is possible
btnPasteFromClip.Enabled := ImageEnView1.Proc.CanPasteFromClipboard();

// Paste only if there is a layer on the clipboard
if ImageEnView1.Proc.CanPasteFromClipboard( iecpLayer, False );
ImageEnView1.Proc.PasteFromClipboard( iecpLayer );

// Paste a layer if there is an image or layer on the clipboard
if ImageEnView1.Proc.CanPasteFromClipboard( iecpLayer );
ImageEnView1.Proc.PasteFromClipboard( iecpLayer );

// Append an image to a TImageEnMView from the clipboard
if IEMView1.Proc.CanPasteFromClipboard() then
begin
IEMView1.AppendImage( 0, 0 );
IEMView1.Proc.PasteFromClipboard();
end;

See Also

- PasteFromClipboard
- PointPasteFromClip
- LayersCreateFromClipboard
- CanCutToClipboard
- CutToClipboard
- CanCopyToClipboard
- CopyToClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CanRedo

TImageEnProc.CanRedo

Declaration

property CanRedo: Boolean;

Description

Returns True when there are entries in the Redo stack (i.e. so Redo can be used).

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

Example

procedure TMainForm.btnRedoClick(Sender: TObject);
begin
If ImageEnView1.Proc.CanRedo then
ImageEnView1.Proc.Redo
else
ShowMessage('Nothing to Redo!');
end;

See Also

Redo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CanUndo

TImageEnProc.CanUndo

Declaration

property CanUndo: Boolean;

Description

Returns True when there are entries in the Undo stack (i.e. so Undo can be used).

Note: CanUndo will be False after calling ClearAllUndo or ClearUndo if there is only one saved image.

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

Example

procedure TMainForm.btnUndoClick(Sender: TObject);
begin
If ImageEnView1.Proc.CanUndo then
ImageEnView1.Proc.Undo
else
ShowMessage('Nothing to Undo!');
end;

See Also

Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CastAlpha

TImageEnProc.CastAlpha

Declaration

procedure CastAlpha(x, y: Integer; newAlpha: Integer; tolerance: Integer);

Description

Perform a flood-fill starting at the coordinates x, y, i.e. replacing all encountered pixels that match the color at the starting position with alpha.
The Alpha level is specified by newAlpha in the range 0: Fully Transparent - 255: Opaque.
tolerance specifies the maximum difference from the starting pixel (0 to 255, where 0 requires an exact color match, whereas 255 would match every color).

Example

// assuming X, Y = mouse coordinates, makes the area transparent
ImageEnView1.Proc.CastAlpha( ImageEnView1.XScr2Bmp(X), ImageEnView1.Yscr2Bmp(Y), 0, 0);


TImageEnProc.CastColor

TImageEnProc.CastColor

Declaration

procedure CastColor(x, y: Integer; newColor: TRGB; tolerance: Integer);

Description

Perform a flood-fill starting at the coordinates x, y, i.e. replacing all encountered pixels that match the color at the starting position with newColor.
tolerance specifies the maximum difference from the starting pixel (0 to 255, where 0 requires an exact color match, whereas 255 would match every color)

Example

// assuming X, Y = mouse coordinates, paints points to red
ImageEnView1.Proc.CastColor(ImageEnView1.XScr2Bmp(X), ImageEnView1.Yscr2Bmp(Y), CreateRGB(255, 0, 0), 0);


TImageEnProc.CastColorRange

TImageEnProc.CastColorRange

Declaration

procedure CastColorRange(BeginColor, EndColor, CastColor: TRGB);

Description

Set all colors in the range BeginColor to EndColor to CastColor.

Example

// Change all gray levels from 50 to 100 to black
var
BeginColor, EndColor, CastColor: TRGB;
Begin
BeginColor := CreateRGB(50, 50, 50);
EndColor := CreateRGB(100, 100, 100);
CastColor := CreateRGB(0, 0, 0);
ImageEnView1.Proc.CastColorRange(BeginColor, EndColor, CastColor);
End;

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CheckLegacyBitmap

TImageEnProc.CheckLegacyBitmap

Declaration

procedure CheckLegacyBitmap(PixelFormat: TIEPixelFormat);

Description

Sets LegacyBitmap = false when the specified pixel format cannot be handled using TBitmap.

Example

ImageEnView1.CheckLegacyBitmap(ieCMYK); // if ieCMYK cannot be handled by TBitmap then use TIEBitmap (sets ImageEnView1.LegacyBitmap := false)
ImageEnView1.IEBitmap.PixelFormat := ieCMYK;
ImageEnView1.Update();


TImageEnProc.Clear

TImageEnProc.Clear

Declaration

procedure Clear;

Description

Fill the current image with the background color.

Example

ImageEnView1.Proc.Background := clWhite;
ImageEnView1.Proc.Clear;


TImageEnProc.ClearAllRedo

TImageEnProc.ClearAllRedo

Declaration

procedure ClearAllRedo;

Description

Removes all entries from the Redo stack.

See Also

ClearRedo
Redo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ClearAllUndo

TImageEnProc.ClearAllUndo

Declaration

procedure ClearAllUndo;

Description

Removes all entries from the Undo stack.

See Also

ClearUndoAt
ClearUndo
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ClearHiddenText

TImageEnProc.ClearHiddenText

Declaration

procedure ClearHiddenText;

Description

Remove text or data added by use of WriteHiddenText or WriteHiddenData.


TImageEnProc.ClearRedo

TImageEnProc.ClearRedo

Declaration

procedure ClearRedo;

Description

Removes the last entry from the Redo stack.

See Also

ClearAllRedo
ClearRedoAt
Redo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ClearRedoAt

TImageEnProc.ClearRedoAt

Declaration

procedure ClearRedoAt(Position: Integer);

Description

Removes the entry at Position from the Redo stack.

Position = 0: Last saved Redo, 1: Second to last saved Redo, 2... up to RedoCount - 1.

See Also

ClearAllRedo
ClearRedo
Redo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ClearSel

TImageEnProc.ClearSel

Declaration

procedure ClearSel;

Description

Fills the selected region with the background color.


TImageEnProc.ClearUndo

TImageEnProc.ClearUndo

Declaration

procedure ClearUndo;

Description

Removes the last entry from the Undo stack.

See Also

ClearAllUndo
ClearUndoAt
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ClearUndoAt

TImageEnProc.ClearUndoAt

Declaration

procedure ClearUndoAt(Position: Integer);

Description

Removes the entry at Position in the Undo stack.

Position = 0: Last saved undo, 1: Second to last saved undo, 2... up to UndoCount - 1.

See Also

ClearAllUndo
ClearUndo
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Closing

TImageEnProc.Closing

Declaration

procedure Closing(WindowSize: Integer);

Description

Performs a dilation (Maximum filter with WindowSize parameter) followed by an erosion (Minimum filter with WindowSize parameter).

The closing filter operation will reduce small negative oriented regions and negative noise regions.

See Also

- Maximum
- Minimum
- Opening

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Colorize

TImageEnProc.Colorize

Declaration

procedure Colorize(hue: Integer; saturation: Integer; luminosity: Double);

Description

Set the hue and saturation for all pixels of the image. It also adjusts the luminosity using a multiplier.

Parameter | Description
hue | A value between 0 and 359 (corresponding to 0 to 359 degrees around hexcone)
saturation | A value between 0 (shade of gray) and 99 (pure color).
luminosity | This is 1 if you don't touch the original luminosity. Whereas 1.1 would equate to 10% increase in luminosity, for example

Example

// Apply a sepia effect to the image
ImageEnView.Proc.Colorize(40, 50, 1.1);


TImageEnProc.CompareHistogramWith

TImageEnProc.CompareHistogramWith

Declaration

function CompareHistogramWith(SecondImage: TIEBitmap; Mode: TIECmpMode; GrayScale: Boolean): Double;

Description

Compares histograms of the current image with another image and returns a floating point value from 0 to 1 indicating the percentage of equality.

Parameter | Description
SecondImage | Another image to compare with
Mode | The algorithm used for comparison
GrayScale | If True, only a gray scale histogram is compared


TImageEnProc.CompareWith

TImageEnProc.CompareWith

Declaration

function CompareWith(SecondImage: TIEBitmap; DiffBitmap: TIEBitmap): Double;

Description

Compares the current image with SecondImage and returns a floating point value (0 to 1) specifying the percentage of equality. 1 means that two images are equal.
The algorithm compares only the intensity of the pixels, not the colors.

The DiffBitmap can be nil, otherwise it must be an 8 bit bitmap (ie8g or ie8p PixelFormat) which will contain a bitmap with the differences.

Note: The images must be the same size and have a PixelFormat of ie24RGB.

Demo

Demos\ImageAnalysis\ImagesDiff\ImagesDiff.dpr

Example

Eq := ImageEnView1.CompareWith( ImageEnView2.IEBitmap, nil );


TImageEnProc.ComputeImageEquality

TImageEnProc.ComputeImageEquality

Declaration

function ComputeImageEquality(SecondImage: TIEBitmap; var psnr_min, psnr_max: Double; var mse_min, mse_max: Double; var rmse_min, rmse_max: Double; var pae_min, pae_max: Double; var mae_min, mae_max: Double): Boolean;

Description

Calculates the level of similarity between the current image and SecondImage. Returns True if the images are identical.

Returned values:
Parameter | Description
psnr_min, psnr_max | Minimum and maximum peak signal to noise ratio
mse_min, mse_max | Minimum and maximum mean squared error
rmse_min, rmse_max | Minimum and maximum root mean squared error
pae_min, pae_max | Minimum and maximum peak absolute error
mae_min, mae_max | Minimum and maximum mean absolute error

Note: The images must be teh same size and of PixelFormat ie24RGB.

Demo

Demos\ImageAnalysis\Compare\Compare.dpr

Example

Var
psnr_min, psnr_max: Double;
mse_min, mse_max: Double;
rmse_min, rmse_max: Double;
pae_min, pae_max: Double;
mae_min, mae_max: Double;
..
if ImageEnView1.Proc.ComputeImageEquality(ImageEnView2.Bitmap, psnr_min, psnr_max, mse_min, mse_max, rmse_min, rmse_max, pae_min, pae_max, mae_min, mae_max) then
showmessage('Images are equals')
else
begin
// shows the similitude values
end;


TImageEnProc.Contrast

TImageEnProc.Contrast

Declaration

procedure Contrast(vv: Double);

Description

Changes the contrast of selected region.
vv is the contrast value which may range from -100 to +100, where 0 is no change.

Example

ImageEnView1.Proc.Contrast(50);

See Also

Contrast2
Contrast3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Contrast2

TImageEnProc.Contrast2

Declaration

procedure Contrast2(Amount: Double);

Description

Adjust the contrast of the image. Amount is a floating point value between from 0 and 1.

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr

Example

ImageEnView1.Proc.Contrast2(0.3);

See Also

Contrast
Contrast3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Contrast3

TImageEnProc.Contrast3

Declaration

procedure Contrast3(Change, Midpoint: Integer; DoRed, DoGreen, DoBlue: Boolean);

Description

Applies contrast to the image by lightening or darkening pixels depending on whether they are above or below a threshold. The Midpoint value determines the threshold, i.e. the point at which the Change value influences the pixel value lighter or darker.

Parameter | Description
Change | The level of contrast to be applied each side of the midpoint (value between -255 and 255). When positive, increasing the Midpoint value increases the contrast (darkens the image). When negative, Increasing the Midpoint value lightens the image
Midpoint | The threshold of light and dark (value between -100 and 100)
DoRed, DoGreen, DoBlue | If True, changes are applied to that RGB channel

Examples

// Apply Contrast of +20 to all RGB values around the default Midpoint value:
ImageEnView.Proc.Contrast3 (0, 20, True, True, True);

// Apply Contrast of -24, to the Red and Blue RGB channels only, around a Midpoint of +10, to lighten the overall result:
ImageEnView.Proc.Intensity (10, -24, True, False, True);

// Apply Contrast of +15, to the Green RGB channel only, around a Midpoint of +30, to darken the overall result:
ImageEnView.Proc.Intensity (30, 15, False, True, False);

See Also

Contrast
Contrast2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ConvertTo

TImageEnProc.ConvertTo

Declaration

procedure ConvertTo(NumColors: Integer; DitherMethod: TIEDitherMethod = ieOrdered);
function ConvertTo(PixelFormat: TIEPixelFormat; PaletteType: TIEPaletteType = ieptMedianCut; DitherType: TIEDitherType = iedtSolid; CheckParametersOnly: boolean = false): boolean;
function ConvertTo(PixelFormat: TIEPixelFormat; Palette: array of TRGB; DitherType: TIEDitherType = iedtSolid; CheckParametersOnly: boolean = false): boolean; overload;

Description

First overload reduces the number of colors in the image.

Parameter | Description
NumColors | Number of colors of the resulting image.
DitherMethod | Color conversion algorithm to use.
Palette | Specify a custom palette.

When ieDithering is used and the required number of colors is less than or equal to 256 the resulting pixel format will be ie8p (unless TImageEnView.LegacyBitmap is true or TIEBitmap.Location is ieTBitmap).

Second overload changes image pixel format using a combination of palette type and dithering algorithm when necessary.
This method may change LegacyBitmap property if necessary.
Not all combinations of parameters are possible, check the return value. Returns True on success.

Third overload forces use of a specified palette.

Parameter | Description
PixelFormat | Required pixel format. Can be: ie1g, ie8p, ie8g, ie16g, ie24RGB, ieCMYK, ie48RGB.
PaletteType | Palette type to use when reducing colors.
DitherType | Dither type to use when reducing colors.
CheckParametersOnly | If True, does not actually convert the image, just checks parameters validity.

Note: Requires at least Windows XP SP2 or Windows Server 2008.

Demo

Demos\ImageEditing\Dithering\Dithering.dpr

Example

// Converts current image to 256 colors
ImageEnView1.Proc.ConvertTo(256);

// Converts current image to 461 (!) colors
ImageEnView1.Proc.ConvertTo(461);

// Converts current image to 16 colors, using Floyd-Steinberg dithering
ImageEnView1.Proc.ConvertTo(16, ieDithering);

// Converts pixel format to 256 colors with palette, using halftone palette and 8x8 dithering
ImageEnView1.Proc.ConvertTo(ie8p, ieptFixedHalftone256, iedtOrdered8x8);

// Convert to 8 bits per pixel using the specified palette
const MYPALETTE: array [0..7] of TRGB = ((B: 0; G: 0; R:0), (B: 51; G: 0; R:0), (B: 102; G: 0; R:0), (B: 153; G: 0; R:0), (B: 204; G: 0; R:0), (B: 255; G: 0; R:0), (B: 0; G: 51; R:0), (B: 51; G: 51; R:0));
ImageEnView1.Proc.ConvertTo(ie8p, MYPALETTE, iedtErrorDiffusion);
ImageEnView1.IO.Params.BitsPerSample := 8;
ImageEnView1.IO.Params.SamplesPerPixel := 1;
ImageEnView1.IO.SaveToFile('output.png');

See Also

- ConvertToPalette

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ConvertTo24Bit

TImageEnProc.ConvertTo24Bit

Declaration

procedure ConvertTo24Bit;

Description

Converts a black & white (pf1bit) image to true color (pf24bit).


TImageEnProc.ConvertToBW_FloydSteinberg

TImageEnProc.ConvertToBW_FloydSteinberg

Declaration

procedure ConvertToBW_FloydSteinberg;

Description

Convert the current image to black & white using the Floyd-Steinberg algorithm.


TImageEnProc.ConvertToBWLocalThreshold

TImageEnProc.ConvertToBWLocalThreshold

Declaration

procedure ConvertToBWLocalThreshold(WinSize: Integer = 4; Mode: TIEThreshMode = ietMean; Offset: Integer = 4);

Description

Converts a true color image (24 bit) to black & white (1 bit) using a local threshold algorithms (mean, median, min/max mean).

Parameter | Description
WinSize | The size of the box to analyze when calculating the threshold algorithm, minimum value is 2
Mode | ietMean, ietMedian or ietMeanMinMax
Offset | Subtracts an offset from the calculated threshold

Example

ImageEnView1.Proc.ConvertToBWLocalThreshold(8, ietMean);


TImageEnProc.ConvertToBWOrdered

TImageEnProc.ConvertToBWOrdered

Declaration

procedure ConvertToBWOrdered;

Description

Converts a true color image (24 bit) to black & white (1 bit) with an ordered dithering method.


TImageEnProc.ConvertToBWThreshold

TImageEnProc.ConvertToBWThreshold

Declaration

procedure ConvertToBWThreshold(Threshold: Integer);

Description

Converts a true color image (24 bit) to black & white (1 bit) using a thresholding algorithm.

The image is first converted to gray levels, then all levels less than Threshold are set to black, while the remainder are set to white.
Threshold is an intensity value (0..255).
If Threshold is -1, the threshold value used will be the average level of the original image.
If Threshold is -2, a Maximum Entropy Algorithm is used.

Example

// All pixels < 128 wil be black >= 128 will be white
ImageEnView1.Proc.ConvertToBWThreshold(128);

// Auto calculate the threshold value as the average of all color levels
ImageEnView1.Proc.ConvertToBWThreshold(-1);

// Use maximum entropy algorithm
ImageEnView1.Proc.ConvertToBWThreshold(-2);


TImageEnProc.ConvertToGray

TImageEnProc.ConvertToGray

Declaration

procedure ConvertToGray;

Description

Converts the selected region to gray levels. The image always will be in true color (16M of colors).
When LegacyBitmap is True, ImageEn can handle only black & white (pf1bit) or true color images (pf24bit).

Note: ConvertToGray simply sets the R,G,B channels to the same value.

Example

ImageEnView1.Proc.ConvertToGray;


TImageEnProc.ConvertToPalette

TImageEnProc.ConvertToPalette

Declaration

procedure ConvertToPalette(NumColors: Integer; Palette: Pointer; DitherMethod: TIEDitherMethod);

Description

Reduces the number of colors in the image to NumColor value and fills the Palette array with the color map used for color reduction.
DitherMethod specifies how to convert a color image to a black & white. It can be ieOrdered or ieThreshold.

Example

var
Palette: array [0..255] of TRGB;
begin
ImageEnView1.Proc.ConvertToPalette(256, @Palette[0], ieOrdered);
...
end;

See Also

- ConvertTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ConvertToSepia

TImageEnProc.ConvertToSepia

Declaration

procedure ConvertToSepia(Depth : Integer = 20);

Description

Apply a Sepia effect to the selected region.

See Also

- Colorize

Example

ImageEnView1.Proc.ConvertToSepia;


TImageEnProc.Convolve

TImageEnProc.Convolve

Declaration

procedure Convolve(Kernel: array of double; KernelWidth, KernelHeight: Integer; Factor: Double);

Description

Convolves the specified kernel over the selected region.

Parameter | Description
Kernel | The convolution kernel (just a matrix made array).
KernelWidth | The kernel matrix width (number of columns).
KernelHeight | The kernel matrix height (number of rows).
Factor | Multiplication factor.

Example

// performs "blur" effect, using 3x3 kernel
ImageEnView.Proc.Convolve([0.0, 1.0, 0.0,
1.0, 1.0, 1.0,
0.0, 1.0, 0.0],
3, 3, 1/5);

// performs "blur" effect using 5x5 kernel
ImageEnView.Proc.Convolve([0.0, 0.0, 1.0, 0.0, 0.0,
0.0, 1.0, 1.0, 1.0, 0.0,
1.0, 1.0, 1.0, 1.0, 1.0,
0.0, 1.0, 1.0, 1.0, 0.0,
0.0, 0.0, 1.0, 0.0, 0.0],
5, 5, 1/13);


TImageEnProc.CopyToClipboard

TImageEnProc.CopyToClipboard

Declaration

function CopyToClipboard(Source: TIECopyPasteType = iecpAuto): Boolean;

Description

Copies the selected region, image or layer to the clipboard.

Possible values for Source:
Item | Effect
iecpAuto | ImageEn automatically detects what to copy. If there is a valid selection, it is copied. If not, and a layer (other than the background) is selected, it is copied. If not, and the image is valid it is copied
iecpFullImage | If the image is valid, it is copied to the clipboard, then cleared. Otherwise, it fails.
iecpSelection | If there is a selection in the associated TImageEnView, it is copied to the clipboard then copied from the image. If there is no selection, it fails
iecpLayer | If there is a layer selected in the associated TImageEnView, which is not the background layer, it is copied to the clipboard (as an image and a layer) and then removed from the image

Returns true if successful.

Note:
- The main reason for unexpected failures are very large images that exceed the available memory.
- If the TImageEnProc is attached to a TIEBitmap, TImageEnMView or TImageEnFolderMView then only iecpFullImage is relevant (iecpAuto will have the same effect as iecpFullImage. iecpSelection and iecpLayer will always fail)

Examples

// General copy to clipboard method
if ImageEnView1.Proc.CopyToClipboard(iecpAuto) = False then
MessageDlg( 'Unable to copy to the clipboard. There is insufficient memory available for the operation.', mtError, [ mbOK ], 0 );

// Copying of selection to clipboard
ImageEnView1.Proc.CopyToClipboard( iecpSelection );

// Copying of selected layers to clipboard
ImageEnView1.Proc.CopyToClipboard( iecpLayer );

// Copying the whole image to the clipboard
ImageEnView1.Proc.CopyToClipboard( iecpFullImage );

// Copy the selected image in a TImageEnMView to the clipboard
if IEMView1.SelectedImage >= 0 then
IEMView1.Proc.CopyToClipboard();

See Also

- CanCutToClipboard
- CutToClipboard
- CanCopyToClipboard
- CanPasteFromClipboard
- PasteFromClipboard
- PointPasteFromClip

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Create

TImageEnProc.Create

Declaration

constructor Create(Owner: TComponent);

Description

Create a new instance of TImageEnProc. You can pass Owner as nil to create a component without an owner.

Example

// Load an image with a TIEBitmap, make it negative then save it
iebmp := TIEBitmap.Create;
ImageEnProc := TImageEnProc.create(nil);
ImageEnProc.AttachedIEBitmap := iebmp;
iebmp.Read('animage.tif');
ImageEnProc.Negative;
iebmp.Write('output.tif');
ImageEnProc.Free;
iebmp.Free;


TImageEnProc.CreateFromBitmap

TImageEnProc.CreateFromBitmap

Declaration

constructor CreateFromBitmap(Bitmap: TIEBitmap);
constructor CreateFromBitmap(Bitmap: TBitmap);

Description

Creates a new instance of TImageEnProc assigning the property AttachedIEBitmap or AttachedBitmap.

Note: Also sets AutoUndo to false.

Example

// Draw text onto a TBitmap or TIEBitmap
with TImageEnProc.CreateFromBitmap(myBitmap) do
begin
TextOut(Align_Text_Horz_Center, Align_Text_Near_Bottom, 'Me in Italy - 2015', 'Arial', 32, clRed, [fsBold]);
Free;
end;


TImageEnProc.CreateTransitionBitmap

TImageEnProc.CreateTransitionBitmap

Declaration

procedure CreateTransitionBitmap(TransitionProgress : Single; DestBitmap : TBitmap);

Description

Use with PrepareTransitionBitmaps or PrepareTransitionBitmapsEx to create a series of frames that transition from one bitmap to another.

Parameter | Description
TransitionProgress | The percentage that it is has progressed from the start image to the end image (ranging from 0.0 to 100.0)
DestBitmap | Will be filled with the created transition frame. It must be created before calling and will be automatically sized and set to 24 bit

See Also

- PrepareTransitionBitmaps
- PrepareTransitionBitmapsEx

Example

procedure TransitionFrameCreationExample;
var
OldBitmap, NewBitmap, TransBitmap : TBitmap;
I : Integer;
TransLevel : Single;
begin
OldBitmap := TBitmap.Create;
NewBitmap := TBitmap.Create;
TransBitmap := TBitmap.Create;
try
OldBitmap.LoadFromFile('C:\OldImage.bmp');
NewBitmap.LoadFromFile('C:\NewImage.bmp');

// Call PrepareTransitionBitmaps once
ImageEnProc.PrepareTransitionBitmaps(OldBitmap, NewBitmap, iettCrossDissolve);

for i := 1 to 9 do
begin
// Transition levels from 10% to 90%
TransLevel := i * 10;

// Call CreateTransitionBitmap for each required frame
ImageEnProc.CreateTransitionBitmap(TransLevel, TransBitmap);
TransBitmap.SaveToFile('C:\TransImage' + IntToStr(I) + '.bmp');
end;
finally
OldBitmap.Free;
NewBitmap.Free;
TransBitmap.Free;
end;
end;


TImageEnProc.Crop

TImageEnProc.Crop

Declaration

procedure Crop(x1, y1, x2, y2 : Integer);
procedure Crop(Rect : TRect);
procedure Crop(Rectangle: TRect; Rotation: double; AntialiasMode: TIEAntialiasMode = ierFast);
procedure Crop(Quadrilater: array of TIE2DPoint); overload;

Description

Replace the current image with that within the specified rectangle (i.e. keep only the specified region).

Examples

// Crop the image at position, Top-Left: (20, 20), Bottom-right: (100, 100). The resulting image will be 80 x 80 pixels
ImageEnView1.Proc.Crop( 20, 20, 100, 100 );

// Crop to the selected area of the image (same as ImageEnView1.Proc.CropSel)
ImageEnView1.Proc.Crop( ImageEnView1.SelectedRect.x,
ImageEnView1.SelectedRect.y,
ImageEnView1.SelectedRect.x + ImageEnView1.SelectedRect.Width,
ImageEnView1.SelectedRect.y + ImageEnView1.SelectedRect.Height );

// Rotate an image 20 deg. CCW and crop 100 pixels from each side
ImageEnView1.Proc.Crop( Rect( 100, 100, ImageEnView1.IEBitmap.Width - 100, ImageEnView1.IEBitmap.Height - 100 ),
20, ierBicubic );

// Crops to the specified quadrilateral and applies forward perspective mapping. Useful to adjust perspective distortion.
ImageEnView1.Proc.Crop([IE2DPoint(104, 85), IE2DPoint(1000, 150), IE2DPoint(181, 500), IE2DPoint(54, 400)]);

See Also

- CropSel
- Lossless Jpeg Transformations

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CropSel

TImageEnProc.CropSel

Declaration

procedure CropSel(TransparencyOnly: Boolean = False);

Description

Removes all parts of the image outside the selected region.
When TransparencyOnly is true only the alpha channel is cropped.

Demo

Demos\ImageEditing\SelectAndCrop\ImageEn_Crop.dpr

Example

// Cut region 10, 10, 100, 100
ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.Proc.CropSel;

// Photoshop like cut
IMageEnView1.Select(10, 10, 100, 100);
ImageEnView1.Proc.CropSel(true);


TImageEnProc.CropTransparentBorder

TImageEnProc.CropTransparentBorder

Declaration

procedure CropTransparentBorder;

Description

Removes any transparent area on the edge of the image, resizing the resulting image to the visible rectangle.

Example

// Add text to a layer and then remove the transparent area around the text

// add a new layer
ImageEnView1.LayersAdd;

// White fill the new layer
ImageEnView1.Proc.Fill(CreateRGB(255, 255, 255));

// Output our text
ImageEnView1.Proc.TextOut(Align_Text_Horz_Center, Align_Text_Near_Bottom, ExtractFileName(ImageEnView1.IO.Params.Filename), 'Arial', 32, clRed, [fsBold]);

// Make the white background transparent
ImageEnView1.Proc.SetTransparentColors(CreateRGB(255, 255, 255), CreateRGB(255, 255, 255), 0); // remove the white, making it as transparent

// Crop to the text size
ImageEnView1.Proc.CropTransparentBorder;

See Also

AutoCrop
AutoCrop2
Crop
TIEBitmap.CropAlpha

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.CutToClipboard

TImageEnProc.CutToClipboard

Declaration

function CutToClipboard(Source: TIECopyPasteType = iecpAuto; CutAlpha: Boolean = false): Boolean;

Description

Copies the selected region, image or layer to the clipboard and then removes it.

Possible values for Source:
Item | Effect
iecpAuto | ImageEn automatically detects what to cut. If there is a valid selection, it is cut. If not, and a layer (other than the background) is selected, it is cut. Otherwise nothing is cut
iecpFullImage | If the image is valid, it is copied to the clipboard, then cleared. Otherwise, it fails.
iecpSelection | If there is a selection in the associated TImageEnView, it is copied to the clipboard then cut from the image. If there is no selection, it fails
iecpLayer | If there is a layer selected in the associated TImageEnView, which is not the background layer, it is copied to the clipboard (as an image and a layer) and then removed from the image

If CutAlpha is true, the selected area is made transparent.
Returns true if successful.

Note: If the TImageEnProc is attached to a TIEBitmap, TImageEnMView or TImageEnFolderMView then only iecpFullImage is relevant (iecpAuto will have the same effect as iecpFullImage. iecpSelection and iecpLayer will always fail)

Examples

// General cut to clipboard method
ImageEnView1.Proc.CutToClipboard();

// Cutting of selection to clipboard (leaving cut region as transparent)
ImageEnView1.Proc.CutToClipboard( iecpSelection, True );

// Cutting of selected layer to clipboard
ImageEnView1.Proc.CutToClipboard( iecpLayer );

// Cutting the whole image to the clipboard
ImageEnView1.Proc.CutToClipboard( iecpFullImage );

// Cut the selected image in a TImageEnMView to the clipboard (Note: bitmap is cleared, not removed)
if IEMView1.SelectedImage >= 0 then
IEMView1.Proc.CutToClipboard( iecpFullImage );

See Also

- CanCutToClipboard
- CanCopyToClipboard
- CopyToClipboard
- CanPasteFromClipboard
- PasteFromClipboard
- PointPasteFromClip

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Decrypt

TImageEnProc.Decrypt

Declaration

procedure Decrypt(Passkey: AnsiString; Algorithm: TIEEncryptionAlgorithm = ieeaTEA);
procedure Decrypt(Passkey: array of byte; Algorithm: TIEEncryptionAlgorithm = ieeaTEA);

Description

This function decrypts the current image (layer), which was encrypted using Encrypt.
You must specify the same Passkey and Algorithm that was used for encrypting.

Warning: If you are unable to decrypt an image, ensure it was not saved to a lossy format such as JPEG.

Example

ImageEnView1.IO.LoadFromFile('crypted.png');
ImageEnView1.Proc.Decrypt('captiva', ieeaTEA2);

Demo

Demos\Other\Encrypt\Encrypt.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Deinterlace

TImageEnProc.Deinterlace

Declaration

procedure Deinterlace(mode: TIEDeinterlaceMode);

Description

Deinterlaces the current image using the specified algorithm.


TImageEnProc.DisposeChannels

TImageEnProc.DisposeChannels

Declaration

procedure DisposeChannels(newDispo: String);

Description

Changes the channel order from BGR to the specified one.
Parameter | Description
newDispo | A string of three characters, one for each channel ('RGB', 'RBG', etc). Can contain also '0' to set a channel to zero. You can also replicate the same channel: 'RRR' or 'GGG', etc.

Default: 'BGR'

Example

// invert R with B
ImageEnView1.Proc.DisposeChannels('RGB');

// set channels B and G to 0, leaving only R
ImageEnView1.Proc.DisposeChannels('00R');


TImageEnProc.DoPreviews

TImageEnProc.DoPreviews

Declaration

function DoPreviews(pe: TPreviewEffects = [peAll]; IsResizeable: Boolean = true; FormWidth : Integer = -1; FormHeight : Integer = -1; FormLeft : Integer = -1; FormTop: Integer = -1): Boolean;

Description

Executes the Image Processing dialog to allow the user to perform various color and image manipulation functions upon the image.

Parameter | Description
pe | The set of effects to show in the dialog. You may wish to use [peAll], or one of the constants for editing, color adjustment and effect sets: ppeColorAdjustments, ppeEditingFunctions or ppeSpecialEffects
IsResizeable | If true, the user can enlarge the dialog
FormWidth/FormHeight | The initial size of the form. -1 = default value. Dialog size is controlled also by TIPDialogParams.DialogWidth and TIPDialogParams.DialogHeight
FormLeft/FormTop | The initial form position. -1 = default value (centered)

Notes:
- To assign default values, read user specified values or persist values between sessions, use TIPDialogParams
- For peRotate DefaultRotateAntiAlias specifies whether anti-alias is used
- For peResize DefaultResampleFilter specifies the resampling filter that it used to improve the quality
- peSoftShadow is not available if you have not enabled the alpha channel
- The language used in the dialog is controlled by MsgLanguage. The styling can also be adjusted using UseButtonGlyphsInDialogs
- Most color effects (those in ppeColorAdjustments) have no effect with 1bit images (even though changes may be shown in the preview if a quality sample is in use)

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

Examples

ImageEnView1.Proc.DoPreviews( [ peAll ] ); // Show all effects

ImageEnView1.Proc.DoPreviews( ppeColorAdjustments ); // Prompt to perform color adjustment

ImageEnView1.Proc.DoPreviews( ppeSpecialEffects ); // Prompt to perform special effects

ImageEnView1.Proc.DoPreviews( ppeSpecialEffects ); // Prompt to edit image

ImageEnView1.Proc.PreviewsParams := ImageEnView1.Proc.PreviewsParams + [ prppDefaultLockPreview ]; // Default to preview
ImageEnView1.Proc.DoPreviews( [ peContrast, peUserFilt ] ); // Show contrast and user filters

// Prompt for image editing functions with best quality output
IEGlobalSettings().DefaultRotateAntiAlias := ierBicubic;
IEGlobalSettings().DefaultResampleFilter := rfLanczos3;
ImageEnView1.Proc.DoPreviews( ppeEditingFunctions );

See Also

IPDialogParams
PreviewFont
PreviewFontEnabled
PreviewsLog
PreviewsParams

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.EdgeDetect_ShenCastan

TImageEnProc.EdgeDetect_ShenCastan

Declaration

procedure EdgeDetect_ShenCastan(Ratio: Double; Smooth: Double; WindowSize: Integer; ThinFactor: Integer; DoHysteresis: Boolean);

Description

Converts the current color image to black & white (1 bit) using a Shen-Castan (ISEF) edge detection algorithm.
The Shen-Castan algorithm convolves the image with the Infinite Symmetric Exponential Filter, computes the binary Laplacian image, suppresses false zero crossing, performs adaptive gradient thresholding, and, finally, also applies hysteresis thresholding. (Algorithms for Image Processing and Computer Vision - J.R.Parker).

Parameter | Description
Ratio | Percent of pixels to be above High threshold (recommended: 0.99)
Smooth | Smoothing factor (recommended: 0.9)
WindowSize | Size of window for adaptive gradient (recommended: 7, max: 50)
ThinFactor | Thinning factor (recommended: 0)
DoHysteresis | If True tun on the hysteresis thresholding (recommended: True)

Example

ImageEnView1.Proc.EdgeDetect_ShenCastan(0.99, 0.9, 7, 0, true);


TImageEnProc.EdgeDetect_Sobel

TImageEnProc.EdgeDetect_Sobel

Declaration

procedure EdgeDetect_Sobel;

Description

Detects the edges of objects within an image using a Sobel filter.
The result is a gray scale bitmap: high values (closed to 255) are edges.
When Location is ieTBitmap, the output pixel format is i24RGB, otherwise it is ie8g.
To make the result black & white (with 1=edge) it is recommended you call ConvertToBWThreshold using the parameter -2 (Maximum Entropy Algorithm).

Example

ImageEnView1.Proc.EdgeDetect_Sobel;
ImageEnView1.proc.ConvertToBWThreshold(-2);


TImageEnProc.Encrypt

TImageEnProc.Encrypt

Declaration

procedure Encrypt(Passkey: AnsiString; Algorithm: TIEEncryptionAlgorithm = ieeaTEA);
procedure Encrypt(Passkey: array of byte; Algorithm: TIEEncryptionAlgorithm = ieeaTEA);

Description

Encrypts the current image (layer) using the TEA Tiny Encryption Algorithm with a key of 128 bits.

Parameter | Description
PassKey | If using a string you should specify a string password, which will be hashed to a 128 bits key.If using an array of bytes you should specify a binary key of 16 bytes
Algorithm | Either ieeaTEA or ieeaTEA2. We recommend to use ieeaTEA2 for better encryption

Warning: The image must be saved using a lossless formats and in full rgb color spaces (no palette). If you use a lossy format such as JPEG you will not be able to decrypt the image.

Notes:
- To decrypt use Decrypt
- There is no way to know whether an image is encrypted, unless you insert special tags (like EXIF or IPTC) manually.

Example

ImageEnView1.IO.LoadFromFile('input.jpg');
ImageEnView1.Proc.Encrypt('captiva', ieeaTEA2);
ImageEnView1.IO.SaveToFile('crypted.png'); // Saving to lossless format

Demo

Demos\Other\Encrypt\Encrypt.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.EndImageAnalysis

TImageEnProc.EndImageAnalysis

Declaration

procedure EndImageAnalysis(ProcBitmap: TIEBitmap);

Description

BeginImageAnalysis and EndImageAnalysis allow you to create custom image analysis functions that automatically handle selection area and pixel format consistency.

Parameter | Description
ProcBitmap | The bitmap to process

By using BeginImageAnalysis/EndImageAnalysis, you can avoid considering if the selection is rectangle, elliptical, irregular or magic wand, just process the bitmap as a rectangle.

Example

procedure SearchWhitePixel( proc: TImageEnProc );
var
ProcBitmap: TIEBitmap;
mask: TIEMask;
x1, y1, x2, y2: Integer;
x, y: Integer;
px: PRGB;
begin
// we support only ie24RGB format
if not proc.BeginImageAnalysis([ie24RGB], x1, y1, x2, y2, ProcBitmap, mask) then
exit;
for y := y1 to y2-1 do begin
px := ProcBitmap.Scanline[y];
for x := x1 to x2-1 do begin
with px^ do
if (r = 255) and (g = 255) and (b = 255) then
ShowMessage('Found White Pixel!');
inc(px);
end;
end;
// finalize
proc.EndImageAnalysis(ProcBitmap);
end;

..
ImageEnView.SelectEllipse( 100, 100, 100, 100 );
SearchWhitePixel( ImageEnView.Proc );


TImageEnProc.EndImageProcessing

TImageEnProc.EndImageProcessing

Declaration

procedure EndImageProcessing(ProcBitmap: TIEBitmap; mask: TIEMask);

Description

BeginImageProcessing and EndImageProcessing allow you to create custom image processing functions that automatically handle selection area, pixel format consistency and undo.

Parameter | Description
ProcBitmap | The bitmap to process
mask | The selection mask

By using BeginImageProcessing/EndImageProcessing, you can avoid considering if the selection is rectangle, elliptical, irregular or magic wand, just process the bitmap as a rectangle.

Example

procedure CustomNegative( proc: TImageEnProc );
var
ProcBitmap: TIEBitmap;
mask: TIEMask;
x1, y1, x2, y2: Integer;
x, y: Integer;
px: PRGB;
begin
// we support only ie24RGB format
if not proc.BeginImageProcessing([ie24RGB], x1, y1, x2, y2, 'CustomNegative', ProcBitmap, mask) then
exit;
for y := x1 to x2-1 do begin
px := ProcBitmap.Scanline[y];
for x := y1 to y2-1 do begin
with px^ do begin
r := 255-r;
g := 255-g;
b := 255-b;
end;
inc(px);
end;
end;
// finalize
proc.EndImageProcessing(ProcBitmap, mask);
end;

..
ImageEnView.SelectEllipse( 100, 100, 100, 100 );
CustomNegative( ImageEnView.Proc );


TImageEnProc.FeatherAlphaEdges

TImageEnProc.FeatherAlphaEdges

Declaration

procedure FeatherAlphaEdges(iFeatherDepth : Integer);

Description

Applies a feathering effect to the image. Feathering softens the edges of an image by applying alpha transparency at a rate that is proportional to the distance to the edge (specifically, adding a gradient in the alpha channel).

iFeatherDepth specifies the depth in pixels of the feather effect. The range is 0 to 255, with typical values of 2 to 5. If iFeatherDepth = 0 then the image is not feathered but a simple smoothing filter is applied to reduce the jagged edges of the image.

Note: Method has no effect if the image does not have an alpha channel


TImageEnProc.Fill

TImageEnProc.Fill

Declaration

procedure Fill(FillColor: TRGB);
procedure Fill(FillColor: TColor);

Description

Replaces the selected region with a solid color.

Note: For black & white images FillColor can be only (0, 0, 0) for black and (255, 255, 255) for white.

Example

ImageEnView1.Proc.Fill( CreateRGB(127, 50, 200) );


TImageEnProc.FiltersInitialDir

TImageEnProc.FiltersInitialDir

Declaration

property FiltersInitialDir: String;

Description

FiltersInitialDir contains the initial directory in the previews dialog for the 'user filters' effect.


TImageEnProc.Flip

TImageEnProc.Flip

Declaration

procedure Flip(dir: TFlipDir);

Description

Flip (mirror) the current image across the horizontal or vertical axis. dir is the flip direction.

Examples

ImageEnView1.Proc.Flip( fdHorizontal );
ImageEnView1.Proc.Flip( fdVertical );

See Also

- Lossless Jpeg Transformations

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.FTClearZone

TImageEnProc.FTClearZone

Declaration

procedure FTClearZone(tx1, ty1, tx2, ty2: Integer; GrayScale: Boolean);

Description

Clear area of an FFT map.

Parameter | Description
tx1 | Left coordinate of reduced FFT map. Corresponds to IPDialogParams.FFT_Left.
ty1 | Top coordinate of reduced FFT map. Corresponds to IPDialogParams.FFT_Top.
tx2 | Right coordinate of reduced FFT map. Corresponds to IPDialogParams.FFT_Right.
ty2 | Bottom coordinate of reduced FFT map. Corresponds to IPDialogParams.FFT_Bottom.
GrayScale | Makes the bitmap grayscale. Corresponds to IPDialogParams.FFT_GrayScale.

Example

ImageEnView1.Proc.FTClearZone(ImageEnView1.Proc.IPDialogParams.FFT_Left, ImageEnView1.Proc.IPDialogParams.FFT_Top, ImageEnView1.Proc.IPDialogParams.FFT_Right, ImageEnView1.Proc.IPDialogParams.FFT_Bottom, ImageEnView1.Proc.IPDialogParams.FFT_GrayScale);

See Also

FTClearZone
FTConvertFrom
FTCreateImage
FTDisplayFrom

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.FTConvertFrom

TImageEnProc.FTConvertFrom

Declaration

procedure FTConvertFrom(ft: TIEftImage);

Description

Perform an inverse Fourier transformation of ft (a Fourier transformed image).
ft is created by FTCreateImage method.

Example

// This example performs the Fourier transformation of image contained in ImageEnView1,
// then an inverse Fourier transformation and store result image to ImageEnView2
// ImageEnView2 should be equal to ImageEnView2
// notes: ImageEnProc1 attached with ImageEnView1 and ImageEnProc2 attached with ImageEnView2
var
ftimage: TIEFtImage;
begin
ftimage := ImageEnView1.Proc.FTCreateImage(ieitRGB, -1, -1);
ImageEnView2.Proc.FTConvertFrom(ftimage);
ftimage.free;
end;

See Also

FTClearZone
FTCreateImage
FTDisplayFrom

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.FTCreateImage

TImageEnProc.FTCreateImage

Declaration

function FTCreateImage(ImageType: TIEFtImageType; NewWidth: Integer = -1; NewHeight: Integer = -1): TIEFtImage;

Description

Create an object containing the Fourier transformation of the current image.

ImageType specifies the kind of the output transformation either RGB (ieitRGB) or gray-scale (ieitGrayscale)
NewWidth and NewHeight resample the current image before applying the Fourier transformation (to speed up the job). Set -1 to disable resampling (original size).
TIEFtImage is an object and must be destroyed with the Free method.

To access the complex data of the transformed image use the TIEFtImage object as declared in the iefft unit.
TIEFtImage exports ComplexPixel[], ComplexWidth and ComplexHeight properties.
ComplexPixel[] is defined as:
ComplexPixel[x, y: Integer]: TIEComplexColor;

ComplexPixel[] returns the complex pixel at x, y coordinate.
TIEComplexColor is defined as:
TIEComplexColor=packed record
// red channel
real_Red: PIEsingle;
imag_Red: PIEsingle;
// blue channel
real_Blue: PIEsingle;
imag_Blue: PIEsingle;
// green channel
real_Green: PIEsingle;
imag_Green: PIEsingle;
// gray scale
imag_gray: PIEsingle;
real_gray: PIEsingle;
end;
The fields *_Red, *_Blue and *_Green are filled if ImageType is ieitRGB.
The fields *_gray are filled if ImageType is ieitGrayscale.
ComplexWidth and ComplexHeight are the width and the height of complex image.

For example, to set complex pixel 0, 0 to 0.1 write (for ImageType=ieitRGB):
ftimage.ComplexPixel[0, 0].real_Red^ := 0.1;
ftimage.ComplexPixel[0, 0].imag_Red^ := 0.1;
ftimage.ComplexPixel[0, 0].real_Green^ := 0.1;
ftimage.ComplexPixel[0, 0].imag_Green^ := 0.1;
ftimage.ComplexPixel[0, 0].real_Blue^ := 0.1;
ftimage.ComplexPixel[0, 0].imag_Blue^ := 0.1;

Demo

Demos\ImageAnalysis\FFT\FFT.dpr

Example

// this code shows in ImageEnView2 the displayable Fourier transformation
// of ImageEnView1 image
// notes: ImageEnProc1 attached with ImageEnView1 and ImageEnProc2 attached with
// ImageEnView2
var
ftimage: TIEFtImage;
begin
ftimage := ImageEnView1.Proc.FTCreateImage(ieitRGB, -1, -1);
ImageEnView2.Proc.FTDisplayFrom(ftimage);
ftimage.free;
end;

See Also

FTClearZone
FTConvertFrom
FTDisplayFrom

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.FTDisplayFrom

TImageEnProc.FTDisplayFrom

Declaration

procedure FTDisplayFrom(ft: TIEftImage);

Description

Build an image that is the "visible" representation of Fourier transformation ft.
ft is created by FTCreateImage method.

Example

// this code shows in ImageEnView2 the displayable Fourier transformation
// of ImageEnView1 image
// notes: ImageEnProc1 attached with ImageEnView1 and ImageEnProc2 attached with ImageEnView2
var
ftimage: TIEFtImage;
begin
ftimage := ImageEnView1.Proc.FTCreateImage(ieitRGB, -1, -1);
ImageEnView2.Proc.FTDisplayFrom(ftimage);
ftimage.free;
end;

See Also

FTClearZone
FTConvertFrom
FTCreateImage

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.GammaCorrect

TImageEnProc.GammaCorrect

Declaration

procedure GammaCorrect(Gamma: Double; Channel: TIEChannels);

Description

Performs a gamma correction.
Gamma is the gamma correction value. A value of 1.0 causes no gamma correction processing.
Channel is the channel to apply the gamma.

Example

// Apply a gamma correction over all channels (RGB)
ImageEnProc.GammaCorrect( 2, [iecRed, iecGreen, iecBlue] );


TImageEnProc.GetDominantColor

TImageEnProc.GetDominantColor

Declaration

function GetDominantColor(var Color: TRGB): Double;

Description

Returns the dominant (most common) color in the image.
Color will contain the dominant color, and the result will return the percentage of the image with that color.

Example

Percentage := ImageEnView.Proc.GetDominantColor(cl);
If Percentage = 100 then
ShowMessage('the image is blank!');

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.GetHiddenDataSpace

TImageEnProc.GetHiddenDataSpace

Declaration

function GetHiddenDataSpace: Integer;

Description

Returns the available hidden space inside the current image (in bytes).

Example

// Show how many hidden characters 'alfa.tif' can contain
ImageEnView1.IO.LoadFromFile('C:\alfa.tif');
freesp := ImageEnView1.Proc.GetHiddenDataSpace;
ShowMessage('You can type '+IntToStr(freesp)+' hidden characters');

See Also

ReadHiddenData
ReadHiddenText
WriteHiddenData
WriteHiddenText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.GetHistogram

TImageEnProc.GetHistogram

Declaration

procedure TImageEnProc.GetHistogram(Hist: pointer; Content: TIEHistogramContent = [iehcRed, iehcGreen, iehcBlue, iehcGray, iehcHue]); overload;
function TImageEnProc.GetHistogram(Content: TIEHistogramContent = [iehcRed, iehcGreen, iehcBlue, iehcGray, iehcHue]): TIEHistogram; overload;

Description

First overload fills Hist with the histogram of the current image. Hist is a pointer to THistogram array (Image will be converted to ie24RGB).
Second overload returns a dynamic array which contains 256, 360 or 65536 items, and works natively with 8 and 16 bit gray scale images.
Content specifies which color component to calculate. If only iehcHue is specified a 360 items histogram is created.


TImageEnProc.GetHSVChannel

TImageEnProc.GetHSVChannel

Declaration

function GetHSVChannel(ch: Integer): TIEBitmap;

Description

Returns a Bitmap with the HSV specified channel. The result Bitmap is a gray level representation of the specified channel.

ch is the HSV channel. 0 is Hue, 1 is Saturation, and 2 is Value.

Example

Hue := ImageEnView1.Proc.GetHSVChannel(0);
Sat := ImageEnView1.Proc.GetHSVChannel(1);
Val := ImageEnView1.Proc.GetHSVChannel(2);

ImageEnView2.IEBitmap.Assign(Hue); // copy Hue channel
ImageEnView3.IEBitmap.Assign(Sat); // copy Sat channel
ImageEnView4.IEBitmap.Assign(Val); // copy Val channel

Hue.Free;
Sat.Free;
Val.Free;

ImageEnView2.Update;
ImageEnView3.Update;
ImageEnView4.Update;


TImageEnProc.GetHSVChannelAll

TImageEnProc.GetHSVChannelAll

Declaration

procedure GetHSVChannelAll(BitmapH, BitmapS, BitmapV: TIEBitmap);

Description

Copies the H, S and V channels to the bitmaps: BitmapH, BitmapS and BitmapV.

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

Example

ImageEnView1.Proc.GetHSVChannelAll( ImageEnView2.IEBitmap, ImageEnView3.IEBitmap, ImageEnView4.IEBitmap);
ImageEnView2.Update;
ImageEnView3.Update;
ImageEnVIew4.Update;


TImageEnProc.GetRedoInfo

TImageEnProc.GetRedoInfo

Declaration

procedure GetRedoInfo(const index: Integer; Out RedoSource : TIEUndoSource; out RedoOperation: Integer);

Description

Returns the source and operation of the Redo located at Index.
Index = 0: Last saved Redo, 1: Second to last saved Redo, 2... up to RedoCount - 1.

Compatibility Information

TImageEnProc.GetRedoInfo replaces the older TImageEnProc.RedoPeekAt. Code such as:
Src := ImageEnView1.Proc.RedoPeekAt( idx );

Should be replaced with:
ImageEnView1.Proc.GetRedoInfo( ImageEnView1.Proc.RedoCount - 1 - idx, Src, iOp );

See Also

RedoCaptions
Redo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.GetReSel

TImageEnProc.GetReSel

Declaration

function GetReSel(var fSX1, fSY1, fSX2, fSY2: Integer; var PolySel: PPointArray; var PolySelCount: Integer; var mask: TIEMask): Boolean;

Description

Returns the selected area of the attached TImageEnView. Returns False if there isn't a selected area.

If a TImageEnView is not attached, it returns the full rect of the bitmap.

Note: This method is the same as accessing SelectionMask, but returns more information


TImageEnProc.GetRGBChannel

TImageEnProc.GetRGBChannel

Declaration

function GetRGBChannel(ch: TIEChannel): TIEBitmap;

Description

Returns a Bitmap with the RGB specified channel. The resulting Bitmap is a gray level representation of the specified channel.

ch is the RGB channel: iecRed, iecGreen, iecBlue

Example

blue := ImageEnView1.Proc.GetRGBChannel(iecBlue);
green := ImageEnView1.Proc.GetRGBChannel(iecGreen);
red := ImageEnView1.Proc.GetRGBChannel(iecRed);

ImageEnView2.IEBitmap.Assign(blue); // show Blue channel
ImageEnView3.IEBitmap.Assign(green); // show Green channel
ImageEnView4.IEBitmap.Assign(red); // show Red channel

ImageEnView2.Update;
ImageEnView3.Update;
ImageEnView4.Update;

red.Free;
green.Free;
blue.Free;


TImageEnProc.GetRGBChannelAll

TImageEnProc.GetRGBChannelAll

Declaration

procedure GetRGBChannelAll(BitmapR, BitmapG, BitmapB: TIEBitmap);

Description

Copies the R, G and B channels to the bitmaps: BitmapR, BitmapG and BitmapB.

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

Example

ImageEnView1.Proc.GetRGBChannelAll(ImageEnView2.IEBitmap, ImageEnView3.IEBitmap, ImageEnView4.IEBitmap);
ImageEnView2.Update;
ImageEnView3.Update;
ImageEnView4.Update;


TImageEnProc.GetUndoInfo

TImageEnProc.GetUndoInfo

Declaration

procedure GetUndoInfo(const index: Integer; Out UndoSource : TIEUndoSource; out UndoOperation: Integer);

Description

Returns the source and operation of the undo located at Index.
Index = 0: Last saved undo, 1: Second to last saved undo, 2... up to UndoCount - 1.

Compatibility Information

TImageEnProc.GetUndoInfo replaces the older TImageEnProc.UndoPeekAt. Code such as:
Src := ImageEnView1.Proc.UndoPeekAt( idx );

Should be replaced with:
ImageEnView1.Proc.GetUndoInfo( ImageEnView1.Proc.UndoCount - 1 - idx, Src, iOp );

See Also

UndoCaptions
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.GuessChromaKeyColor

TImageEnProc.GuessChromaKeyColor

Declaration

function GuessChromaKeyColor : TRGB; overload;
function GuessChromaKeyColor(out Tolerance: Double) : TRGB; overload;

Description

Analyzes a ChromaKey image to guess its key color (by examining nine areas of the image and using the one with the least hue variance). If a selection is active it only analyzes the selection.

The second overload will return a level of Tolerance that would remove all the background color from the selection. If this is used without a selection it is likely to return a level that is too low (a default tolerance of 0.21 is usually better).

A ChromaKey image contains a solid color block that is removed so that it can be applied to a background. E.g. in the following image the key color is neon green (R=0/G=254/B=0).

Example

// Get the key color of the current layer
ImageEnView1.LayersCurrent := 1;
KeyColor := ImageEnView1.Proc.GuessChromaKeyColor;
clsKeyColor.Color := TRGB2TColor( KeyColor );

// Guess the key color and tolerance of the area selected by the user
procedure TMainForm.ImageEnView1SelectionChange(Sender: TObject);
var
Tolerance: Double;
KeyColor : TRGB;
begin
if ImageEnView1.Selected then
begin
KeyColor := ImageEnView1.Proc.GuessChromaKeyColor( Tolerance );
clsKeyColor.Color := TRGB2TColor( KeyColor );
trkTolerance.Position := Trunc( Tolerance * 1000 );
ApplyChromaKey();
end;
end;

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.HistAutoEqualize

TImageEnProc.HistAutoEqualize

Declaration

procedure HistAutoEqualize;

Description

Equalizes the color histogram of the selected region.

Example

ImageEnView1.Proc.HistAutoEqualize;


TImageEnProc.HistEqualize

TImageEnProc.HistEqualize

Declaration

procedure HistEqualize(LoThresh, HiThresh: TRGB);

Description

Equalize the color histogram of the selected region in the range LoThresh to HiThresh.

Example

// Compress the color histogram in the range LoThresh to HiThresh
var
LoThresh, HiThresh: TRGB;
Begin
LoThresh := CreateRGB(50, 50, 50);
HiThresh := CreateRGB(150, 150, 150);
ImageEnView1.Proc.HistEqualize(LoThresh, HiThresh);
End;

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.HSLvar

TImageEnProc.HSLvar

Declaration

procedure HSLvar(oHue, oSat, oLum: Integer);

Description

Changes the Hue, Saturation and Luminosity of the selected region.

Parameter | Description
oHue | Offset to add to the Hue channel, from -180 to +180.
oSat | Offset to add to the Saturation channel, from -100 to +100.
oLum | Offset to add to the Luminosity channel, from -100 to +100.

Examples

ImageEnView1.Proc.HSLVar(0, -100, 0); // convert to gray
ImageEnView1.Proc.HSLVar(0, 0, 30); // increase luminosity


TImageEnProc.HSVvar

TImageEnProc.HSVvar

Declaration

procedure HSVvar(oHue, oSat, oVal: Integer);

Description

Changes the Hue, Saturation and Value of the selected region.

Parameter | Description
oHue | Offset to add to the Hue channel, from -180 to +180.
oSat | Offset to add to the Saturation channel, from -100 to +100.
oVal | Offset to add to the Value channel, from -100 to +100.

Examples

ImageEnView1.Proc.HSVvar(0, -100, 0); // convert to gray
ImageEnView1.Proc.HSVvar(0, 0, 30); // increase luminosity/brightness


TImageEnProc.ImageEnVersion

TImageEnProc.ImageEnVersion

Declaration

property ImageEnVersion: String;

Description

Returns the ImageEn version as a string.


TImageEnProc.ImageResize

TImageEnProc.ImageResize

Declaration

procedure ImageResize(newWidth, newHeight: Integer; HorizAlign: TIEHAlign = iehLeft; VertAlign: TIEVAlign = ievTop; FillAlpha: Integer = 255); overload;
procedure ImageResize(AddLeft, AddTop, AddRight, AddBottom: integer; FillAlpha: Integer); overload;

Description

Resizes the current image. The content of the image doesn't change (no stretching).

Overload 1:
Parameter | Description
NewWidth | New image width
NewHeight | New image height
FillAlpha | Alpha value used to fill added regions (0: Fully Transparent - 255: Opaque)
HorizAlign | Specifies how to horizontally align the old image
VertAlign | Specifies how to vertically align the old image

Overload 2:
Parameter | Description
AddLeft | Pixels to add to the left of the image (or remove if AddLeft < 0)
AddTop | Pixels to add to the top of the image (or remove if AddTop < 0)
AddRight | Pixels to add to the right of the image (or remove if AddRight < 0)
AddBottom | Pixels to add to the bottom of the image (or remove if AddBottom < 0)
FillAlpha | Alpha value used to fill added regions (0: Fully Transparent - 255: Opaque)

Note: The color of added background is specified by Background

Demo

Demos\ImageEditing\Resize\Resize.dpr

Examples

// resize image to 1000x1000
ImageEnView1.Proc.ImageResize( 1000, 1000 );

// make a contour around the image
ImageEnView1.Proc.ImageResize( ImageEnView1.IEBitmap.Width + 80, ImageEnView1.IEBitmap.Height + 80, iehCenter, ievCenter );

// which is the same as:
ImageEnView1.Proc.ImageResize( 80, 80, 80, 80, clBlack, 255 );

// Add 50 pixels to the top and bottom of the image, remove 80 pixels from the left and right
ImageEnView1.Proc.ImageResize( -80, 50, -80, 50 );


TImageEnProc.Intensity

TImageEnProc.Intensity

Declaration

procedure Intensity(LoLimit, HiLimit, Change: Integer; UseAverageRGB: Boolean; DoRed, DoGreen, DoBlue: Boolean);

Description

Changes the value of a pixel by an amount determined by the input Red, Green and Blue channel RGB values individually, or as an averaged value. The change is graduated starting from LoLimit, with a maximum change applied to the midpoint between LoLimit and HiLimit, then reduced again to HiLimit.
Typically this method can be used to effectively progressively brighten or darken any range of colors as requested without affecting colors outside the range. RGB values in the range of 0 to 127 are considered as darker, and 128 to 255 as lighter.

Parameter | Description
LoLimit | The start point of the range (value between 0 and 255)
HiLimit | The end point of the range (value between 0 and 255)
Change | The maximum or minimum value to be applied to the midpoint, and used to determine the slope of the increment/decrement used over the range (value between -255 and 255)
UseAverageRGB | If True, uses the average value of the input Red, Green and Blue channels to determine the amount to change all RGB channels of the pixel
DoRed, DoGreen, DoBlue | If True, changes are applied to that RGB channel

Example

// Apply an Intensity gradient peaking at +40 to all RGB values between 80 and 255
ImageEnView.Proc.Intensity( 80, 255, 40, False, True, True, True );

// Apply an Intensity gradient dropping to -24, to the Red RGB channel only, when Red values are between 20 and 127
ImageEnView.Proc.Intensity( 20, 127, -24, False, True, False, False );


TImageEnProc.IntensityRGBAll

TImageEnProc.IntensityRGBAll

Declaration

procedure IntensityRGBAll(r, g, b: Integer);

Description

Change the RGB channels of the current image or the selected region.
R, G and B are the channel offsets, from -255 to +255.
Negative values darken all the pixels in the image. Positive values lighten all pixels in the image. To darken colors use IntensityRGBAll (-10, -10, -10). To lighten colors use IntensityRGBAll (10, 10, 10). Also see AdjustBrightnessContrastSaturation which uses a non-linear LUT to adjust the pixel colors. IntensityRGBAll adjusts the pixel colors by adding or subtracting the R, G, B values to each pixel in the image.

Example

// subtracts the Red channel
ImageEnView1.Proc.IntensityRGBall(-255, 0, 0);

// apply a Red filter (subtracts the Green and Blue channels)
ImageEnView1.Proc.IntensityRGBall(0, -255, -255);

// apply a darken filter (subtracts the same value from all channels)
ImageEnView1.Proc.IntensityRGBall(-10, -10, -10);

// apply a lighten filter (adds the same value to all channels)
ImageEnView1.Proc.IntensityRGBall(10, 10, 10);


TImageEnProc.IPDialogParams

TImageEnProc.IPDialogParams

Declaration

property IPDialogParams: TIPDialogParams;

Description

This property contains TIPDialogParams object which provides read/write access to the parameters of the Image Processing Dialog (displayed by calling DoPreviews).

Example

// Set default brightness in "Contrast" tab
ImageEnView1.Proc.IPDialogParams.CONTRAST_Brightness := 20;
ImageEnView1.Proc.DoPreviews;

// Make parameters persistent (saved between sessions)
if FileExists(AppSettingsFolder + 'Previews.dat') then
ImageEnView1.Proc.IPDialogParams.LoadFromFile(AppSettingsFolder + 'Previews.dat');
If ImageEnView1.Proc.DoPreviews then
ImageEnView1.Proc.IPDialogParams.SaveToFile(AppSettingsFolder + 'Previews.dat');


TImageEnProc.Lens

TImageEnProc.Lens

Declaration

procedure Lens(cx, cy, Width, Height: Integer; Refraction: Double);

Description

Applies a lens effect to the current image. This effect and a preview are also available in the Image Processing dialog.

Parameter | Description
cx | Horizontal lens position
cy | Vertical lens position
Width | Lens width
Height | Lens height
Refraction | Lens refraction (from 1)

Demo

Demos\ImageEditing\Lens\LensTest.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.MakeTile

TImageEnProc.MakeTile

Declaration

procedure MakeTile(columns, rows: Integer);

Description

Replicates the current image in multiple columns and rows. This is used to create tiled images.

Note: The final image will be resized by columns * ImageWidth and rows * ImageHeight

Example

// Create an image with pic.jpg repeated in a 6x6 grid
ImageEnView1.IO.LoadFromFile('C:\pic.jpg');
ImageEnView1.Proc.MakeTile(6, 6);
ImageEnView1.IO.SaveToFile('D:\tiled.jpg');


TImageEnProc.MapGrayToColor

TImageEnProc.MapGrayToColor

Declaration

procedure MapGrayToColor(map: array of TRGB);

Description

Maps each gray scale level to specified RGB color using the provided map.

Parameter | Description
map | Array of 256 elements of TRGB values.

Example

var
map: array [0..255] of TRGB;
i: Integer;
begin
for i := 0 to 255 do
begin
map[i].r := i;
map[i].g := 255-i;
map[i].b := i;
end;
ImageEnView1.IO.LoadFromFile('grayimage.jpg');
ImageEnView1.Proc.MapGrayToColor(map);
end;


TImageEnProc.MatchHSVRange

TImageEnProc.MatchHSVRange

Declaration

function MatchHSVRange(HueBegin, HueEnd, SatBegin, SatEnd, ValBegin, ValEnd: Integer; ColorizeMatched: Boolean; MatchColor: TRGB; ColorizeNonMatched: Boolean; NonMatchColor: TRGB): Integer;

Description

If ColorizeMatched is true then this method colorizes pixels that match the specified HSV (Hue, Saturation and Value) range to MatchColor color.
If ColorizeNonMatched is true, non matching pixels are set to NonMatchColor.

Parameter | Description
HueBegin | Starting Hue value (0 to 359)
HueEnd | Ending Hue value (0 to 359)
SatBegin | Starting Saturation value (0 to 99)
SatEnd | Ending Saturation value (0 to 99)
ValBegin | Starting Intensity value (0 to 99)
ValEnd | Ending Intensity value (0 to 99)/C>
ColorizeMatched | If true next parameter specifies the matched color
MatchColor | New pixel color when HSV conversion fit inside specified ranges
ColorizeNonMatched | If true next parameter specifies the non-matched color
NonMatchColor | New pixel color when HSV conversion does not fit inside specified ranges

Returns the number of matching pixels.


TImageEnProc.Maximum

TImageEnProc.Maximum

Declaration

procedure Maximum(WindowSize: Integer);

Description

Set each pixel in the image to the maximum value of all the current image pixel values in the neighborhood of size WindowSize.

The maximum filter is typically applied to an image to remove negative outlier noise.

See Also

- Minimum
- Opening
- Closing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.MedianFilter

TImageEnProc.MedianFilter

Declaration

procedure MedianFilter(WindowX: Integer=5; WindowY: Integer=5; Brightness: Integer = 50; Contrast: Integer = 50; Multiplier: Integer = 1; Threshold: Integer = 50; MedianOp: TIEMedFilType = mfMedianFilter);

Description

Perform fast median filtering on an image using windows from 3x3 to 19x19 maximum size. MedianFilter works only with true color images.
Filtering can be of three types:
mfMedianFilter | Substitute median if central point differs from median by a threshold amount
mfSharpen | High pass sharpening
mfEdgeExtract | Edge extraction

Operation:

Histogram in moving window at beginning of line is initiated. Histogram is updated after each move subtracting
left column values from previous window, adding right column values. Median updated by counting up or down
number of pixels less than or greater than old median.

For color images, the grayscale intensity of a pixel is computed as a weighted linear combination of RGB and
counted in the histogram. The pixel with the nearest (L1 norm) color to the average of all pixels in the moving
window except the central point is used in place of the median.

The computation of the median for a color image has a complexity of O(N^4), whereas this technique is only O(N^2)
or less and is as good when the window size is 19x19 when the median differs only by a small amount from the mean.
For smaller windows performance degrades as the mean differs from the median, but it is still satisfactory down to
a 5x5 window.

Adaptive thresholding is used to preserve sharp edges. A pixel is replaced by the median or its nearast average
color equivalent if it lies outside the 1st and 3rd quantile of the intensity distribution. The user may modify
the position of the quantiles interactively. Defaults are the first and third quartiles. For grayscale images,
the quantiles and medians are used directly.

The green element of a TRGB record is used as an intensity measurement. The user must provide means of detecting
whether or not an image is color or grayscale.

Author:

I.Scollar, following Huang, Yang, Tang, unpublished report submitted under Defense Advanced Research Projects
Agency contract no. MDA 903-77-G-1, "A fast two dimensional median filtering algorithm"
T.S.Huang, G.J.Yang, G.Y.Tang, School of Electrical Engineering, Purdue University, West Lafayette, Indiana 47907, USA.

First publication: T.S.Huang, G.J.Yang, G.Y.Tang, Proceedings IEEE Conference Pattern Recognition and Image Processing,
Chicago 1978, p. 128 ff.

I.Scollar, B.Weidner, T.S.Huang, Image enhancement using the median and the interquartile distance, Computer Vision,
Graphics and Image Processing, 25 1984 236-251

Original Fortran IV, 512x512 grayscale images G.Y.Tang, 1976

Modifications:
Large images on DEC PDP11, I. Scollar Sept. 1978
Normalized sharpening, I.Scollar Sept. 1980
Adaptive quantile thresholding, I.Scollar Sept. 1980
Ported from DEC Fortran IV to Delphi 7 Pascal, I.Scollar March 11, 2003
Extension to color images, I. Scollar, March 13, 2003


TImageEnProc.Merge

TImageEnProc.Merge

Declaration

procedure Merge(SrcBitmap: TIEBitmap; pcf: Integer = 50); overload;
procedure Merge(SrcBitmap: TBitmap; pcf: Integer); overload;
procedure Merge(SrcBitmap: TIEBitmap; Mask: TIEBitmap); overload;

Description

Merge the current image with the specified bitmap.

Parameter | Description
SrcBitmap | Bitmap to merge with the current image
pcf | Percentage of current image (100 = only the current image, 0 = only SrcBitmap)
Mask | Gray scale (ie8g) mask, which indicates how merge source with the background image (255 = full SrcBitmap, 0 = full background)

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

Example

// Merge 50% of ImageEn2 with ImageEn1
ImageEnView1.Proc.Merge( ImageEnView2.IEBitmap, 50 );


TImageEnProc.Minimum

TImageEnProc.Minimum

Declaration

procedure Minimum(WindowSize: Integer);

Description

Set each pixel in the image to the minimum value of all the current image pixel values in the neighborhood of size WindowSize.

The minimum filter is typically applied to an image to remove positive outlier noise.

See Also

- Maximum
- Opening
- Closing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.MotionBlur

TImageEnProc.MotionBlur

Declaration

procedure MotionBlur(angle: Double; radius: Integer = 8; sigma: Integer = 7);

Description

Applies a motion blur effect.

Parameter | Description
angle | Angle in degrees (0 to 360)
radius | Radius of Gaussian kernel in pixels (> 0)
sigma | Standard deviation of Gaussian kernel in pixels (> 0)

Example

ImageEnView1.Proc.MotionBlur(45);


TImageEnProc.Negative

TImageEnProc.Negative

Declaration

procedure Negative;

Description

Invert all colors of the selected region.

Example

ImageEnView1.Proc.Negative;


TImageEnProc.OnFinishWork

TImageEnProc.OnFinishWork

Declaration

property OnFinishWork: TNotifyEvent;

Description

Occurs whenever an image processing task terminates. This event is called after the last call to OnProgress, so is useful to reset the progress bar.

Example

// Show progress display during processing operations
procedure TMDIChild.ImageEnView1Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
ProgressBar1.Visible := True;
end;

// Hide the progress bar
procedure TMDIChild.ImageEnView1FinishWork(Sender: TObject);
begin
ProgressBar1.Visible := False;
end;

See Also

- TImageEnProc.OnProgress
- TImageEnView.OnFinishWork

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.OnPreview

TImageEnProc.OnPreview

Declaration

property OnPreview: TIEPreviewEvent;

Description

Occurs before the Image Processing Dialog form is displayed (i.e. after calling DoPreviews).

Example 1

procedure TForm1.ImageEnProc1Preview(Sender: TObject; PreviewForm: TForm);
begin
(PreviewForm as TfPreviews).PageControl1.MultiLine := True;
end;

Example 2

// Customizing the Preview dialog of a TImageEnView
uses
Previews;

procedure TMyForm.FormCreate(Sender: TObject);
begin
ImageEnView1.Proc.OnPreview := ProcPreview;
end;

procedure TMyForm.ProcPreview(Sender: TObject; PreviewForm: TForm);
begin
with TfPreviews(PreviewForm) do
begin
// Red dialog
Color := clRed;

// Caption of OK button
OkButton.Caption := 'Yeah baby';

// Replace cancel button with custom control
CancelButton.Visible := False;
With TMyAnimatedButton.Create( PreviewForm ) do
begin
Parent := PreviewForm;
Left := CancelButton.Left;
Top := CancelButton.Top + CancelButton.Height + 8;
Width := CancelButton.Width;
Height := CancelButton.Height;
Anchors := [akTop, akRight];
Caption := 'My Cancel';
ModalResult := 2;
end;
end;
end;


TImageEnProc.OnProgress

TImageEnProc.OnProgress

Declaration

property OnProgress: TIEProgressEvent;

Description

Occurs whenever image processing operations are executed. If you are using it to update a progress bar then you should reset it in the OnFinishWork event.

To access processing progress for the Proc class of a TImageEnView, use the OnProgress event.

Example

// Show progress display during processing operations
procedure TMainForm.ImageEnProc1Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
ProgressBar1.Visible := True;
end;

// Hide the progress bar
procedure TMainForm.ImageEnProc1FinishWork(Sender: TObject);
begin
ProgressBar1.Visible := False;
end;


TImageEnProc.OnSaveUndo

TImageEnProc.OnSaveUndo

Declaration

property OnSaveUndo: TIESaveUndoEvent;

Description

Occurs after SaveUndo is called automatically or by code. Source is the same parameter used when calling SaveUndo.


TImageEnProc.Opening

TImageEnProc.Opening

Declaration

procedure Opening(WindowSize: Integer);

Description

Performs an erosion (Minimum filter with WindowSize parameter) followed by a dilation (Maximum filter with WindowSize parameter).

The opening filter operation will reduce small positive oriented regions and positive noise regions.

See Also

- Maximum
- Minimum
- Closing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.PaintMark

TImageEnProc.PaintMark

Declaration

procedure PaintMark(Frequency: Integer; Color: TRGB);

Description

Draws a pixel of the specified Color every Frequency pixels, within the selected area.

Example

ImageEnProc.PaintMark(1, CreateRGB(0, 0, 0)); // a black marker

Which will have the following effect upon the selected area:

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.PaintPenMarker

TImageEnProc.PaintPenMarker

Declaration

procedure PaintPenMarker(x, y: Integer; Width: Integer = 20; Color: TColor = clYellow; BackgroundColor: TColor = clWhite; Tolerance: Integer = 10);

Description

Emulates a pen marker over the image (which must be in true color).

Parameter | Description
x and y | Position of the pen in bitmap coordinates
Width | The size of the circle
BackgroundColor | The background color to change
Color | The color that replaces BackgroundColor
Tolerance | The maximum difference from BackgroundColor to allow drawing the marker

Note: PaintPenMarker doesn't save the previous image into the Undo stack.


TImageEnProc.PasteFromClipboard

TImageEnProc.PasteFromClipboard

Declaration

function PasteFromClipboard(Dest: TIECopyPasteType = iecpAuto; MergeAlpha: Boolean = True; MaintainAspectRatio: Boolean = True; CanStretch: Boolean = True): Boolean;

Description

Pastes an image or layer from the clipboard.

Possible values for Dest:
Item | Effect
iecpAuto | ImageEn automatically detects the best destination. If an ImageEn layer exists on the clipboard, it is pasted as a new layer. If not, and there is a valid selection, the image is pasted to the selection. Failing that, the image on the clipboard replaces the current image
iecpFullImage | The image on the clipboard replaces the existing image
iecpSelection | If there is a selection in the associated TImageEnView, the image is pasted to the selection. If there is no selection, it fails
iecpLayer | The image or layer on the clipboard is pasted as a new layer in the associated TImageEnView

Other parameters (Relevant only when pasting to a selection):
Parameter | Description
MergeAlpha | The alpha channel of the pasted bitmap will be merged with the background bitmap. It is only valid if image on the clipboard has been copied from TImageEnView
MaintainAspectRatio | If False and pasting to a selection, the inserted image will fill the entire selection. I.e. set to true to maintain the aspect ratio of the original bitmap
CanStretch | When pasting to a selection, CanStretch determines whether a source image smaller than the selection is enlarged or maintains its original size (has no effect if MaintainAspectRatio is False, i.e. image will always be stretched)

Result is false if a valid image was not found on the clipboard.

Notes:
- All uncompressed DIB formats are handled (1, 4, 8, 15, 16, 24 and 32 bits)
- Color images of 4, 8, 15, 16, 24 or 32 bits are converted to 24 bit. Monochrome images (1 bit) will remain 1 bit
- If the TImageEnProc is attached to a TIEBitmap, TImageEnMView or TImageEnFolderMView then only iecpFullImage is relevant (iecpAuto will have the same effect as iecpFullImage. iecpSelection and iecpLayer will always fail)

General Example

ImageEnView1.Proc.PasteFromClipboard( iecpAuto );

// Append an image to a TImageEnMView from the clipboard
if IEMView1.Proc.CanPasteFromClipboard() then
begin
IEMView1.AppendImage( 0, 0 );
IEMView1.Proc.PasteFromClipboard();
end;

Selection Examples

Source Image

// Paste an image on the clipboard to selection, maintaining the aspect ratio. The image will take the full size of the selection, but maintain its aspect ratio (will not be distored)
ImageEnView1.Proc.PasteFromClipboard( iecpSelection, True );

// Paste an image on the clipboard to selection, maintaining the aspect ratio. If the image is smaller than the selection it will maintain its original dimensions, if it is larger it will be reduced in size to fit within the selection (while maintaining the aspect ratio)
ImageEnView1.Proc.PasteFromClipboard( iecpSelection, True, True, False );

// Paste an image on the clipboard to selection. It will be stretched to the full area of the selection (which may distort the source image)
ImageEnView1.Proc.PasteFromClipboard( iecpSelection, True, False );

See Also

- CanPasteFromClipboard
- PointPasteFromClip
- LayersCreateFromClipboard
- CanCutToClipboard
- CutToClipboard
- CanCopyToClipboard
- CopyToClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.PencilSketch

TImageEnProc.PencilSketch

Declaration

procedure PencilSketch(GrayScale: boolean = true; LevelSteps: integer = 2; MaxTextures: integer = MAXINT; EdgeBlurAmount: integer = 4; EdgeAmount: double = 0.5; LineThickness: double = 1; DarkeningFactor: double = 0.1; LineAlpha: double = 0.1; LineDensity: double = 0.5; Lightness: double = 4; AntialiasedLines: boolean = false);

Description

Transform an image or the selected area into a pencil-sketch.
This method can be very slow for large images or for particular combination of parameters (like LevelSteps and AntialiasedLines).
It also requires a lot of memory and can fail processing large images.

Specifies how dark is resulting image. Suggested range: 0 up to 10.
Parameter | Description
GrayScale | If True produces gray scale drawings.
LevelSteps | Determines number of colors detected from the image. Suggested range: 2 up to 6.
MaxTextures | Overcome LevelSteps parameter, specifing maximum number of textures (colors) to generate.
EdgeBlurAmount | Specifies the edge thickness. Suggested range: 2 up to 10.
EdgeAmount | Specifies the edge amount. Suggested range: 0 up to 2.
LineThickness | Specifies drawn lines thickness. Suggested range: 0.5 up to 10.
DarkeningFactor |
LineAlpha | Specifies drawn lines transparency (alpha). Suggested range: 0.05 up to 0.5.
LineDensity | Specifies drawn lines density (how much lines are drawn in the textures). Suggested range: 0.25 up to 1.
Lightness | Specifies the overall lightness of the resulting image. Suggested range: 1 up to 8.
AntialiasedLines | If True texture lines are drawn with antialiasing routine.

Original image:

Applying PencilSketch() to the selected areas:

Applying PencilSketch(false) to the selected areas:


TImageEnProc.PerspectiveDraw

TImageEnProc.PerspectiveDraw

Declaration

procedure PerspectiveDraw(Source: TIEBitmap; x0, y0, x1, y1, x2, y2, x3, y3: Integer; alphaMin: Integer=-1; alphaMax: Integer=-1; mergeAlpha: Boolean);

Description

Draws the source bitmap over current layer, stretching bitmap inside four points.

Parameter | Description
x0, y0 | Top-Left point
x1, y1 | Top-Right point
x2, y2 | Bottom-Right point
x3, y3 | Bottom-Left point
alphaMin, alphaMax | If alphaMin>-1 and alphaMax>-1 then alpha (transparency) will be limited to the specified range (useful for "cover-flow" like reflection). alphaMin (0..255) specifies minimum transparency. alphaMax (0..255) specifies maximum transparency.
mergeAlpha | If image alpha channel is merged with the background image.

It is possible to invert the image by making lesser coordinates exceed greater ones, for example, (x0, y0) > (x1, y1).

Note: Check your parameters as the coordinates are ordered differently from common designations

Example

// stretch the image to be full size on the left, but angled in on the right
var
ABitmap: TIEbitmap;
iOffset: Integer;
begin
iOffset := 50;

// Create clear bitmap
ImageEnView1.IEBitmap.Allocate(500, 500);
ImageEnView1.Bitmap.Canvas.Brush.Color := clBlack;
ImageEnView1.Bitmap.Canvas.FillRect(Rect(0, 0,
ImageEnView1.Bitmap.Width, ImageEnView1.Bitmap.Height));

// Perspective Draw
ABitmap := TIEbitmap.create;
ABitmap.Read('hongkong.jpg');
ImageEnView1.Proc.PerspectiveDraw(ABitmap,
0, iOffset, // top-left
ImageEnView1.Bitmap.Width - 1, 0, // top-right
ImageEnView1.Bitmap.Width - 1, ImageEnView1.Bitmap.Height - 1, // bottom-right
0, ImageEnView1.Bitmap.Height - iOffset, // bottom-left
-1, -1, true);
ImageEnView1.Update;
ABitmap.free;
end;


TImageEnProc.Pixelize

TImageEnProc.Pixelize

Declaration

procedure Pixelize(Amount: Double = 0.02);

Description

Pixelize filter renders the selected area using large color blocks. It is very similar to the effect seen on television when obscuring faces.

Parameter | Description
Amount | A floating point value from 0 to 1 which specifies the size of the rectangular block in percentage.

Original image:

Applying Pixelize(0.02) to the selected areas:

Example

ImageEnView1.Proc.Pixelize(0.02);


TImageEnProc.PointPasteFromClip

TImageEnProc.PointPasteFromClip

Declaration

function PointPasteFromClip(XDest, YDest: Integer; MergeAlpha: Boolean = True): Boolean;

Description

Pastes the image on the clipboard at position x1, y1 (coordinates relative to component). All uncompressed DBI formats are handled (1, 4, 8, 15, 16, 24 and 32 bits).
MergeAlpha will merge the alpha channel of the pasted bitmap with the background bitmap (only valid if the image was copied to the clipboard in "ImageEn" format).
Result is false if a valid image was not found on the clipboard.

Note: Color images (4, 8, 15, 16, 24 or 32 bits) are converted to 24 bit. Monochrome images (1 bit) will remain 1 bit.

Example

// Paste the clipboard image at the current mouse position
procedure TForm1.ImageEn1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ImageEnView1.Proc.PointPasteFromClip(X, Y);
end;

See Also

- CanPasteFromClipboard
- PasteFromClipboard
- LayersCreateFromClipboard
- CanCutToClipboard
- CutToClipboard
- CanCopyToClipboard
- CopyToClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.PrepareTransitionBitmaps

TImageEnProc.PrepareTransitionBitmaps

Declaration

procedure PrepareTransitionBitmaps(StartBitmap, EndBitmap : TBitmap; Effect : TIETransitionType; iWidth : Integer = -1; iHeight : Integer = -1;
BackgroundColor : TColor = -1; ResamplingFilter : TResampleFilter);

Description

Use with CreateTransitionBitmap to create a series of frames that transition from StartBitmap to EndBitmap.

Parameter | Description
StartBitmap | The image that we transition from
EndBitmap | The image that we transition to
Effect | The desired transition effect
iWidth, iHeight | The size to create the transition bitmaps. If either of these are -1 then the size will be the larger of the two images in each dimension. Aspect Ratios will be maintained and any non-image area will be filled with BackgroundColor.
BackgroundColor | The color that will be used for blank frames or non-image area (if -1 then Background is used)
ResamplingFilter | The algorithm that is used to improve quality when resizing images

Note: Use PrepareTransitionBitmapsEx if you need to create frames for an iettPanZoom transition

See Also

- PrepareTransitionBitmapsEx
- CreateTransitionBitmap

Example

procedure TransitionFrameCreationExample;
var
OldBitmap, NewBitmap, TransBitmap : TBitmap;
I : Integer;
TransLevel : Single;
begin
OldBitmap := TBitmap.Create;
NewBitmap := TBitmap.Create;
TransBitmap := TBitmap.Create;
try
OldBitmap.LoadFromFile('C:\OldImage.bmp');
NewBitmap.LoadFromFile('C:\NewImage.bmp');

// Call PrepareTransitionBitmaps once
ImageEnProc.PrepareTransitionBitmaps(OldBitmap, NewBitmap, iettCrossDissolve);

for i := 1 to 9 do
begin
// Transition levels from 10% to 90%
TransLevel := i * 10;

// Call CreateTransitionBitmap for each required frame
ImageEnProc.CreateTransitionBitmap(TransLevel, TransBitmap);
TransBitmap.SaveToFile('C:\TransImage' + IntToStr(I) + '.bmp');
end;
finally
OldBitmap.Free;
NewBitmap.Free;
TransBitmap.Free;
end;
end;


TImageEnProc.PrepareTransitionBitmapsEx

TImageEnProc.PrepareTransitionBitmapsEx

Declaration

procedure PrepareTransitionBitmapsEx(StartBitmap, EndBitmap : TBitmap; Effect : TIETransitionType;
StartRect, EndRect : TRect; RectMaintainAspectRatio : Boolean = True;
iWidth : Integer = -1; iHeight : Integer = -1; bStretchSmall : Boolean = False;
BackgroundColor : TColor = -1; ResamplingFilter : TResampleFilter;
Smoothing: Integer = 96; Timing : TIETransitionTiming = iettLinear);

Description

An extended version of PrepareTransitionBitmaps that is primarily used when creating a series of frames that show a Pan Zoom from StartRect to EndRect for image StartBitmap.

Parameter | Description
StartBitmap | The image that we transition from
EndBitmap | The image that we transition to (NIL for a iettPanZoom transition)
Effect | The desired transition effect
StartRect | When using an iettPanZoom effect this is the portion of the image that is shown at the start
EndRect | When using an iettPanZoom effect this is the portion of the image that is shown at the end
RectMaintainAspectRatio | ImageEn will ensure that the starting and ending rects are automatically adjusted to ensure the resultant image has the correct aspect ratio (iettPanZoom only)
iWidth, iHeight | The size to create the transition bitmaps. If either of these are -1 then the size will be the larger of the two images in each dimension. Aspect Ratios will be maintained and any non-image area will be filled with BackgroundColor.
bStretchSmall | If the images are smaller than the transition bitmap size (iWidth x iHeight) should they be stretched to fit (which can lead to distortion).
BackgroundColor | The color that will be used for blank frames or non-image area (if -1 then Background is used)
ResamplingFilter | The algorithm that is used to improve quality when resizing images
Smoothing | In order to reduce the "jumpiness" of pan zoom effects, transition frames are alpha blended. A low value will improve smoothness, but increase blurriness. A high value will improve clarity, but increase jumpiness. Typical range is 64 - 196. 255 means no alpha blending
Timing | The rate at which the transition progresses

To create Pan Zoom transitions for an image call it as follows:

PrepareTransitionBitmapsEx(MyBitmap, nil, iettPanZoom, StartingRect, EndingRect);
CreateTransitionBitmap(TransitionLevel, MyPanZoomBitmap);

See Also

- PrepareTransitionBitmaps
- CreateTransitionBitmap

Example

procedure PanZoomFrameCreationExample(StartingRect, EndingRect : TRect);
var
MyBitmap, PanZoomBitmap : TBitmap;
I : Integer;
TransLevel : Single;
begin
MyBitmap := TBitmap.Create;
PanZoomBitmap := TBitmap.Create;
try
MyBitmap.LoadFromFile('C:\MyImage.bmp');

// Call PrepareTransitionBitmaps once
ImageEnProc.PrepareTransitionBitmapsEx(MyBitmap, MyBitmap, iettPanZoom, StartingRect, EndingRect);

for i := 0 to 10 do
begin
// Pan Zoom Transitions from StartingRect (0%) to EndingRect (100%)
TransLevel := i * 10;

// Call CreateTransitionBitmap for each required frame
ImageEnProc.CreateTransitionBitmap(TransLevel, PanZoomBitmap);
PanZoomBitmap.SaveToFile('C:\PanZoomImage' + IntToStr(I) + '.bmp');
end;
finally
MyBitmap.Free;
PanZoomBitmap.Free;
end;
end;


TImageEnProc.PreviewFont

TImageEnProc.PreviewFont

Declaration

property PreviewFont: TFont;

Description

If PreviewFontEnabled is set to True then PreviewFont specifies the font used in the DoPreviews dialog. Ensure the size of the font matches the length of labels.

Example

ImageEnView1.Proc.PreviewFont.Name := 'MS Times New Roman';
ImageEnView1.Proc.PreviewFontEnabled := True;
ImageEnView1.Proc.DoPreviews([peAll]);


TImageEnProc.PreviewFontEnabled

TImageEnProc.PreviewFontEnabled

Declaration

property PreviewFontEnabled: Boolean;

Description

If you set PreviewFontEnabled to True then you can use PreviewFont to specify a custom font for the DoPreviews dialogs.

Example

ImageEnView1.Proc.PreviewFont.Name := 'MS Times New Roman';
ImageEnView1.Proc.PreviewFontEnabled := True;
ImageEnView1.Proc.DoPreviews([peAll]);


TImageEnProc.PreviewsLog

TImageEnProc.PreviewsLog

Declaration

property PreviewsLog: TStringList;

Description

Returns a log of operations performed in the Image Processing Dialog (DoPreviews).

Example

ImageEnView1.Proc.DoPreviews;
Memo1.Lines.Assign( ImageEnView1.Proc.PreviewsLog );


TImageEnProc.PreviewsParams

TImageEnProc.PreviewsParams

Declaration

property PreviewsParams: TPRPreviewsParams;

Description

Access to further configuration settings for the Image Processing dialog.

Default : [prppShowResetButton, prppHardReset];

Example

// Show preview by default
ImageEnView1.Proc.PreviewsParams := ImageEnView1.Proc.PreviewsParams + [ prppDefaultLockPreview ];


TImageEnProc.ProjectDraw

TImageEnProc.ProjectDraw

Declaration

function ProjectDraw(Source: TIEBitmap; centerDestX: Integer; centerDestY: Integer; destWidth: Integer; destHeight: Integer; depth: Double; translateX: Integer; translateY: Integer; rotateX: Double; rotateY: Double; specularAlphaMin: Integer; specularAlphaMax: Integer; mergeAlpha: Boolean = false): TIEQuadCoords;
function ProjectDraw(Source: TIEBitmap; centerDestX: Integer; centerDestY: Integer; scale: Double; depth: Double; translateX: Integer; translateY: Integer; rotateX: Double; rotateY: Double; specularAlphaMin: Integer; specularAlphaMax: Integer; mergeAlpha: Boolean = false): TIEQuadCoords;

Description

Draws the source bitmap over current layer, performing translations, rotations and perspective transform.

Parameter | Description
Source | Source bitmap to draw.
centerDestX | Horizontal position of center of destination position.
centerDestY | Vertical position of center of destination position.
destWidth | Destination bounding box width, not including specular bitmap. The resulting bitmap will be adapted (but not stretched) to this size.
destHeight | Destination bounding box height, not including specular bitmap. The resulting bitmap will be adapted (but not stretched) to this size.
scale | Replaces destWidth and destHeight in the second overload. Specifies a multiplier of the original size (1=same size, 0.5=half size, etc..).
depth | Destination depth of field.
translateX | Horizontal offset in 3D space (before perspective projection)
translateY | Vertical offset in 3D space (before perspective projection)
rotateX | X axis rotations in 3D space (before perspective projection). Angles are in degrees.
rotateY | Y axis rotations in 3D space (before perspective projection). Angles are in degrees.
specularAlphaMin | If >-1 a reflection bitmap will be drawn, using specified alpha range.
specularAlphaMax | If >-1 a reflection bitmap will be drawn, using specified alpha range.
mergeAlpha | If image alpha channel is merged with the background image.

Returns coordinates of four points of stretched bitmap.

Demo

Demos\Display\ProjectDraw\ProjectDraw.dpr

Example

// draw at 200, 200 (center), inside a box of 150x150, depth 400, rotating by 30° on Y axis, with specular effect
ImageEnView1.Proc.ProjectDraw( ImageEnView2.IEBitmap, 200, 200, 150, 150, 400, 0, 0, 0, 30, 0, 100 );


TImageEnProc.RadialStretch

TImageEnProc.RadialStretch

Declaration

procedure RadialStretch(ARed, BRed, CRed, DRed, AGreen, BGreen, CGreen, DGreen, ABlue, BBlue, CBlue, DBlue: Double);

Description

Performs a radial stretch for each color component (R, G, B). This allows manual correction of Barrel and Pincushion distortion (lens distortion, underwater distortion).
A, B, C, D (followed by channel name) are the coefficients

Demo

Demos\ImageEditing\Radial\Radial.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Random

TImageEnProc.Random

Declaration

procedure Random(mean: Double = 0.5; stdDev: Double = 0.123);

Description

Fills the selected pixels with random values (Gaussian distribution).
Random values are mutiplied by 255 and truncated to be in the range 0 to 255.

Parameter | Description
mean | Mean value. 0.5 = gray (128).
stdDev | Standard deviation about mean.


TImageEnProc.ReadHiddenData

TImageEnProc.ReadHiddenData

Declaration

function ReadHiddenData(data: PAnsiChar; maxlen: Integer): Integer;

Description

ReadHiddenText and ReadHiddenData return the hidden text or raw data written with WriteHiddenText or WriteHiddenData. Hidden information is stored inside the image (uses a pixel color modulation) and is independent of the image file format.
Use ReadHiddenText to read a simple string or ReadHiddenData to read a buffer of raw data.
If you set data to nil and maxlen to 0, ReadHiddenData will returns the length of data to read.

Note: The hidden text will be lost if you save the image as Jpeg or if you subsample the colors.

Example

// Hide image "alfa.jpg" within "beta.jpg", then save to "gamma.png"
procedure TForm1.Button2(Sender: TObject);
var
ms: TMemoryStream;
begin
ImageEnView1.IO.LoadFromFile('C:\beta.jpg');
ms := TMemoryStream.Create;
ms.LoadFromFile('C:\alfa.jpg');
ImageEnView.Proc.WriteHiddenData(ms.Memory, ms.Size);
ms.free;
ImageEnView1.IO.SaveToFile('D:\gamma.png');
end;

// Read a hidden Jpeg image
procedure TForm1.Button1Click(Sender: TObject);
var
ms: TMemoryStream;
Begin
ImageEnView1.IO.LoadFromFile('D:\gamma.png');
ms := TMemoryStream.Create;
ms.Size := ImageEnView1.Proc.ReadHiddenData(nil, 0) );
ImageEnView1.Proc.ReadHiddenData(ms.Memory, ms.Size);
ImageEnView2.IO.LoadFromStreamJpeg(ms);
ms.Free;
End;

See Also

ClearHiddenText
GetHiddenDataSpace
ReadHiddenText
WriteHiddenData
WriteHiddenText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.ReadHiddenText

TImageEnProc.ReadHiddenText

Declaration

function ReadHiddenText: AnsiString;

Description

ReadHiddenText and ReadHiddenData return the hidden text or raw data written with WriteHiddenText or WriteHiddenData. Hidden information is stored inside the image (uses a pixel color modulation) and is independent of the image file format.
Use ReadHiddenText to read a simple string or ReadHiddenData to read a buffer of raw data.

Note: The hidden text will be lost if you save the image as Jpeg or if you subsample the colors.

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

Example

// Hides "copyright by XYZ" in 'alfa.tif'
ImageEnView1.Proc.WriteHiddenText('Copyright by XYZ');
ImageEnView1.IO.SaveToFile('alfa.tif');

// Read simple string from 'alfa.tif'
ImageEnView1.IO.LoadFromFile('alfa.tif');
mystring := ImageEnView1.Proc.ReadHiddenText;

See Also

ClearHiddenText
GetHiddenDataSpace
ReadHiddenData
WriteHiddenData
WriteHiddenText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Redo

TImageEnProc.Redo

Declaration

procedure Redo(AutoUndo: Boolean = False);

Description

Replaces the current image with the last image in the Redo stack.

Parameter | Description
AutoUndo | Set to true for automatic undo support. Saves the current state (before redo) to the undo stack (i.e. SaveUndo is called) and removes this entry from the Redo stack (i.e. ClearRedo is called)

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

Example

// Multiple Undo/Redo Example

procedure TForm1.FormCreate(Sender: TObject);
begin
ImageEnView1.Proc.UndoLimit := 20; // 20 levels of undo
end;

procedure TForm1.ImageEnView1ImageChange(Sender: TObject);
begin
// When image changes update our menu items
UpdateMenu;
end;

procedure TForm1.Undo1Click(Sender: TObject);
begin
// Undo (with automatic saving of redo)
ImageEnView1.Proc.Undo( True );
UpdateMenu;
end;

procedure TForm1.Redo1Click(Sender: TObject);
begin
// Redo (with automatic saving of undo)
ImageEnView1.Proc.Redo( True );
UpdateMenu;
end;

procedure TForm1.UpdateMenu;
begin
// Undo menu
Undo1.Enabled := ImageEnView1.Proc.CanUndo;
if ImageEnView1.Proc.CanUndo then
Undo1.Caption := 'Undo ' + ImageEnView1.Proc.UndoCaptions[0]
else
Undo1.Caption := 'Undo';

// Redo menu
Redo1.Enabled := ImageEnView1.Proc.CanRedo;
if ImageEnView1.Proc.CanRedo then
Redo1.Caption := 'Redo ' + ImageEnView1.Proc.RedoCaptions[0]
else
Redo1.Caption := 'Redo';
end;

Compatibility Information

In v6.2.1 and older versions, the AutoUndo parameter was unavailable. Set to False to maintain v6.2.1 functionality

See Also

CanRedo
ClearAllRedo
ClearRedo
ClearRedoAt
GetUndoInfo
RedoAt
RedoCaptions
RedoCount
SaveRedo
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.RedoAt

TImageEnProc.RedoAt

Declaration

procedure RedoAt(Position: Integer; AutoUndo: Boolean = False);

Description

Replaces the current image with the image at Position in the redo stack.

Parameter | Description
Position | Redo index to restore: 0 = last saved redo, 1 = second to last saved redo, 2... up to RedoCount - 1
AutoUndo | Set to true for automatic undo support. Saves the current state (before redo) to the undo stack (i.e. SaveUndo is called) and removes this and prior entries from the Redo stack

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

Compatibility Information

In v6.2.1 and older versions, the AutoUndo parameter was unavailable. Set to False to maintain v6.2.1 functionality

See Also

CanRedo
Redo
RedoCaptions
RedoCount
GetUndoInfo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.RedoCaptions

TImageEnProc.RedoCaptions

Declaration

property RedoCaptions[index: Integer]: String;

Description

For each item in the Redo stack, ImageEn will include a relevant description of the function that has occured. This is useful to display a list of the available redo changes to the user.
Index = 0: Last saved redo, 1: Second to last saved redo, 2... up to RedoCount - 1.

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

See Also

SaveRedo
Redo
RedoAt
RedoCount
GetUndoInfo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.RedoCount

TImageEnProc.RedoCount

Declaration

property RedoCount: Integer;

Description

Returns the number of entries in the Redo stack (i.e. the number of times the user can call Redo).

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

See Also

CanRedo
RedoAt
RedoCaptions
Redo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Reflection

TImageEnProc.Reflection

Declaration

procedure Reflection(minAlpha: Integer = 0; maxAlpha: Integer = 200; percentage: Integer = 100);

Description

Extends the image vertically and simulates a reflection of the image (like reflection of "coverflow" presentations).

Parameter | Description
minAlpha | Minimum alpha value (0=fully transparent, 255=fully opaque).
maxAlpha | Maximum alpha value (0=fully transparent, 255=fully opaque).
percentage | Effect percentage (0=no effect, 100=maximum effect).

Example

ImageEnView1.Reflection();


TImageEnProc.RemoveChromaKey

TImageEnProc.RemoveChromaKey

Declaration

procedure RemoveChromaKey(KeyColorRGB: TRGB; Tolerance: double; Saturation: integer; FeatherEdges: Integer;
HueReduction : Integer = 0; RemoveNoise: boolean = False); overload;
procedure RemoveChromaKey(KeyPixelX, KeyPixelY: integer; Tolerance: double; Saturation: integer; FeatherEdges: Integer;
HueReduction : Integer = 0; RemoveNoise: boolean = False); overload;

Description

ChromaKey is the removal of a background for a source image so it can be replaced by an alternative image.

ChromaKey Source Image

ChromaKey Image on Background

RemoveChromaKey removes the KeyColor of an image and sets it to transparent. Although KeyColor is a single color, RemoveChromaKey will remove a range of colors that are similar to cope with light variance in photography.

Parameter | Description
KeyColorRGB (Overload 1) | A typical color within the Chromakey background, e.g. as returned by GuessChromaKeyColor or CalcAverageRGB
KeyPixelX, KeyPixelY (Overload 2) | A pixel within the Chromakey background to be used as the key color. If both are set to -1 then GuessChromaKeyColor is used to guess the key color
Tolerance | The level of tolerance when seeking similar colors to our key color. Range: 0.0 to 1.0. Typical value: 0.21
Saturation | If a pixel is of a hue within our keycolor range, limit removal to the specified saturation. Range: 0 to 100. Typical value: 30
FeatherEdges | Blurs the edge of the image to smooth the result and remove trace ChromaKey pixels (uses FeatherAlphaEdges. Typical value: 2
HueReduction | Pixels of a similar hue to our key color but outside the level of tolerance will be reduced in saturation (color intensity). 0 is no hue reduction, 1 is minimal, 5 is maximum. Settings of 0, 2 or 3 are best
RemoveNoise | Removes stray pixels missed by the removal

For more information on ChromaKey: en.wikipedia.org/wiki/Chroma_key

Typically ChromaKey removal is performed as follows:

1. Select a region of the background and use CalcAverageRGB to determine the Key color
2. Adjust Tolerance until foreground subject is fully visible
3. Adjust Saturation to remove any remaining background
4. If necessary, adjust FeatherEdges, HueReduction or RemoveNoise

Demo

Demos\ImageEditing\ChromaKey\ChromaKey.dpr

Example

// Load background
ImageEnView1.IO.LoadFromFile( sBackgroundFile );

// Load our ChromaKey (foreground) image as a foreground layer
ImageEnView1.LayersAdd( sChromaKeyFile );

// Get the average color of the selection (if the user has selected a background region) or guess the background color
if ImageEnView1.Selected then
KeyColorRGB := ImageEnView1.Proc.CalcAverageRGB( 100 );
else
KeyColorRGB := ImageEnView1.Proc.GuessChromaKeyColor();

// Remove Chromakey from foreground layer (will become transparent)
ImageEnView1.Proc.RemoveChromaKey( KeyColorRGB, 0.21, 30, 2, 0 );

// Refresh our view
ImageEnView1.Update();

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.RemoveIsolatedPixels

TImageEnProc.RemoveIsolatedPixels

Declaration

procedure RemoveIsolatedPixels(NoiseColor: Integer; PixelsCount: Integer);

Description

Removes all groups of isolated pixels within a black and white image.
NoiseColor specifies the "text" color, 0 is black and 1 is white (for example if you have a document where the text is black NoiseColor must be 0, otherwise it must be 1).
PixelsCount specifies the isolated pixel block size to remove (e.g. 1 for single pixels, 2 for a pair of isolated pixels, etc.)

Note: Only works with black & white images (1bit).

Example

// removes single isolated pixels (black pixels)
ImageEnProc.RemoveIsolatedPixels(0, 1);

// removes groups of two isolated pixels (black pixels)
ImageEnProc.RemoveIsolatedPixels(0, 2);


TImageEnProc.RemoveNoise

TImageEnProc.RemoveNoise

Declaration

procedure RemoveNoise(Iterations: Integer; InvertImage: Boolean);

Description

Removes noise pixels using the "Kfill" algorithm from a black & white image.
Iterations is the maximum number of processing iterations (1 or more).
If InvertImage is True, the image is inverted (negative) during processing.

Note: Only works with black & white images (1bit).

Example

ImageEnProc.RemoveNoise(2, false);


TImageEnProc.RemoveRedEyes

TImageEnProc.RemoveRedEyes

Declaration

procedure RemoveRedEyes;

Description

Apply a simple algorithm to remove red eyes. While this function can be applied to the whole image, it is better to select only the area containing eyes, otherwise other parts of the image may be altered.

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Resample

TImageEnProc.Resample

Declaration

procedure Resample(NewWidth, NewHeight: Integer; FilterType: TResampleFilter = rfNone; bMaintainAspectRatio : Boolean = False); overload;
procedure Resample(ScaleBy: Double; FilterType: TResampleFilter = rfNone); overload;

Description

Resizes the current image. Unlike ImageResize, the content of the image will change (i.e. it is stretched to the new size).

Parameter | Description
NewWidth | New image width in pixels. If NewWidth is -1 then it is calculated automatically, respecting the proportions.
NewHeight | New image height in pixels. If NewHeight is -1 then it is calculated automatically, respecting the proportions.
FilterType | Resampling interpolation algorithm.
bMaintainAspectRatio | Automatically reduces NewWidth or NewHeight to ensure the original proportions of the image are maintained

See also: ResampleTo.

Examples

ImageEnView1.Proc.Resample(50, -1, rfNone); // Resize the image to width of 50 (with height automatically set) without any smoothing algorithm
ImageEnView1.Proc.Resample(-1, 100, rfLanczos3); // Resize the image to height of 100 (with width automatically calculated) and high quality smoothing
ImageEnView1.Proc.Resample(100, 100, rfLanczos3, True); // Resize the image so that it is no higher or wider than 100, but maintains the original aspect ratio (e.g. a 4:3 portrait image would have the new dimensions 100 x 75)
ImageEnView1.Proc.Resample( 0.5, rfFastLinear ); // Resize the image to half its current size with fast, but good quality smoothing


TImageEnProc.ResampleTo

TImageEnProc.ResampleTo

Declaration

procedure ResampleTo(Target: TIEBitmap; TargetWidth, TargetHeight: Integer; FilterType: TResampleFilter);

Description

Copies a resized instance of the current image to a Target TIEBitmap. The content of the destination image changes (i.e. it is stretched to the new size).

Parameter | Description
Target | The target (destination) image.
TargetWidth | Width in pixels of the target size. If TargetWidth is -1 then it is calculated automatically, respecting the proportions.
TargetHeight | Height in pixels of the target size. If TargetHeight is -1 then it is calculated automatically, respecting the proportions.
FilterType | Resampling interpolation algorithm.
bMaintainAspectRatio | Automatically reduces NewWidth or NewHeight to ensure the original proportions of the image are maintained

Resampling black & white (1bit) images with FilterType is not rfNone, Resample converts the image to 24bit.

See also: Resample.

Example

// Create a thumbnail of image in ImageEnView1 to ImageEnView2. Height and width are no larger than 100 pixels
ImageEnView1.Proc.ResampleTo( ImageEnView2.IEBitmap, 100, 100, rfFastLinear, True);
ImageEnView2.Update;


TImageEnProc.Rotate

TImageEnProc.Rotate

Declaration

procedure Rotate(Angle: Double; AntiAliasMode: TIEAntialiasMode = ierFast; BackgroundColor: TColor = -1);

Description

Rotate the current image by the specified angle (negative or positive degrees counter-clockwise).

AntialiasMode specifies the algorithm used to improve rotation quality:
ierNone : No anti-aliasing (lowest quality)
ierFast : Fast but lower quality
ierBilinear : Bilinear, high quality
ierBicubic : Bicubic, highest quality

BackgroundColor specifies an alternative background color. If it is -1, Rotate uses the default background.

Examples

// Rotate the image 45° clockwise at highest quality and using the ImageEnView background color
ImageEnView1.Proc.Rotate( 315, ierBicubic, -1 );

// Rotate the image 90° clockwise (Note: AntialiasMode is irrelevant for 90 deg. rotations)
ImageEnView1.Proc.Rotate( 270 );

// Rotate the image 180° clockwise
ImageEnView1.Proc.Rotate( 180 );

// Rotate the image 90° counter-clockwise
ImageEnView1.Proc.Rotate( 90 );

See Also

- Lossless Jpeg Transformations
- AngleToImageEnRotateAngle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.RotateAndCrop

TImageEnProc.RotateAndCrop

Declaration

procedure RotateAndCrop(Angle: Double; AntiAliasMode: TIEAntialiasMode = ierFast; Rate: Double = 1.3; CropAlgorithm: TIECropAlgorithm = iecaSkewedDocument);

Description

Rotates the image by the specified angle and crops the borders of the original bitmap. It is useful to deskew an image if you know the rotation angle.

Parameter | Description
Angle | Rotation angle. Must be in the range -180 and +180 degrees (specified as counter-clockwise, i.e. RotateAndCrop(45) means rotated 45° left).
AntiAliasMode | Specifies the anti-aliasing algorithm that is used to improve rotation quality.
Rate | Specifies the approximate quotient of resulting image width and height. For example a landscape image would typically be 1.3, whereas a portrait image would be 0.75. This value is only needed when Angle is +/-45 or +/-135 and CropAlgorithm is iecaSkewedDocument.
CropAlgorithm | Generally both cropping algorithms will give similar results, but specifying an appropriate algorithm can improve results at higher rotation levels.

Crop Algorithm

Value | Description
iecaSkewedDocument | Works best with documents requiring rotation due to scanning skew (not lined up correctly when scanning) or a previous rotation
iecaAngledPhoto | Works best with photos requiring rotation due camera skew (the camera is not quite horizontal)

If you have this image:

You can determine the required rotation by calling:
D := ImageEnView1.Proc.SkewDetection;

Then you can rotate the image using ImageEnView1.Proc.Rotate(D), but you get:

The gray border (which is part of the original bitmap) is rotated with the image. To remove that border you must execute ImageEnView1.Proc.RotateAndCrop(D), so you will have:

Demo

Demos\ImageEditing\RotateAndCrop\RotateAndCrop.dpr

Examples

// Detect the skew in an image and automatically rotate and crop it
angle := ImageEnView1.Proc.SkewDetection( ImageEnView1.Bitmap.Width div 4, 30, 0.1, false );
ImageEnView1.Proc.RotateAndCrop( angle );

// Rotate and crop a landscape document by 45 degrees
ImageEnView1.Proc.RotateAndCrop( 45, ierBicubic, 1.3 );

// Rotate and crop a portrait document by 45 degrees
ImageEnView1.Proc.RotateAndCrop( 45, ierBicubic, 0.75 );

// Rotate and crop a digital photo by 5 degrees
ImageEnView1.Proc.RotateAndCrop( 5, ierBicubic, 0, iecaAngledPhoto );


TImageEnProc.RoundImage

TImageEnProc.RoundImage

Declaration

procedure RoundImage(RoundWidth, RoundHeight: Integer);

Description

Round the corners of an image. RoundWidth and RoundHeight specify the rounding size.

Example

ImageEnView1.Proc.RoundImage( 100, 100 );


TImageEnProc.SaveRedo

TImageEnProc.SaveRedo

Declaration

procedure SaveRedo(Source: TIEUndoSource = ieuImage); overload;
procedure SaveRedo(const Caption: String; Source: TIEUndoSource = ieuImage); overload;

Description

Saves the current image to the Redo stack (i.e. after the next change, calling Redo will return us to this state).

Parameter | Description
Caption | Description of the saved redo (which will be assigned to RedoCaptions)
Source | Specifies what to save (see below)

Values for Source:
ieuImage | The image (of the current layer, if there are multiple layers)
ieuSelection | The area the user has selected (Not the image within the selection, just the selection area)
ieuObject | All objects of a TImageEnVect
ieuLayer | Properties of all layers (position, size, etc, but not the layer images)
ieuFullLayer | Same as ieuLayer but also saves the layer images
ieuObjectsAndLayers | Properties and images of all layers (TImageEnView) or objects (TImageEnVect)

Notes:
- You do not need to manually call SaveRedo if you have enabled AutoUndo
- ieuLayer and ieuFullLayer do not restore removed layers, or redact added layers. Use ieuObjectsAndLayers instead
- For TImageEnVect, ieuObject and ieuObjectsAndLayers are the same, except that ieuObjectsAndLayers also saves the background image

See Also

Redo
SaveUndo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.SaveUndo

TImageEnProc.SaveUndo

Declaration

procedure SaveUndo(Source: TIEUndoSource = ieuImage; ClearRedo: Boolean = false); overload;
procedure SaveUndo(const Caption: String; Source: TIEUndoSource = ieuImage; ClearRedo: Boolean = false; Operation: Integer = 0); overload;

Description

Saves the current image to the Undo stack (i.e. after the next change, calling Undo will return us to this state).

Parameter | Description
Caption | Description of the saved undo (which will be assigned to UndoCaptions)
Source | Specifies what to save (see below)
ClearRedo | When true ClearAllRedo is called to reset the redo list (which is standard behavior for application Undo)
Operation | An optional value that allows you to locate a specific undo (via GetUndoInfo). It can be zero or an undo const

Values for Source:
ieuImage | The image (of the current layer, if there are multiple layers)
ieuSelection | The area the user has selected (Not the image within the selection, just the selection area)
ieuObject | All objects of a TImageEnVect
ieuLayer | Properties of all layers (position, size, etc, but not the layer images)
ieuFullLayer | Same as ieuLayer but also saves the layer images
ieuObjectsAndLayers | Properties and images of all layers (TImageEnView) or objects (TImageEnVect)

Notes:
- You do not need to manually call SaveUndo if you have enabled AutoUndo
- ieuLayer and ieuFullLayer do not restore removed layers, or redact added layers. Use ieuObjectsAndLayers instead
- For TImageEnVect, ieuObject and ieuObjectsAndLayers are the same, except that ieuObjectsAndLayers also saves the background image

Examples

// Allow undo of Negative
ImageEnView1.Proc.SaveUndo;
ImageEnView1.Proc.Negative;

// Allow undo of Negative&Contrast
ImageEnView1.Proc.SaveUndo( 'Negative and contrast' );
ImageEnView1.Proc.Negative;
ImageEnView1.Proc.Contrast( 5 );

// Save undo before removing a layer (TImageEnView)
ImageEnView1.Proc.SaveUndo( 'Delete Layer', ieuObjectsAndLayers );
ImageEnView1.LayersRemove( ImageEnView1.LayersCurrent );

// Save undo before removing an object (TImageEnVect)
ImageEnVect1.Proc.SaveUndo( 'Delete Object', ieuObject ); // or ieuObjectsAndLayers
ImageEnVect1.RemoveObject( IEV_ALL_SELECTED_OBJECTS );

// Save undo before shifting all layers
ImageEnView1.Proc.SaveUndo( 'Move all Layers', ieuLayer );
ImageEnView1.LayersRepositionAll( -50, -50 );

See Also

AutoUndo
UndoCount
UndoLimit
Undo
SaveRedo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.SeparateObjects

TImageEnProc.SeparateObjects

Declaration

function SeparateObjects(Quality: Integer=4; MergeCommonAreas: Boolean = True): TList;
function SeparateObjects(Quality: Integer; MergeCommonAreas: Boolean; BackgroundColorBegin, BackgroundColorEnd: TRGB): TList; overload;

Description

Creates a list (TList) of TRect pointers. Each rectangle encloses an "object" detected in an image. An object is a separate shape or image within a picture. It works best when separating photos or simple objects upon a white or black background. The background cannot contain a pattern.

Parameter | Description
Quality | The contour search routine definition. Minimum value is 1, suggested is 4. Lower values increases speed, but it might failt to recognize complex objects like characters
MergeCommonAreas | If true, when two rectangles intersect they are merged. When false, two rectangles are merged only if they are inclusive
BackgroundColorBegin and BackgroundColorEnd | The background color range. This helps the function to separate the background and the objects

Note: You must free the returned list as follows:
Rects := ImageEnView1.Proc.SeparateObjects;
..process rects..
// free rects
for i := 0 to rects.Count-1 do
dispose(Prect(rects[i]));
rects.free;

Demo

Demos\ImageAnalysis\SeparateObjects\SeparateObjects.dpr

Example

// draws a red box around each found object
var rects: Tlist;
..
rects := ImageEnView1.Proc.SeparateObjects;
for i := 0 to rects.Count-1 do
begin
with PRect(rects[i])^, ImageEnView1.IEBitmap.Canvas do
begin
Pen.Color := clRed;
Brush.Style := bsClear;
Rectangle(Left, Top, Right + 1, Bottom + 1);
end;
dispose(PRect(rects[i]));
end;
rects.free;
ImageEnView1.Update;

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.SetTransparentColors

TImageEnProc.SetTransparentColors

Declaration

procedure SetTransparentColors(MinColor, MaxColor: TRGB; Alpha: Integer);

Description

Sets all pixels within the MinColor and MaxColor range as transparent. The level of transparency is specified by Alpha (0=fully transparent, 255=fully visible).
If you are sure of the RGB value of the transparent colors, you can set MinColor and MaxColor to the same value. To specify all colors from gray (128, 128, 128) to white (255, 255, 255) as transparent, write SetTransparentColors(CreateRGB(128, 128, 128), CreateRGB(255, 255, 255), 0).

Demo

Demos\ImageEditing\MakeTransparent\MakeTransparent.dpr

Example

// this example draws a text with soft shadow over a background image
ImageEnView1.IO.LoadFromfile('background.jpg'); // load background image
ImageEnView1.LayersAdd; // add a new layer
ImageEnView1.Bitmap.Canvas.Font.Name := 'Times New Roman';
ImageEnView1.Bitmap.Canvas.Font.Height := 45;
ImageEnView1.Bitmap.Canvas.Font.Color := clYellow;
ImageEnView1.Bitmap.Canvas.TextOut(0, 250, 'Hello World!'); // draw text on second layer
ImageEnView1.Proc.SetTransparentColors(CreateRGB(255, 255, 255), CreateRGB(255, 255, 255), 0); // remove the white, making it as transparent
ImageEnView1.Proc.AddSoftShadow(2, 3, 3); // add the shadow

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Sharpen

TImageEnProc.Sharpen

Declaration

procedure Sharpen(Intensity: Integer = 10; Neighbourhood: Integer = 4);

Description

Apply a sharpening filter to the image.

Parameter | Description
Intensity | The amount of the sharpening (1 to 100)
Neighbourhood | The window size

Example

ImageEnView1.Proc.Sharpen( 10, 4 );


TImageEnProc.ShiftChannel

TImageEnProc.ShiftChannel

Declaration

procedure ShiftChannel(offsetX, offsetY: Integer; channel: TIEChannel; fillValue: Integer);

Description

Move the specified channel by an offset, filling the blank position with a color.

Parameter | Description
offsetX | Specifies the horizontal offset in pixels. This can have negative values.
offsetY | Specifies the vertical offset in pixels. This can have negative values.
channel | The channel to shift: iecBlue, iecGreen or iecRed
fillValue | The filling color (this is the channel intensity, because ShiftChannel works on a channel at the time).

Example

// shift to -2 in horizontal and -1 in vertical the Blue channel, filling new areas with 0.
ImageEnView1.Proc.ShiftChannel(-2, -1, iecBlue, 0);

Compatibility Notes

In versions prior to v5.2.0, ShiftChannel() used an integer to specify the channel: 0 = iecBlue, 1 = iecGreen and 2= iecRed


TImageEnProc.SkewDetection

TImageEnProc.SkewDetection

Declaration

function SkewDetection(ResampleWidth: Integer; AngleRange: Integer; Precision: Double; EdgeDetect: Boolean): Double;

Description

Estimates the orientation angle (in degrees) of lines of text. Apply this method only to images that contain printed text.
If an area is selected, SkewDetection will work only on the selection.

Parameter | Description
ResampleWidth | The width of the analysis image (set to 0 to analyze the image at its full size). SkewDetection can be very slow on large images, so it is recommended that images are resampled to a smaller size by setting ResampleWidth (e.g. specifying 800 will reduce the image to a width of 800 for analysis)
AngleRange | The maximum working range in degrees. For example, if you specify 30, SkewDetection will scan the image within the range of -15 to 15 degrees. A low value will enhance performance and accuracy. Permitted values are 1 to 180
Precision | The level of precision of the angle detection. Permitted range is 0.0 to 0.9 with only one decimal digit. Typical value is 0.1
EdgeDetect | Whether to apply and edge detect algorithm before detecting the orientation

Demo

Demos\ImageAnalysis\Orientator\Orientator.dpr

Example

// this example adjust image orientation with range -15 to 15 and 0.1 degrees of precision
Var
angle: Double;
begin
angle := ImageEnView1.Proc.SkewDetection( ImageEnView1.Bitmap.Width div 4, 30, 0.1, false );
ImageEnView1.Proc.Rotate( angle, true );
End;


TImageEnProc.SkewDetectionFine

TImageEnProc.SkewDetectionFine

Declaration

function SkewDetectionFine(StartingAngle: Double; resolution: Double; range: Integer; maxQuality: Boolean): Double;

Description

Estimates the orientation angle (in degrees) of the lines of text. Rather than using a Hough transform like SkewDetection, SkewDetectionFine performs progressive rotations to find the best orientation.

Note: Apply this method only to images that contains printed text.

Parameter | Description
StartingAngle | The angle to start testing (0 if you don't know)
Resolution | The increments of angle tested (0.1 is good)
Range | The range of angles to test (specifying 10, for example, to test from -5 to +5)
MaxQuality | if False, testing is only performed on a thumbnail to speed up processing (at the cost of accuracy)

Example

D := ImageEnView.Proc.SkewDetectionFine( 0, 0.1, 10, true );
ImageEnView.Proc.Rotate( D );


TImageEnProc.SymmetricNearestNeighbour

TImageEnProc.SymmetricNearestNeighbour

Declaration

procedure SymmetricNearestNeighbour(Radius: Integer = 6);

Description

Applies a "Symmetric Nearest Neighbour" smoothing filter to the image.

SNN smoothing is very effective at noise reduction, while preserving edges.

Original image:

Applying SymmetricNearestNeighbour(6):

Example

ImageEnView1.Proc.SymmetricNearestNeighbour(6);


TImageEnProc.TextOut

TImageEnProc.TextOut

Declaration

procedure TextOut(X, Y : Integer; const Text : String; AFont : TFont = nil; Angle : Integer = 0;
bAntiAlias : Boolean = true; bAutoEnlarge : Boolean = False); overload;
procedure TextOut(X, Y : Integer; const Text : String; const sFontName : String; iFontSize : Integer; cFontColor : TColor; Style : TFontStyles; Angle : Integer = 0;
bAntiAlias : Boolean = true; bAutoEnlarge : Boolean = False); overload;
procedure TextOut(Rect: TRect; const Text : String; AFont : TFont = nil; Angle : Integer = 0); overload;
procedure TextOut(Rect: TRect; const Text : String; const sFontName : String; iFontSize : Integer; cFontColor : TColor; Style : TFontStyles; Angle : Integer = 0); overload;

Description

Draw text at the specified position.

Parameter | Description
X | Horizontal position. Either a pixel value or one of the following consts: Align_Text_Left, Align_Text_Near_Left*, Align_Text_Horz_Center, Align_Text_Near_Right* or Align_Text_Right
Y | Vertical position. Either a pixel value or one or one of the following consts: Align_Text_Top, Align_Text_Near_Top*, Align_Text_Vert_Center, Align_Text_Near_Bottom* or Align_Text_Bottom
Rect | The bounds for the text output. This will enforce text wrapping and clipping
AFont | The text font can be specified using a TFont or by individual properties. If AFont is passed as nil then the Canvas.Font is used
Angle | The Escapement value, i.e. -45 will draws text diagonally downwards (i.e. rotated 45 degrees clockwise)
bAntiAlias | True uses best quality font. False using an anti-aliased one
bAutoEnlarge | If the image is not large enough to fit the text it will be enlarged and filled with Background

* "Near" values provide a 5% buffer from the edge

Demo

Demos\ImageEditing\TextOut\TextOut.dpr

Example

// Add the filename at the bottom centre
ImageEnView1.Proc.TextOut(Align_Text_Horz_Center, Align_Text_Near_Bottom, ExtractFileName(ImageEnView1.IO.Params.Filename), 'Arial', 32, clRed, [fsBold]);

// Do the same but with a soft shadow effect (though you would be better to use a TIETextLayer)

// add a new layer
ImageEnView1.LayersAdd;

// White fill the new layer
ImageEnView1.Proc.Fill(CreateRGB(255, 255, 255));

// Output our text
ImageEnView1.Proc.TextOut(Align_Text_Horz_Center, Align_Text_Near_Bottom, ExtractFileName(ImageEnView1.IO.Params.Filename), 'Arial', 32, clRed, [fsBold]);

// Make the white background transparent
ImageEnView1.Proc.SetTransparentColors(CreateRGB(255, 255, 255), CreateRGB(255, 255, 255), 0); // remove the white, making it as transparent

// Add our shadow
ImageEnView1.Proc.AddSoftShadow(2, 3, 3);

// Merge layer into main window
ImageEnView.LayersMergeAll();

// Draw text onto a TBitmap or TIEBitmap
with TImageEnProc.CreateFromBitmap(myBitmap) do
begin
TextOut(Align_Text_Horz_Center, Align_Text_Near_Bottom, 'Me in Italy - 2015', 'Arial', 32, clRed, [fsBold]);
Free;
end;


TImageEnProc.Threshold

TImageEnProc.Threshold

Declaration

procedure Threshold(DownLimit, UpLimit, DownVal, UpVal: TRGB);

Description

Assigns the DownVal color to all colors smaller or equal to DownLimit, and UpVal to all colors greater than UpLimit.

Example

// Change all values less than R/G/B of 64 to black
ImageEn.Proc.Threshold(CreateRGB(64, 64, 64), CreateRGB(255, 255, 255), CreateRGB(0, 0, 0), CreateRGB(255, 255, 255));

// Change all values greater than R/G/B of 192 to white
ImageEn.Proc.Threshold(CreateRGB(0, 0, 0), CreateRGB(192, 192, 192), CreateRGB(0, 0, 0), CreateRGB(255, 255, 255));

// Change values with a red value greater than 192 to pure red
ImageEn.Proc.Threshold(CreateRGB(0, 0, 0), CreateRGB(192, 0, 0), CreateRGB(0, 0, 0), CreateRGB(255, 0, 0));

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.Threshold2

TImageEnProc.Threshold2

Declaration

procedure Threshold2(LoThreshold, HiThreshold: Integer; Red, Green, Blue: Boolean);

Description

This is a variant of Threshold.
LoThreshold and HiThreshold specify the low and high pixel value.
Red, Green and Blue specify where to apply the threshold operation.


TImageEnProc.Undo

TImageEnProc.Undo

Declaration

procedure Undo(AutoRedo: Boolean = False);

Description

Replaces the current image with the last image in the Undo stack.

Parameter | Description
AutoRedo | Set to true for automatic undo/redo support. Saves the current state (before undo) to the redo stack (i.e. calls SaveRedo is called) and removes this entry from the Undo stack (i.e. using ClearUndo)

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

Example

// Multiple Undo/Redo Example

procedure TForm1.FormCreate(Sender: TObject);
begin
ImageEnView1.Proc.UndoLimit := 20; // 20 levels of undo
end;

procedure TForm1.ImageEnView1ImageChange(Sender: TObject);
begin
// When image changes update our menu items
UpdateMenu;
end;

procedure TForm1.Undo1Click(Sender: TObject);
begin
// Undo (with automatic saving of redo)
ImageEnView1.Proc.Undo( True );
UpdateMenu;
end;

procedure TForm1.Redo1Click(Sender: TObject);
begin
// Redo (with automatic saving of undo)
ImageEnView1.Proc.Redo( True );
UpdateMenu;
end;

procedure TForm1.UpdateMenu;
begin
// Undo menu
Undo1.Enabled := ImageEnView1.Proc.CanUndo;
if ImageEnView1.Proc.CanUndo then
Undo1.Caption := 'Undo ' + ImageEnView1.Proc.UndoCaptions[0]
else
Undo1.Caption := 'Undo';

// Redo menu
Redo1.Enabled := ImageEnView1.Proc.CanRedo;
if ImageEnView1.Proc.CanRedo then
Redo1.Caption := 'Redo ' + ImageEnView1.Proc.RedoCaptions[0]
else
Redo1.Caption := 'Redo';
end;

Compatibility Information

In v6.2.1 and older versions, AutoRedo did not remove the undone item from the Undo List. From v6.3.0, AutoRedo clears the entries.
To return to the older functionality, enable the IEUseLegacyUndoFunctionality define in ie.inc

See Also

AutoUndo
CanUndo
ClearAllUndo
ClearUndoAt
ClearUndo
GetUndoInfo
SaveUndo
UndoAt
UndoCaptions
UndoCount
UndoLimit
UndoLocation
UndoRect
OnSaveUndo
Redo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.UndoAt

TImageEnProc.UndoAt

Declaration

procedure UndoAt(Position: Integer; SaveToRedo: Boolean = False);

Description

Replaces the current image with the one at Position in the Undo stack.

Parameter | Description
Position | Undo index to restore: 0 = last saved undo, 1 = second to last saved undo, 2... up to UndoCount - 1
AutoRedo | Set to true for automatic redo support. Saves the current state (before undo) to the redo stack (i.e. calls SaveRedo) and removes this and prior entries from the Undo stack

Compatibility Information

In v6.2.1 and older versions, AutoRedo would only assign the current state to the Redo List, and the undone item is not cleared. From v6.3.0, AutoRedo clears all undone entries and assigns them to the redo list.
To return to the older functionality, enable the IEUseLegacyUndoFunctionality define in ie.inc

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

See Also

CanUndo
UndoRect
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.UndoCaptions

TImageEnProc.UndoCaptions

Declaration

property UndoCaptions[index: Integer]: String;

Description

For each item in the Undo stack, ImageEn will include a relevant description of the function that has occured. This is useful to display a list of the available undo changes to the user.
Index = 0: Last saved undo, 1: Second to last saved undo, 2... up to UndoCount - 1.

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

Example

// works only when AutoUndo = True and UndoLimit = 2
ImageEnView1.Proc.Contrast(10);
ImageEnView1.Proc.Negative;
ShowMessage( ImageEnView1.Proc.UndoCaptions[ 0 ] ); // this shows 'Negative'
ShowMessage( ImageEnView1.Proc.UndoCaptions[ 1 ] ); // this shows 'Contrast 10'

Compatibility Information

In v6.2.1 and older versions, UndoCaptions were hard coded strings. In v6.3.0, the captions became localizable strings. To re-enable the captions, enable the IEUseLegacyUndoCaptions define in ie.inc

See Also

AutoUndo
GetUndoInfo
SaveUndo
UndoAt
UndoCount
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.UndoCount

TImageEnProc.UndoCount

Declaration

property UndoCount: Integer;

Description

Returns the number of entries in the Undo stack (i.e. the number of times the user can call Undo).

Demo

Demos\ImageEditing\UndoRedo\UndoRedo.dpr

See Also

AutoUndo
CanUndo
UndoAt
UndoCaptions
UndoLimit
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.UndoLimit

TImageEnProc.UndoLimit

Declaration

property UndoLimit: Integer;

Description

Specifies how many images can be saved using the SaveUndo method.

Default: 1

When you call SaveUndo the current image is pushed to the image stack.
Calling Undo restores the last saved image.
Calling ClearUndo removes the last saved image.

See Also

AutoUndo
UndoLocation
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.UndoLocation

TImageEnProc.UndoLocation

Declaration

property UndoLocation: TIELocation;

Description

Specifies where ImageEn saves "Undo" images.

Default: ieFile

See Also

UndoLimit
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.UndoRect

TImageEnProc.UndoRect

Declaration

procedure UndoRect(x1, y1, x2, y2: Integer);

Description

Same as Undo, except that it only restores the specified rectangle.

This is useful for applications that allow interactive user drawing (see the icon editor and "Brush" demos).

See Also

CanUndo
UndoAt
Undo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.UnsharpMask

TImageEnProc.UnsharpMask

Declaration

procedure UnsharpMask(Radius: Double = 4.0; Amount: Double = 1.0; Threshold: Double = 0.05);

Description

Apply a gaussian blur to the image.

Parameter | Description
Radius | Radius of gaussian blur matrix (> 1)
Amount | Difference between original and blurred image (0.0 to 5.0)
Threshold | Threshold of maximum luminosity to apply the effect (0.0 to 1.0)

Example

ImageEnView1.Proc.UnsharpMask(2.0, 2.0, 0.05);


TImageEnProc.Update

TImageEnProc.Update

Declaration

procedure Update;

Description

If TImageEnProc is attached to a TImageEnView (or inherited) object, Update calls the TImageEnView.Update method.
If TImageEnProc is attached to a TBitmap object, Update sets the modified property to True.


TImageEnProc.WallisFilter

TImageEnProc.WallisFilter

Declaration

procedure WallisFilter(WinWidth: Integer = 2; WinHeight: Integer = 2; Mean: Integer = 50; StDev: Integer = 50; InGain: Integer = 50; Edge: Integer = 10; Limit: Integer = 50; Thresholding: Boolean = False);

Description

Apply a WallisFilter to an image.

Note: works only with true color images.

WallisFilter is a locally adaptive image enhancement based on:
Wallis, R. An approach to the space variant restoration and enhancement of images.
Proceedings, Symposium on Current Mathematical Problems in Image Science, Monterey CA, 1976 10-12 reprinted in C.O. Wilde E. Barrett, eds. Image Science Mathematics, Western Periodicals, North Hollywood, CA, 1977.

Summarised in Pratt:
Pratt, W.K. Digital Image Processing, 2nd. ed. John Wiley & Sons, New York, 1991, 248, 503

Programming for Delphi:

I. Scollar 2003

W A L L I S - STATISTICAL DIFFERENCING USING WALLIS ALGORITHM

PURPOSE:

IMPLEMENT THE STATISTICAL DIFFERENCING FILTER OF WALLIS (SEE
W. PRATT, DIGITAL IMAGE PROCESSING) FOR LARGE PICTURES
AND LARGE WINDOWS GREATER THAN 20X20

EFFICIENT SAMPLING TECHNIQUE TO COMPUTE LOCAL MEANS AND VARIANCES.

OPERATION:

THE WINDOW DIMENSIONS AND 5 PARAMETERS FOR THE WALLIS FORMULA:
MEAN DESIRED LOCAL MEAN OF OUTPUT A COMMONLY USED VALUE FOR MANY APPLICATIONS IS 128.ALLOWED RANGE 0-255.
S.D. DESIRED LOCAL STANDARD DEVIATION (CONTRAST) OF OUTPUT PICTURE. ALLOWED RANGE 0-100. COMMONLY USED RANGE 50-75.
GAIN CONTROLS RATIO OF MEASURED TO DESIRED LOCAL VARIANCE. ALLOWED RANGE 0-INFINITY
EFFECT:
0 NO VARIANCE EQUALIZATION
THIS IS THE SAME AS LEE'S ALGORITHM (IEEE PROC. PRIP 1978,P.56)

INF MAXIMUM VARIANCE EQUALIZATION
THIS IS EQUIVALENT TO WATKIN'S ALGORITHM.
COMMONLY USED RANGE 4-25.
EDGE FACT. CONTROLS AMOUNT OF MEAN EQUALIZATION
ALLOWED RANGE 0-1.
EFFECT:
100 FULL MEAN EQUALIZATION
0 MEASURED MEAN RESTORED

AUTHORS:

B. WEIDNER, RLMB, 1979
BASED ON IDEAS TAKEN FROM MVEQN/F BY I. SCOLLAR 1979
BASED ON IDEAS TAKEN FROM ANAY14 BY G. TANG, 1977


TImageEnProc.Wave

TImageEnProc.Wave

Declaration

procedure Wave(amplitude, wavelength, phase: Integer; reflective: Boolean);

Description

Applies a wave effect to the current image. This effect and a preview are also available in the Image Processing dialog.

Parameter | Description
amplitude | Amplitude (height) of the wave (from 0).
wavelength | Length of the wave (from 0).
phase | phase of the wave in degress (0..359).
reflective | If true makes a special effect.

Example

ImageEnView1.Proc.Wave(10, 10, 0, false);


TImageEnProc.WhiteBalance_AutoWhite

TImageEnProc.WhiteBalance_AutoWhite

Declaration

procedure WhiteBalance_AutoWhite;

Description

Adjusts image colors by adjusting the white range. This method is similar to WhiteBalance_WhiteAt, but attempts to automatically detect the white.

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr

Example

ImageEnView1.Proc.WhiteBalance_AutoWhite;

See Also

WhiteBalance_coef
WhiteBalance_WhiteAt
WhiteBalance_GrayWorld

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.WhiteBalance_coef

TImageEnProc.WhiteBalance_coef

Declaration

procedure WhiteBalance_coef(Red, Green, Blue: Double);

Description

Applies the specified coefficients to each pixel of the image. Coefficients (Red, Green, Blue) are values in the range 0 to 1.

Example

// Decrease red level by 0.8
ImageEnView1.Proc.WhiteBalance_coef(0.8, 1, 1);

See Also

WhiteBalance_WhiteAt
WhiteBalance_AutoWhite
WhiteBalance_GrayWorld

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.WhiteBalance_GrayWorld

TImageEnProc.WhiteBalance_GrayWorld

Declaration

procedure WhiteBalance_GrayWorld;

Description

Adjust image colors by applying the white balance algorithm "Gray World".

Demo

Demos\ImageEditing\AutoEnhance\AutoAdjust.dpr

Example

ImageEnView1.Proc.WhiteBalance_GrayWorld;

See Also

WhiteBalance_coef
WhiteBalance_WhiteAt
WhiteBalance_AutoWhite

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.WhiteBalance_WhiteAt

TImageEnProc.WhiteBalance_WhiteAt

Declaration

procedure WhiteBalance_WhiteAt(WhiteX, WhiteY: Integer);

Description

Adjust image colors by adjusting the white range. WhiteX and WhiteY are the coordinates of a white pixel.

Example

// Specify the white pixel to perform the white balance adjustment
ImageEnView1.Proc.WhiteBalance_WhiteAt( 150, 200 );

See Also

WhiteBalance_AutoWhite
WhiteBalance_coef
WhiteBalance_GrayWorld

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.WriteHiddenData

TImageEnProc.WriteHiddenData

Declaration

function WriteHiddenData(data: PAnsiChar; count: Integer): Integer;

Description

WriteHiddenText and WriteHiddenData write hidden text or raw data within a true color image. Hidden information is stored inside the image (uses a pixel color modulation) and is independent of the image file format.
Use WriteHiddenText to write a simple string or WriteHiddenData to write a block of bytes (e.g. to embed a hidden image or sound).

Note: The hidden text will be lost if you save the image as Jpeg or if you subsample the colors.

Example

// Hide image "alfa.jpg" within "beta.jpg", then save as "gamma.png"
procedure TForm1.Button2(Sender: TObject);
var
ms: TMemoryStream;
begin
ImageEnView1.IO.LoadFromFile('C:\beta.jpg');
ms := TMemoryStream.Create;
ms.LoadFromFile('C:\alfa.jpg');
ImageEnView1.Proc.WriteHiddenData(ms.Memory, ms.Size);
ms.free;
ImageEnView1.IO.SaveToFile('D:\gamma.png');
end;

// Read a hidden Jpeg image
procedure TForm1.Button1Click(Sender: TObject);
var
ms: TMemoryStream;
Begin
ImageEnView1.IO.LoadFromFile('D:\gamma.png');
ms := TMemoryStream.Create;
ms.Size := ImageEnView1.Proc.ReadHiddenData(nil, 0) );
ImageEnView1.Proc.ReadHiddenData(ms.Memory, ms.Size);
ImageEnView2.IO.LoadFromStreamJpeg(ms);
ms.Free;
End;

See Also

ClearHiddenText
GetHiddenDataSpace
ReadHiddenData
ReadHiddenText
WriteHiddenText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnProc.WriteHiddenText

TImageEnProc.WriteHiddenText

Declaration

function WriteHiddenText(text: AnsiString): Integer;

Description

WriteHiddenText and WriteHiddenData write hidden text or raw data within a true color image. Hidden information is stored inside the image (uses a pixel color modulation) and is independent of the image file format.
Use WriteHiddenText to write a simple string or WriteHiddenData to write a block of bytes (e.g. to embed a hidden image or sound).

Note: The hidden text will be lost if you save the image as Jpeg or if you subsample the colors.

Example

// Hide "Copyright by XYZ" in 'alfa.tif'
ImageEnView1.Proc.WriteHiddenText('Copyright by XYZ');
ImageEnView1.IO.SaveToFile('D:\alfa.tif');

// Read simple string from 'alfa.tif'
ImageEnView1.IO.LoadFromFile('D:\alfa.tif');
mystring := ImageEnView1.Proc.ReadHiddenText;

Demo

Demos\FullApps\PhotoEn3\ImageEx.dpr

See Also

ClearHiddenText
GetHiddenDataSpace
ReadHiddenData
ReadHiddenText
WriteHiddenData

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.AddNewObject

TImageEnVect.AddNewObject

Declaration

function AddNewObject(bDefaultProps: Boolean = False) : Integer; overload;
function AddNewObject(Kind: TIEVObjectKind; Rect: TRect; Color: TColor; bDefaultProps: Boolean = False): Integer; overload;

Description

Inserts a new object and returns a handle to the object.

if bDefaultProps is true then all properties (position, size, color, etc) are reset to basic values. When false, the properties are the same as the last added object.

The second overload allows you to specify object Kind, rectangle and pen color.

Example

The following three blocks of code produce the same result:

1)
h := ImageEnVect.AddNewObject;
ImageEnVect.ObjKind[h] := iekBOX;
ImageEnVect.SetObjRect(h, Rect(10, 10, 100, 100));
ImageEnVect.ObjPenColor[h] := clRed;

2)
ImageEnVect.ObjKind[IEV_NEXT_INSERTED_OBJECT] := iekBOX;
ImageEnVect.SetObjRect(IEV_NEXT_INSERTED_OBJECT, Rect(10, 10, 100, 100));
ImageEnVect.ObjPenColor[IEV_NEXT_INSERTED_OBJECT] := clRed;
ImageEnVect.AddNewObject;

3)
ImageEnVect.AddNewObject(iekBOX, Rect(10, 10, 100, 100), clRed);

Example

// Paint a red line from 10, 10 inside a rectangle of 100, 100
with ImageEnVect1 do
begin
hobj := AddNewObject; // hobj is an integer
ObjKind[ hobj ] := iekLINE;
ObjLeft[ hobj ] := 10;
ObjTop[ hobj ] := 10;
ObjWidth[ hobj ] := 100;
ObjHeight[ hobj ] := 100;
ObjPenColor[ hobj ] := clRed;
end;

// Paint a red line from 10, 10 inside a rectangle of 100, 100
// The IEV_NEXT_INSERTED_OBJECT (-1) index is the next image to create
with ImageEnVect1 do
begin
ObjKind[ IEV_NEXT_INSERTED_OBJECT ] := iekLINE;
ObjLeft[ IEV_NEXT_INSERTED_OBJECT ] := 10;
ObjTop[ IEV_NEXT_INSERTED_OBJECT ] := 10;
ObjWidth[ IEV_NEXT_INSERTED_OBJECT ] := 100;
ObjHeight[ IEV_NEXT_INSERTED_OBJECT ] := 100;
ObjPenColor[ IEV_NEXT_INSERTED_OBJECT ] := clRed;
AddNewObject;
end;

// Paint a red line from 10, 10 inside a rectangle of 100, 100
// The IEV_PREVIOUS_INSERTED_OBJECT (-2) index is the last image created
with ImageEnVect1 do
begin
AddNewObject; // first create the object, then set its properties
ObjKind[IEV_PREVIOUS_INSERTED_OBJECT] := iekLINE;
ObjLeft[IEV_PREVIOUS_INSERTED_OBJECT] := 10;
ObjTop[IEV_PREVIOUS_INSERTED_OBJECT] := 10;
ObjWidth[IEV_PREVIOUS_INSERTED_OBJECT] := 100;
ObjHeight[IEV_PREVIOUS_INSERTED_OBJECT] := 100;
ObjPenColor[IEV_PREVIOUS_INSERTED_OBJECT] := clRed;
end;

// Load an image from file and add as an object
aBitmap := TIEBitmap.Create;
try
aBitmap.Read( 'd:\002.png' );
hObj := ImageEnVect1.AddNewObject();
ImageEnVect1.ObjKind[ hObj ] := iekBITMAP;
ImageEnVect1.ObjBitmap[ hObj ] := aBitmap;
ImageEnVect1.SetObjRect( hobj, Rect( 100, 100, 200, 200 ), True );
finally
aBitmap.Free;
end;


TImageEnVect.AddPolyLinePoint

TImageEnVect.AddPolyLinePoint

Declaration

procedure AddPolyLinePoint(hobj: integer; X, Y: integer);

Description

Add a point to the end of a polyline.

Example

// Adds a point to the selected polyline
ImageEnVect1.AddPolyLinePoint( ImageEnVect1.SelObjects[ 0 ] , 100, 100 );

See Also

- RemovePolyLinePoint
- SetObjPolylinePoints
- ObjPolylinePoints

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.AddSelObject

TImageEnVect.AddSelObject

Declaration

procedure AddSelObject(hobj: integer);

Description

AddSelObject insert hobj object into the selected objects list.


TImageEnVect.AlignObjects

TImageEnVect.AlignObjects

Declaration

procedure AlignObjects(Alignment: TIEAlignLayers; bSelectedOnly: Boolean = true);

Description

Aligns objects relative to the image or other objects. If bSelectedOnly is false, then all objects are aligned.

Example

// Move all objects to the center of the image
ImageEnView1.AlignObjects( ilaAlignToVerticalCenter );


TImageEnVect.AllObjectsHidden

TImageEnVect.AllObjectsHidden

Declaration

property AllObjectsHidden: boolean;

Description

Set AllObjectsHidden to hide/show all objects at the same time.


TImageEnVect.AllowOutOfBitmapMoving

TImageEnVect.AllowOutOfBitmapMoving

Declaration

property AllowOutOfBitmapMoving: boolean;

Description

If True, objects can go out of background bitmap.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.AllowOutOfBitmapPolylines

TImageEnVect.AllowOutOfBitmapPolylines

Declaration

property AllowOutOfBitmapPolylines: boolean;

Description

When true, polylines can be painted out of background bitmap bounding box.


TImageEnVect.BitmapResampleFilter

TImageEnVect.BitmapResampleFilter

Declaration

property BitmapResampleFilter: TResampleFilter;

Description

Specifies the filter to applied to all bitmap (iekBitmap) objects.


TImageEnVect.CancelInteracts

TImageEnVect.CancelInteracts

Declaration

procedure CancelInteracts;

Description

CancelInteracts cancels all current mouse interaction (inserting or modifying objects).


TImageEnVect.CenterNewObjects

TImageEnVect.CenterNewObjects

Declaration

property CenterNewObjects: boolean;

Description

When user inserts new objects with a single click, this property controls if the new object is centered at mouse position (True) or if its top-left side is on the mouse position (False - default).


TImageEnVect.CopyAllLayersFrom

TImageEnVect.CopyAllLayersFrom

Declaration

procedure CopyAllLayersFrom(Src: TImageEnView; IncludeLayer0: Boolean = True; IncludeImageLayers: Boolean = True);

Description

Reads all of the layers from a TImageEnView and adds them as standard TImageEnVect Vectorial objects.
If IncludeLayer0 is set to false, then the background layer will not be copied.
If IncludeImageLayers is set to false, then image layers will not be copied.
Conversion is as follows:
Layer Kind | Converted To | Notes
TIEImageLayer | iekBITMAP | -
TIEShapeLayer | iekBOX or iekELLIPSE | Only rectangles and ellipses are supported
TIELineLayer | iekLINE or iekLINELABEL | Circle line end shapes will be converted to arrows
TIEPolylineLayer | iekPOLYLINE | -
TIETextLayer | iekTEXT | -

Example

// Clone the content of a TImageEnView (with layers) in a TImageEnVect (as Objects)

// Clear existing content
ImageEnVect1.RemoveAllObjects();
ImageEnVect1.ClearAll();

// Copy background image
ImageEnVect1.IEBitmap.Assign( ImageEnView1.IEBitmap );

// Add layers as objects
ImageEnVect1.CopyAllLayersFrom( ImageEnView1, False );

See Also

- CopyAllObjectsTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.CopyAllObjectsTo

TImageEnVect.CopyAllObjectsTo

Declaration

procedure CopyAllObjectsTo(Dest: TImageEnView);

Description

Copies all of the objects to another TImageEnVect or a TImageEnView.
If Dest is a TImageEnVect, the objects are copied as standard Vectorial objects.
If Dest is a TImageEnView, the objects are converted to TIELayers. Conversion is as follows:
Object Kind | Converted To | Notes
iekLINE | TIELineLayer | -
iekBOX | TIEShapeLayer | -
iekELLIPSE | TIEShapeLayer | -
iekARC | Skipped | -
iekBITMAP | TIEImageLayer | -
iekTEXT | TIETextLayer | -
iekRULER | Skipped | -
iekPOLYLINE | TIEPolylineLayer | -
iekANGLE | Skipped | -
iekMEMO | TIETextLayer | Text formatting is lost
iekLINELABEL | TIELineLayer | Inward arrows are converted to outward arrows

Example

// Clone the content of a TImageEnVect (with Objects) in a TImageEnView (as layers)

// Clear existing content
ImageEnView1.ClearAll();

// Copy background image
ImageEnView1.IEBitmap.Assign( ImageEnVect1.IEBitmap );

// Add objects as layers
ImageEnVect1.CopyAllObjectsTo( ImageEnView1 );

See Also

- CopyAllLayersFrom
- LayersImport

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.CopyObjectsToBack

TImageEnVect.CopyObjectsToBack

Declaration

procedure CopyObjectsToBack(Antialias: boolean = true; AdaptBitmapPixelFormat: boolean = true);

Description

CopyObjectsToBack copies all objects over background image.
This method is a way to convert the vectorial objects to a pixmap image.

If Antialias is true an anti-alias filter is applied to remove pixels aliasing.
If AdaptBitmapPixelFormat is true (default) the image will be converted to 24 bit RGB before drawing objects.

Example

// Saves background image and vectorial objects in a BMP file
ImageEnVect1.CopyObjectsToBack(true);
ImageEnVect1.RemoveAllObjects;
ImageEnVect1.IO.SaveToFile('output.bmp');


TImageEnVect.CopyObjectTo

TImageEnVect.CopyObjectTo

Declaration

function CopyObjectTo(hobj: integer; Dest: TImageEnVect): integer;

Description

Call CopyObjectTo to write only the hobj object to the Dest TImageEnVect component.
Returns the handle of the created object.


TImageEnVect.CopyObjectToBack

TImageEnVect.CopyObjectToBack

Declaration

procedure CopyObjectToBack(hobj: integer; Antialias: boolean = true; AdaptBitmapPixelFormat: boolean = true);

Description

This method copies/merges the specified object over the background image.
Set Antialias to true to apply the antialias filter (improve quality).
If AdaptBitmapPixelFormat is true (default) the image will be converted to 24 bit RGB before drawing objects.

IEV_PREVIOUS_INSERTED_OBJECT can be specified for hobj to refer to the object that was last inserted.
IEV_ALL_SELECTED_OBJECTS can be specified for hobj to refer to all objects that are currently selected.


TImageEnVect.CopySelectedObjectsTo

TImageEnVect.CopySelectedObjectsTo

Declaration

procedure CopySelectedObjectsTo(Dest: TImageEnVect);

Description

Call CopySelectedObjectsTo to write all selected objects to Dest TImageEnVect component.


TImageEnVect.CreateImageFromSelectedArea

TImageEnVect.CreateImageFromSelectedArea

Declaration

function CreateImageFromSelectedArea(feather: integer=0; smooth: boolean=false): integer;

Description

CreateImageFromSelectedArea creates an image object (iekBitmap) from the selected area of background image.

The feather value (0 - 255) is how much feathering you want the object to have. The feather function creates a gradient around the object but in the alpha channel so it gets a smoother look by smoothing the edges.
The smooth value tells if an anti-jagging filter should be applied to the alpha channel. If you use the feathering function, you should set smooth to true.

Example

hobj := ImageEnVect1.CreateImageFromSelectedArea;


TImageEnVect.CreatePolygonFromEdge

TImageEnVect.CreatePolygonFromEdge

Declaration

function CreatePolygonFromEdge(x, y: integer; maxfilter: boolean; tolerance: integer): integer;

Description

CreatePolygonFromEdge creates a closed polyline (polygon) making a flood fill starting from x, y point.

Set maxfilter to True to apply a maximum filter that removes noise. tolerance specifies the color difference between starting pixel and testing pixel.
CreatePolygonFromEdge returns the object index just created. The kind of the new object is iekPOLYLINE.

This method is useful to create a polygon following the image's edges.

Example

// creates a new polygon when user presses left mouse button over the image
procedure TForm1.ImageEnVect1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
hobj: integer;
begin
hobj := ImageEnVect1.CreatePolygonFromEdge(X, Y, true, 25);
ImageEnVect1.ObjPenColor[hobj] := clRed;
end;


TImageEnVect.CreatePolygonsFromSelection

TImageEnVect.CreatePolygonsFromSelection

Declaration

procedure CreatePolygonsFromSelection();

Description

Create polygons from current selection. This method creates the right number of polygons which composes the original selection.
This method is useful to convert from selection to vectorial polygons.
Returns number of created objects.


TImageEnVect.DrawObjectsToBitmap

TImageEnVect.DrawObjectsToBitmap

Declaration

procedure DrawObjectsToBitmap(target: TIEBitmap; Antialias: boolean = true; AdaptBitmapPixelFormat: boolean = true);

Description

DrawObjectsToBitmap draws all vectorial objects on the specified TIEBitmap object (target).
Antialias parameter controls the anti-alias filter.
If AdaptBitmapPixelFormat is true (default) the image will be converted to 24 bit RGB before drawing objects.

Example

ImageEnVect.DrawObjectsToBitmap( ImageEnView2.IEBitmap, true );
ImageEnView2.Update();


TImageEnVect.DrawOneObjectToBitmap

TImageEnVect.DrawOneObjectToBitmap

Declaration

procedure DrawOneObjectToBitmap(hobj: integer; target: TIEBitmap; Antialias: boolean = true; AdaptBitmapPixelFormat: boolean = true);

Description

DrawOneObjectToBitmap draws a vectorial object on the specified TIEBitmap object (target).
Antialias parameter controls the anti-alias filter.
If AdaptBitmapPixelFormat is true (default) the image will be converted to 24 bit RGB before drawing objects.

IEV_PREVIOUS_INSERTED_OBJECT can be specified for hobj to refer to the object that was last inserted.

Example

ImageEnVect.DrawObjectsToBitmap( ImageEnView2.IEBitmap, true );
ImageEnView2.Update;


TImageEnVect.EnableRangeObjectsSelection

TImageEnVect.EnableRangeObjectsSelection

Declaration

property EnableRangeObjectsSelection: boolean;

Description

If True, you can select multiple objects dragging a rectangle with the mouse.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.FindObjectAt

TImageEnVect.FindObjectAt

Declaration

function FindObjectAt(x, y: integer; var Distance: double): integer;

Description

Returns the object near the client coordinates x, y.
Distance will contain the object's distance from the specified coordinates.
Return a value <0 if no object is found.

See MaxSelectionDistance

Example

// hobj wil contains the object at 100, 100.
Hobj := FindObjectAt(100, 100, distance);


TImageEnVect.FloatDigits

TImageEnVect.FloatDigits

Declaration

property FloatDigits: integer;

Description

FloatDigits is the number of decimal digits will be shown on measurement tasks (distances and areas).


TImageEnVect.FloatPrecision

TImageEnVect.FloatPrecision

Declaration

property FloatPrecision: integer;

Description

FloatPrecision is the total number of digits (including decimals) that are shown on measurement tasks (distances and areas).


TImageEnVect.GetAngleValue

TImageEnVect.GetAngleValue

Declaration

function GetAngleValue(hobj: integer): double;

Description

GetAngleValue returns the measured angle in degrees for an iekAngle object.


TImageEnVect.GetIndexFromObj

TImageEnVect.GetIndexFromObj

Declaration

function GetIndexFromObj(hobj: integer): integer;

Description

Returns the object's z-index from the object handle, where 0 is the object closest to the background, 1 is the object in front of that, 2 the next, etc.

This is the inverse of GetObjFromIndex.


TImageEnVect.GetMemoFormattedString

TImageEnVect.GetMemoFormattedString

Declaration

function GetMemoFormattedString(hobj: integer): string;

Description

GetMemoFormattedString applies only to iekMEMO object and returns the text as it appears.
Whenever a word wrap occurs, a #10 (line feed) is inserted.

IEV_PREVIOUS_INSERTED_OBJECT can be specified for hobj to refer to the object that was last inserted.


TImageEnVect.GetObjDiagLen

TImageEnVect.GetObjDiagLen

Declaration

function GetObjDiagLen(hobj: integer): double;

Description

GetObjDiagLen returns the diagonal length of the specified object.

For a box (image or rectangle) it is the diagonal length. For a line it is the line or ruler length.

Ruler calculates distance differently, so you should use this routine instead:

function FixedGetObjDiagLen(ie: TImageEnVect; hobj: integer): double;
var
lx, ly: double;
r: TRect;
begin
ie.GetObjRect(hobj, r);
lx := abs(r.Right-r.Left) * ie.MeasureCoefX;
ly := abs(r.Bottom-r.Top) * ie.MeasureCoefY;
result := sqrt(lx * lx + ly * ly);
end;


TImageEnVect.GetObjFromID

TImageEnVect.GetObjFromID

Declaration

function GetObjFromID(oID: integer): integer;

Description

GetObjFromID finds first object with the specified ID.
IDs are stored in ObjID.
The returned value is the handle of the object.

Example

// set pencolor to clRed to the first object that has ObjID[]=17
var
hobj: integer;
begin
...
hobj := ImageEnVect1.GetObjFromID(17);
ImageEnVect1.ObjPenColor[hobj] := clRed;
..
end;


TImageEnVect.GetObjFromIndex

TImageEnVect.GetObjFromIndex

Declaration

function GetObjFromIndex(idx: integer): integer;

Description

GetObjFromIndex returns the object handle of the idx object.
It is useful to iterate over all vectorial objects (in tandem with ObjectsCount).

Example

// changes to red pen color for each object
for i := 0 to ImageEnVect1.ObjectsCount - 1 do
begin
hobj := ImageEnVect1.GetObjFromIndex( i );
ImageEnVect1.ObjPenColor[ hobj ] := clRed;
end;


TImageEnVect.GetObjFromName

TImageEnVect.GetObjFromName

Declaration

function GetObjFromName(const oName: AnsiString): integer;

Description

GetObjFromName finds the first vectorial object with the specified name. Objects names are stored in ObjName.
Strings are case sensitive.
The returned value is the handle of the object.

Example

// set pen color to clRed for the first object that has ObjName[]='Jack'
var
hobj: integer;
begin
...
hobj := ImageEnVect1.GetObjFromName('Jack');
ImageEnVect1.ObjPenColor[hobj] := clRed;
..
end;


TImageEnVect.GetObjRect

TImageEnVect.GetObjRect

Declaration

procedure GetObjRect(hobj: integer; var Rect: TRect);

Description

GetObjRect returns the coordinates of hobj object. Note: For objects such as lines, the Rect.Top/Left may exceed Rect.Bottom/Right to indicate the direction of line drawing.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

var
r: TRect;
hobj: Integer;
sXDir, sYDir: string;
begin
if ImageEnVect1.SelObjectsCount > 0 then
begin
hobj := ImageEnVect1.SelObjects[ 0 ];
if ImageEnVect1.ObjKind[ hObj ] <> iekLINE then
Caption := 'Not a line'
else
begin
ImageEnVect1.GetObjRect( hobj, r );
if r.Top > r.Bottom then
sYDir := 'Bottom-'
else
sYDir := 'Top-';
if r.Left > r.Right then
sXDir := 'Right'
else
sXDir := 'Left';
Caption := 'Line starts at ' + sYDir + sXDir;
end;
end;
end;


TImageEnVect.GetPolylineArea

TImageEnVect.GetPolylineArea

Declaration

function GetPolylineArea(hobj: integer): double;

Description

GetPolylineArea returns the area of the specified polyline. It closes the polyline if necessary.


TImageEnVect.GetPolylineCentroid

TImageEnVect.GetPolylineCentroid

Declaration

function GetPolylineCentroid(hobj: integer): TPoint;

Description

GetPolylineCentroid calculates x, y centroid coordinates of the specified polyline. The point is in bitmap coordinates.


TImageEnVect.GetPolylineLen

TImageEnVect.GetPolylineLen

Declaration

function GetPolylineLen(hobj: integer): double;

Description

GetPolylineLen returns the length (perimeter) of the specified polyline.

If the polyline is composed of two points, GetPolylineLen calculates the line length.
If the polyline is composed of three or more points, GetPolylineLen calculates the perimeter.


TImageEnVect.GetSelectionArea

TImageEnVect.GetSelectionArea

Declaration

function GetSelectionArea: double;

Description

GetSelectionArea returns the area of current selection.


TImageEnVect.GetSelectionCentroid

TImageEnVect.GetSelectionCentroid

Declaration

function GetSelectionCentroid: TPoint;

Description

GetSelectionCentroid calculates x, y coordinates of the selection's centroid. The point is in bitmap coordinates.


TImageEnVect.GetSelectionLen

TImageEnVect.GetSelectionLen

Declaration

function GetSelectionLen: double;

Description

GetSelectionLen returns the length (perimeter) of current selection. If the selection is composed of only two points, GetSelectionLen calculates the line length; if the selection is composed of three or more points, GetSelectionLen calculates the perimeter.


TImageEnVect.GroupObjects

TImageEnVect.GroupObjects

Declaration

procedure GroupObjects(bSelectedOnly: Boolean = True);

Description

Sets the group index of objects so they selected as a group (selecting one object of the group will select all of them).
If bSelectedOnly is true, grouping only affects objects that are selected. If false, it applies to all layers.

Example

// Add all selected objects to a group
ImageEnVect1.GroupObjects();

See Also

- UngroupObjects
- ObjGroupIndex

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ImportDXF

TImageEnVect.ImportDXF

Declaration

procedure ImportDXF(const FileName: WideString);

Description

Imports an Autocad DXF file. Returns true on successful import.
Note: only a subset of the DXF is implemented (lines, arcs and ellipses).

Example

ImageEnVect1.ImportDXF('cad.dxf');

See Also

- LoadFromFileAll
- LoadFromStreamAll
- LoadFromFileIEV
- LoadFromStreamIEV
- LayersImport

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.InsertingPen

TImageEnVect.InsertingPen

Declaration

property InsertingPen: TPen;

Description

Pen used when the user inserts a line, box or ellipse object.


TImageEnVect.IsEditMode

TImageEnVect.IsEditMode

Declaration

function IsEditMode: boolean;

Description

Returns true when TImageEnVect is editing a TEXT or MEMO object.


TImageEnVect.IsSelObject

TImageEnVect.IsSelObject

Declaration

function IsSelObject(hobj: integer): boolean;

Description

IsSelObject returns true if hobj object is selected.
The last inserted object is always selected.


TImageEnVect.LayersRemove

TImageEnVect.LayersRemove

Declaration

procedure LayersRemove(idx: integer);

Description

Removes the specified layer and any objects that it contains. At least one layer must be present.

Parameter | Description
idx | Index of the layer to remove (0 = background/first layer)

Example

// Delete the selected layer and all its objects
ImageEnVect1.LayersRemove(ImageEnVect1.LayersCurrent);
ImageEnVect1.Update;


TImageEnVect.LoadFromFileAll

TImageEnVect.LoadFromFileAll

Declaration

function LoadFromFileAll(const fileName: string): boolean;

Description

This method loads all layers and vectorial objects saved using SaveToFileAll.

Result will be false if the file is not ALL format (and Aborting will be true). Loading errors due to a file not being available will raise an exception.

Note: You cannot use this method to load standard image files (jpeg, tiff...).

See Also

- SaveToFileAll
- LoadFromStreamAll
- SaveToStreamAll
- LoadFromFileIEV
- SaveToFileIEV
- LoadFromStreamIEV
- SaveToStreamIEV
- ImportDXF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.LoadFromFileIEV

TImageEnVect.LoadFromFileIEV

Declaration

function LoadFromFileIEV(const FileName: string; AppendObjects: boolean = false): boolean;

Description

LoadFromFileIEV loads the objects from the specified file. The IEV format is used to save vectorial objects as lines, ellipses and bitmaps (but not background image).
Existing objects will be removed unless AppendObjects is True.

Result will be false if the file is not IEV format (and Aborting will be true). Loading errors due to a file not being available will raise an exception.

Example

ImageEnVect1.LoadFromFileIEV('objects.iev');

See Also

- SaveToFileIEV
- LoadFromStreamIEV
- SaveToStreamIEV
- LoadFromFileAll
- SaveToFileAll
- LoadFromStreamAll
- SaveToStreamAll
- ImportDXF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.LoadFromStreamAll

TImageEnVect.LoadFromStreamAll

Declaration

function LoadFromStreamAll(Stream: TStream): boolean;

Description

This method loads all layers and vectorial objects saved using SaveToStreamAll.

See Also

- LoadFromFileAll
- SaveToFileAll
- SaveToStreamAll
- LoadFromFileIEV
- SaveToFileIEV
- LoadFromStreamIEV
- SaveToStreamIEV
- ImportDXF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.LoadFromStreamIEV

TImageEnVect.LoadFromStreamIEV

Declaration

function LoadFromStreamIEV(Stream: TStream; AppendObjects: boolean = False): Boolean;

Description

LoadFromStreamIEV loads objects from a stream.
The IEV format is written to save vectorial objects as lines, ellipses and bitmaps (but not background image).
Existing objects will be removed unless AppendObjects is True.
Returns True on success.

Example

// Loads two vectorial images from "maps.iev", and shows them in ImageEnVect1 and ImageEnVect2
var
fs: TFileStream;
begin
fs := TFileStream.Create('maps.iev', fmOpenRead);
try
ImageEnVect1.LoadFromStreamIEV(fs);
ImageEnVect2.LoadFromStreamIEV(fs);
finally
fs.free;
end;
end;

See Also

- LoadFromFileIEV
- SaveToFileIEV
- SaveToStreamIEV
- LoadFromFileAll
- SaveToFileAll
- LoadFromStreamAll
- SaveToStreamAll
- ImportDXF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.LoadObjectsFromTIFF

TImageEnVect.LoadObjectsFromTIFF

Declaration

procedure LoadObjectsFromTIFF(const fileName: string; pageIndex: integer);

Description

This method loads objects from the specified TIFF. This is like LoadFromFileIEV, but gets the objects info from a tag of the TIFF file.
This method is not compatible with Wang Imaging (you must use another method to save as Wang Imaging), but allows you to save all TImageEnVect objects.
pageIndex specifies the page in a multi-page tiff used to store the objects. In this way you can store a set of objects for each tiff page.

The tag used by default is 40101. However you can change it rewriting the value in ObjectsTIFFTag public variable (defined in imageenio unit). Example:
IEGlobalSettings().ObjectsTIFFTag := 49001;

To save objects use SaveObjectsToTIFF.

Example

// saves the background image
ImageEnVect1.IO.SaveToFile('output.tif');
// saves the objects
ImageEnVect1.SaveObjectsToTIFF('output.tif', 0);

// loads the background image
ImageEnVect1.IO.LoadFromFile('output.tif');
// loads the objects
ImageEnVect1.LoadObjectsFromTIFF('output.tif', 0);


TImageEnVect.MaxMovingDistance

TImageEnVect.MaxMovingDistance

Declaration

property MaxMovingDistance: integer;

Description

Represents the maximum pointer distance from the object (in pixels) that allows object moving.

Default: 1

Example

ImageEnVect1.MaxMovingDistance := 3; // 3 pixels around


TImageEnVect.MaxSelectionDistance

TImageEnVect.MaxSelectionDistance

Declaration

property MaxSelectionDistance: integer;

Description

MaxSelectionDistance indicates the maximum distance (in bitmap pixels) from which an object may be selected.
If the user left clicks at a location beyond this distance, no object will be selected.

A value of -1 (the default) disables the maximum selection distance calculation (a click always selects some object).

Example

ImageEnVect1.MaxSelectionDistance := -1; // disables maximum distance

ImageEnVect1.MaxSelectionDistance := 10; // set maximum distance to 10 bitmap pixels


TImageEnVect.MaxTextLength

TImageEnVect.MaxTextLength

Declaration

property MaxTextLength : Integer;

Description

Apply a maximum limit to the amount of text that users can type into memo and text objects.

Example

ImageEnVect1.MaxTextLength := 12;


TImageEnVect.MeasureCoefX

TImageEnVect.MeasureCoefX

Declaration

property MeasureCoefX: double;

Description

MeasureCoefX specifies a coefficient to convert a bitmap length to a real world length.

Example

// convert 10 horizontal pixels to the specified measure unit (MUnit).
Real_length := ImageEnVect.MeasureCoefX * 10;


TImageEnVect.MeasureCoefY

TImageEnVect.MeasureCoefY

Declaration

property MeasureCoefX: double;

Description

MeasureCoefX specifies a coefficient to convert a bitmap length to a real world length.

Example

// convert 10 vertical pixels to the specified measure unit (MUnit).
Real_length := ImageEnVect.MeasureCoefY * 10;


TImageEnVect.MeasureHintBorder1

TImageEnVect.MeasureHintBorder1

Declaration

property MeasureHintBorder1: TColor;

Description

MeasureHintBorder1 specifies the border color used for measures hint. It is used to draw the top-left sides.


TImageEnVect.MeasureHintBorder2

TImageEnVect.MeasureHintBorder2

Declaration

property MeasureHintBorder2: TColor;

Description

MeasureHintBorder2 specifies the border color used for measures hint. It is used to draw the bottom-right sides.


TImageEnVect.MeasureHintBrush

TImageEnVect.MeasureHintBrush

Declaration

property MeasureHintBrush: TBrush;

Description

MeasureHintBrush specifies the brush used for measures hint. It is used to draw the hint background.


TImageEnVect.MeasureHintFont

TImageEnVect.MeasureHintFont

Declaration

property MeasureHintFont: TFont;

Description

Specifies the font used for measures hint.


TImageEnVect.MeasureTrack

TImageEnVect.MeasureTrack

Declaration

property MeasureTrack: boolean;

Description

If MeasureTrack is true, on measurement tasks will be calculated as the mouse moves.


TImageEnVect.MemoEdit

TImageEnVect.MemoEdit

Declaration

property MemoEdit: TIETextControl;

Description

Undocumented.


TImageEnVect.MemoEditingGetCharInfo

TImageEnVect.MemoEditingGetCharInfo

Declaration

function MemoEditingGetCharInfo: TIEMemoEditCharInfo;

Description

Returns the char information (font, color, alignment) about the currently caret position.

Demo

Demos\Annotations\AdvancedText\AdvancedText.dpr


TImageEnVect.MemoEditingSetCharInfo

TImageEnVect.MemoEditingSetCharInfo

Declaration

procedure MemoEditingSetCharInfo(info: TIEMemoEditCharInfo);

Description

Sets the char information (font, color, alignment) about the currently caret position.

Demo

Demos\Annotations\AdvancedText\AdvancedText.dpr


TImageEnVect.MouseInteractVt

TImageEnVect.MouseInteractVt

Declaration

property MouseInteractVt: TIEMouseInteractVt;

Description

MouseInteractVt selects which mouse actions TImageEnVect will handle automatically.

Note: TImageEnVect.MouseInteractVt and MouseInteract are mutually exclusive, i.e. setting TImageEnVect.MouseInteractVt with clear TImageEnVect.MouseInteract.


TImageEnVect.MUnit

TImageEnVect.MUnit

Declaration

property MUnit: TIEUnits;

Description

MUnit specifies the measurement unit used for displaying measurement tasks and for the return values of GetSelectionArea and GetSelectionLen methods.


TImageEnVect.ObjAnchorToLayers

TImageEnVect.ObjAnchorToLayers

Declaration

property ObjAnchorToLayers: boolean;

Description

When true, all objects are anchored to a layer (using ObjLayer property).
Otherwise (the old behavior) objects are just painted over all layers.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjAnglePoints

TImageEnVect.ObjAnglePoints

Declaration

property ObjAnglePoints[hobj: integer; index: integer]: TPoint;

Description

Gets one of the three points used to define an angle objects (iekAngle).

Parameter | Description
hobj | Object handle
index | Index of point to retrieve (0..2).

Example

with ImageEnVect1 do
s := Format('(%d, %d) (%d, %d) (%d, %d)', [ObjAnglePoints[hobj, 0].X, ObjAnglePoints[hobj, 0].Y,
ObjAnglePoints[hobj, 1].X, ObjAnglePoints[hobj, 1].Y,
ObjAnglePoints[hobj, 2].X, ObjAnglePoints[hobj, 2].Y]);
ShowMessage(s);


TImageEnVect.ObjAngleShowSmall

TImageEnVect.ObjAngleShowSmall

Declaration

property ObjAngleShowSmall: boolean;

Description

If True, angle objects shows only the small angle.


TImageEnVect.ObjAntialias

TImageEnVect.ObjAntialias

Declaration

property ObjAntialias: boolean;

Description

If ObjAntialias is true then ImageEn draws objects with an anti-alias filter. This will slow down the drawing but enhances the quality.


TImageEnVect.ObjArcEndingAngle

TImageEnVect.ObjArcEndingAngle

Declaration

property ObjArcEndingAngle[hobj: integer]: double;

Description

Specifies the ending angle in radians for an iekARC object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjArcStartingAngle

TImageEnVect.ObjArcStartingAngle

Declaration

property ObjArcStartingAngle[hobj: integer]: double;

Description

Specifies the starting angle in radians for an iekARC object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjAspectRatio

TImageEnVect.ObjAspectRatio

Declaration

property ObjAspectRatio[hobj: integer]: Boolean;

Description

When true, the object maintain the aspect ratio when resized (like ALT key).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjAutoUndo

TImageEnVect.ObjAutoUndo

Declaration

property ObjAutoUndo: boolean;

Description

If ObjAutoUndo is true, ObjSaveUndo is called automatically before the user changes objects.


TImageEnVect.ObjBeginShape

TImageEnVect.ObjBeginShape

Declaration

property ObjBeginShape[hobj: integer]: TIEVArrowShape;

Description

Use ObjBeginShape to specify the beginning shape of hobj object (iekLINE object type).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// next object (iekLINE) has two out-arrows to the extremities
ImageEnVect1.ObjBeginShape[IEV_NEXT_INSERTED_OBJECT] := iesOUTARROW;
ImageEnVect1.ObjEndShape [IEV_NEXT_INSERTED_OBJECT] := iesOUTARROW;


TImageEnVect.ObjBitmap

TImageEnVect.ObjBitmap

Declaration

property ObjBitmap[hobj: integer]: TIEBitmap;

Description

ObjBitmap is the image (bitmap) that hobj shows. hobj is iekBITMAP type.

If ShareBitmaps is true, all identical images are stored in the some memory space (this frees much memory).
However ObjBitmap always makes a copy of the specified TIEBitmap object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Examples

// Copy the image of ImageEnView1 to the next object to insert
ImageEnVect1.ObjBitmap[IEV_NEXT_INSERTED_OBJECT] := ImageEnView1.IEBitmap;

// Load an image from file and add as an object
aBitmap := TIEBitmap.Create;
try
aBitmap.Read( 'd:\002.png' );
hObj := ImageEnVect1.AddNewObject();
ImageEnVect1.ObjKind[ hObj ] := iekBITMAP;
ImageEnVect1.ObjBitmap[ hObj ] := aBitmap;
ImageEnVect1.SetObjRect( hobj, Rect( 100, 100, 200, 200 ), True );
finally
aBitmap.Free;
end;


TImageEnVect.ObjBitmapAlpha

TImageEnVect.ObjBitmapAlpha

Declaration

property ObjBitmapAlpha[hobj: integer]: TIEBitmap;

Description

ObjBitmapAlpha contains the alpha channel of the specified object (which must be a iekBitmap object).

You can obtain the same value using ObjBitmap[hobj].AlphaChannel.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjBitmapBorder

TImageEnVect.ObjBitmapBorder

Declaration

property ObjBitmapBorder[hobj: integer]: boolean;

Description

If True a border around the bitmap object will be painted.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjBitmapHandleTransparencyOnSel

TImageEnVect.ObjBitmapHandleTransparencyOnSel

Declaration

property ObjBitmapHandleTransparencyOnSel: boolean;

Description

If true, transparent areas of bitmaps aren't selectable.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjBlendOperation

TImageEnVect.ObjBlendOperation

Declaration

property ObjBlendOperation[hobj: integer]: TIERenderOperation;

Description

Specifies the blending operation.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Default: ielNormal

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjBottom

TImageEnVect.ObjBottom

Declaration

property ObjBottom[hobj: integer]: integer;

Description

Specifies the bottom offset of hobj object. The coordinates are in pixels with zoom = 100%.
When setting ObjBottom also ObjTop is moved in order to maintain the original object width.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// This code creates a Box at 10, 10 of 50x50 pixels.
ImageEnVect1.ObjKind [IEV_NEXT_INSERTED_OBJECT] := iekBOX;
ImageEnVect1.ObjLeft [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjTop [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjRight [IEV_NEXT_INSERTED_OBJECT] := 60;
ImageEnVect1.ObjBottom [IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.AddNewObject;


TImageEnVect.ObjBoxHighLight

TImageEnVect.ObjBoxHighLight

Declaration

property ObjBoxHighlight[hobj: integer]: boolean;

Description

Introduced to increase support for Imaging Annotations.
When ObjBoxHighlight is true, it makes a filled box as a highlight box (highlight the background with the fill color).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjBoxInnerSelectable

TImageEnVect.ObjBoxInnerSelectable

Declaration

property ObjBoxInnerSelectable: Boolean;

Description

When false, iekBox, iekEllipse and closed iekPolyline objects are selectable only by clicking on the border, unless ObjBrushStyle is bsSolid.

Default: False

Note: These objects are always selectable by clicking the bounding box (even with ObjBrushStyle=bsClear).


TImageEnVect.ObjBrushColor

TImageEnVect.ObjBrushColor

Declaration

property ObjBrushColor[hobj: integer]: TColor;

Description

ObjBrushColor is the brush color of hobj object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// Set clRed as brush (background) color for the next object to insert
ImageEnVect1.ObjBrushColor[IEV_NEXT_INSERTED_OBJECT] := clRed;


TImageEnVect.ObjBrushStyle

TImageEnVect.ObjBrushStyle

Declaration

property ObjBrushStyle[hobj: integer]: TBrushStyle;

Description

ObjBrushStyle is the brush style of hobj object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// Sets bsSolid as brush style for the next object to insert
ImageEnVect1.ObjBrushStyle[IEV_NEXT_INSERTED_OBJECT] := bsSolid;


TImageEnVect.ObjCanUndo

TImageEnVect.ObjCanUndo

Declaration

property ObjCanUndo: boolean;

Description

Returns true when the Undo stack contains at least one group of objects.

ObjAllClearUndo (or ObjClearUndo if there is only one group of objects) sets ObjCanUndo to false.

Note: If you are using ObjUndoMode = ieumShared to share object and image undo, do not use ObjCanUndo. Use CanUndo instead.


TImageEnVect.ObjClearAllUndo

TImageEnVect.ObjClearAllUndo

Declaration

procedure ObjClearAllUndo;

Description

Empties the Undo stack.

Note: If you are using ObjUndoMode = ieumShared to share object and image undo, do not use ObjClearAllUndo. Use ClearAllUndo instead.


TImageEnVect.ObjClearUndo

TImageEnVect.ObjClearUndo

Declaration

procedure ObjClearUndo;

Description

Clears the last undo buffer (group of saved objects).

Note: If you are using ObjUndoMode = ieumShared to share object and image undo, do not use ObjClearUndo. Use ClearUndo instead.


TImageEnVect.ObjCopyToClipboard

TImageEnVect.ObjCopyToClipboard

Declaration

procedure ObjCopyToClipboard;

Description

Copies selected objects to the clipboard in a proprietary format.

See Also

- ObjCutToClipboard
- ObjIsClipboardAvailable
- ObjPasteFromClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjCutToClipboard

TImageEnVect.ObjCutToClipboard

Declaration

procedure ObjCutToClipboard;

Description

ObjCutToClipboard copies selected objects to the clipboard in a proprietary format and then deletes the objects.

See Also

- ObjCopyToClipboard
- ObjIsClipboardAvailable
- ObjPasteFromClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjectsCount

TImageEnVect.ObjectsCount

Declaration

property ObjectsCount: integer; (Read-Only)

Description

Read ObjectsCount to determine the number of objects in the TImageEnVect component. Use GetObjFromIndex to convert the index value to an Obj.

Example

// Delete the objects of the specified layer
procedure DeleteObjectsOfLayer(iLayer : Integer);
var
i: integer;
ihobj: integer;
iobjLayer: integer;
begin
for i := ImageEnVect1.ObjectsCount - 1 downto 0 do
begin
ihobj := ImageEnVect1.GetObjFromIndex(i);
// if hobj is on current layer then delete the object
iobjLayer := ImageEnVect1.ObjLayer[ihobj];
if iobjLayer = iLayer then
ImageEnVect1.RemoveObject(ihobj);
end;
ImageEnVect1.Update;
end;


TImageEnVect.ObjectsExtents

TImageEnVect.ObjectsExtents

Declaration

property ObjectsExtents: TRect;

Description

ObjectsExtents is the bounding rectangle of all vectorial objects, expressed in bitmap coordinate.

Read-Only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjEditOnNewText

TImageEnVect.ObjEditOnNewText

Declaration

property ObjEditOnNewText: boolean;

Description

When user inserts a new text object ImageEn begins editing on it. If you don't want this, set ObjEditOnNewText=False: this will allow to insert text objects without automatic editing.


TImageEnVect.ObjEnableFastDrawing

TImageEnVect.ObjEnableFastDrawing

Declaration

property ObjEnableFastDrawing: boolean;

Description

When true, moving objects or doing other visual operation disables antialiasing and shadows.
If you have a fast machine, disable this property to increase user graphical experience.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjEndShape

TImageEnVect.ObjEndShape

Declaration

property ObjEndShape[hobj: integer]: TIEVArrowShape;

Description

ObjEndShape is the end shape of hobj object (iekLINE).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// These set the next iekLINE object sides to out-arrow
ImageEnVect1.ObjBeginShape[IEV_NEXT_INSERTED_OBJECT] := iesOUTARROW;
ImageEnVect1.ObjEndShape [IEV_NEXT_INSERTED_OBJECT] := iesOUTARROW;


TImageEnVect.ObjFontAngle

TImageEnVect.ObjFontAngle

Declaration

property ObjFontAngle[hobj: integer]: double;

Description

ObjFontAngle is the rotation angle of iekTEXT object hobj. The angle is in degrees (positive values rotate counter clockwise).

If ObjFontAngle is not zero, set ObjTextAlign = iejCenter for better auto-sizing.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjFontHeight

TImageEnVect.ObjFontHeight

Declaration

property ObjFontHeight[hobj: integer]: integer;

Description

ObjFontHeight specifies the font height for iekTEXT object hobj.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Run-time only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjFontLocked

TImageEnVect.ObjFontLocked

Declaration

property ObjFontLocked[hobj: integer]: boolean;

Description

When the object is a Memo (iekMemo), ObjFontLocked locks the alignment, color and font, allowing all characters to have the same visual characteristics.

If the ObjFontLocked property is disabled (False) the user can modify font and alignment using the control keys in MemoShortCuts.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjFontName

TImageEnVect.ObjFontName

Declaration

property ObjFontName[hobj: integer]: string;

Description

Specifies the font name for an iekTEXT object hobj.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// Sets 'Arial' as font type for next object to insert
ImageEnVect1.ObjFontName[IEV_PREVIOUS_INSERTED_OBJECT] := 'Arial';


TImageEnVect.ObjFontQuality

TImageEnVect.ObjFontQuality

Declaration

property ObjFontQuality[hobj: integer]: TIEFontQuality;

Description

Specifies the quality (antialias, clear type, etc) of the text font.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjFontStyles

TImageEnVect.ObjFontStyles

Declaration

property ObjFontStyles[hobj: integer]: TFontStyles;

Description

Specifies the font style for the iekTEXT object hobj.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

ImageEnVect1.ObjFontStyles[IEV_NEXT_INSERTED_OBJECT ] := fsBold;


TImageEnVect.ObjGraphicRender

TImageEnVect.ObjGraphicRender

Declaration

property ObjGraphicRender: boolean;

Description

Enables antialiasing and alpha channel operations when GDIPlus is not installed.


TImageEnVect.ObjGripBrush

TImageEnVect.ObjGripBrush

Declaration

property ObjGripBrush: TBrush;

Description

Specifies the grip's brush as shown when an object is selected.


TImageEnVect.ObjGripImage

TImageEnVect.ObjGripImage

Declaration

property ObjGripImage: TPicture;

Description

Allows you to set a custom picture for grips (objects painted around an object to handle resizing and selection).


TImageEnVect.ObjGripPen

TImageEnVect.ObjGripPen

Declaration

property ObjGripPen: TPen;

Description

Specifies the grip's pen as shown when an object is selected.


TImageEnVect.ObjGripShape

TImageEnVect.ObjGripShape

Declaration

property ObjGripShape: TIEGripShape;

Description

Specifies the grip's shape as shown when an object is selected.


TImageEnVect.ObjGripSize

TImageEnVect.ObjGripSize

Declaration

property ObjGripSize: integer;

Description

Specifies the grip's size as shown when an object is selected.


TImageEnVect.ObjGroupIndex

TImageEnVect.ObjGroupIndex

Declaration

property ObjGroupIndex[hobj: integer]: Integer;

Description

Specifies the Group ID of the object. When an object is selected all other objects with the same group ID are automatically selected too.
GroupIndex can be any value. A GroupIndex of 0 means the object is not grouped.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjHeight

TImageEnVect.ObjHeight

Declaration

property ObjHeight[hobj: integer]: integer;

Description

Specifies the height of hobj object. The coordinates are in pixels with zoom = 100%.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// This code creates a Box at 10, 10 of 50x50 pixels
ImageEnVect1.ObjKind [IEV_NEXT_INSERTED_OBJECT] := iekBOX;
ImageEnVect1.ObjLeft [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjTop [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjWidth [IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.ObjHeight [IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.AddNewObject;


TImageEnVect.ObjID

TImageEnVect.ObjID

Declaration

property ObjID[hobj: integer]: integer;

Description

ObjID is a identification value for the object hobj. ImageEn doesn't use this value directly, but saves and loads it like other properties.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjIsClipboardAvailable

TImageEnVect.ObjIsClipboardAvailable

Declaration

function ObjIsClipboardAvailable: boolean;

Description

This method returns true if clipboard contains data valid for TImageEnVect. if bIncludeImages is TRUE then it will also support pasting of images on the clipboard as iekBITMAP objects.

See Also

- ObjCopyToClipboard
- ObjCutToClipboard
- ObjPasteFromClipboard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjIsVisible

TImageEnVect.ObjIsVisible

Declaration

function ObjIsVisible(hobj: integer): boolean;

Description

Returns true if the specified object is currently visible.


TImageEnVect.ObjKind

TImageEnVect.ObjKind

Declaration

property ObjKind[hobj: integer]: TIEVObjectKind;

Description

ObjKind is the type (line, ellipse...) of object hobj.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// Load an image from file and add as an object
aBitmap := TIEBitmap.Create;
try
aBitmap.Read( 'd:\002.png' );
hObj := ImageEnVect1.AddNewObject();
ImageEnVect1.ObjKind[ hObj ] := iekBITMAP;
ImageEnVect1.ObjBitmap[ hObj ] := aBitmap;
ImageEnVect1.SetObjRect( hobj, Rect( 100, 100, 200, 200 ), True );
finally
aBitmap.Free;
end;


TImageEnVect.ObjLabelBorder

TImageEnVect.ObjLabelBorder

Declaration

property ObjLabelBorder[hobj: integer]: TIELabelBorder;

Description

ObjLabelBorder is the label (text) border of hobj object (iekLINELABEL).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjLabelBrushColor

TImageEnVect.ObjLabelBrushColor

Declaration

property ObjLabelBrushColor[hobj: integer]: TColor;

Description

ObjLabelBrushColor is the brush color of hobj object (iekLINELABEL)

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjLabelBrushStyle

TImageEnVect.ObjLabelBrushStyle

Declaration

property ObjLabelBrushStyle[hobj: integer]: TBrushStyle;

Description

ObjLabelBrushStyle is the brush style of hobj object (iekLINELABEL).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjLabelPosition

TImageEnVect.ObjLabelPosition

Declaration

property ObjLabelPosition[hobj: integer]: TIELabelPos;

Description

ObjLabelPosition is the label (text) position of hobj object (iekLINELABEL).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjLayer

TImageEnVect.ObjLayer

Declaration

property ObjLayer[hobj: integer]: integer;

Description

Specifies layer index where the object is located (drawed and referenced). Default is "0" and means draw on layer 0.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

See Also

- ObjAnchorToLayers

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjLeft

TImageEnVect.ObjLeft

Declaration

property ObjLeft[hobj: integer]: integer;

Description

Specifies the left offset of hobj object. The coordinates are in pixels with zoom = 100%.
When setting ObjLeft, ObjRight is also moved to maintain the original object width.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// This code creates a Box at 10, 10 of 50x50 pixels.
ImageEnVect1.ObjKind [IEV_NEXT_INSERTED_OBJECT] := iekBOX;
ImageEnVect1.ObjLeft [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjTop [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjWidth [IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.ObjHeight[IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.AddNewObject;


TImageEnVect.ObjMemoBorderColor

TImageEnVect.ObjMemoBorderColor

Declaration

property ObjMemoBorderColor[hobj: integer]: TColor;

Description

ObjMemoBorderColor specifies the color of the memo border.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjMemoBorderStyle

TImageEnVect.ObjMemoBorderStyle

Declaration

property ObjMemoBorderStyle[hobj: integer]: TPenStyle;

Description

ObjMemoBorderStyle specifies the style of the memo border.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjMemoCharsBrushStyle

TImageEnVect.ObjMemoCharsBrushStyle

Declaration

property ObjMemoCharsBrushStyle[hobj: integer]: TBrushStyle;

Description

This property allows you to set the default brush style when ObjFontLocked is false.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Default: bsSolid, which means that when you change the memo background color the characters remain with their unchanged background color.


TImageEnVect.ObjMemoFixedHeight

TImageEnVect.ObjMemoFixedHeight

Declaration

property ObjMemoFixedHeight[hobj: integer]: integer;

Description

Specifies the interline space between lines. By setting a value of 0, ObjMemoFixedHeight is automatically calculated.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjMemoHasBitmap

TImageEnVect.ObjMemoHasBitmap

Declaration

property ObjMemoHasBitmap[hobj: integer]: boolean;

Description

When true, the memo object has a background image.
You can set the bitmap using ObjBitmap, ObjSetTBitmap, SetObjBitmapICO and SetObjBitmapFromFile methods.
The ObjBrushStyle must be bsClear and fonts must not have filled background.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjMemoLineSpace

TImageEnVect.ObjMemoLineSpace

Declaration

property ObjMemoLineSpace[hobj: integer]: integer;

Description

Specifies the spacing between lines.
0 = automatically calculated.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjMemoMarginBottom

TImageEnVect.ObjMemoMarginBottom

Declaration

property ObjMemoMarginBottom[hobj: integer]: double;

Description

Specifies the bottom margin in percentage of vertical height. This applies only to memo objects.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

ImageEnVect1.ObjMemoMarginLeft[h] := 10; // 10% left
ImageEnVect1.ObjMemoMarginTop[h] := 10; // 10% top
ImageEnVect1.ObjMemoMarginRight[h] := 10; // 10% right
ImageEnVect1.ObjMemoMarginBottom[h] := 10; // 10% bottom


TImageEnVect.ObjMemoMarginLeft

TImageEnVect.ObjMemoMarginLeft

Declaration

property ObjMemoMarginLeft[hobj: integer]: double;

Description

Specifies the left margin in percentage of horizontal width. This applies only to memo objects.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

ImageEnVect1.ObjMemoMarginLeft[h] := 10; // 10% left
ImageEnVect1.ObjMemoMarginTop[h] := 10; // 10% top
ImageEnVect1.ObjMemoMarginRight[h] := 10; // 10% right
ImageEnVect1.ObjMemoMarginBottom[h] := 10; // 10% bottom


TImageEnVect.ObjMemoMarginRight

TImageEnVect.ObjMemoMarginRight

Declaration

property ObjMemoMarginRight[hobj: integer]: double;

Description

Specifies the right margin in percentage of horizontal width. This applies only to memo objects.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

ImageEnVect1.ObjMemoMarginLeft[h] := 10; // 10% left
ImageEnVect1.ObjMemoMarginTop[h] := 10; // 10% top
ImageEnVect1.ObjMemoMarginRight[h] := 10; // 10% right
ImageEnVect1.ObjMemoMarginBottom[h] := 10; // 10% bottom


TImageEnVect.ObjMemoMarginTop

TImageEnVect.ObjMemoMarginTop

Declaration

property ObjMemoMarginTop[hobj: integer]: double;

Description

Specifies the top margin in percentage of vertical height. This applies only to memo objects.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

ImageEnVect1.ObjMemoMarginLeft[h] := 10; // 10% left
ImageEnVect1.ObjMemoMarginTop[h] := 10; // 10% top
ImageEnVect1.ObjMemoMarginRight[h] := 10; // 10% right
ImageEnVect1.ObjMemoMarginBottom[h] := 10; // 10% bottom


TImageEnVect.ObjName

TImageEnVect.ObjName

Declaration

property ObjName[hobj: integer]: AnsiString

Description

ObjName is an application string for the object hobj. ImageEn doesn't use this value, but saves and loads it like other properties.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjPasteFromClipboard

TImageEnVect.ObjPasteFromClipboard

Declaration

procedure ObjPasteFromClipboard(OffsetX, OffsetY: integer);

Description

ObjPasteFromClipboard copies the contents from the clipboard into the TImageEnVect component, replacing the currently selected object(s).
The clipboard must contain an TImageEnVect object or a valid bitmap

Parameter | Description
OffsetX | Vertical offset from original object's position.
OffsetY | Horizontal offset from original object's position.

Specify -1 for these parameters to use the default position

See Also

- ObjCopyToClipboard
- ObjCutToClipboard
- ObjIsClipboardAvailable

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjPenColor

TImageEnVect.ObjPenColor

Declaration

property ObjPenColor[hobj: integer]: TColor;

Description

ObjPenColor specifies the pen color for hobj object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjPenStyle

TImageEnVect.ObjPenStyle

Declaration

property ObjPenStyle[hobj: integer]: TPenStyle;

Description

Specifies the pen style of hobj object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjPenWidth

TImageEnVect.ObjPenWidth

Declaration

property ObjPenWidth[hobj: integer]: integer;

Description

Specifies the pen width of hobj object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjPolylineClosed

TImageEnVect.ObjPolylineClosed

Declaration

property ObjPolylineClosed[hobj: integer]: boolean;

Description

ObjPolylineClosed is True if we want close the polyline (so it is like a polygon).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

See Also

- PolylineClosingMode

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjPolylinePoints

TImageEnVect.ObjPolylinePoints

Declaration

property ObjPolylinePoints[hobj: integer; index: integer]: TPoint;

Description

ObjPolylinePoints specifies the points that compose the hobj polyline.

Use ObjPolylinePointsCount to know how many points the polyline contains.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

See Also

- SetObjPolylinePoints
- AddPolyLinePoint
- RemovePolyLinePoint

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjPolylinePointsCount

TImageEnVect.ObjPolylinePointsCount

Declaration

property ObjPolylinePointsCount[hobj: integer]: integer;

Description

ObjPolylinePointsCount specifies the count of points that compose the hobj polyline.
Use ObjPolylinePoints to obtain the coordinates of point that compose the polyline.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjRight

TImageEnVect.ObjRight

Declaration

property ObjRight[hobj: integer]: integer;

Description

Specifies the right offset of hobj object. The coordinates are in pixels with zoom = 100%.
When setting ObjRight also ObjLeft is moved in order to maintain the original object width.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// This code creates a Box at 10, 10 of 50x50 pixels.
ImageEnVect1.ObjKind [IEV_NEXT_INSERTED_OBJECT] := iekBOX;
ImageEnVect1.ObjLeft [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjTop [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjRight [IEV_NEXT_INSERTED_OBJECT] := 60;
ImageEnVect1.ObjBottom[IEV_NEXT_INSERTED_OBJECT] := 60;
ImageEnVect1.AddNewObject;


TImageEnVect.ObjRulerQuoteHorizon

TImageEnVect.ObjRulerQuoteHorizon

Declaration

property ObjRulerQuoteHorizon: boolean;

Description

If True, ruler-quote objects maintain text on horizon.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjRulerType

TImageEnVect.ObjRulerType

Declaration

property ObjRulerType[hobj: integer]: TIEVRulerType;

Description

ObjRulerType specifies the type of the ruler object hobj.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjRulerUnit

TImageEnVect.ObjRulerUnit

Declaration

property ObjRulerUnit[hobj: integer]: TIEUnits;

Description

ObjRulerUnit specifies the measurement unit of the ruler object hobj.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjSaveUndo

TImageEnVect.ObjSaveUndo

Declaration

procedure ObjSaveUndo;

Description

ObjSaveUndo saves selected objects to the Undo stack.


TImageEnVect.ObjSetTBitmap

TImageEnVect.ObjSetTBitmap

Declaration

procedure ObjSetTBitmap(hobj: integer; bmp: TBitmap);

Description

ObjSetTBitmap assigns (copies) a TBitmap object to the specified image object.


TImageEnVect.ObjShapeHeight

TImageEnVect.ObjShapeHeight

Declaration

property ObjShapeHeight[hobj: integer]: integer;

Description

Specifies the shape height of iekLINE hobj object. The shape is set with ObjBeginShape and ObjEndShape properties.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

See also: ObjShapeWidth.


TImageEnVect.ObjShapeWidth

TImageEnVect.ObjShapeWidth

Declaration

property ObjShapeWidth[hobj: integer]: integer;

Description

Specifies the shape width of iekLINE hobj object. The shape is set with ObjBeginShape and ObjEndShape properties.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

See also: ObjShapeHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjSoftShadow

TImageEnVect.ObjSoftShadow

Declaration

property ObjSoftShadow[hobj: integer]: TIEVSoftShadow;

Description

ObjSoftShadow enables and sets the object shadow properties.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

ImageEnVect.ObjSoftShadow[IEV_NEXT_INSERTED_OBJECT].Enabled := True;


TImageEnVect.ObjStyle

TImageEnVect.ObjStyle

Declaration

property ObjStyle[hobj: integer]: TIEVStyle;

Description

ObjStyle sets some properties of the hobj object.

Default: [ievsSelectable, ievsMoveable, ievsSizeable, ievsVisible]

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// Hides the object called "cloud"
hobj := ImageEnVect1.GetObjFromName('cloud'); // hobj is an integer
ImageEnVect1.ObjStyle[hobj] := ImageEnVect1.ObjStyle[hobj] - [ievsVisible];


TImageEnVect.ObjText

TImageEnVect.ObjText

Declaration

property ObjText[hobj: integer]: WideString;

Description

Specifies the text shown by hobj object (iekTEXT).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjTextAlign

TImageEnVect.ObjTextAlign

Declaration

property ObjTextAlign[hobj: integer]: TIEAlignment;

Description

Specifies the text alignment of hobj object (iekTEXT).

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

iejJustify applies only to MEMO objects

Example

// Center the text of the next inserted object
ImageEnVect1.ObjTextAlign[IEV_NEXT_INSERTED_OBJECT] := iejCenter;


TImageEnVect.ObjTextAutoSize

TImageEnVect.ObjTextAutoSize

Declaration

property ObjTextAutoSize[hobj: integer]: boolean;

Description

Use ObjTextAutoSize to make the iekText object adjust its size automatically so the bounding box accommodates the width of the text.

When ObjTextAutoSize is false, the text object has a fixed width.
When ObjTextAutoSize is true, the size of the object is re-adjusted whenever the user edits the text.

IEV_PREVIOUS_INSERTED_OBJECT can be specified for hobj to refer to the object that was last inserted.


TImageEnVect.ObjTextCurveCharRot

TImageEnVect.ObjTextCurveCharRot

Declaration

property ObjTextCurveCharRot[hobj: integer]: double;

Description

Specifies the angle of each character for curved text.

By specifying a value of -1, the angle is auto-calculated (i.e. follows the curve).


TImageEnVect.ObjTextCurveStretch

TImageEnVect.ObjTextCurveStretch

Declaration

property ObjTextCurveStretch[hobj: integer]: boolean;

Description

Specifies whether the curved text fills the entire object rectangle.

Default: true

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjTextEditable

TImageEnVect.ObjTextEditable

Declaration

property ObjTextEditable[hobj: integer]: boolean;

Description

If true, the specified text or memo object is editable, otherwise it is read only.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjTextEditMode

TImageEnVect.ObjTextEditMode

Declaration

property ObjTextEditMode: integer

Description

This property switches the specified MEMO or TEXT object in edit mode. You can use it to know which text object is currently editing.


TImageEnVect.ObjTextMaintainAlignmentOnRotate

TImageEnVect.ObjTextMaintainAlignmentOnRotate

Declaration

property ObjTextMaintainAlignmentOnRotate[hobj: integer]: boolean;

Description

If true the text of a TEXT object is automatically (left) realigned when 180 degrees rotation occurs.
This is set automatically when rotating objects.


TImageEnVect.ObjTop

TImageEnVect.ObjTop

Declaration

property ObjTop[hobj: integer]: integer;

Description

Specifies the top offset of hobj object. The coordinates are in pixels with zoom = 100%.
When setting ObjTop, ObjBottom is also moved to maintain the original object width.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// This code creates a Box at 10, 10 of 50x50 pixels.
ImageEnVect1.ObjKind [IEV_NEXT_INSERTED_OBJECT] := iekBOX;
ImageEnVect1.ObjLeft [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjTop [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjWidth [IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.ObjHeight [IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.AddNewObject;


TImageEnVect.ObjTransparency

TImageEnVect.ObjTransparency

Declaration

property ObjTransparency[hobj: integer]: integer;

Description

ObjTransparency sets the transparency of the specified object. 0=fully transparent, 255=fully opaque.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.ObjUndo

TImageEnVect.ObjUndo

Declaration

procedure ObjUndo;

Description

ObjUndo restores the most recently saved objects from the Undo stack.

Note: If you are using ObjUndoMode = ieumShared to share object and image undo, do not use ObjUndo. Use Undo instead.


TImageEnVect.ObjUndoAt

TImageEnVect.ObjUndoAt

Declaration

procedure ObjUndoAt(Position: integer);

Description

Restores the image (group of objects) at the specified position in the Undo stack.
Position: 0=last saved undo; 1=second to last saved undo; 2... up to UndoCount-1

Note: If you are using ObjUndoMode = ieumShared to share object and image undo, do not use ObjUndoAt. Use UndoAt instead.


TImageEnVect.ObjUndoCount

TImageEnVect.ObjUndoCount

Declaration

property ObjUndoCount: integer;

Description

Returns the number of images (group of objects) in the Undo stack.

Note: If you are using ObjUndoMode = ieumShared to share object and image undo, do not use ObjUndoCount. Use UndoCount instead.


TImageEnVect.ObjUndoLimit

TImageEnVect.ObjUndoLimit

Declaration

property ObjUndoLimit: integer;

Description

Specifies how many images (groups of objects) can be saved using ObjSaveUndo method.
When you call ObjSaveUndo, ImageEn pushes the current image (group of objects) onto an image stack.
Calling ObjUndo causes ImageEn to restore the last saved image. Calling ObjClearUndo causes ImageEn to remove the last saved image.

Default: 1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ObjUndoMode

TImageEnVect.ObjUndoMode

Declaration

property ObjUndoMode: TIEVUndoMode;

Description

Allows sharing of the Undo/Redo system between image processing and vectorial objects.
The default value (ieumSeparated) separates the two systems.

Example

ImageEnVect1.ObjUndoMode := ieumShared;
ImageEnVect1.ObjAutoUndo := true;
ImageEnVect1.Proc.UndoLimit := 10;

From now you can do Undo of image processing or vectorial objects just calling:

ImageEnVect1.Proc.Undo;
ImageEnVect1.Proc.ClearUndo;


TImageEnVect.ObjUserData

TImageEnVect.ObjUserData

Declaration

property ObjUserData[hobj: integer]: pointer;

Description

Applications can store custom data using ObjUserData. ObjUserData contains a pointer to a user buffer with a length specified by ObjUserDataLength.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Note: The loading, saving and clipboard methods save this field by allocating a buffer when needed. When the object is destroyed the memory used by ObjUserData will be freed (if it has not been reset to nil).

Demo

Demos\Annotations\UserDataVect\UserDataVect.dpr


TImageEnVect.ObjUserDataLength

TImageEnVect.ObjUserDataLength

Declaration

property ObjUserDataLength[hobj: integer]: integer;

Description

Applications can store custom data using ObjUserData. ObjUserData contains a pointer to a user buffer with a length specified by TImageEnVect.ObjUserDataLength.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Note: The loading, saving and clipboard methods save this field by allocating a buffer when needed. When the object is destroyed the memory used by ObjUserData will be freed (if it has not been reset to nil).


TImageEnVect.ObjWidth

TImageEnVect.ObjWidth

Declaration

property ObjWidth[hobj: integer]: integer;

Description

Specifies the width of hobj object. The coordinates are in pixels with zoom = 100%.
hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

Example

// This code creates a Box at 10, 10 of 50x50 pixels
ImageEnVect1.ObjKind [IEV_NEXT_INSERTED_OBJECT] := iekBOX;
ImageEnVect1.ObjLeft [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjTop [IEV_NEXT_INSERTED_OBJECT] := 10;
ImageEnVect1.ObjWidth [IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.ObjHeight [IEV_NEXT_INSERTED_OBJECT] := 50;
ImageEnVect1.AddNewObject;


TImageEnVect.OnActivateTextEdit

TImageEnVect.OnActivateTextEdit

Declaration

property OnActivateTextEdit: TNotifyEvent;

Description

Occurs whenever a text edit (memo or text) is activated.

Demo

Demos\Annotations\AdvancedText\AdvancedText.dpr


TImageEnVect.OnAfterDrawObject

TImageEnVect.OnAfterDrawObject

Declaration

property OnAfterDrawObject: TIEDrawObjectEvent;

Description

Occurs immediately after an object is painted.
handled parameter is not used.

This event is useful to draw custom objects.


TImageEnVect.OnBeforeDrawObject

TImageEnVect.OnBeforeDrawObject

Declaration

property OnBeforeDrawObject: TIEDrawObjectEvent;

Description

Occurs immediately before an object is painted.
This event is useful to draw custom objects.


TImageEnVect.OnBeforeVectorialChanged

TImageEnVect.OnBeforeVectorialChanged

Declaration

property OnBeforeVectorialChanged: TNotifyEvent;

Description

Occurs just before an object is added, removed or modified by a user action.


TImageEnVect.OnDeactivateTextEdit

TImageEnVect.OnDeactivateTextEdit

Declaration

property OnDeactivateTextEdit: TNotifyEvent;

Description

Occurs whenever a text edit (memo or text) is deactivated.

Demo

Demos\Annotations\AdvancedText\AdvancedText.dpr


TImageEnVect.OnDragLenEnd

TImageEnVect.OnDragLenEnd

Declaration

property OnDragLenEnd: TIEVDragLenEndEvent;

Description

Occurs whenever the user releases the mouse button during dynamic distance measurement task (miDragLen).


TImageEnVect.OnMeasureHint

TImageEnVect.OnMeasureHint

Declaration

property OnMeasureHint: TIEVMeasureHintEvent;

Description

Occurs whenever the measurement hint is shown.

Example

// display measure value to the Label1 (and repaint it to perform real-time measurement).
procedure TForm1.ImageEnVect1MeasureHint(Sender: TObject; var Text: AnsiString;
Value: Double);
begin
Label1.Caption := Text;
Label1.Repaint;
end;


TImageEnVect.OnNewObject

TImageEnVect.OnNewObject

Declaration

property OnNewObject: TIEVNewObject;

Description

OnNewObject is called whenever a new object is created by some user interaction.


TImageEnVect.OnObjectClick

TImageEnVect.OnObjectClick

Declaration

property OnObjectClick: TIEVObjectClickEvent;

Description

OnObjectClick is called whenever an object is clicked.


TImageEnVect.OnObjectDblClick

TImageEnVect.OnObjectDblClick

Declaration

property OnObjectDblClick: TIEVObjectClickEvent;

Description

OnObjectDblClick is called whenever an object is double clicked.


TImageEnVect.OnObjectMoveResize

TImageEnVect.OnObjectMoveResize

Declaration

property OnObjectMoveResize: TIEVObjectMoveResizeEvent;

Description

OnObjectMoveResize is called whenever an object is moved or resized.


TImageEnVect.OnObjectOver

TImageEnVect.OnObjectOver

Declaration

property OnObjectOver: TIEVObjectClickEvent;

Description

OnObjectOver is called whenever the mouse is over an object.


TImageEnVect.OnPresentMeasure

TImageEnVect.OnPresentMeasure

Declaration

property OnPresentMeasure: TIEOnPresentMeasure;

Description

Occurs whenever a measure must be converted to string.


TImageEnVect.OnSelectObject

TImageEnVect.OnSelectObject

Declaration

property OnSelectObject: TNotifyEvent;

Description

Occurs whenever an object is selected or deselected.


TImageEnVect.OnTextEdit

TImageEnVect.OnTextEdit

Declaration

property OnTextEdit: TIEVTextEditEvent;

Description

Occurs whenever a text edit (memo or text) is activated.
This is like OnActivateTextEdit with more useful parameters.


TImageEnVect.OnTextEditCursorMoved

TImageEnVect.OnTextEditCursorMoved

Declaration

property OnTextEditCursorMoved: TNotifyEvent;

Description

Occurs whenever the cursor moves on text/memo editing.

Demo

Demos\Annotations\AdvancedText\AdvancedText.dpr


TImageEnVect.OnTextKeyDown

TImageEnVect.OnTextKeyDown

Declaration

property OnTextKeyDown: TKeyEvent;

Description

Occurs whenever a key is pressed inside a TEXT or MEMO object.

Example

procedure TMainForm.ImageEnVect1TextKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
// Make the Enter key cancel text input
if Key = VK_Return then
begin
Key := 0;
ImageEnVect1.CancelInteracts;
end;
end;


TImageEnVect.OnUserDeselectObject

TImageEnVect.OnUserDeselectObject

Declaration

property OnUserDeselectObject: TIEUserSelectObject;

Description

Occurs whenever user de-select an object (not the application!) by means of a mouse action.


TImageEnVect.OnUserSelectObject

TImageEnVect.OnUserSelectObject

Declaration

property OnUserSelectObject: TIEUserSelectObject;

Description

Occurs whenever user select an object (not the application!) by means of a mouse action.


TImageEnVect.OnVectorialChanged

TImageEnVect.OnVectorialChanged

Declaration

property OnVectorialChanged: TNotifyEvent;

Description

Occurs whenever an object is added, removed or modified by a user's action.


TImageEnVect.PolylineClosingMode

TImageEnVect.PolylineClosingMode

Declaration

property PolylineClosingMode : TIEPolylineClosingMode;

Description

Specifies whether a polyline is automatically closed (i.e. ObjPolylineClosed becomes true) after the user completes insertion of it, and thus becomes a polygon.
The default of iecmManual means that it only closes if you explicitly call ObjPolylineClosed=True. iecmAlways means it always closes. With iecmOnNearFinish it will close if the end position of the polyline is very close to the start.


TImageEnVect.PolylineEndingMode

TImageEnVect.PolylineEndingMode

Declaration

property PolylineEndingMode: TIEPolylineEndingMode;

Description

Specifies how terminate the insertion of a polyline. For ieemDoubleClick and ieemMouseUp the user can also click the Escape key.
Using ieemManual you must interrupt manually the inserting call CancelInteracts or setting a new value in MouseInteractVt.

Default: ieemDoubleClick (user must double-click)


TImageEnVect.RemoveAllObjects

TImageEnVect.RemoveAllObjects

Declaration

procedure RemoveAllObjects;

Description

RemoveAllObjects removes all objects.


TImageEnVect.RemoveObject

TImageEnVect.RemoveObject

Declaration

procedure RemoveObject(hobj: integer);

Description

RemoveObject removes the hobj object.

IEV_PREVIOUS_INSERTED_OBJECT can be specified for hobj to refer to the object that last inserted.
IEV_ALL_SELECTED_OBJECTS can be specified for hobj to refer to all objects that are currently selected.

Example

// Delete the objects of the specified layer
procedure DeleteObjectsOfLayer(iLayer : Integer);
var
i: integer;
ihobj: integer;
iobjLayer: integer;
begin
for i := ImageEnVect1.ObjectsCount - 1 downto 0 do
begin
ihobj := ImageEnVect1.GetObjFromIndex(i);
// if hobj is on current layer then delete the object
iobjLayer := ImageEnVect1.ObjLayer[ihobj];
if iobjLayer = iLayer then
ImageEnVect1.RemoveObject(ihobj);
end;
ImageEnVect1.Update;
end;


TImageEnVect.RemovePolygonJaggedEdges

TImageEnVect.RemovePolygonJaggedEdges

Declaration

function RemovePolygonJaggedEdges(hobj: integer): boolean;

Description

Eliminates the jagged edges from a polygon created using CreatePolygonFromEdge method. This function can smooth angles.

Returns False if fails.


TImageEnVect.RemovePolyLinePoint

TImageEnVect.RemovePolyLinePoint

Declaration

procedure RemovePolyLinePoint(hobj: integer; Index: integer);

Description

Removes point of Index from a polyline.

Example

// Remove the last point from the selected polyline
hObj := ImageEnVect1.SelObjects[ 0 ];
ImageEnVect1.RemovePolyLinePoint( hObj , ImageEnVect1.ObjPolylinePointsCount[ hObj ] - 1 );

See Also

- AddPolyLinePoint
- SetObjPolylinePoints
- ObjPolylinePoints

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.RotateAllObjects

TImageEnVect.RotateAllObjects

Declaration

procedure RotateAllObjects(angle: double; center: TIERotateCenter);

Description

Rotates all objects by the specified angle (in degrees).

If center is ierImage only 90/180/270 degrees rotations are allowed
iekBOX, iekELLIPSE, iekBITMAP, iekTEXT can be rotated only by 90/180/270 degrees
This method doesn't work with iekMEMO and curved texts
It is better to call RotateAllObjects before Proc.Rotate.

Example

// rotate the image and objects by 90 degrees
ImageEnVect1.RotateAllObjects(90, ierImage);
ImageEnVect1.Proc.Rotate(90);


TImageEnVect.RotateObject

TImageEnVect.RotateObject

Declaration

procedure RotateObject(hobj: integer; angle: double; center: TIERotateCenter);

Description

Rotates specified object by the specified angle (in degrees).

If center is ierImage only 90/180/270 degrees rotations are allowed
iekBOX, iekELLIPSE, iekBITMAP, iekTEXT can be rotated only by 90/180/270 degrees
This method doesn't work with iekMEMO and curved texts.
IEV_PREVIOUS_INSERTED_OBJECT can be specified for hobj to refer to the object that was last inserted.
IEV_ALL_SELECTED_OBJECTS can be specified for hobj to refer to all objects that are currently selected.

Example

// rotate the image and object 'hobj' by 90 degrees
ImageEnVect1.RotateObject(hobj, 90, ierImage);
ImageEnVect1.Proc.Rotate(90);


TImageEnVect.SaveObjectsToTIFF

TImageEnVect.SaveObjectsToTIFF

Declaration

procedure SaveObjectsToTIFF(const fileName: string; pageIndex: integer);

Description

This method saves all objects in the specified TIFF. This is like SaveToFileIEV, but incorporates the objects info in a tag of the TIFF file.
This method is not compatible with Wang Imaging (you must use another method to save as Wang Imaging), but allows you to save all TImageEnVect objects.
pageIndex specifies the page in a multi-page tiff used to store the objects. In this way you can store a set of objects for each tiff page.

The tag used by default is 40101. However you can change it rewriting the value in ObjectsTIFFTag public variable (defined in imageenio unit). Example:
IEGlobalSettings().ObjectsTIFFTag := 49001;

To load objects back use LoadObjectsFromTIFF.

Example

// saves the background image
ImageEnVect1.IO.SaveToFile('output.tif');
// saves the objects
ImageEnVect1.SaveObjectsToTIFF('output.tif', 0);

// loads the background image
ImageEnVect1.IO.LoadFromFile('output.tif');
// loads the objects
ImageEnVect1.LoadObjectsFromTIFF('output.tif', 0);


TImageEnVect.SaveToFileAll

TImageEnVect.SaveToFileAll

Declaration

function SaveToFileAll(const fileName: string; imageCompression: TIOFileType): Boolean;

Description

Saves all layers and vectorial objects in one single file. This is like consecutive calls to LayersSaveToXXX and SaveToFileIEV.

ImageCompression specifies how compress the background image and the layers (cannot be ioTIFF).
If ImageCompression is -1, the image is saved using an internal format which preserves pixel format and alphachannel.

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

ImageEnVect1.SaveToFileAll('file.my', ioPNG);
..
ImageEnVect1.LoadFromFileAll('file.my');

See Also

- LoadFromFileAll
- LoadFromStreamAll
- SaveToStreamAll
- LoadFromFileIEV
- SaveToFileIEV
- LoadFromStreamIEV
- SaveToStreamIEV

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.SaveToFileIEV

TImageEnVect.SaveToFileIEV

Declaration

procedure SaveToFileIEV(const FileName: string; hobj: integer = -3);

Description

Saves all objects to the specified file. The IEV format is written to save vectorial objects as lines, ellipses and bitmaps (but not background image).

hobj specifies the object to save (-3 = all objects);

Note: If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.

Example

ImageEnVect1.SaveToFileIEV('objects.iev');

See Also

- LoadFromFileIEV
- LoadFromStreamIEV
- SaveToStreamIEV
- LoadFromFileAll
- SaveToFileAll
- LoadFromStreamAll
- SaveToStreamAll
- ImportDXF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.SaveToStreamAll

TImageEnVect.SaveToStreamAll

Declaration

procedure SaveToStreamAll(Stream: TStream; imageCompression: TIOFileType);

Description

Saves all layers and vectorial objects in one single stream block. This is like consecutive calls to LayersSaveToXXX and SaveToFileIEV.

ImageCompression specifies how compress the background image and the layers (cannot be ioTIFF). If ImageCompression is -1, the image is saved using an internal format which preserves pixel format and alphachannel.
Result will be false if an unexpected error was encountered while saving (Aborting will be true).

See Also

- LoadFromFileAll
- SaveToFileAll
- LoadFromStreamAll
- LoadFromFileIEV
- SaveToFileIEV
- LoadFromStreamIEV
- SaveToStreamIEV

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.SaveToStreamIEV

TImageEnVect.SaveToStreamIEV

Declaration

procedure SaveToStreamIEV(Stream: TStream; hobj: integer = -3);

Description

Saves all objects to an IEV format stream. The IEV format is written to save vectorial objects as lines, ellipses and bitmaps (but not background image).

hobj specifies the object to save (-3 = all objects);

Example

// saves the vectorial images contained in ImageEnVect1 and ImageEnVect2 to "mappe.dat".
var
fs: TFileStream;
begin
fs := TFileStream.Create('mappe.dat', fmCreate);
ImageEnVect1.SaveToStreamIEV(fs);
ImageEnVect2.SaveToStreamIEV(fs);
fs.free;
end;

See Also

- LoadFromFileIEV
- SaveToFileIEV
- LoadFromStreamIEV
- LoadFromFileAll
- SaveToFileAll
- LoadFromStreamAll
- SaveToStreamAll
- ImportDXF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ScaleFactor

TImageEnVect.ScaleFactor

Declaration

property ScaleFactor: double;

Description

Specifies the scale factor.

In the common representation X: Y (ex. 1: 100000) is the Y value (100000).
This value, with IO.Params.DpiX and IO.Params.DpiY (and measure unit MUnit), weight the measurements of areas and line lengths.

Default: 1

Example

// Sets a scale factor of 1:100000
ImageEnVect1.ScaleFactor := 100000;


TImageEnVect.SelAllObjects

TImageEnVect.SelAllObjects

Declaration

procedure SelAllObjects;

Description

Select all objects.


TImageEnVect.SelectOnMouseDown

TImageEnVect.SelectOnMouseDown

Declaration

property SelectOnMouseDown: boolean;

Description

If True, a mouse down action selects an object, otherwise it waits mouse up to select.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.SelObjects

TImageEnVect.SelObjects

Declaration

property SelObjects[idx : integer]: integer; (Read-only)

Description

SelObjects returns the id (hobj) of idx-th selected object. The first selected object has an idx value of zero.

Returns -1 if there are no selected objects.

Example

// Sets pen color to clRed for all selected objects.
for i := 0 to ImageEnVect1.SelObjectsCount - 1 do
ImageEnVect1.ObjPenColor[ ImageEnVect1.SelObjects[i] ] := clGreen;


TImageEnVect.SelObjectsCount

TImageEnVect.SelObjectsCount

Declaration

property SelObjectsCount: integer;

Description

SelObjectsCount returns how many objects are selected.

Read-only

Example

// Sets pen color to clRed for all selected objects.
for i := 0 to ImageEnVect1.SelObjectsCount-1 do
ImageEnVect1.ObjPenColor[ ImageEnVect1.SelObjects[i] ] := clGreen;


TImageEnVect.SetObjAnglePoints

TImageEnVect.SetObjAnglePoints

Declaration

procedure SetObjAnglePoints(hobj: integer; Points: array of TPoint);

Description

Sets the three points used to define an angle objects (iekAngle).

Parameter | Description
hobj | Object handle.
Points | Array of three points used to define the angle.

Example

ImageEnVect1.ObjKind[IEV_NEXT_INSERTED_OBJECT] := iekAngle;
ImageEnVect1.SetObjAnglePoints(IEV_NEXT_INSERTED_OBJECT, [Point(10, 10), Point(50, 50), Point(10, 100)]);
ImageEnVect1.AddNewObject();


TImageEnVect.SetObjBackTo

TImageEnVect.SetObjBackTo

Declaration

procedure SetObjBackTo(hobj: integer; refobj: integer);

Description

SetObjBackTo visually moves object hobj behind refobj. That is, refobj will appear to be in front of hobj.

If refobj is -1, SetObjBackTo visually moves hobj behind all objects.
If refobj is -2, SetObjFrontOf moves the object in behind the one under it.

IEV_ALL_SELECTED_OBJECTS can be specified for hobj to refer to all objects that are currently selected.

Example

....
obj1 := AddNewObject;
....
obj2 := AddNewObject; // obj2 is over obj1
....
ImageEnVect1.SetObjFrontOf( obj1, obj2 ); // obj1 is over obj2

ImageEnVect1.SetObjBackTo( obj1, obj2 ); // now obj2 is over obj1

// Moves obj1 in front of all objects
ImageEnVect1.SetObjFrontOf(obj1, -1);

// Moves obj1 behind all other objects
ImageEnVect1.SetObjBackTo(obj1, -1);


TImageEnVect.SetObjBitmapFromFile

TImageEnVect.SetObjBitmapFromFile

Declaration

function SetObjBitmapFromFile(hobj: integer; const FileName: WideString): boolean;

Description

SetObjBitmapFromFile loads an image from FileName and assigns it to the hobj bitmap object.

It returns true if a file is successfully loaded.
This function also loads and assigns the alpha channel if present.

IEV_PREVIOUS_INSERTED_OBJECT can be specified for hobj to refer to the object that was last inserted.

Example

ImageEnVect1.SetObjBitmapFromFile(IEV_NEXT_INSERTED_OBJECT, 'image.gif' );
ImageEnVect1.ObjKind[IEV_NEXT_INSERTED_OBJECT] := iekBitmap;
ImageEnVect1.AddNewObject;


TImageEnVect.SetObjBitmapFromStream

TImageEnVect.SetObjBitmapFromStream

Declaration

function SetObjBitmapFromStream(hobj: integer; Stream: TStream; FileFormat: TIOFileType): boolean;

Description

SetObjBitmapFromStream loads an image from Stream and assigns it to the hobj bitmap object.

It returns True if a file is successfully loaded.
This function also loads and assigns the alpha channel if present.

If you set FileFormat=ioUnknown then the format is autodetected.

See also: SetObjBitmapFromFile.


TImageEnVect.SetObjBitmapICO

TImageEnVect.SetObjBitmapICO

Declaration

procedure SetObjBitmapICO(hobj: integer; ico: integer; iwidth, iheight: integer);

Description

Specifies the hobj (iekBITMAP) image as standard windows icon.
ico can be OIC_SAMPLE, OIC_HAND, OIC_QUES, OIC_BANG, OIC_NOTE, OIC_WINLOGO, OIC_WARNING, OIC_ERROR, OIC_INFORMATION (look at windows.pas).
iwidth and iheight are icon width and height.

Example

// Sets system icon OIC_HAND of 64x64 as images of next inserted object iekBITMAP
ImageEnVect1.SetObjBitmapICO(IEV_NEXT_INSERTED_OBJECT, OIC_HAND, 64, 64);


TImageEnVect.SetObjFont

TImageEnVect.SetObjFont

Declaration

procedure SetObjFont(hobj: integer; v: TFont);

Description

Specifies the font of hobj (iekTEXT) object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.


TImageEnVect.SetObjFrontOf

TImageEnVect.SetObjFrontOf

Declaration

procedure SetObjFrontOf(hobj: integer; refobj: integer);

Description

SetObjFrontOf visually moves object hobj in front of refobj.

If refobj is -1, SetObjFrontOf moves hobj in front of all objects.
If refobj is -2, SetObjFrontOf brings the object in front of the next (over it).

IEV_ALL_SELECTED_OBJECTS can be specified for hobj to refer to all objects that are currently selected.

Example

....
obj1 := AddNewObject;
....
obj2 := AddNewObject; // obj2 is over obj1
....
ImageEnVect1.SetObjFrontOf( obj1, obj2 ); // obj1 is over obj2

ImageEnVect1.SetObjBackTo( obj1, obj2 ); // now obj2 is over obj1

// Move obj1 in front of all objects
ImageEnVect1.SetObjFrontOf(obj1, -1);

// Move obj1 forward
ImageEnVect1.SetObjFrontOf(obj1, -2);

See Also

- SetObjBackTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.SetObjPolylinePoints

TImageEnVect.SetObjPolylinePoints

Declaration

procedure SetObjPolylinePoints(hobj: integer; Points: array of TPoint);

Description

SetObjPolylinePoints specifies the points that compose the polyline for the polyline object hobj.
The points are specified in bitmap coordinates.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

See Also

- ObjPolylinePoints
- AddPolyLinePoint
- RemovePolyLinePoint

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.SetObjRect

TImageEnVect.SetObjRect

Declaration

procedure SetObjRect(hobj: integer; const Rect: TRect; bMaintainAspectRatio : Boolean = False);

Description

Specifies the coordinates of hobj object.

hobj is the ID of the object. You can also specify IEV_NEXT_INSERTED_OBJECT (-1) which refers to the next object to be inserted or IEV_PREVIOUS_INSERTED_OBJECT (-2) for the last object inserted.

If bMaintainAspectRatio and hObj is a iekBITMAP type then Rect will be adjusted so that the image does not appear stretched

Example

// Add an image object from file and size it while maintaining its aspect ratio
aBitmap := TIEBitmap.Create;
try
aBitmap.Read( 'd:\002.png' );
hObj := ImageEnVect1.AddNewObject();
ImageEnVect1.ObjKind[ hObj ] := iekBITMAP;
ImageEnVect1.ObjBitmap[ hObj ] := aBitmap;
ImageEnVect1.SetObjRect( hobj, Rect( 100, 100, 200, 200 ), True );
finally
aBitmap.Free;
end;


TImageEnVect.SetObjTextCurve

TImageEnVect.SetObjTextCurve

Declaration

procedure SetObjTextCurve(hobj: integer; x, y: double);

Description

Inserts a new point into the specified curved text (iekTEXT object). Coordinates must be floating point values from 0 to 1.

Example

ImageEnVect.SetObjTextCurveShape(hobj, iecNone, 0, false); // remove old curve
ImageEnVect.SetObjTextCurve(hobj, 0, 0.1);
ImageEnVect.SetObjTextCurve(hobj, 0.1, 0.2);
ImageEnVect.SetObjTextCurve(hobj, 0.3, 0.4);
Etc..


TImageEnVect.SetObjTextCurveFromPolyline

TImageEnVect.SetObjTextCurveFromPolyline

Declaration

procedure SetObjTextCurveFromPolyline(hobj: integer; source: integer);

Description

Creates a curve (calling SetObjTextCurve) with the shape specified by the source polyline object which must be a iekPOLYLINE object.


TImageEnVect.SetObjTextCurveShape

TImageEnVect.SetObjTextCurveShape

Declaration

procedure SetObjTextCurveShape(hobj: integer; shape: TIECurve; phase: integer; dforward: boolean);

Description

Creates a curve (calling SetObjTextCurve) with the shape specified by the shape parameter.

phase : specifies the angle where the text starts on the curve (0-360)
dforward : specifies the direction of the text on the curve.

Example

ImageEnVect.SetObjTextCurveShape( hobj, iecEllipse, 90, true );


TImageEnVect.SetScaleFromPixels

TImageEnVect.SetScaleFromPixels

Declaration

procedure SetScaleFromPixels(px: integer; mm: double);

Description

SetScaleFromPixels changes the ScaleFactor property such that px pixels correspond to one mm (MUnit).

Example

// This code makes so that 100 pixels are equals to 1 meter.
ImageEnVect1.MUnit := ieuMETERS;
ImageEnVect1.SetScaleFromPixels(100, 1);


TImageEnVect.SetScaleFromSelectionLen

TImageEnVect.SetScaleFromSelectionLen

Declaration

procedure SetScaleFromSelectionLen(mm: double);

Description

SetScaleFromSelectionLen makes the perimeter of the selection region correspond to one mm (MUnit) by changing ScaleFactor property.

Example

// This computes scalefactor so that the length of the current selection measures 5 millimeters.
TImageEnVect1.MUnit := ieuMILLIMETERS;
TImageEnVect1.SetScaleFromSelectionLen(5);


TImageEnVect.ShareBitmaps

TImageEnVect.ShareBitmaps

Declaration

property ShareBitmaps: boolean;

Description

If ShareBitmaps is true, ShareBitmaps activates 'equal images' sharing.
In this mode, each image inserted with ObjBitmap is compared (pixel per pixel) with already inserted images.
If the new image is already present, it will be marked as a reference to the old image.

For these reasons each change made to a shared image will be made to all objects that use it.


TImageEnVect.SimplifyPolygon

TImageEnVect.SimplifyPolygon

Declaration

procedure SimplifyPolygon(hobj: integer; MaxPoints: integer);

Description

Approximates a high resolution polyline with a smaller low resolution polyline having fewer vertices (MaxPoints).

Example

hobj := ImageEnVect1.CreatePolygonFromEdge(100, 100, false, 25); // Creates a polygon along the edges of the image at 100, 100 position
ImageEnVect1.SimplifyPolygon(.hobj, 30); // simplify the polygon to max 30 points


TImageEnVect.StretchTextRect

TImageEnVect.StretchTextRect

Declaration

procedure StretchTextRect(hobj: integer);

Description

Stretches text rectangle to the size required to display the whole text.
Note: borders (see ObjPenWidth) can hide some text. To avoid this disable ZoomObjectsWidth.
This method works only with horizontal text and only for iekTEXT objects.

IEV_PREVIOUS_INSERTED_OBJECT can be specified for hobj to refer to the object that was last inserted.


TImageEnVect.UngroupObjects

TImageEnVect.UngroupObjects

Declaration

procedure UngroupObjects(bSelectedOnly: Boolean = True);

Description

Resets the group index of objects so they are not selected as a group.
If bSelectedOnly is true, grouping only affects objects that are selected. If false, it applies to all layers.

Example

// Remove grouping from selected objects
ImageEnVect1.UngroupObjects();
// Unselect the objects
ImageEnVect1.UnSelAllObjects();

See Also

- GroupObjects
- ObjGroupIndex

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.UnSelAllObjects

TImageEnVect.UnSelAllObjects

Declaration

procedure UnSelAllObjects;

Description

Deselects all objects.


TImageEnVect.UnSelObject

TImageEnVect.UnSelObject

Declaration

procedure UnSelObject(hobj: integer);

Description

Deselects the hobj object.


TImageEnVect.UseCentralGrip

TImageEnVect.UseCentralGrip

Declaration

property UseCentralGrip: boolean;

Description

If UseCentralGrip is true, allows the user to move an object only by using the central grip. If False, it allows the user to move an object by just clicking on it (the central grip disappears).

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnVect.ZoomObjectsWidth

TImageEnVect.ZoomObjectsWidth

Declaration

property ZoomObjectsWidth: boolean;

Description

Set ZoomObjectsWidth to apply zoom to vectorial objects (lines, boxs, ...) also.


TImageEnView.AbortTransition

TImageEnView.AbortTransition

Declaration

procedure AbortTransition;

Description

This method aborts current transition started with RunTransition.

See Also

- PrepareTransition
- RunTransition
- TransitionRunning

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.AddSelBreak

TImageEnView.AddSelBreak

Declaration

procedure AddSelBreak;

Description

AddSelBreak ends the current selection and begins a new selection.


TImageEnView.AddSelPoint

TImageEnView.AddSelPoint

Declaration

procedure AddSelPoint(x, y: Integer);

Description

AddSelPoint adds a point to the current polygonal selection.
If SelectionBase is iesbClientArea (default), all coordinates depend upon actual zoom and scrolling.
Otherwise, if SelectionBase is iesbBitmap all coordinates refer to bitmap pixels.

Use EndSelect to terminate selection by code.

Example

// Create a polygon selection from an array of TPoints
for I := Low( MyPolySelArray ) to High( MyPolySelArray ) do
ImageEnView1.AddSelPoint( MyPolySelArray[ I ].x, MyPolySelArray[ I ].y );
ImageEnView1.EndSelect();

See Also

- EndSelect
- PolySel
- PolySelPoints

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.AlphaChannel

TImageEnView.AlphaChannel

Declaration

property AlphaChannel: TIEBitmap;

Description

Some formats like GIF, PNG, PSD, TIFF, ICO, CUR and TGA contain an alpha channel that specifies the image's transparency.
The alpha channel is stored in the AlphaChannel property and in IEBitmap.AlphaChannel property.


TImageEnView.AnimPolygonAddPt

TImageEnView.AnimPolygonAddPt

Declaration

procedure AnimPolygonAddPt(ap: pointer; x, y: Integer);

Description

Adds a new point to the polygon ap.
x, y are the point coordinates (bitmap based).


TImageEnView.AnimPolygonClear

TImageEnView.AnimPolygonClear

Declaration

procedure AnimPolygonClear(ap: pointer);

Description

Removes all points of the specified polygon.


TImageEnView.AnimPolygonDel

TImageEnView.AnimPolygonDel

Declaration

procedure AnimPolygonDel(ap: pointer);

Description

Removes the animated polygon ap (value returned from AnimPolygonNew).


TImageEnView.AnimPolygonNew

TImageEnView.AnimPolygonNew

Declaration

function TImageEnView.AnimPolygonNew(VColor1, VColor2: TColor; VAnimated: Boolean; VSizeable: Boolean): pointer;

Description

Creates a new animated polygon.

VColor1 and VColor2 specify the two colors of animation.
Set VAnimated to True to animate the polygon
Set VSizeable to True to allow resizing of the polygon.

Returns an index of the new polygon.


TImageEnView.ApplyBitmapToSelection

TImageEnView.ApplyBitmapToSelection

Declaration

procedure ApplyBitmapToSelection(SrcBitmap: TBitmap; MaintainAspectRatio: Boolean = True; CanStretch: Boolean = False);
procedure ApplyBitmapToSelection(SrcBitmap: TIEBitmap; MergeAlpha: Boolean = True; MaintainAspectRatio: Boolean = True; CanStretch: Boolean = False);

Description

Applies a bitmap to the selected region, stretching the image to the selection size.
MergeAlpha will merge the alpha channel of the pasted bitmap with the background bitmap.
If MaintainAspectRatio is False the inserted image will fill the entire selection. Set MaintainAspectRatio to true to maintain the aspect ratio of the original bitmap. CanStretch determines whether a source image smaller than the selection is enlarged or maintains its original size.

Note: CanStretch has no effect if MaintainAspectRatio is False (image will always be stretched)

Example

// Flip just the selected portion of the image
aIEBitmap := TIEBitmap.create;
ImageEnView1.CopySelectionToBitmap( aIEBitmap );
aIEBitmap.Flip( fdVertical );
ImageEnView1.ApplyBitmapToSelection( aIEBitmap );
aIEBitmap.Free;

// PARAMETER CHANGE EXAMPLES
// Load Source Image
aIEBitmap.Read( 'C:\Source.png' );

ImageEnView1.ApplyBitmapToSelection( aIEBitmap, True, False, False );

ImageEnView1.ApplyBitmapToSelection( aIEBitmap, True, True, False );

ImageEnView1.ApplyBitmapToSelection( aIEBitmap, True, True, True );

See Also

- CopySelectionToBitmap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.Assign

TImageEnView.Assign

Declaration

procedure Assign(Source: TObject); reintroduce; overload;

Description

Copy the content of a TBitmap, TIEBitmap, TImageEnView or TImageEnVect to the current control.

Example

// Copy content from another TImageEnView, including layers and IO params
ImageEnView1.Assign(ImageEnView2);

// Copy only the image of another TImageEnView
ImageEnView1.Assign(ImageEnView2.IEBitmap);

See Also

- CopyAllObjectsTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.AssignSelTo

TImageEnView.AssignSelTo

Declaration

procedure AssignSelTo(Dest: TPersistent);

Description

Assigns the selected area to the Dest object (can be a TImageEnView, TBitmap or TImage).

Example

// Create a triangular selection
ImageEnView1.Deselect;
ImageEnView1.AddSelPoint(100, 100);
ImageEnView1.AddSelPoint(200, 100);
ImageEnView1.AddSelPoint(150, 50);
ImageEnView1.EndSelect;

// assign selection to ImageEnView2
ImageEnView1.AssignSelTo( ImageEnView2 );

// assign selection to mybitmap (TBitmap)
ImageEnView1.AssignSelTo( mybitmap );


TImageEnView.AutoCursors

TImageEnView.AutoCursors

Declaration

property AutoCursors: Boolean;

Description

When AutoCursors is enabled ImageEn will automatically change the cursor when relevant:
- crIEHandDrag when the mouse can be dragged (miScroll in TImageEnView.MouseInteract)
- crIESizeNWSE/crIESizeNESW/crIESizeWE/crIESizeNS when resizing a layer
- crIERotateSE/crIERotateNE/crIERotateSW/crIERotateNW when rotating a layer
- crIESizeAll when moving a layer

Default: True

See Also

- Cursor

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.AutoFit

TImageEnView.AutoFit

Declaration

property AutoFit: Boolean;

Description

If AutoFit is True and the image is updated (Update method) then Fit is automatically called to make the image fit within the display area (stretch if it is smaller than the window, shrink if it is larger).

This has the same effect as setting both AutoStretch and AutoShrink to true.

Example

procedure TForm1.chkAutoFitClick(Sender: TObject);
begin
ImageEnView1.AutoFit := chkAutoFit.Checked;
if not chkAutoFit.Checked then
ImageEnView1.Zoom := 100
else
ImageEnView1.Fit();
end;

See Also

- loFitToLayersWhenZooming

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.AutoShrink

TImageEnView.AutoShrink

Declaration

property AutoShrink: Boolean;

Description

When enabled the following display rules are used:
- If an image is bigger than TImageEnView window it is shrunk to fit;
- If an image is smaller than TImageEnView window it is displayed 100%

Example

procedure TForm1.chkAutoShrinkClick(Sender: TObject);
begin
ImageEnView1.AutoShrink := chkAutoShrink.Checked;
if not chkAutoShrink.Checked then
ImageEnView1.Zoom := 100
else
ImageEnView1.Fit();
end;

See Also

- AutoStretch
- AutoFit
- loFitToLayersWhenZooming

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.AutoStretch

TImageEnView.AutoStretch

Declaration

property AutoStretch: Boolean;

Description

When enabled the following display rules are used:
- If an image is bigger than TImageEnView window it is displayed 100%;
- If an image is smaller than TImageEnView window it is stretched to fit

Example

procedure TForm1.chkAutoStretchClick(Sender: TObject);
begin
ImageEnView1.AutoStretch := chkAutoStretch.Checked;
if not chkAutoStretch.Checked then
ImageEnView1.Zoom := 100
else
ImageEnView1.Fit();
end;

See Also

- AutoShrink
- AutoFit
- loFitToLayersWhenZooming

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.BackBuffer

TImageEnView.BackBuffer

Declaration

property BackBuffer: TBitmap;

Description

Provides access to the back buffer where ImageEn will draw the image (and layers) prior to the paint event.
You can draw on BackBuffer by handling the OnDrawBackBuffer event to paint onto the Backbuffer canvas.
BackBuffer is updated whenever Update is called.

Example

Procedure Form1OnDrawBackBuffer(Sender: TObject);
Begin
With ImageEnView1.BackBuffer.Canvas do
begin
Pen.Color := clRed;
MoveTo( 0, 0 );
LineTo( 100, 100 );
End;
End;


TImageEnView.Background

TImageEnView.Background

Declaration

property Background: TColor;

Description

Specifies the background color, which is shown in the unoccupied area of the window (when the current image is smaller than the ImageEnView).
This color is used also in geometric processing (such as rotation) to fill blank areas.

If you change the background color after the component has been created (at runtime) , you won't see the change because the bitmap overlaps the background.
For this reason, to change background color at runtime you must:

- empty Layer1 bitmap:
ImageEnView.Blank;
ImageEnView.Background := clRed;

- or fill the bitmap using the color you want:
ImageEnView.Proc.Fill(clRed);

Note: This value may be overridden if EnableTheming is enabled.

Default: clBtnFace

Example

// Rotate of 30 degrees and fill blank spaces with clBlack color
ImageEnView1.Background := clBlack;
ImageEnView1.Proc.Rotate(30, False);

See Also

- BackgroundStyle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.BackgroundStyle

TImageEnView.BackgroundStyle

Declaration

property BackgroundStyle: TIEBackgroundStyle;

Description

Specifies the style of the image background (the region of the ImageEnView window that is not filled by the image).

Example

ImageEnView1.BackgroundStyle := iebsPhotoLike;

See Also

- Background
- GradientEndColor
- Wallpaper
- WallpaperStyle

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.BeginPostFrames

TImageEnView.BeginPostFrames

Declaration

procedure BeginPostFrames(target: TImageEnView; delay: Integer; interval: Integer);

Description

Sends the current image to a target TImageEnView, after "delay" milliseconds and then after each "interval" milliseconds.
This is useful to display captured frames to another control with delay (See the VideoCapture\DirectShow5 demo).
You can (but don't need to) end frame sending by calling EndPostFrames.

Multiple calls to BeginPostFrames are possible.

Example

// send the current image to ImageEnView2 after 5 seconds, and to ImageEnView3 after 10 seconds, at 50 ms for each frame
ImageEnView1.BeginPostFrames(ImageEnView2, 5000, 50);
ImageEnView1.BeginPostFrames(ImageEnView3, 10000, 50);


TImageEnView.Bitmap

TImageEnView.Bitmap

Declaration

property Bitmap: TBitmap;

Description

Bitmap contains the image (current layer) to display.
If LegacyBitmap is True, IEBitmap is just a wrapper for TBitmap that may be accessed using the Bitmap property.


TImageEnView.Blank

TImageEnView.Blank

Declaration

procedure Blank;

Description

Resets the image size to 1x1 (Width x Height).

Note: Blank also calls Clear

Comparison of Methods

Method | Description
Clear | Fills the current image with the Backgroundbackground color and removes the alpha channel
Blank | Calls Clear and resets the image size to 1 x 1
LayersClear | Removes all of the Layerslayers
ClearAll | Resets the image (calling Blank) and removes all layers (calling LayersClear)

Example

ImageEnView1.IO.LoadFromFile('image.tif'); // Load image
...
ImageEnView1.Blank; // free memory

See Also

- LayersClear
- Clear
- ClearAll

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.Center

TImageEnView.Center

Declaration

property Center: boolean;

Description

If Center is True, the image is displayed in the center of the ImageEnViews client area.

Default: True, which is equivalent to ImageHorizAlignment = iehCenter and ImageVertAlignment = ievCenter.

See Also

- ImageHorizAlignment
- ImageVertAlignment

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.CenterImage

TImageEnView.CenterImage

Declaration

procedure CenterImage;

Description

If the image is larger than the component client area, CenterImage will scroll the image so that it is centered.


TImageEnView.ChangeResolution

TImageEnView.ChangeResolution

Declaration

procedure ChangeResolution(NewDPI: Integer; ResampleFilter: TResampleFilter);

Description

Modifies the DPI of the image (IO.Params.DpiX and IO.Params.DpiY), resampling it and setting the new DPI values.

Note: You should ensure the source DPI contains valid values before calling ChangeResolution. This method has no effect if DPI is 0.

Example

// load input.jpg which has 100 dpi
ImageEnView1.IO.LoadFromFile('C:\input.jpg');
// we want 75 dpi
ImageEnView1.ChangeResolution(75, rfTriangle);
// save back as 75 dpi
ImageEnView1.IO.SaveToFile('C:\output.jpg');


TImageEnView.Clear

TImageEnView.Clear

Declaration

procedure Clear;

Description

Fills the current image with the Background color.

Comparison of Methods

Method | Description
Clear | Fills the current image with the Backgroundbackground color and removes the alpha channel
Blank | Calls Clear and resets the image size to 1 x 1
LayersClear | Removes all of the Layerslayers
ClearAll | Resets the image (calling Blank) and removes all layers (calling LayersClear)

Example

// Clear the image
ImageEn1.Background := clWhite;
ImageEn1.Clear;

// Clear the top-most layer
ImageEnView1.LayersCurrent := ImageEnView1.LayersCount - 1;
ImageEnView1.Clear;

See Also

- Blank
- ClearAll

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ClearAll

TImageEnView.ClearAll

Declaration

procedure ClearAll;

Description

Removes all content from the control, by removing all layers (with LayersClear) and resetting the background image (with Blank).

Comparison of Methods

Method | Description
Clear | Fills the current image with the Backgroundbackground color and removes the alpha channel
Blank | Calls Clear and resets the image size to 1 x 1
LayersClear | Removes all of the Layerslayers
ClearAll | Resets the image (calling Blank) and removes all layers (calling LayersClear)

Example

ImageEn1.ClearAll;

See Also

- LayersClear
- Clear
- Blank

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.CopyFromPolygon

TImageEnView.CopyFromPolygon

Declaration

procedure CopyFromPolygon(Source: TBitmap; const Polygon: array of TPoint; PolygonLen: Integer; const Position: TPoint);

Description

CopyFromPolygon copies a region (Polygon) of source bitmap to current image.
CopyFromPolygon enlarges current bitmap when needed.

Parameter | Description
Source | Source bitmap
Polygon | Array of polygon vertexes (pixel coordinates related to Source bitmap)
PolygonLen | Number of vertexes in polygon
Position | Destination point (pixel coordinate related to current image). The destination point is the top-left side of the rectangle that encloses source polygon

Example

// Copies current selected area of ImageEnView1 to ImageEnView2 at position 0, 0
ImageEnView2.CopyFromPolygon(ImageEnView1.Bitmap, ImageEnView1.PolySelPoints^, ImageEnView1.PolySelCount, Point(0, 0));

// Copies the rect 0, 0, 100, 100 in ImageEnView2 at position 0, 0
ImageEnView2.CopyFromPolygon(ImageEnView1.Bitmap, [Point(0, 0), Point(100, 0), Point(100, 100), Point(0, 100)], 4, Point(0, 0));

// Copies current selection to ImageEnView2. Then enhance contrast of ImageEnView2 and copy back to ImageEnView1 (in some selection).
ImageEnView2.CopyFromPolygon(ImageEnView1.Bitmap, ImageEnView2.PolySelPoints^, ImageEnView2.PolySelCount, Point(0, 0));
ImageEnView2.Proc.Contrast(30);
ImageEnView2.CopyToPolygon(ImageEnView1.Bitmap, ImageEnView1.PolySelPoints^, ImageEnView1.PolySelCount, Point(0, 0));
ImageEnView1.Update;


TImageEnView.CopySelectionToBitmap

TImageEnView.CopySelectionToBitmap

Declaration

procedure CopySelectionToBitmap(DestBitmap: TBitmap; FillBackground: Boolean = True); overload;
procedure CopySelectionToBitmap(DestBitmap: TIEBitmap; FillBackground: Boolean = True); overload;

Description

Copies the current selection to the specified bitmap.

If FillBackground is enabled, then non-selected areas of the copied rectangle of the image will be filled with the background color. Otherwise, it is transferred as alpha.

Examples

// Overload 1
ImageEnView1.CopySelectionToBitmap( ImageEnView2.Bitmap );

// Overload 2
ImageEnView1.CopySelectionToBitmap( ImageEnView2.IEBitmap );

// If an area of the image is selected, print the selection, otherwise print the whole image
procedure TForm1.PrintImageClick(Sender: TObject);
var
bmp: TIEBitmap;
IO: TImageEnIO;
begin
if ImageEnView1.Selected = False then
ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog, '' )
else
begin
bmp := TIEBitmap.Create;
IO := TImageEnIO.CreateFromBitmap( bmp );
try
ImageEnView1.CopySelectionToBitmap( bmp );
IO.DoPrintPreviewDialog( iedtDialog, '' );
finally
IO.Free;
bmp.Free;
end;
end;
end;

See Also

- ApplyBitmapToSelection

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.CopyToBitmapWithAlpha

TImageEnView.CopyToBitmapWithAlpha

Declaration

procedure TImageEnView.CopyToBitmapWithAlpha(Dest: TBitmap; DestX, DestY: Integer);

Description

Copies the current image to the Dest bitmap, at DestX, DestY position.
If the image has an alpha channel, CopyToBitmapWithAlpha copies only the visible area.

Note: An exception will be raised if the image does not have an alpha channel.

Example

ImageEnView1.CopyToBitmapWithAlpha( ImageEnView2.Bitmap, 0, 0);
ImageEnView2.Update;


TImageEnView.CopyToPolygon

TImageEnView.CopyToPolygon

Declaration

procedure CopyToPolygon(Dest: TBitmap; const Polygon: array of TPoint; PolygonLen: Integer; const Position: TPoint);

Description

CopyToPolygon copies a region (Polygon) of current image inside Dest bitmap.

Polygon is an array of TPoint (pixel coordinates related to Dest bitmap) and PolygonLen is the number of point in Polygon.
Position is the source point (pixel coordinate related to current image). The source point is the top-left side of the rectangle that encloses destination polygon.
CopyToPolygon enlarges destination bitmap when needed.

Example

// Copies current selection to ImageEnView2. Then enhance contrast of ImageEnView2 and copy back to ImageEnView1 (in some selection).
ImageEnView2.CopyFromPolygon(ImageEnView1.Bitmap, ImageEnView2.PolySelPoints^, ImageEnView2.PolySelCount, Point(0, 0));
ImageEnView2.Proc.Contrast(30);
ImageEnView2.CopyToPolygon(ImageEnView1.Bitmap, ImageEnView1.PolySelPoints^, ImageEnView1.PolySelCount, Point(0, 0));
ImageEnView1.Update;


TImageEnView.CropToolInteraction

TImageEnView.CropToolInteraction

Declaration

property CropToolInteraction: TIECropToolInteraction;

Description

Provides access to the methods and properties of the TIECropToolInteraction class, which is used when MouseInteract is miCropTool.

The crop tool allows the user to select an area of the image to keep and then click "Enter" to apply the crop. The selection can also be rotated so the image is rotated and then cropped.

In Crop Tool mode:
- User can resize crop box by dragging grips
- User can rotate crop by dragging outside grips
- User can click "Enter" to enact the crop
- User can click "Esc" to cancel the crop

Rotated Crop

Perspective Fix

Demo

Demos\ImageEditing\CropTool\CropTool.dpr

Example

// Disable guide lines (on image thirds)
ImageEnView1.CropToolInteraction.DrawGuides := False;

// Make larger grips
ImageEnView1.CropToolInteraction.GripSize := 12;

// High quality cropping
ImageEnView1.CropToolInteraction.AntialiasMode := ierBicubic;

// Enable crop mode
ImageEnView1.MouseInteract := [miCropTool];

// Enact crop (same as user clicking "Enter")
ImageEnView1.CropToolInteraction.Crop();

// Cancel crop tool (same as user clicking "Esc")
ImageEnView1.CropToolInteraction.Cancel();


TImageEnView.CurrentLayer

TImageEnView.CurrentLayer

Declaration

property CurrentLayer: TIELayer;

Description

Provides access to the currently active layer.

This is equivalent to:
ImageEnView.Layers[ ImageEnView.LayersCurrent ]

See the Layers property for more info.

Note: Use LayersCurrent to get or set the current layer index. Use CurrentLayer to return the layer object.

Example

ImageEnView.LayersAdd;
ImageEnView.CurrentLayer.Transparency := 200;

// Remove the fill from the current layer
ImageEnView1.CurrentLayer.FillColor := clNone;
ImageEnView1.Update();


TImageEnView.Cursor

TImageEnView.Cursor

Declaration

property Cursor: TCursor;

Description

Specifies the image used for the mouse pointer when it passes over the control.

Note: If you have enabled AutoCursors then ImageEn will automatically change the cursor when relevant.

ImageEn Cursors

Constant | Value | Cursor
crIEZoomOut | 1778 |
crIEZoomIn | 1779 |
crIEThickCross2 | 1780 |
crIEEraser | 1781 |
crIEHandDrag | 1782 |
crIEPencil | 1783 |
crIECross | 1784 |
crIECrossSight | 1785 |
crIESizeNWSE | 1786 |
crIESizeNS | 1787 |
crIESizeNESW | 1788 |
crIESizeWE | 1789 |
crIESizeAll | 1790 |
crIECrossSightPlus | 1791 |
crIECrossSightMinus | 1792 |
crIEThickCross | 1793 |
crIEThickCrossPlus | 1794 |
crIECrossSightMinus2 | 1795 |
crIECrossSightMinus3 | 1796 |
crIEBrush | 1797 |
crIEEyeDropper3 | 1798 |
crIEPaintFill | 1799 |
crIEStamp | 1800 |
crIECrop | 1801 |
crIECrossSmallPlus | 1802 |
crIESmallArrow | 1803 |
crIEMultipleArrow | 1804 |
crIEEyeDropper2 | 1805 |
crIEEyeDropper | 1806 |
crIECut | 1807 |
crIESelectArrow | 1808 |
crIEPen | 1809 |
crIEPlusMinus | 1810 |
crIERotateNE | 1811 |
crIERotateSW | 1812 |
crIERotateNW | 1813 |
crIERotateSE | 1814 |

System Cursors

Constant | Value | Cursor
crNone | -1 |
crArrow | -2 |
crCross | -3 |
crIBeam | -4 |
crSizeNESW | -6 |
crSizeNS | -7 |
crSizeNWSE | -8 |
crSizeWE | -9 |
crUpArrow | -10 |
crHourGlass | -11 |
crDrag | -12 |
crNoDrop | -13 |
crHSplit | -14 |
crVSplit | -15 |
crMultiDrag | -16 |
crSQLWait | -17 |
crNo
 | -18 |
crAppStart | -19 |
crHelp | -20 |
crHandPoint | -21 |
crSizeAll | -22 |


TImageEnView.DelayDisplaySelection

TImageEnView.DelayDisplaySelection

Declaration

property DelayDisplaySelection: Boolean

Description

When True, the selection is displayed with a delay. This allows you to quickly navigate the image (zoom and scroll) and once you have finished navigation the selection is displayed.


TImageEnView.DelayTimer

TImageEnView.DelayTimer

Declaration

property DelayTimer: Integer;

Description

ImageEn has a timer that decrements a counter at each tick (you can set the tick delay using DelayTimer property).
This timer controls the selection animation and the application of filters on scrolling (when DelayZoomFilter is True).
If you set negative values DelayTimer changes its behavior. Negative values represent the maximum CPU time that ImageEn can use to show selections. For example setting:
ImageEnView.DelayTimer := -10;
ImageEn will not use much more than 10% of the CPU time.

The default DelayTimer's value is -20 (maximum 20% of the CPU time).


TImageEnView.DelayZoomFilter

TImageEnView.DelayZoomFilter

Declaration

property DelayZoomFilter: Boolean

Description

If DelayZoomFilter is True, the zoom filter (which enhances the display quality) is only applied after a delay.
This allows you to quickly navigate the image (zoom and scroll) and once the navigation has finished the image will be displayed at best quality.

See Also

- LayersFastDrawing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.DelayZoomTime

TImageEnView.DelayZoomTime

Declaration

property DelayZoomTime: Integer;

Description

ImageEn has a timer that decrements a counter at each tick (you can set the tick delay using DelayTimer property). This timer controls the selection animation and the application of filters on scrolling (when DelayZoomFilter is true).
DelayZoomTime controls only the delay zoom filter application.

Default: 4 (apply filter after 4 ticks since last scroll)


TImageEnView.DelLastSelPoint

TImageEnView.DelLastSelPoint

Declaration

procedure DelLastSelPoint();

Description

Removes the last inserted selection point.

Example

// Pressing ESC removes last polygon point (when MouseInteract = [miSelectPolygon])
procedure TForm1.ImageEnVect1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then
ImageEnView1.DelLastSelRegion();
end;


TImageEnView.Deselect

TImageEnView.Deselect

Declaration

procedure Deselect;

Description

This method removes current selection. After Deselect is called, the Selected property will be false.


TImageEnView.DiscardSavedSelection

TImageEnView.DiscardSavedSelection

Declaration

function DiscardSavedSelection: boolean;

Description

Removes the last saved selection from the stack (saved using SaveSelection).
You can use this method if you don't want to restore the saved selection.


TImageEnView.DisplayGridKind

TImageEnView.DisplayGridKind

Declaration

property DisplayGridKind: TIEGridKind;

Description

Enables the display of helper lines over the image.
Item | Description
iedgNone | No guide lines are shown
iedgPixelGrid | A grid is shown marking each pixel when the image is zoomed in (e.g. for pixel editing in an image editor)
iedgGuideLines | Guide lines are shown horizontally and vertically over the image (e.g. to help align objects when rotating)

Examples

// Draw a grid to show pixels when we zoom above 500%
IEGlobalSettings().GridPen.Color := clSilver;
IEGlobalSettings().GridPen.Style := psSolid;
IEGlobalSettings().GridPen.Mode := pmNot;
IEGlobalSettings().MinZoomDisplayGrid := 500;
ImageEnView1.DisplayGridKind := iedgPixelGrid;

// Enable guide lines to help line up images when manually rotating
IEGlobalSettings().GridPen.Color := clSilver;
IEGlobalSettings().GridPen.Style := psDot;
IEGlobalSettings().GridPen.Mode := pmCopy;
IEGlobalSettings().GuidelineCount := 4;
ImageEnView1.DisplayGridKind := iedgGuideLines;

See Also

- MinZoomDisplayGrid
- GridPen
- GridMajorStep
- GuidelineCount
- DisplayGridLyr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.DisplayGridLyr

TImageEnView.DisplayGridLyr

Declaration

property DisplayGridLyr: Integer;

Description

Specifies where to draw the grid if DisplayGridKind is iedgPixelGrid.
-1 : current layer (default behavior)
>= 0 : specific layer

See Also

- DisplayGridKind
- MinZoomDisplayGrid
- GridPen
- GridMajorStep

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.DrawTo

TImageEnView.DrawTo

Declaration

procedure DrawTo(Canvas: TCanvas);

Description

This method draws the current view to the specified Canvas.

Note: The background is not painted, and the image has an up-left alignment.

Example

// draw in ImageEn2 all what is displayed in ImageEnView1
ImageEnView1.DrawTo(ImageEnView2.Bitmap.Canvas);
ImageEnView2.Update;


TImageEnView.DrawVersion

TImageEnView.DrawVersion

Declaration

property DrawVersion: Boolean;

Description

When DrawVersion is True, the ImageEn version and release date are displayed on bottom-left side of the ImageEnView window.


TImageEnView.EnableAlphaChannel

TImageEnView.EnableAlphaChannel

Declaration

property EnableAlphaChannel: Boolean;

Description

If EnableAlphaChannel is True, ImageEn uses the alpha channel to display the image.
Some formats like Gif, Png, Tiff, Ico, Cur and Tga contain an alpha channel that specifies the image's transparency.
The alpha channel is stored in the AlphaChannel property (a TIEBitmap object) and in TIEBitmap.AlphaChannel property.


TImageEnView.EnableInteractionHints

TImageEnView.EnableInteractionHints

Declaration

property EnableInteractionHints: Boolean;

Description

When true, mouse interaction hints are displayed to the user (rotation angle of a layer, position when moving, etc.).

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.EnableShiftKey

TImageEnView.EnableShiftKey

Declaration

property EnableShiftKey: Boolean;

Description

Enables Shift key functionality (holding down the Shift key to insert multiple selections).

Default: true

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.EndPostFrames

TImageEnView.EndPostFrames

Declaration

procedure EndPostFrames(target: TImageEnView);

Description

Stops sending of the current image to a target TImageEnView that has been commenced using BeginPostFrames.

Example

ImageEnView1.EndPostFrames(ImageEnView2);
ImageEnView1.EndPostFrames(ImageEnView3);


TImageEnView.EndSelect

TImageEnView.EndSelect

Declaration

procedure EndSelect;

Description

Terminates a selection specified by code using the AddSelPoint and AddSelBreak methods.

Example

ImageEnView1.AddSelPoint(0, 0);
ImageEnView1.AddSelPoint(100, 100);
ImageEnView1.AddSelPoint(50, 50);
ImageEnView1.EndSelect;


TImageEnView.ExtentX

TImageEnView.ExtentX

Declaration

property ExtentX: integer; (Read-only)

Description

Returns the width of the area used to show the current image (i.e. the width of the image as it appears onscreen).

Example

// Copy the actual view of ImageEnView1 as the current image
ImageEnView2.Bitmap.Width := ImageEnView1.ExtentX;
ImageEnView2.Bitmap.Height := ImageEnView1.ExtentY;
ImageEnView1.DrawTo(ImageEnView2.Bitmap.Canvas);

See Also

- ExtentY
- ViewX
- XScr2Bmp
- VisibleBitmapRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ExtentY

TImageEnView.ExtentY

Declaration

property ExtentY: integer; (Read-only)

Description

Returns the height of the area used to show the current image (i.e. the height of the image as it appears onscreen).

Example

// Copy the actual view of ImageEnView1 as the current image of ImageEnView2
ImageEnView2.Bitmap.Width := ImageEnView1.ExtentX;
ImageEnView2.Bitmap.Height := ImageEnView1.ExtentY;
ImageEnView1.DrawTo(ImageEnView2.Bitmap.Canvas);

See Also

- ExtentX
- ViewY
- YScr2Bmp
- VisibleBitmapRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.FindLayerAt

TImageEnView.FindLayerAt

Declaration

function FindLayerAt(x, y: Integer; SelectablesOnly: Boolean = true): Integer;

Description

Returns the index of the layer at position x, y (in client area coordinates).
If SelectablesOnly is true, it won't return any layer which isn't selectable.
Returns -1 if no layer was found.


TImageEnView.Fit

TImageEnView.Fit

Declaration

procedure Fit(StretchSmall : Boolean = True);

Description

This method adjusts Zoom so that the image fits within the client area of the component (while respecting the aspect ratio).
If StretchSmall is false, then images that are smaller than the window are shown 1:1 (i.e. are not zoomed more than 100%).

Example

// Display the entire image (including outlying layers) within the view
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loFitToLayersWhenZooming ];
ImageEnView1.Fit( False );

See Also

- FitToHeight
- FitToWidth
- loFitToLayersWhenZooming
- Stretch

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.FitToHeight

TImageEnView.FitToHeight

Declaration

procedure FitToHeight;

Description

FitToHeight adjust the image display size (Zoom) so that it fits within the height of the control window.

See Also

- Fit
- FitToWidth
- loFitToLayersWhenZooming
- Stretch

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.FitToWidth

TImageEnView.FitToWidth

Declaration

procedure FitToWidth;

Description

FitToWidth adjust the image display size (Zoom) so that it fits within the width of the control window.

See Also

- Fit
- FitToHeight
- loFitToLayersWhenZooming
- Stretch

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.FlatScrollBars

TImageEnView.FlatScrollBars

Declaration

property FlatScrollBars: Boolean;

Description

Specifies whether the component's scroll bars are flat.
ImageEn only supports flat scroll bars if the system comctl32.dll is version 472 or later.
This property must be set at Design Time (has not effect at run-time)


TImageEnView.ForceALTkey

TImageEnView.ForceALTkey

Declaration

property ForceALTkey: Boolean;

Description

Set ForceALTkey to True to emulate pressing the ALT key.
When enabled (or the Alt key is pressed) the aspect ratio is maintained when making or modifying selections (or with vectorial objects for the TImageEnVect component).

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.Gestures

TImageEnView.Gestures

Declaration

property Gestures: TIEViewerGestures;

Description

TImageEnView supports native Windows gestures:
- Dragging the screen to pan an image
- Pinching to zoom in
- Reverse-pinching to zoom out
- Layer rotation and movement

ImageEn automatically handles the Windows gesture events, so adding gesture support to your applications requires only that you enable the relevant Gesture property.

Demo

Demos\Display\Gestures\Gestures.dpr

Example

// enable Pan (scroll) and Zoom gestures
ImageEnView1.Gestures.Pan.Enabled := True;
ImageEnView1.Gestures.Zoom.Enabled := True;


TImageEnView.GetGripAt

TImageEnView.GetGripAt

Declaration

function GetGripAt(x, y: Integer): TIEGrip;

Description

Returns the selection grip at mouse position specified by x, y (or ieNone if a grip is not found).


TImageEnView.GetIdealZoom

TImageEnView.GetIdealZoom

Declaration

function TImageEnView.GetIdealZoom: Double;

Description

Returns the best zoom value to stretch the image to fit within the component.

Note: If the image is empty, result will be zero.

Example

// Both the following code snippets will have the same result
ImageEnView.Zoom := ImageEnView.GetIdealZoom;

// or
ImageEnView.Fit;

See Also

- loFitToLayersWhenZooming

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.GetMaxViewXY

TImageEnView.GetMaxViewXY

Declaration

procedure GetMaxViewXY(var mx, my: integer);

Description

Returns the maximum values for ViewX and ViewY (which will fill the mx and my vars). I.e. this is the maximum that the image can be programatically scrolled.


TImageEnView.GetRenderRectangles

TImageEnView.GetRenderRectangles

Declaration

procedure GetRenderRectangles(var xDst, yDst, dxDst, dyDst: integer; var xSrc, ySrc, dxSrc, dySrc: integer);

Description

Returns the rendered rectangle related to the client area and the source rectangle related to the bitmap of current layer.

xDst, yDst, dxDst, dyDst : the destination x, y and width, height where the image has been rendered

xSrc, ySrc, dxSrc, dySrc : the source x, y and width, height of the source image.


TImageEnView.GetSelectionGripStyle

TImageEnView.GetSelectionGripStyle

Declaration

procedure GetSelectionGripStyle(var GripColor1: TColor; var GripColor2: TColor; var GripBrushStyle: TBrushStyle; var GripSize: integer; var ExtendedGrips: boolean; var Shape: TIEGripShape);

Description

GetSelectionGripStyle returns properties which determines the appearance of selection grips.

Parameter | Description
GripColor1 | grip border color (default clBlack)
GripColor2 | grip brush color (default clWhite)
GripBrushStyle | brush style (default bsSolid)
GripSize | size in pixels of the grip (default 5)
ExtendedGrips | if true enables grips on border with 8 resizing grips (default: false)
Shape | specifies the grip shape

Use SetSelectionGripStyle to set current values.


TImageEnView.GradientEndColor

TImageEnView.GradientEndColor

Declaration

property GradientEndColor: TColor

Description

Specifies the ending color of the gradient when BackgroundStyle is iebsGradient. The gradient start color is set using Background.

Note: This value may be overridden if EnableTheming is enabled.

Default: clBtnShadow

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.HasAlphaChannel

TImageEnView.HasAlphaChannel

Declaration

property HasAlphaChannel: Boolean; (Read-only)

Description

Returns True if the current image has an alpha channel.


TImageEnView.HighlightedPixel

TImageEnView.HighlightedPixel

Declaration

property HighlightedPixel: TPoint;

Description

Specify a pixel within your image and it will be highlighted by a colored box (to draw attention to it).

Set it to (-1, -1) to disable.

Demo

Demos\Display\ImageComp\ImageComp.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.HighlightedPixelColor

TImageEnView.HighlightedPixelColor

Declaration

property HighlightedPixelColor: TColor;

Description

Colored box color.

See Also

- HighlightedPixel

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.HScrollBarParams

TImageEnView.HScrollBarParams

Declaration

property HScrollBarParams: TIEScrollBarParams;

Description

The HScrollBarParams property allows an application to customize the horizontal scroll bar behavior, including tracking (display refresh on mouse dragging), left/right buttons pixel scrolling, pageleft/pageright pixel scrolling.

Example

// disable tracking
ImageEnView1.HScrollBarParams.Tracking := False;


TImageEnView.IdealComponentHeight

TImageEnView.IdealComponentHeight

Declaration

property IdealComponentHeight: integer; (Read-only)

Description

Returns the height that the TImageEnView component should be to exactly fit the current image.

Example

// Resize ImageEnView to fully contains Carlotta.jpg
ImageEnView.LoadFromFile('C:\Carlotta.jpg');
ImageEnView1.Width := ImageEnView1.IdealComponentWidth;
ImageEnView1.Height := ImageEnView1.IdealComponentHeight;

See Also

- loFitToLayersWhenZooming
- IdealComponentWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.IdealComponentWidth

TImageEnView.IdealComponentWidth

Declaration

property IdealComponentWidth: integer; (Read-only)

Description

Returns the width that the TImageEnView component should be to exactly fit the current image.

Example

// Resize ImageEnView to fully contain Carlotta.jpg
ImageEnView.LoadFromFile('C:\Carlotta.jpg');
ImageEnView1.Width := ImageEnView1.IdealComponentWidth;
ImageEnView1.Height := ImageEnView1.IdealComponentHeight;

See Also

- loFitToLayersWhenZooming
- IdealComponentHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.IdealImageHeight

TImageEnView.IdealImageHeight

Declaration

property IdealImageHeight: integer; (Read-only)

Description

Returns the width that an image should be to fill the entire TImageEnView without requiring a scrollbar

Example

procedure Tfmain.ImageEnView1LayerSelectionChange(Sender: TObject);
var
bmp: TIEBitmap;
begin
// Show a preview in ImageEnView2 of the layer selected in ImageEnView1
bmp := ImageEnView2.IEBitmap;
ImageEnView1.CurrentLayer.CopyToBitmap( bmp, ImageEnView2.IdealImageWidth, ImageEnView2.IdealImageWidth );
ImageEnView2.Update();
end;

See Also

- IdealImageWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.IdealImageWidth

TImageEnView.IdealImageWidth

Declaration

property IdealImageWidth: integer; (Read-only)

Description

Returns the width that an image should be to fill the entire TImageEnView without requiring a scrollbar

Example

procedure Tfmain.ImageEnView1LayerSelectionChange(Sender: TObject);
var
bmp: TIEBitmap;
begin
// Show a preview in ImageEnView2 of the layer selected in ImageEnView1
bmp := ImageEnView2.IEBitmap;
ImageEnView1.CurrentLayer.CopyToBitmap( bmp, ImageEnView2.IdealImageWidth, ImageEnView2.IdealImageWidth );
ImageEnView2.Update();
end;

See Also

- IdealImageHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.IEBitmap

TImageEnView.IEBitmap

Declaration

property IEBitmap: TIEBitmap;

Description

Contains the image (current layer) to display. The object TIEBitmap also contains the alpha channel of the image.
If your image contains multiple layers then IEBitmap is the bitmap of the selected image layer. If a non-image layer is selected then IEBitmap will be the background layer (Layer 0).

Notes:
- You must call Update if you modify IEBitmap directly
- If LegacyBitmap is True, IEBitmap is just a wrapper for TBitmap that may be accessed using the Bitmap property


TImageEnView.ImageChange

TImageEnView.ImageChange

Declaration

procedure ImageChange; virtual;

Description

Generates an OnImageChange event and sets Modified to true.


TImageEnView.ImageEnVersion

TImageEnView.ImageEnVersion

Declaration

property ImageEnVersion: String;

Description

Returns the ImageEn version as a string.


TImageEnView.ImageHorizAlignment

TImageEnView.ImageHorizAlignment

Declaration

property ImageHorizAlignment: TIEHAlign;

Description

Specifies where to align horizontally the image inside the component.

Default: iehCenter

See Also

- ImageVertAlignment
- Center

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ImageVertAlignment

TImageEnView.ImageVertAlignment

Declaration

property ImageVertAlignment: TIEVAlign;

Description

Specifies where to align vertically the image inside the component.

Default: ievCenter

See Also

- ImageHorizAlignment
- Center

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.InvertSelection

TImageEnView.InvertSelection

Declaration

procedure InvertSelection;

Description

InvertSelection changes the selection to everything except the current selection.

Example

ImageEnView1.Select(10, 10, 100, 100, iespReplace); // select box 10,10,100,100
ImageEnView1.InvertSelection; // select all excluding the box 10,10,100,100


TImageEnView.IO

TImageEnView.IO

Declaration

property IO: TImageEnIO;

Description

The IO property encapsulates the TImageEnIO component inside TImageEnView (The TImageEnIO component is automatically created the first time you access the IO property).

TImageEnIO provides all functionality for loading and saving images, and other I/O functions.

Example

// Load image into the ImageEnView
ImageEnView1.IO.LoadFromFile('C:\Hello.jpeg');

// Retrieve an image from a Twain scanner and display in the ImageEnView
ImageEnView1.IO.Acquire;


TImageEnView.IsEmpty

TImageEnView.IsEmpty

Declaration

property IsEmpty: Boolean;

Description

Returns True if the size of the image is less than 2 x 2 pixels.

Also, see IsEmpty2 which returns true if an image has not been assigned or loaded.


TImageEnView.IsEmpty2

TImageEnView.IsEmpty2

Declaration

property IsEmpty2 : boolean;

Description

Returns True if the image is empty, i.e. no image has been assigned or loaded.

Also, see IsEmpty which returns true if the image is less than 2 x 2 pixels.


TImageEnView.IsNavigator

TImageEnView.IsNavigator

Declaration

property IsNavigator: Boolean;

Description

Returns true if this object is used as a navigator of another TImageEnView object. A navigator shows a selection that controls the zoom and scroll of the main control.

See also: SetNavigator.


TImageEnView.IsPointInsideSelection

TImageEnView.IsPointInsideSelection

Declaration

function IsPointInsideSelection(x, y: Integer): Boolean;

Description

IsPointInsideSelection returns true if the point specified with x, y is inside the current selection.
If SelectionBase is iesbClientArea (default) all coordinates depend on the zoom and image view (scrolling).


TImageEnView.LayerDefaults

TImageEnView.LayerDefaults

Declaration

property LayerDefaults: TStringList;

Description

Specifies a list of properties that are assigned to all new layers.
The properties are a list of Name=Value pairs, with names from the TIELayer Property Consts.

Notes:
- These properties apply to layers created programmatically (e.g. using LayersAdd) and by the user (e.g. using miCreateShapeLayers).
- The OnNewLayer event can also be used to apply default properties

Sample Output

IELP_BorderColor=clNone
IELP_BorderWidth=0
IELP_FillColor=clYellow
IELP_FillColor2=clRed
IELP_FillGradient=1
IELP_Rotate=0

Example

ImageEnView1.LayerDefaults.Clear();
ImageEnView1.LayerDefaults.Add( IELP_BorderColor +'=$008000FF' );
ImageEnView1.LayerDefaults.Add( IELP_BorderWidth +'=3' );
ImageEnView1.LayersAdd( 'C:\New Zealand.jpg' ); // Added image will have a pink border

// Allow the user to create, size and select red arrows
ImageEnView1.LayerDefaults.Clear();
ImageEnView1.LayerDefaults.Add( IELP_LineColor +'=clRed' );
ImageEnView1.LayerDefaults.Add( IELP_LineWidth +'=6' );
ImageEnView1.LayerDefaults.Add( IELP_LineShapeSize +'=20' );
ImageEnView1.LayerDefaults.Add( IELP_LineStartShape +'=1' );
ImageEnView1.LayerDefaults.Add( IELP_Rotate +'=235' );
ImageEnView1.MouseInteract := [ miCreateLineLayers, miMoveLayers, miResizeLayers ];

See Also

- DefaultLayerText
- OnNewLayer
- GetProperties
- SetProperties

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayerOptions

TImageEnView.LayerOptions

Declaration

property LayerOptions: TIELayerOptions;

Description

Options to control layer behavior:
Value | Description
loAllowMultiSelect | If enabled, users can select multiple layers by holding down the Shift key. Moving, resizing, rotation, and other methods will apply to all selected layers
loAutoSelectMask | If you have enabled a mask for a layer, then when selecting the layer the mask will also be selected (so that any resizing actions apply to the mask layer too)
loAutoUndoChangesByUser | If you have enabled AutoUndo, then changes to layers made by users (using layer interactions<L> or layer TActions<L>) will be saved to the undo stack
loAutoUndoChangesByCode | If you have enabled AutoUndo, then programmatic changes to layers will be saved to the undo stack. This applies to the methods: LayersAdd, LayersInsert, LayersCreateFromSelection, LayersCreateFromFile, LayersCreateFromEdge, LayersCreateFromAlpha, LayersRemove, LayersMerge, LayersMergeAll, LayersAlign, LayersMove, LayersRotateAll, LayersGroup, LayersUngroup, LayersCropBackground
loAutoPromptForImage | When setting MouseInteract to miCreateImageLayers, the user can drag select to create an TIEImageLayer If loAutoPromptForImage is enabled, then the user will be prompted to browse for an image file when after completing the selection. If the user cancels, the image layer is not added.
loAutoFixBorders | If enabled, LayersFixBorders will be called prior to rotation to removes any transparency around the edges of the image.
loAutoFixRotation | If enabled, LayersFixRotations will be called after rotation to lock in the rotation angle of image layers.
loDynamicCanvas | If enabled, ImageEn will align the view to the bounds of all layers (i.e. by LayersRect). You will be able to scroll to access layers that have been pushed beyond the bounds of Layer 0. However this may cause the view to scroll when moving layers around (so is best paired with Center=False). When not enabled, the view is aligned with Layer 0, and any layers pushed outside of the bounds of layer 0 may be inaccessible if they are off-screen.

Default: [loAllowMultiSelect, loAutoUndoChangesByUser, loAutoPromptForImage, loAutoFixBorders]

Note: To disable movement of layers by the keyboard, see iesoAllowMoveByKeyboard of SelectionOptions

Examples

// Enable automatic mask selection
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAutoSelectMask ];

// Enable automatic undo for all image changes including layer changes
ImageEnView1.Proc.AutoUndo := True;
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAutoUndoChangesByUser ];

// Disable multiple selection of layers
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions - [ loAutoSelectMask ];

// Allow users to create image layers. Prompt for an image file after selection
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAutoPromptForImage ];
ImageEnView1.MouseInteract := [ miCreateImageLayers ];

// Display the entire image (including outlying layers) within the view
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loFitToLayersWhenZooming ];
ImageEnView1.Fit( False );

See Also

- Layers
- LayersCurrent
- LayersSelectAll
- LayersDeselectAll
- Selected

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.Layers

TImageEnView.Layers

Declaration

property Layers[idx: Integer]: TIELayer;

Description

The Layers property provides access to properties related to a specified layer.

Example

// Set the opacity of the first layer to 0.5 (50%)
ImageEnView.Layers[0].Opacity := 0.5;
ImageEnView.Update;

// Set the transparency of the first layer to 50
ImageEnView.Layers[0].Transparency := 50;
ImageEnView.Update;

// Hide layer 1
ImageEnView.Layers[1].Visible := False;
ImageEnView.Update;

// Create a magnify layer
idx := ImageEnView.LayersAdd;
with ImageEnView.Layers[idx] do
begin
Magnify.Enabled := true;
Magnify.Rate := 2; // x2 magnification
Width := 50;
Height := 50;
end;


TImageEnView.LayersAdd

TImageEnView.LayersAdd

Declaration

// General overload
function LayersAdd(Kind: TIELayerKind = ielkImage): integer; overload;

// Blank image overload (creates TIEImageLayer)
function LayersAdd(Width: Integer; Height: Integer; PixelFormat: TIEPixelFormat = ie24RGB; PosX: Integer = -1; PosY: Integer = -1): Integer;

// Assign bitmap overload (creates TIEImageLayer)
function LayersAdd(Bitmap: TIEBitmap): integer;

// Loads image overload (creates TIEImageLayer)
function LayersAdd(FileName: String; PosX: Integer = -1; PosY: Integer = -1): integer;

// Shape overload (creates TIEShapeLayer)
function LayersAdd(Shape: TIEShape; PosX: Integer = -1; PosY: Integer = -1; Width: Integer = 0; Height: Integer = 0): integer;

// Text overload (creates TIETextLayer)
function LayersAdd(Text: String; FontSize : Integer; FontColor : TColor; FontName : string; FontStyle : TFontStyles = []; PosX: Integer = -1; PosY: Integer = -1): integer;

Description

Appends a new layer to the layers list. The new layer will become the current layer.
First overload allows you to specify the Kindlayer type, all others create a TIEImageLayer.
If the size and pixel format are not specified then the new layer assumes that of the current layer.
You can specify PosX and PosY for the destination position of the layer. Pass as -1, -1 to use the next available position.
Result is the index of the added layer.

Examples

ImageEnView1.IO.LoadFromFile( 'C:\first.jpg' ); // Load image into first layer (or current layer)
ImageEnView1.LayersAdd(); // Append a new layer
ImageEnView1.IO.LoadFromFile( 'C:\second.jpg' ); // Load image into the new layer (now the current layer)

// Load an image from file and add it as a layer
ImageEnView1.LayersAdd( 'C:\MyImage.jpg' );

// Apply a "Paid" stamp to image
with ImageEnView1 do
begin
LayersAdd( 'PAID', 42, clRed, 'Arial Black', [fsBold] );
CurrentLayer.Rotate := 30;
TIETextLayer( CurrentLayer ).SizeToText();
CurrentLayer.PosX := IELayer_Pos_HCenter;
CurrentLayer.PosY := IELayer_Pos_VCenter;
LayersMergeAll();
end;

// Add a yellow explosion shape layer at size 220 x 120
ImageEnView1.LayersAdd( iesExplosion, 50, 50, 220, 120 );
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

// Append an image layer and assign a pink border
ImageEnView1.LayersAdd( ielkImage ); // Append an image layer
ImageEnView1.IO.LoadFromFile('C:\New Zealand.jpg'); // Load image into the new/active layer
ImageEnView1.CurrentLayer.BorderColor := $008000FF;
ImageEnView1.CurrentLayer.BorderWidth := 3;

// Append a text layer
ImageEnView1.LayersAdd( ielkText );
TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'This is a Text Layer';
TIETextLayer( ImageEnView1.CurrentLayer ).BorderColor := clBlack;
TIETextLayer( ImageEnView1.CurrentLayer ).BorderWidth := 1;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clWhite;
ImageEnView1.Update();

See Also

-TIELayer
-LayersInsert
-LayersCreateFromSelection
-LayersCreateFromClipboard
-LayersCreateFromFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersAlign

TImageEnView.LayersAlign

Declaration

procedure LayersAlign(Alignment: TIEAlignLayers; Index: Integer = LYR_SELECTED_LAYERS);

Description

Aligns all selected layers relative to the image or other layers.
The index of a specific layer can be specified, or LYR_ALL_LAYERS (-1) to process all layers, or LYR_SELECTED_LAYERS (-2)

Example

// Align selected layers on the left edge
ImageEnView1.LayersAlign( ilaAlignLeftEdges );

// Position all layers in the center of the document
ImageEnView1.LayersAlign( ilaAlignHorizontalCenters );

// Move layer #3 to the center of the image
ImageEnView1.LayersAlign( ilaAlignToVerticalCenter, 2 );

See Also

- LayersRepositionAll

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersCaching

TImageEnView.LayersCaching

Declaration

property LayersCaching: Integer;

Description

Whether a cached view of every layer is stored in memory.

Supported values:
Value | Description
-1 | A cached view is stored for each layers. This provides the best performance, but can use a lot of memory if there are many layers
0 | No cached views of layers are stored. This uses the least memory
>0 | Specifies a maximum number of cached views to store

Default: 0

Example

// Cache all layers
ImageEnView1.LayersCaching := -1;

// Cache a maximum of 30 layers
ImageEnView1.LayersCaching := 30;

// Disable all layer caching
ImageEnView1.LayersCaching := 0;

See Also

- LayersFastDrawing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersCancelEditor

TImageEnView.LayersCancelEditor

Declaration

procedure LayersCancelEditor(SaveChanges: Boolean = True);

Description

Terminates any active text editors.
Users can edit the text of a TIETextLayer or TIELineLayer by double-clicking or selecting F2. They can then cancel it clicking "Esc" (or "Enter" to enact the change). LayersCancelEditor is the programmatic equivalent of clicking "Esc".
If SaveChanges is False, any text the user has specified will be lost. Set to true to enact their changes.


TImageEnView.LayersClear

TImageEnView.LayersClear

Declaration

procedure LayersClear;

Description

Removes all layers.

Note: After completion only the background layer will remain (as an ImageEnView always requires at least one layer).

Comparison of Methods

Method | Description
Clear | Fills the current image with the Backgroundbackground color and removes the alpha channel
Blank | Calls Clear and resets the image size to 1 x 1
LayersClear | Removes all of the Layerslayers
ClearAll | Resets the image (calling Blank) and removes all layers (calling LayersClear)

See Also

- LayersRemove

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersConvertToImageLayers

TImageEnView.LayersConvertToImageLayers

Declaration

procedure LayersConvertToImageLayers(LayerIdx: Integer = LYR_SELECTED_LAYERS; QualityFactor: Double = 2; CropAlpha: Boolean = True; ConvertImages: Boolean = False);

Description

Changes the Kindtype of the specified layer to TIEImageLayer.
This will change it from a vector-based layer to a standard bitmap layer. Bitmap layers can be edited using standard image modification features, but the quality will be lost if you resize the layer.
QualityFactor determines the size that the layer bitmap is created. A QualityFactor of 1 will create the bitmap at the current display size, whereas a QualityFactor of 2 would create it at double the display size (allowing it to be zoomed up 200% without loss of quality).
If CropAlpha is true, then it remove any alpha from the edges of the layer.
ConvertImages affects only image layers. By default image layers are ignored, if ConvertImages is true, the rotated images are fixed using LayersFixRotations

Note:
- For text layers, a QualityFactor of 1 usually works best
- To convert an individual layers, you can also use ConvertToImageLayer

Examples

// Convert all selected layers to image layers
ImageEnView1.LayersConvertToImageLayers();

// Convert the current layer to an image
ImageEnView1.LayersConvertToImageLayers( ImageEnView1.LayersCurrent );

// Which is the same as...
ImageEnView1.CurrentLayer.ConvertToImageLayer();


TImageEnView.LayersCopyToAlpha

TImageEnView.LayersCopyToAlpha

Declaration

procedure LayersCopyToAlpha(DestLayer: Integer);

Description

Copies the current layer to the alpha channel of the specified destination layer.
This is useful to handle alpha channel of other bitmaps, applying the same image processing algorithms.

See also: LayersCreateFromAlpha

Example

ImageEnView1.IO.LoadFromFile('C:\image.jpg');
ImageEnView1.LayersCreateFromAlpha;
ImageEnView1.Proc.BumpMapping( 300, 300, 150, 150, 0, CreateRgb(255, 255, 255));
ImageEnView1.LayersCopyToAlpha(0);
ImageEnView1.LayersRemove(1);


TImageEnView.LayersCount

TImageEnView.LayersCount

Declaration

property LayersCount: Integer;

Description

LayersCount returns the number of layers.

Examples

// Clear the top-most layer
ImageEnView1.LayersCurrent := ImageEnView1.LayersCount - 1;
ImageEnView1.Clear;

// Show each of the layers as a thumbnail in a TImageEnMView
procedure Tfmain.RefreshLayerViewer;
var
i, idx: integer;
begin
ImageEnMView1.Clear;
for i := 0 to ImageEnView1.LayersCount - 1 do
begin
idx := ImageEnMView1.AppendImage;
ImageEnMView1.SetImage( idx, ImageEnView1.Layers[ i ].Bitmap );
ImageEnMView1.ImageTopText[ i ] := 'Layer ' + inttostr( i );
end;

// Highlight current layer
ImageEnMView1.SelectedImage := ImageEnView1.LayersCurrent;
end;

// Set rotation of all selected layers
ImageEnView1.LockUpdate;
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1Layers[ I ].Selected then
ImageEnView1Layers[ I ].Rotate := 90;
ImageEnView1.LayersFixRotations( LYR_SELECTED_LAYERS );
ImageEnView1.UnlockUpdate;


TImageEnView.LayersCreateFromAlpha

TImageEnView.LayersCreateFromAlpha

Declaration

function LayersCreateFromAlpha: Integer;

Description

Creates a new image layer with the content of current bitmap's alpha channel.
This is useful to handle alpha channel of other bitmaps, applying the same image processing algorithms.

See also: LayersCopyToAlpha

Example

ImageEnView1.IO.LoadFromFile('C:\image.jpg');
ImageEnView1.LayersCreateFromAlpha;
ImageEnView1.Proc.BumpMapping( 300, 300, 150, 150, 0, CreateRgb(255, 255, 255));
ImageEnView1.LayersCopyToAlpha(0);
ImageEnView1.LayersRemove(1);


TImageEnView.LayersCreateFromClipboard

TImageEnView.LayersCreateFromClipboard

Declaration

function LayersCreateFromClipboard: Integer;

Description

Creates a new layer with the content of the clipboard.
The clipboard can either contain an image or a layer copied from a TImageEnView.
This is the same as calling TImageEnView.Proc.PasteFromClipboard( iecpLayer ); However it returns an index of the new layer.


TImageEnView.LayersCreateFromEdge

TImageEnView.LayersCreateFromEdge

Declaration

function LayersCreateFromEdge(ScreenX, ScreenY: integer; Tolerance: integer; MaxFilter: boolean = False): Integer;

Description

Creates a new Polyline layer with a closed polyline (polygon) along the edge of the background layer.
The edge is determined by simulating a flood fill starting at the point specified by ScreenX and ScreenY (these are points within the control, not points of the bitmap).
Tolerance specifies the color difference between the starting pixel and the pixel being tested.
Set MaxFilter to True to apply a maximum filter that removes noise.
Result is the index of the created layer, or -1 if the method fails

Examples

// Create a new polygon layer when the user clicks on the image
procedure TForm1.ImageEnView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ImageEnView1.LayersCreateFromEdge( X, Y, 25, true );
end;

// Create a new polygon using a floodfill from the top left of the background image
ImageEnView1.LayersCreateFromEdge( ImageEnView1.XBmp2Scr( 0 ), ImageEnView1.YBmp2Scr( 0 ), 25, true);


TImageEnView.LayersCreateFromFile

TImageEnView.LayersCreateFromFile

Declaration

function LayersCreateFromFile(Filename : string = '') : Integer;

Description

Loads an image from a file and adds it as a new image layer.
If Filename is '' then an open dialog is displayed (using ExecuteOpenDialog) to allow the user to browse for an image to load for the layer.
Returns the index of the new layer, or -1 in case of error.

Examples

// Prompt the user to select an image to load as a layer
ImageEnView1.LayersCreateFromFile();

// Load an image as a new layer
ImageEnView1.LayersCreateFromFile( 'C:\MyImage.jpg' );

// Which is the same as...
ImageEnView1.LayersAdd( 'C:\MyImage.jpg' );


TImageEnView.LayersCreateFromSelection

TImageEnView.LayersCreateFromSelection

Declaration

function LayersCreateFromSelection(): Integer;

Description

Creates a new image layer from the current selection. This might be used to copy & paste selections, for example.
Returns the index of the new layer.

Example

// select an ellipse
ImageEnView1.SelectEllipse(150, 150, 50, 50);
// copy selected area and create a new layer
ImageEnView1.LayersCreateFromSelection;
// move the new layer
ImageEnView1.CurrentLayer.PosX := 100;
ImageEnView1.CurrentLayer.PosY := 100;
// paste to the background
ImageEnView1.LayersMerge(0, 1);


TImageEnView.LayersCropBackground

TImageEnView.LayersCropBackground

Declaration

procedure TImageEnView.LayersCropBackground(SelectedOnly: Boolean = False; FillAlpha: Integer = 255; AllowReduce: Boolean = True; AllowEnlarge : Boolean = True);

Description

Resize the background (layer 0) to fit all layers (the image is sized, but its content is not stretched).
Parameter | Description
SelectedOnly | The background will be cropped to fit selected layers only
FillAlpha | Alpha value used to fill added regions (0: Fully Transparent - 255: Opaque)
AllowReduce | Parts of the image can be cut so layers will align with image edges
AllowEnlarge | Parts will be added to the image so layers are not beyond hte image area

Note: The color of added background is specified by Background

Example

// Crop the background so that it matches the size of all layers
ImageEnView1.LayersCropBackground();

// Crop the background so that it matches the size of selected layers
ImageEnView1.LayersCropBackground( True );

// Crop the background to match layers, but do not cut any part of the image (new border area may be added)
ImageEnView1.LayersCropBackground( True, 255, False, True );

// Crop the background to match layers, but do not add to the image (some layers may be outside the image area)
ImageEnView1.LayersCropBackground( True, 255, True, False );


TImageEnView.LayersCropped

TImageEnView.LayersCropped

Declaration

property LayersCropped: Boolean;

Description

When enabled, any part of layers that are outside the background image (layer 0) area will not be displayed.
If true, it overrides the Cropped property of individual layers.

Default: False

Example

// Crop the display of only the current layer
ImageEnView1.LayersCropped := False;
ImageEnView1.CurrentLayer.Cropped := True;

// Crop the display of all layers
ImageEnView1.LayersCropped := True;

// Don't crop the display of any layers
ImageEnView1.LayersCropped := False;
for i := 0 to ImageEnView1.LayersCount - 1 do
ImageEnView1.Layers[ I ].Cropped := False;


TImageEnView.LayersCurrent

TImageEnView.LayersCurrent

Declaration

property LayersCurrent: Integer;

Description

Use LayersCurrent to get/set the active layer.
The first layer has the index of 0, the last is LayersCount - 1.
Making a layer current changes the IEBitmap and Bitmap properties, so they point to the current layer (allowing specification of which layer is active for input/output and image processing operations).

Notes:
- Use CurrentLayer to return the layer object. Use LayersCurrent to get or set the current layer index
- Setting LayersCurrent does NOT deselect existing layers (if multiple layer selection is enabled)

Example

// load 'first.jpg' in layer 0 and 'second.jpg' in layer 1
ImageEnView1.LayersCurrent := 0;
ImageEnView1.IO.LoadFromFile('C:\first.jpg');
ImageEnView1.LayersCurrent := 1;
ImageEnView1.IO.LoadFromFile('C:\second.jpg');

// Clear the top-most layer
ImageEnView1.LayersCurrent := ImageEnView1.LayersCount - 1;
ImageEnView1.Clear;

// Flip the 2nd layer
ImageEnView1.LayersCurrent := 1;
ImageEnView1.Proc.Flip( fdHorizontal );


TImageEnView.LayersDeselectAll

TImageEnView.LayersDeselectAll

Declaration

procedure LayersDeselectAll();

Description

Sets the Selected property of all layers to false.

Example

ImageEnView1.LayersDeselectAll();


TImageEnView.LayersDrawBox

TImageEnView.LayersDrawBox

Declaration

property LayersDrawBox: Boolean;

Description

Specify whether a box is displayed around layers.
This option has no effect if Layers[].VisibleBox is set to false.
If Layers[].VisibleBox is true and LayersDrawBox is false, a box is drawn only on the selected layer.
If Layers[].VisibleBox is true and LayersDrawBox is true, a box is drawn on all layers.

Default: False

Note: You can customize the style of layer box using SetLayersBoxStyle, or for more control, OnDrawLayerBox


TImageEnView.LayersDrawTo

TImageEnView.LayersDrawTo

Declaration

procedure LayersDrawTo(Destination: TIEBitmap; AdjustBitmap: Boolean = True);

Description

Merges all layers and draws the result to Destination bitmap.
This function should replace a sequence of LayersMerge calls. The destination bitmap will not have a transparency channel.
If AdjustBitmap is true the Destination bitmap will be sized to display all layers.

Example

// draws all layers of ImageEnView1 to ImageEnView2
ImageEnView1.LayersDrawTo( ImageEnView2.IEBitmap );
ImageEnView2.Update;

See Also

- LayersSaveMergedTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersFastDrawing

TImageEnView.LayersFastDrawing

Declaration

property LayersFastDrawing: TIEFastDrawing;

Description

Improves the performance of layer rendering by delayed or disabling slow operations.
Item | Description
iefFast | Layer draw quality is reduced to speed up display (only affects drawing)
iefDelayed | Fast drawing (iefFast) is used while rotating, moving or resizing layers. After a delay, layers are then drawn at normal quality (iefNormal)
iefNormal | Layers are drawn at normal quality

When fast drawing is active:
- Does not render AlphaEdgeFeathering or SoftShadow
- Zoom filters are not used for display (ZoomFilter and ResampleFilter)
- AntiAlias is not rendered
- Anti-alias filters are not used for rotation preview (LayersRotationAntialias)

Default: iefDelayed

Note: LayersFastDrawing only affects what is displayed. It has no effect on the quality of the image when saved

Examples

// Use best display quality (even when manipulating layers)
ImageEnView1.LayersFastDrawing := iefNormal;

// Use best display quality, except when manipulating layers
ImageEnView1.LayersFastDrawing := iefDelayed;

// Best performance - always display layers at lower quality
ImageEnView1.LayersFastDrawing := iefFast;

// Allow changing of preview quality via a combo-box
procedure Tfmain.cmbPreviewQualityChange(Sender: TObject);
const
_cmbPreviewQuality_Fast = 0;
_cmbPreviewQuality_Delayed_Best = 1;
_cmbPreviewQuality_Best = 2;
begin
// Seperate code to make it easier to understand

if cmbPreviewQuality.ItemIndex = _cmbPreviewQuality_Fast then
begin
// FASTEST DISPLAY

// Zoom filter
ImageEnView1.ZoomFilter := rfNone;
ImageEnView1.DelayZoomFilter := False;

// Rotation anti-alias
ImageEnView1.LayersRotationFilter := ierBicubic;
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationUseFilterOnPreview := False;

// Fast drawing
ImageEnView1.LayersFastDrawing := iefFast;
end
else
if cmbPreviewQuality.ItemIndex = _cmbPreviewQuality_Delayed_Best then
begin
// DELAYED HIGH QUALITY

// Zoom filter
ImageEnView1.ZoomFilter := rfLanczos3;
ImageEnView1.DelayZoomFilter := True;

// Rotation anti-alias
ImageEnView1.LayersRotationFilter := ierBicubic;
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationUseFilterOnPreview := True;

// Fast drawing
ImageEnView1.LayersFastDrawing := iefDelayed;
end
else
begin
// HIGH QUALITY

// Zoom filter
ImageEnView1.ZoomFilter := rfLanczos3;
ImageEnView1.DelayZoomFilter := False;

// Rotation anti-alias
ImageEnView1.LayersRotationFilter := ierBicubic;
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationUseFilterOnPreview := True;

// Fast drawing
ImageEnView1.LayersFastDrawing := iefNormal;
end;

ImageEnView1.Update();
end;

See Also

- LayersCaching

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersFastOutput

TImageEnView.LayersFastOutput

Declaration

property LayersFastOutput: Boolean;

Description

Improves the performance of layer output operations, such as merging, by disabling anti-aliasing and other quality properties.

Default: False

Note: LayersFastOutput only affects output. Drawing is controlled by LayersFastDrawing


TImageEnView.LayersFixBorders

TImageEnView.LayersFixBorders

Declaration

procedure LayersFixBorders(layer: Integer = LYR_ALL_LAYERS);

Description

Removes the transparent border around the bitmap of a layer, which typically occurs after multiple rotations.
The index of a specific layer can be specified, or LYR_ALL_LAYERS (-1) to process all layers, or LYR_SELECTED_LAYERS (-2) to process selected layers.

Note: This can be called automatically using loAutoFixBorders of LayerOptions

Example

// Remove border of top-most layer
ImageEnView1.LayersFixBorders( ImageEnView1.LayersCount - 1 );

// Remove border of all layers
ImageEnView1.LayersFixBorders( LYR_ALL_LAYERS );

// Remove border of selected layers
ImageEnView1.LayersFixBorders( LYR_SELECTED_LAYERS );


TImageEnView.LayersFixRotations

TImageEnView.LayersFixRotations

Declaration

procedure LayersFixRotations(layer: Integer = LYR_ALL_LAYERS);

Description

Rotates the bitmap of a layer to its actual rotation angle. This will improve the quality of the layer.
The index of a specific layer can be specified, or LYR_ALL_LAYERS (-1) to process all layers, or LYR_SELECTED_LAYERS (-2) to process selected layers.

Notes:
- This can be called automatically using loAutoFixRotation of LayerOptions
- This method will also call LayersFixSizes

Example

// Improve rotation of top-most layer
ImageEnView1.LayersFixRotations( ImageEnView1.LayersCount - 1 );

// Improve rotation of all layers
ImageEnView1.LayersFixRotations( LYR_ALL_LAYERS );

// Improve rotation of selected layers
ImageEnView1.LayersFixRotations( LYR_SELECTED_LAYERS );


TImageEnView.LayersFixSizes

TImageEnView.LayersFixSizes

Declaration

procedure LayersFixSizes(layer: Integer = LYR_ALL_LAYERS);

Description

Resamples the bitmap of layers to match their actual size. This will improve the quality of the layer.
The index of a specific layer can be specified, or LYR_ALL_LAYERS (-1) to process all layers, or LYR_SELECTED_LAYERS (-2) to process selected layers.

Note: LayersMergeFilter will specify the quality of image layers, if they do not have a custom UseResampleFilter

Example

// Resample top-most layer
ImageEnView1.LayersFixSizes( ImageEnView1.LayersCount - 1 );

// Resample all layers
ImageEnView1.LayersFixSizes( LYR_ALL_LAYERS );

// Resample selected layers
ImageEnView1.LayersFixSizes( LYR_SELECTED_LAYERS );

// Make all selected layers 1/3 size
ImageEnView1.LockUpdate;
for i := 0 to ImageEnView1.LayersCount - 1 do
if ImageEnView1Layers[ I ].Selected then
begin
ImageEnView1Layers[ I ].Width := ImageEnView1Layers[ I ].Width div 3;
ImageEnView1Layers[ I ].Height := ImageEnView1Layers[ I ].Height div 3;
end;
ImageEnView1.LayersFixSizes( LYR_SELECTED_LAYERS );
ImageEnView1.UnlockUpdate;


TImageEnView.LayersGroup

TImageEnView.LayersGroup

Declaration

procedure LayersGroup(bSelectedOnly: Boolean = True);

Description

Sets the group index of layers so they selected as a group (selecting one layer of the group will select all of them).
If bSelectedOnly is true, grouping only affects layers that are selected. If false, it applies to all layers.

Note: LayersGroup has no effect if multiple layer selection is not enabled

Example

// Add all selected layers to a group
ImageEnView1.LayersGroup();

See Also

- LayersUngroup
- GroupIndex

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersImport

TImageEnView.LayersImport

Declaration

function LayersImport(const FileName: String; Stream: TStream = nil; FileFormat: TIOFileType = ioUnknown; Append: Boolean = False): Integer;

Description

Imports layers from a file or stream in IEV, ALL or DXF format.

Parameter | Description
FileName | The full path to a file to import (or '' if importing from a stream)
Stream | A stream to import from (or nil if importing from file)
FileFormat | The type of file, if known. It should be one ioIEV, ioALL or ioDXF. You can also specify ioUnknown, whereby ImageEn will infer the format from the content (with DXF only the file extension is considered)
Append | When false the existing content is cleared before importing

Result is -1 in the case of an error, otherwise returns the number of layers added.

IEV and ALL are object formats of TImageEnVect. Conversion is as follows:
Object Kind | Converted To | Notes
iekLINE | TIELineLayer | -
iekBOX | TIEShapeLayer | -
iekELLIPSE | TIEShapeLayer | -
iekARC | Skipped | -
iekBITMAP | TIEImageLayer | -
iekTEXT | TIETextLayer | -
iekRULER | Skipped | -
iekPOLYLINE | TIEPolylineLayer | -
iekANGLE | Skipped | -
iekMEMO | TIETextLayer | Text formatting is lost
iekLINELABEL | TIELineLayer | Inward arrows are converted to outward arrows

DXF is an Autocad vector format. DXF file can only be imported from file and only lines and ellipses objects are supported.

Example

// Import from an IEV file (replacing the existing layers)
ImageEnView1.LayersImport( 'C:\Vect.iev' );

// Import from an IEV file (adding to the existing layers)
ImageEnView1.LayersImport( 'C:\Vect.iev', nil, ioIEV, True );

// Import from an IEV stream (replacing the existing layers)
ImageEnView1.LayersImport( '', myStream );

// Import from an IEV stream (adding to the existing layers)
ImageEnView1.LayersImport( '', myStream, ioIEV, True );

// Import from an Autocad file
ImageEnView1.LayersImport( 'C:\cad.dxf', nil, ioDXF );

See Also

- CopyAllObjectsTo
- LoadFromFileIEN
- LoadFromStreamIEN
- LoadFromFileIEV
- LoadFromStreamIEV
- LoadFromFileAll
- LoadFromStreamAll
- ImportDXF

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersInsert

TImageEnView.LayersInsert

Declaration

// General overload
procedure LayersInsert(Position: Integer; Kind: TIELayerKind = ielkImage); overload;

// Blank image overload (creates TIEImageLayer)
procedure LayersInsert(Position: Integer; Width: Integer; Height: Integer; PixelFormat: TIEPixelFormat = ie24RGB; PosX: Integer = 0; PosY: Integer = 0);

// Assign bitmap overload (creates TIEImageLayer)
procedure LayersInsert(Position: Integer; Bitmap: TIEBitmap);

// Loads image overload (creates TIEImageLayer)
procedure LayersInsert(Position: Integer; FileName: String; PosX: Integer = -1; PosY: Integer = -1);

// Shape overload (creates TIEShapeLayer)
procedure LayersInsert(Position: Integer; Shape: TIEShape; PosX: Integer = -1; PosY: Integer = -1; Width: Integer = 0; Height: Integer = 0);

// Text overload (creates TIETextLayer)
procedure LayersInsert(Position: Integer; Text: String; FontSize : Integer; FontColor : TColor; FontName : string; FontStyle : TFontStyles = []; PosX: Integer = -1; PosY: Integer = -1);

Description

Inserts a new layer into the layers list at the specified position. The new layer will become the current layer.
First overload allows you to specify the Kindlayer type, all others create a TIEImageLayer.
If the size and pixel format are not specified then the new layer assumes that of the current layer.
You can specify PosX and PosY for the destination position of the layer. Pass as -1, -1 to use the next available position.

Note: Only a TIEImageLayer can be inserted at layer 0 (i.e. background). If you attempt to insert a non-image layer at position 0, it will be inserted at 1

Examples

ImageEnView1.IO.LoadFromFile( 'C:\first.jpg' ); // Load image into first layer (will become background)
ImageEnView1.LayersInsert( 1 ); // Insert a new layer above the background layer
ImageEnView1.IO.LoadFromFile( 'C:\second.jpg' ); // Load image into the new layer (now the current layer)

// Load an image from file and add it as a layer
ImageEnView1.LayersInsert( 1, 'C:\MyImage.jpg' );

// Insert a text layer
ImageEnView1.LayersInsert( 1, 'My text layer', 14, clBlack, 'Arial');

// Insert a yellow explosion shape layer at size 220 x 120
ImageEnView1.LayersInsert( 1, iesExplosion, 50, 50, 220, 120 );
ImageEnView1.CurrentLayer.FillColor := clYellow;
ImageEnView1.CurrentLayer.BorderWidth := 0;
ImageEnView1.Update();

// Insert an image layer and assign a pink border
ImageEnView1.LayersAdd( 3, ielkImage ); // Insert an image layer after layer 2 (i.e. 3rd layer)
ImageEnView1.IO.LoadFromFile('C:\New Zealand.jpg'); // Load image into the new/active layer
ImageEnView1.CurrentLayer.BorderColor := $008000FF;
ImageEnView1.CurrentLayer.BorderWidth := 3;

// Insert a text layer
ImageEnView1.LayersAdd( 1, ielkText );
TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'This is a Text Layer';
TIETextLayer( ImageEnView1.CurrentLayer ).BorderColor := clBlack;
TIETextLayer( ImageEnView1.CurrentLayer ).BorderWidth := 1;
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clWhite;
ImageEnView1.Update();

See Also

-TIELayer
-LayersAdd
-LayersCreateFromSelection
-LayersCreateFromClipboard
-LayersCreateFromFile

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersMerge

TImageEnView.LayersMerge

Declaration

procedure LayersMerge(); overload;
procedure LayersMerge(Layer1, Layer2: integer; RemoveUpperLayer: Boolean = true); overload;
procedure LayersMerge(LayerList: array of integer); overload;
procedure LayersMerge(LayerList: TIEArrayOfInteger); overload;

Description

Merges two or more layers into one layer. The new layer has the lesser index.
The new layer will inherit the Layers.Transparency and the bitmap's alpha channels.
The LayersMerge() overload will merge selected layers.

Notes:
- To merge a layer with its own mask (to create a layer with the transparency of the mask) pass only two indexes (i.e. the indexes of the layer and the mask).
- If any of the layers are not a TIEImageLayer, they will be converted to a TIEImageLayer
- LayersMergeFilter will specify the quality of image layers, if they do not have a custom UseResampleFilter

Parameter | Description
Layer1 | Index of the first layer to merge.
Layer2 | Index of the second layer to merge.
RemoveUpperLayer | If RemoveUpperLayer is false, the upper layer will not be removed.
LayerList | An array of layer indexes to remove. The array must be ordered and all layers will be merged into the layer specified by the first index. Empty list means "all layers".

Example

// merge layer 1 with background (layer 0)
ImageEnView1.LayersMerge([ 1, 0 ]);

// merge layers 0, 1 and 2
ImageEnView1.LayersMerge([ 0, 1, 2 ]);

// merge all layers
ImageEnView1.LayersMerge([]);

// merge all selected layers
ImageEnView1.LayersMerge();

// merge layer 1 with its mask
ImageEnView1.LayersMerge( 1, 2 );

// we want to get a background image and then merge over it another image in semi-transparency.
ImageEnView.IO.LoadFromFile('C:\background.jpg');
ImageEnView.LayersAdd;
ImageEnView.IO.LoadFromFile('C:\foreground.jpg');
ImageEnView.Layers[1].Transparency := 128; // the second layer has 50% transparency
ImageEnView.LayersMerge(0, 1); // from now we have only one layer
ImageEnView.IO.SaveToFile('C:\output.jpg');


TImageEnView.LayersMergeAll

TImageEnView.LayersMergeAll

Declaration

procedure LayersMergeAll(AlphaCompositing: Boolean = False);

Description

Call LayersMergeAll to merge all layers in one step.
When AlphaCompositing is False then this method performs the same task as LayersDrawTo, but replaces all layers with the merged result.
This method is fast and works with all layer options, so should be used to merge layers before printing or saving. It does not support transparency.

When AlphaCompositing is True the result is equivalent to calling LayersMerge([]). LayersMergeFilter will specify the quality of image layers, if they do not have a custom UseResampleFilter

Example

// Apply a "Paid" stamp to image
with ImageEnView1 do
begin
LayersAdd( 'PAID', 42, clRed, 'Arial Black', [fsBold] );
CurrentLayer.Rotate := 30;
TIETextLayer( CurrentLayer ).SizeToText();
CurrentLayer.PosX := IELayer_Pos_HCenter;
CurrentLayer.PosY := IELayer_Pos_VCenter;
LayersMergeAll();
end;

See Also

- LayersSaveMergedTo

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersMergeFilter

TImageEnView.LayersMergeFilter

Declaration

property LayersMergeFilter: TResampleFilter;

Description

Specifies the quality that is used when merging layers.

It applies to:
- LayersMerge
- LayersMergeAll
- LayersMergeTo
- LayersSaveMergedTo

Note: Has no effect on image layers, if they have a custom UseResampleFilter

Default: rfLanczos3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersMergeTo

TImageEnView.LayersMergeTo

Declaration

procedure LayersMergeTo(Layer1, Layer2: integer; Destination: TIEBitmap);

Description

Merges Layer1 and Layer2 into a TIEBitmap object.
The new bitmap will inherit the Layers[].Transparency and alpha channels.
The resulting bitmap will always be 24 bit (ie24RGB).

Notes:
- If either layer is not a TIEImageLayer, it will be converted to a TIEImageLayer
- LayersMergeTo can merge a layer with its own layer mask (to create a layer with the transparency of the mask).
- LayersMergeFilter will specify the quality of image layers, if they do not have a custom UseResampleFilter

Example

// we want to get a background image and then merge over it another image in semitransparency.
ImageEnView.IO.LoadFromFile('C:\background.jpg');
ImageEnView.LayersAdd;
ImageEnView.IO.LoadFromFile('C:\foreground.jpg');
ImageEnView.Layers[1].Transparency := 128; // the second layer has 50% transparency
ImageEnView.LayersMergeTo(0, 1, ImageEnView2.IEBitmap);
ImageEnView2.IO.SaveToFile('C:\output.jpg');


TImageEnView.LayersMove

TImageEnView.LayersMove

Declaration

procedure LayersMove(CurIndex, NewIndex: Integer);

Description

Moves the layer at index, CurIndex, to the position, NewIndex.

You can specify LYR_SELECTED_LAYERS (-2) for CurIndex to move all selected layers.

NewIndex can be one of the following:
>= 0 | The new insertion index
IEN_Send_To_Back | The layer will become the new background layer (layer 0)
IEN_Send_Backward | The layer will move closer to the background
IEN_Bring_Forward | The layer will move closer to the foreground
IEN_Bring_To_Front | The layer will become the topmost one (in front of all others)

Notes:
- If the layer has a mask it will be moved too
- Only a TIEImageLayer can be moved to layer 0 (i.e. background). If you attempt to move a non-image layer to position 0, it will be moved to 1
- Use LayersMove to arrange layer order. Use LayersRepositionAll to change the position of layers

Example

// Move the current layer forward
ImageEnView1.LayersMove( ImageEnView1.LayersCurrent, IEN_Bring_Forwards );

// Move selected layers backward
ImageEnView1.LayersMove( LYR_SELECTED_LAYERS, IEN_Send_Backward );

// Move the selected layers to the back (but not replace the background layer
ImageEnView1.LayersMove( LYR_SELECTED_LAYERS, 1 );


TImageEnView.LayersRect

TImageEnView.LayersRect

Declaration

function LayersRect(SelOnly: Boolean = False; ExcludeLayer0: Boolean = False): TIERectangle;

Description

Returns the coverage area of all or selected layers.
The result will include any layers outside the background layer (if LayersCropped and Cropped are not set).
If ExcludeLayer0 is False, then the background layer is not included in the result.

Notes:
- If layers extend to the left or above the background layer, then Result.X/Y will be less than PosX/Y of Layer 0
- If layers extend to the right or below the background layer, then Result.Width/Height may be greater than the dimensions of IEBitmap

See Also

- MaxLayerWidth
- MaxLayerHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersRemove

TImageEnView.LayersRemove

Declaration

procedure LayersRemove(LyrIndex: Integer = LYR_SELECTED_LAYERS);

Description

Removes a layer and frees the related bitmap. You can specify the index of a layer of LYR_SELECTED_LAYERS to remove all selected layers.
Parameter | Description
idx | Index of the layer to remove (0 = background/first layer). You can also specify LYR_SELECTED_LAYERS or LYR_ALL_LAYERS

Note: At least one layer must be present. Attempting to remove the final layer will empty its content.

Example

// Remove all selected layers
ImageEnView1.LayersRemove();

// Remove the top-most layer
ImageEnView1.LayersRemove( ImageEnView1.LayersCount - 1 );

See Also

- LayersClear

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersRepositionAll

TImageEnView.LayersRepositionAll

Declaration

procedure LayersRepositionAll(MoveX, MoveY: Integer; SelectedOnly: Boolean = False; Sizing: Boolean = False);

Description

Updates PosX and PosY of all layers (or just selected if SelectedOnly = True) to move them to a new position. If Sizing is true then Layer is resized (top-left position does not move).

These consts are also for MoveX:
Const | Description
IELayer_Pos_Left | Adjust PosX so layer is aligned to the left of the background layer
IELayer_Pos_HCenter | Adjust PosX so layer is aligned to the horizontal center of the background layer
IELayer_Pos_Right | Adjust PosX so layer is aligned to the right of the background layer

These consts are also MoveY:
Const | Description
IELayer_Pos_Top | Adjust PosY so layer is aligned to the top of the background layer
IELayer_Pos_VCenter | Adjust PosY so layer is aligned to the vertical center of the background layer
IELayer_Pos_Bottom | Adjust PosY so layer is aligned to the bottom of the background layer

Note: Use LayersSizeAll to resize layers by percentage

Examples

// Move all layers 50 pixels up and left
ImageEnView1.LayersRepositionAll( -50, -50 );

// Move selected layers 100 pixels down
ImageEnView1.LayersRepositionAll( 0, 100, true );

// Enlarge all layers vertically and horizontally by 10 pixels
ImageEnView.LayersRepositionAll( 10, 10, False, True );

// Center all layers in the middle of the image
ImageEnView1.LayersRepositionAll( IELayer_Pos_HCenter, IELayer_Pos_VCenter );

See Also

- LayersRotateAll
- LayersSizeAll
- LayersAlign

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersResizeAspectRatio

TImageEnView.LayersResizeAspectRatio

Declaration

property LayersResizeAspectRatio: TIELayersResizeAspectRatio;

Description

Specifies whether ImageEn respects the aspect ratio of layers when resizing.

Value | Description
iearDisabled | Doesn't maintain the aspect ratio even when pressing ALT or setting ForceALTKey)
iearALTKey | Maintains the aspect ratio only when pressing ALT or setting ForceALTKey
iearAlways | The aspect ratio is always maintained (using any grips)
iearAlwaysOnCornerGrip | The aspect ratio is always maintained if the corner grips are used
iearLayerDefaultOnCornerGrip | If the layer has a preferred aspect ratio then dragging the corner grip will maintain the aspect ratio, for side grips and other layer types the aspect ratio is not maintained

Default: iearALTKey

Note: ImageEn will always enforce the aspect ratio if AspectRatioLocked = true

See Also

- AspectRatioLocked
- PreferredAspectRatio
- RestoreAspectRatio

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersRotateAll

TImageEnView.LayersRotateAll

Declaration

procedure LayersRotateAll(Value: Double; bSelectedOnly: Boolean = False; bFixRotations: Boolean = False);

Description

Rotates all layers (or just selected if bSelectedOnly = True) by the specified angle (negative or positive degrees counter-clockwise). This method updates Rotate.
If bFixRotations = True, then LayersFixRotations is called to finalize the rotation of the layer and improve quality.

Examples

// Rotate all layers 45° clockwise
ImageEnView1.LayersRotateAll( 315 );

// Rotate selected layers 90° clockwise
ImageEnView1.LayersRotateAll( 270, true );

See Also

- LayersRepositionAll
- LayersSizeAll

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersRotateStep

TImageEnView.LayersRotateStep

Declaration

property LayersRotateStep: Integer;

Description

Sets the degree of each rotation step when the user rotates a layer and presses the Shift key.

Default: 45

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersRotationAntialias

TImageEnView.LayersRotationAntialias

Declaration

property LayersRotationAntialias: Boolean;

Description

Enables rotation anti-aliasing when layer rotation has completed (to improve their quality). Use LayersRotationFilter to specify the anti-aliasing algorithm.

Default: False

Example

// Rotate the current layer 45 degrees clockwise at highest quality
ImageEnView1.CurrentLayer.Rotate := -45;
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationFilter := ierBilinear;
ImageEnView1.LayersRotationUseFilterOnPreview := true;
ImageEnView1.LayersFastDrawing := iefDelayed;

// Allow the user to free rotate layers at highest quality
ImageEnView1.MouseInteract := [miRotateLayers];
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationFilter := ierBilinear;
ImageEnView1.LayersRotationUseFilterOnPreview := true;
ImageEnView1.LayersFastDrawing := iefDelayed;

See Also

- LayersRotationFilter
- LayersRotationUseFilterOnPreview
- LayersFastDrawing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersRotationFilter

TImageEnView.LayersRotationFilter

Declaration

property LayersRotationFilter: TIEAntialiasMode;

Description

Specifies the rotation filter to use when layers rotation has completed. This is important to optimize the quality of rotated image layers.

Note: You also need to set LayersRotationAntialias := True;

Default: ierFast

Example

// Rotate the current layer 45 degrees clockwise at highest quality
ImageEnView1.CurrentLayer.Rotate := -45;
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationFilter := ierBilinear;
ImageEnView1.LayersRotationUseFilterOnPreview := true;
ImageEnView1.LayersFastDrawing := iefDelayed;

// Allow the user to free rotate layers at highest quality
ImageEnView1.MouseInteract := [miRotateLayers];
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationFilter := ierBilinear;
ImageEnView1.LayersRotationUseFilterOnPreview := true;
ImageEnView1.LayersFastDrawing := iefDelayed;

See Also

- LayersRotationAntialias
- LayersRotationUseFilterOnPreview
- LayersFastDrawing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersRotationUseFilterOnPreview

TImageEnView.LayersRotationUseFilterOnPreview

Declaration

property LayersRotationUseFilterOnPreview: Boolean;

Description

Displays the user's rotation with the selected anti-alias effect immediately (i.e. before calling LayersFixRotations).

Note: Preview of large rotated images at high quality can be slow, so it is recommended that you also use LayersFastDrawing.

Default: False

Example

// Rotate the current layer 45 degrees clockwise at highest quality
ImageEnView1.CurrentLayer.Rotate := -45;
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationFilter := ierBilinear;
ImageEnView1.LayersRotationUseFilterOnPreview := true;
ImageEnView1.LayersFastDrawing := iefDelayed;

// Allow the user to free rotate layers at highest quality
ImageEnView1.MouseInteract := [miRotateLayers];
ImageEnView1.LayersRotationAntialias := True;
ImageEnView1.LayersRotationFilter := ierBilinear;
ImageEnView1.LayersRotationUseFilterOnPreview := true;
ImageEnView1.LayersFastDrawing := iefDelayed;

See Also

- LayersRotationFilter
- LayersRotationAntialias
- LayersFastDrawing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersSaveMergedTo

TImageEnView.LayersSaveMergedTo

Declaration

procedure LayersSaveMergedTo(Destination: TIEBitmap; FastOutput: Boolean = False); overload;
procedure LayersSaveMergedTo(const Filename: string; FastOutput: Boolean = False); overload;
procedure LayersSaveMergedTo(const Stream: TStream; FileType: TIOFileType; FastOutput: Boolean = False); overload;

Description

Output a merged version of all layers to a TIEBitmap, file or stream.
This method will preserve any alpha channel in the image.
Pass FastOutput as True, if you only require a low quality output (without quality filtering or anti-aliasing). This is useful if you will downsize to a thumbnail for example.

Notes:
- LayersMergeFilter will specify the quality of image layers, if they do not have a custom UseResampleFilter
- The existing image is not changed.

Example

// Save a merged version of the layers in ImageEnView1 (preserving the alpha channel
aBitmap := TIEBitmap.Create;
ImageEnView1.LayersSaveMergedTo( aBitmap );
aBitmap.Write( 'd:\Merged.png' );
aBitmap.Free;

// Or alternatively
ImageEnView1.LayersSaveMergedTo( 'd:\Merged.png' );

// Create a thumbnail of this image
aBitmap := TIEBitmap.Create;
ImageEnView1.LayersSaveMergedTo( aBitmap, True );
aBitmap.Resample( 100, 100, rfFastLinear, True );
aBitmap.Write( 'd:\Thumb.jpeg' );
aBitmap.Free;

See Also

- SaveToFileIEN
- SaveToStreamIEN
- LayersMergeAll

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersSelCount

TImageEnView.LayersSelCount

Declaration

function LayersSelCount(bCountBackgroundLayer: Boolean = True): Integer;

Description

Return number of layers that are selected. If bCountBackgroundLayer is false, then the background layer (layer 0) is not included in the count.
If multiple layer selection is enabled then it counts any layer that has Selected set to true. Otherwise it just checks whether LayersCurrent is not -1.

A selected text layer:

Example

// Enable the "Remove Layers" button if a layer is selected (but not the background layer)
btnRemoveLayers.Enabled := ImageEnView1.LayersHaveSelection( False ) > 0;


TImageEnView.LayersSelectAll

TImageEnView.LayersSelectAll

Declaration

procedure LayersSelectAll(bIncludeLocked: Boolean = True);

Description

Enables the Selected property of all layers. If

bIncludeLocked

= False then Locked layers are not selected.

Notes:
- Does not select the background layer (layer 0)
- Has no effect if multiple layer selection is not enabled.

Example

ImageEnView1.LayersSelectAll();


TImageEnView.LayersSelectConstrains

TImageEnView.LayersSelectConstrains

Declaration

property LayersSelectConstrains: Boolean;

Description

If true, selection constraints are active, i.e. whether the layer itself can be selected is controlled at the layer level by Selectable.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersSetProperties

TImageEnView.LayersSetProperties

Declaration

procedure LayersSetProperties(LayerIndex: integer; Props: TStrings); overload;
procedure LayersSetProperties(LayerIndex: integer; const PropName, Value: Variant); overload;

Description

Sets properties of multiple layers in a batch (by calling SetProperties).
Parameter | Description
LayerIndex | Index of the layer to update. Generally this will be LYR_SELECTED_LAYERS or LYR_ALL_LAYERS
Props | A list of properties in Name=Value pairs
PropName | A property to update
Value | New value for the property

Names will be drawn from the TIELayer Property Consts. Properties can be retrieved using GetProperties.

Example

// Rotate all layers 45 degrees
ImageEnView1.LayersSetProperties( LYR_ALL_LAYERS, IELP_Rotate, 45 );

// Set the text for all text layers (other layer types will be ignored)
ImageEnView1.LayersSetProperties( LYR_ALL_LAYERS, IELP_Text, 'Double-click to edit text' );

// Set style properties for selected layers
ss := TStringList.Create;
ss.Add( 'IELP_BorderColor=clNone' );
ss.Add( 'IELP_BorderWidth=0' );
ss.Add( 'IELP_FillColor=clYellow' );
ss.Add( 'IELP_FillColor2=clRed' );
ss.Add( 'IELP_FillGradient=1' );
LayersSetProperties( LYR_SELECTED_LAYERS, ss );
ss.Free;

See Also

- SetProperties
- GetProperties

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersSizeAll

TImageEnView.LayersSizeAll

Declaration

procedure LayersSizeAll(HorzSizing, VertSizing: Double; bSelectedOnly: Boolean = False; bFixSizes: Boolean = False; ScalePosition: Boolean = False);

Description

Scales the Width and Height values for all layers (or just selected if bSelectedOnly = True). HorzSizing and VertSizing are percentage values, so 2 will double the layer size, and 0.5 will halve it.
If bFixSizes = True, then LayersFixSizes is called to resample the layer to the new sizes.
If ScalePosition is True, then PosX and PosY are scaled to keep their position relative to other layers (best if also scaling the background layer). If False the layer is centered after scaling (best when only scaling some layers).

Note: To size by pixels rather than scale, see LayersRepositionAll

Examples

// Halve the size of all layers
ImageEnView1.LayersSizeAll( 0.5, 0.5, False, False, True );

// Increase the size of selected layers by 25%
ImageEnView1.LayersSizeAll( 1.25, 1.25, True );

See Also

- LayersRepositionAll
- LayersRotateAll

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LayersUngroup

TImageEnView.LayersUngroup

Declaration

procedure LayersUngroup(bSelectedOnly: Boolean = True);

Description

Resets the group index of layers so they are not selected as a group.
If bSelectedOnly is true, ungrouping only affects layers that are selected. If false, it applies to all layers.

Note: LayersGroup has no effect if multiple layer selection is not enabled

Example

// Remove grouping from selected layers
ImageEnView1.LayersUngroup();
// Unselect the layers
ImageEnView1.LayersDeselectAll();

See Also

- LayersGroup
- GroupIndex

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.LegacyBitmap

TImageEnView.LegacyBitmap

Declaration

property LegacyBitmap: Boolean;

Description

If LegacyBitmap is True, ImageEn uses TBitmap to store the image, otherwise ImageEn uses TIEBitmap.
TIEBitmap handles images using memory mapped file (for large images) or main memory.
This allows handling of large images and to include input/output and image processing in a multi-threaded environment.
Also TIEBitmap supports a larger number of pixel formats (TIEPixelFormat).

Note: LegacyBitmap should be set to FALSE for new applications.


TImageEnView.LoadSelectionFromFile

TImageEnView.LoadSelectionFromFile

Declaration

function LoadSelectionFromFile(const FileName: String; Options: TIERSOptions = iersMoveToAdapt): boolean;

Description

Loads a selection from a file (saved using SaveSelectionToStream or SaveSelectionToFile).
Returns False if it fails.
Options specifies how the selection is adapted when it comes from an image with different size or position.

Note: To share the same selection among layers you must use iersSyncLayers.

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.SaveSelectionToFile('C:\selection1');
..
sel1.Position := 0;
ImageEnView1.LoadSelectionFromFile('C:\selection1'); // this equates to Select(10, 10, 100, 100)


TImageEnView.LoadSelectionFromStream

TImageEnView.LoadSelectionFromStream

Declaration

function LoadSelectionFromStream(Stream: TStream; Options: TIERSOptions = iersMoveToAdapt): boolean;;

Description

Loads a selection from a stream (saved using SaveSelectionToStream or SaveSelectionToFile). Returns False if it fails.
Options specifies how the selection is adapted when it is applied to an image of a different size or position.

Note: To share the same selection among layers you must use iersSyncLayers.

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.SaveSelectionToStream(sel1);
..
sel1.Position := 0;
ImageEnView1.LoadSelectionFromStream(sel1); // this equates to Select(10, 10, 100, 100)


TImageEnView.LoadState

TImageEnView.LoadState

Declaration

procedure LoadState(const FileName: String);
procedure LoadState(Stream: TStream);

Description

Loads layers, selection and some other parameters such as Zoom and Scroll position.

See also: SaveState method.


TImageEnView.LockPaint

TImageEnView.LockPaint

Declaration

procedure LockPaint;

Description

The LockPaint method increases the lock counter's value. The ImageEnView window will not be repainted while LockPaintCount > 0.

See also: UnlockPaint.

Example

ImageEnView1.LockPaint;
ImageEnView1.ViewX := 10;
ImageEnView1.ViewY := 20;
ImageEnView1.Zoom := 300;
ImageEnView1.UnLockPaint;


TImageEnView.LockPaintCount

TImageEnView.LockPaintCount

Declaration

property LockPaintCount: Integer; (Read-only)

Description

Returns the lock painting state. 0=no lock, > 0 locking (the image will not be painted).
LockPaint increases LockPaintCount, UnLockPaint decreases it.


TImageEnView.LockUpdate

TImageEnView.LockUpdate

Declaration

procedure LockUpdate;

Description

Disables all calls to the Update method (increasing LockUpdateCount. LockUpdate and UnlockUpdate are useful, for example, when resampling multiple layers.

Example

ImageEnView1.LockUpdate;
for i := 0 to ImageEnView1.LayersCount-1 do
begin
ImageEnView1.LayersCurrent := i;
ImageEnView1.Proc.Resample(300, -1, rfNone); // withtout LockUpdate this call resizes all other layers
end;
ImageEnView1.UnlockUpdate;


TImageEnView.LockUpdateCount

TImageEnView.LockUpdateCount

Declaration

property LockUpdateCount: Integer; (Read-only)

Description

Returns the lock updating state. 0 = no lock, > 0 locking (the image will not be updated).
LockUpdate increases LockUpdateCount, UnLockUpdate decreases it.


TImageEnView.MagicWandMaxFilter

TImageEnView.MagicWandMaxFilter

Declaration

property MagicWandMaxFilter: Boolean;

Description

Set to True to apply a maximum filter to the magic wand selection (remove the "black hole").

Default: False

See Also

- MagicWandMode
- MagicWandTolerance
- MouseInteract

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.MagicWandMode

TImageEnView.MagicWandMode

Declaration

property MagicWandMode: TIEMagicWandMode;

Description

Specifies how magic wand selection works.

Default: iewInclusive

See Also

- MagicWandMaxFilter
- MagicWandTolerance
- MouseInteract

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.MagicWandTolerance

TImageEnView.MagicWandTolerance

Declaration

property MagicWandTolerance: Integer;

Description

Specifies the color difference of original point and region point when using miSelectMagicWand. A low number selects colors of a very close match, whereas a higher value allows much broader color differences.

Default: 15

See Also

- MagicWandMaxFilter
- MagicWandMode
- MouseInteract

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.MakeSelectionFeather

TImageEnView.MakeSelectionFeather

Declaration

procedure MakeSelectionFeather(radius: Double);

Description

Modifies the current selection by applying a blur effect to make soften the borders.
This property works only if SelectionMaskDepth is 8.
Radius specifies the feathering intensity (amount of blur).

Demo

Demos\ImageEditing\SoftSelections\SoftSel.dpr

Example

ImageEnView.SelectionMaskDepth := 8;
ImageEnView.Select( 10, 10, 100, 100 );
ImageEnView.MakeSelectionFeather( 4 );


TImageEnView.MaxLayerHeight

TImageEnView.MaxLayerHeight

Declaration

function MaxLayerHeight() : integer;

Description

Returns the maximum height of all layers.
The result will include any layers outside the background layer (if LayersCropped and Cropped are not set).

See Also

- MaxLayerWidth
- LayersRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.MaxLayerWidth

TImageEnView.MaxLayerWidth

Declaration

function MaxLayerWidth() : integer;

Description

Returns the maximum width of all layers.
The result will include any layers outside the background layer (if LayersCropped and Cropped are not set).

See Also

- MaxLayerHeight
- LayersRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.MergeSelectionFromFile

TImageEnView.MergeSelectionFromFile

Declaration

function MergeSelectionFromFile(const FileName: String): Boolean;

Description

Loads a selection from a file (saved using SaveSelectionToStream or SaveSelectionToFile) merging it with the currently one.
Returns False if it fails.

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.SaveSelectionToFile('C:\selection1');
..
sel1.Position := 0;
ImageEnView1.MergeSelectionFromFile('C:\selection1'); // this equates to Select(10, 10, 100, 100, iespAdd)


TImageEnView.MergeSelectionFromStream

TImageEnView.MergeSelectionFromStream

Declaration

function MergeSelectionFromStream(Stream: TStream): Boolean;

Description

Loads a selection from a stream (saved using SaveSelectionToStream or SaveSelectionToFile) merging it with the currently one.
Returns False if it fails.

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.SaveSelectionToStream(sel1);
..
sel1.Position := 0;
ImageEnView1.MergeSelectionFromStream(sel1); // this equates to Select(10, 10, 100, 100, iespAdd)


TImageEnView.Modified

TImageEnView.Modified

Declaration

property Modified: Boolean;

Description

Returns true if the image has been changed since it was loaded.
Modified will be set when there are changes to the using TImageEnProc (Proc property), or to Layers.

Example

btnSave.Enabled := ImageEnView1.Modified;

// Reset modified after saving
ImageEnView1.IO.SaveToFile( Filename );
ImageEnView1.Modified := False;

See Also

- Modified
- Modified
- OnImageChange

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.MouseInteract

TImageEnView.MouseInteract

Declaration

property MouseInteract: TIEMouseInteract;

Description

Specify which mouse activities are performed when the user interacts with the ImageEnView component with the mouse.

Note: Multiple interactions can be specified, but activities that are not mutually compatible will be excluded

Examples

// Single left click zoom-in image, single right click zoom-out image, click and
// drag scroll the image (if it is bigger than client area).
ImageEnView1.MouseInteract := [ miZoom, miScroll ];

// Allow users to create image layers. Prompt for an image file after selection
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAutoPromptForImage ];
ImageEnView1.MouseInteract := [ miCreateImageLayers ];

// Allow user to move and resize layers (allow multiple layer selection and ensure masks are moved with layers)
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAllowMultiSelect, loAutoSelectMask ];
ImageEnView1.MouseInteract := [ miMoveLayers, miResizeLayers ];

A selected text layer with resize grips:

// Allow user to rotate layers (allow multiple layer selection and ensure masks are moved with layers)
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loAllowMultiSelect, loAutoSelectMask ];
ImageEnView1.MouseInteract := [ miRotateLayers ];

// Allow circular selections
ImageEnView1.MouseInteract := [ miSelectCircle ];

// Allow the user to create, size and select red arrows
ImageEnView1.MouseInteract := [ miCreateLineLayers, miMoveLayers, miResizeLayers ];
ImageEnView1.LayerDefaults.Clear();
ImageEnView1.LayerDefaults.Add( IELP_LineColor +'=clRed' );
ImageEnView1.LayerDefaults.Add( IELP_LineWidth +'=6' );
ImageEnView1.LayerDefaults.Add( IELP_LineShapeSize +'=20' );
ImageEnView1.LayerDefaults.Add( IELP_LineStartShape +'=1' );
ImageEnView1.LayerDefaults.Add( IELP_Rotate +'=235' );

Demos

Demos\FullApps\PhotoEn3\ImageEx.dpr
Demos\Display\SoftPan\SoftPan.dpr
Demos\ImageEditing\RotateLayers\RotateLayers.dpr
Demos\ImageEditing\Layers_AllTypes\Layers.dpr

See Also

- SelectionOptions
- LayerDefaults

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.MouseScrollRate

TImageEnView.MouseScrollRate

Declaration

property MouseScrollRate: Double;

Description

If MouseInteract contains miScroll then MouseScrollRate specifies the relationship between mouse movement and image scrolling.

Default: 1 (one mouse point is one pixel at 100%).

Example

// set double rate scroll
ImageEnView1.MouseScrollRate := 2;
ImageEnView1.MouseInteract := [miScroll];


TImageEnView.MouseWheelParams

TImageEnView.MouseWheelParams

Declaration

property MouseWheelParams: TIEMouseWheelParams;

Description

Properties to customize the behavior of the mouse wheel.

Example

// mouse wheel will scroll image of 15 % of component height
ImageEnView1.MouseWheelParams.Action := iemwVScroll;
ImageEnView1.MouseWheelParams.Variation := iemwPercentage;
ImageEnView1.MouseWheelParams.value := 15;

// mouse wheel will scroll image of 1 pixel
ImageEnView1.MouseWheelParams.Action := iemwVScroll;
ImageEnView1.MouseWheelParams.Variation := iemwAbsolute;
ImageEnView1.MouseWheelParams.value := 1;

Demo

Demos\Other\MouseWheel\MouseWheelParams.dpr


TImageEnView.MoveContentTo

TImageEnView.MoveContentTo

Declaration

procedure TImageEnView.MoveContentTo(Destination: TImageEnView);

Description

Transfers the current image, all layers and input/output parameters to the destination TImageEnView component.

Note:
- This method doesn't copy the images, but transfers pointers to the image buffer
- After the operation the source component will be empty, and all previous images will be removed from "Destination"
- To "Copy" the content to another TImageEnView use the Assign method


TImageEnView.MoveSelection

TImageEnView.MoveSelection

Declaration

procedure MoveSelection(MoveX, MoveY: Integer; Sizing: Boolean = False);

Description

Moves the current selection by the specified horizontal and vertical offsets. If Sizing is true then selection is resized (top-left position does not move).

Example

// Move the selection up and left 5 pixels
ImageEnView.MoveSelection( -5, -5 );

// Enlarge the selection vertically and horizontally by 10 pixels
ImageEnView.MoveSelection( 10, 10 );


TImageEnView.OffScreenPaint

TImageEnView.OffScreenPaint

Declaration

property OffScreenPaint: Boolean;

Description

When the component is not visible (i.e. Visible=False) the back buffer BackBuffer is not painted.
If you need the back buffer to be paint correctly set OffScreenPaint to true.


TImageEnView.OffsetX

TImageEnView.OffsetX

Declaration

property OffsetX: integer; (Read-only)

Description

Returns the horizontal position where the image has been drawn. If ImageHorizAlignment is iehLeft, OffsetX will be zero, whereas for iehCenter it will be (Control Width - Image Width) div 2.

Note: This value only indicates the initial draw position for an image, it is not related to scrolling (unlike ViewX).

See Also

- OffsetY
- XScr2Bmp
- VisibleBitmapRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.OffsetY

TImageEnView.OffsetY

Declaration

property OffsetY: integer; (Read-only)

Description

Returns the vertical position where the image has been drawn. If ImageVertAlignment is ievTop, OffsetY will be zero, whereas for ievCenter it will be (Control Height - Image Height) div 2.

Note: This value only indicates the initial draw position for an image, it is not related to scrolling (unlike ViewY).

See Also

- OffsetX
- YScr2Bmp
- VisibleBitmapRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.OnAcquireBitmap

TImageEnView.OnAcquireBitmap

Declaration

property OnAcquireBitmap: TIEAcquireBitmapEvent;

Description

Occurs whenever a new bitmap is acquired during an acquisition.
Parameter | Description
Sender | Will be either a TImageEnIO or TImageEnMIO control
ABitmap | A TIEBitmap object that contains the acquired image
DpiX, DpiY | Tne DPI of the acquired image
Handled | Has no effect when acquiring via a TImageEnView/TImageEnIO


TImageEnView.OnActivateTextEditor

TImageEnView.OnActivateTextEditor

Declaration

property OnActivateTextEditor: TIETextEditorEvent;

Description

Occurs whenever a text editor is activated for a TIETextLayer or TIELineLayer.


TImageEnView.OnBeforeSelectionChange

TImageEnView.OnBeforeSelectionChange

Declaration

property OnBeforeSelectionChange: TNotifyEvent;

Description

OnBeforeSelectionChange occurs prior to the change of a selection.


TImageEnView.OnDeactivateTextEditor

TImageEnView.OnDeactivateTextEditor

Declaration

property OnDeactivateTextEditor: TIETextEditorEvent;

Description

Occurs whenever a text editor is closed after editing of a TIETextLayer or TIELineLayer.


TImageEnView.OnDrawBackBuffer

TImageEnView.OnDrawBackBuffer

Declaration

property OnDrawBackBuffer: TNotifyEvent;

Description

OnDrawBackBuffer provides access to the back buffer where ImageEn will draw the image (and layers) just before the paint event.
You can draw on the BackBuffer by handling the OnDrawBackBuffer event to paint onto the Backbuffer canvas.
BackBuffer is updated whenever Update is called.

Example

Procedure Form1OnDrawBackBuffer(Sender: TObject);
Begin
// Draw a red line on the back buffer
With ImageEnView1.BackBuffer.Canvas do
begin
Pen.Color := clRed;
MoveTo( 0, 0 );
LineTo( 100, 100 );
End;
End;


TImageEnView.OnDrawBackground

TImageEnView.OnDrawBackground

Declaration

property OnDrawBackground: TIEOnDrawBackground;

Description

OnDrawBackground occurs whenever background needs to be painted.


TImageEnView.OnDrawCanvas

TImageEnView.OnDrawCanvas

Declaration

property OnDrawCanvas: TIEOnDrawCanvas;

Description

OnDrawCanvas occurs whenever the component canvas is updated.


TImageEnView.OnDrawLayer

TImageEnView.OnDrawLayer

Declaration

property OnDrawLayer: TIEDrawLayerEvent;

Description

Occurs immediately after a layer is painted.

Parameter | Description
Dest | The destination bitmap (usually the back buffer)
LayerIndex | The layer index that we are drawing

Use Layers[].ClientAreaBox rectangle to know actual rectangle coordinates.


TImageEnView.OnDrawLayerBox

TImageEnView.OnDrawLayerBox

Declaration

property OnDrawLayerBox: TIEDrawLayerBoxEvent;

Description

Occurs when a layer box must be painted (LayersDrawBox must be enabled). If you handle this event the default behavior is disabled.
ABitmap is the destination bitmap and layer is the layer index that we are drawing.
Use Layers[].ClientAreaBox rectangle to get actual rectangle coordinates.

See the ImageEditing\Layers demo for more details.

Note: You can also use SetLayersBoxStyle to customize the layer box style

Example

procedure Tfmain.ImageEnView1DrawLayerBox(Sender: TObject;
ABitmap: TBitmap; layer: Integer);
begin
// a green line
with ABitmap.Canvas do
begin
Pen.Style := psSolid;
Pen.Width := 2;
Pen.mode := pmCopy;
Pen.Color := clGreen;
Brush.Style := bsClear;
with TIELayer(ImageEnView1.Layers[layer]).ClientAreaBox do
Rectangle(Left-1, Top-1, Right+1, Bottom+1);
end;
end;


TImageEnView.OnDrawLayerGrip

TImageEnView.OnDrawLayerGrip

Declaration

property OnDrawLayerGrip: TIEDrawLayerGrip;

Description

Occurs when a layer grip is painted. If you handle this event the default behavior is disabled.
ABitmap is the destination bitmap and layer is the layer index that we are drawing.
Rect specifies the actual grip rectangle.

See the ImageEditing\Layers demo for more details.

Example

procedure Tfmain.ImageEnView1DrawLayerGrip(Sender: TObject;
ABitmap: TBitmap; layer, grip: Integer; rect: TRect);
begin
with ABitmap.Canvas do
begin
Pen.Style := psSolid;
Pen.Mode := pmCopy;
Pen.Color := clGreen;
Brush.Style := bsSolid;
Brush.Color := $0000FF00;
with rect do
Ellipse(Left-1, Top-1, Right+1, Bottom+1);
end;
end;


TImageEnView.OnDrawPolygon

TImageEnView.OnDrawPolygon

Declaration

property OnDrawPolygon: TIEOnDrawPolygon;

Description

OnDrawPolygon occurs whenever a polygon is painted.


TImageEnView.OnDShowEvent

TImageEnView.OnDShowEvent

Declaration

property OnDShowEvent: TNotifyEvent;

Description

Occurs when one or more events are ready (when using the DirectShow functionality of TImageEnView).
You should call IO.DShowParams.GetEventCode until it returns false (no more events are available).

Example

procedure Tfmain.ImageEnView1DShowEvent;
var
event: Integer;
begin
while ImageEnView1.IO.DShowParams.GetEventCode(event) do
case event of
IEEC_COMPLETE:
begin
... end of stream!
end;
end;
end;


TImageEnView.OnDShowNewFrame

TImageEnView.OnDShowNewFrame

Declaration

property OnDShowNewFrame: TNotifyEvent;

Description

Occurs whenever a new frame is ready (when using the DirectShow functionality of TImageEnView). This event is active when you are using IO.DShowParams and EnableSampleGrabber is True.

Example

procedure Tfmain.ImageEnView1DShowNewFrame(Sender: TObject);
begin
// copy current sample to ImageEnView bitmap
ImageEnView1.IO.DShowParams.GetSample(ImageEnView1.IEBitmap);
// refresh ImageEnView1
ImageEnView1.Update;
end;


TImageEnView.OnFinishSmoothTask

TImageEnView.OnFinishSmoothTask

Declaration

property OnFinishSmoothTask: TIEFinishSmoothTaskEvent;

Description

Notifies that a smooth task has finished (smooth scroll, smooth zoom, etc...).

See Also

- SetZoomSmooth
- SetViewXYSmooth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.OnFinishWork

TImageEnView.OnFinishWork

Declaration

property OnFinishWork: TNotifyEvent;

Description

Occurs whenever an image processing or input/output task terminates.
It is always called after OnProgress so is useful to reset a progress bar.

Note: To determine what type of work has finished, check the class of the Sender, e.g.

if Sender is TImageEnIO then
ShowMessage( 'IO Task has finished' )
else
if Sender is TImageEnProc then
ShowMessage( 'Processing Task has finished' )
else
ShowMessage( 'Unexpected result!' )

Example

// An example showing seperate progress display for I/O operations and processing operations
procedure TMainForm.ImageEnView1Progress(Sender: TObject; per: Integer);
begin
// I/O PROGRESS
if Sender is TImageEnIO then
begin
IOProgressBar.Position := per;
IOProgressBar.Visible := True;
end
else
// IMAGE PROCESSING PROGRESS
if Sender is TImageEnProc then
begin
ProcProgressBar.Position := per;
ProcProgressBar.Visible := True;
end
end;

// Hide the progress bar
procedure TMainForm.ImageEnView1FinishWork(Sender: TObject);
begin
// I/O PROGRESS
if Sender is TImageEnIO then
IOProgressBar.Visible := False
else
// IMAGE PROCESSING PROGRESS
if Sender is TImageEnProc then
ProcProgressBar.Visible := False;
end;


TImageEnView.OnImageChange

TImageEnView.OnImageChange

Declaration

property OnImageChange: TNotifyEvent;

Description

Occurs after the image is modified using TImageEnProc (Proc property) or TImageEnIO (IO property).

If you are using multiple Layers, then layer changes will also trigger OnImageChange.

Note: TImageEnProc calls ImageChange after a modification which actuates OnImageChange.

See Also

- Modified
- Modified
- Modified

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.OnImageEnGesture

TImageEnView.OnImageEnGesture

Declaration

property OnImageEnGesture: TIEImageEnGestureEvent;

Description

Occurs whenever a gesture is handled by ImageEn.


TImageEnView.OnLayerMoveSize

TImageEnView.OnLayerMoveSize

Declaration

property OnLayerMoveSize: TIELayerMoveSizeEvent;

Description

Occurs whenever a layer is moved or resized. This event only fires on user actions (not programatic changes). It will occur numerous times as the user moves the mouse.
Allows the layer size and position to be controlled and adjusted.

Example

// Force all layers to be created at 200 x 200
procedure TfrmMain.ImageEnView1MoveSizeLayer(Sender: TObject; layer: integer; event: TIELayerEvent; var PosX, PosY, Width, Height: Double);
begin
if event = ielCreating then
begin
Width := 200;
Height := 200;
end;
end;

// Force all layers to be centered on the image horizon
procedure TfMain.ImageEnView1MoveSizeLayer(Sender: TObject; layer: integer; event: TIELayerEvent; var PosX, PosY, Width, Height: Double);
begin
PosY := ( ImageEnView1.Layers[0].Height - Height ) / 2;
end;

See Also

- OnNewLayer
- OnLayerNotify
- AspectRatioLocked
- LayersResizeAspectRatio

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.OnLayerNotify

TImageEnView.OnLayerNotify

Declaration

property OnLayerNotify: TIELayerNotify;

Description

Occurs whenever a layer is selected, moved or resized. This event only fires on user actions (not programatic changes).

Example

// Log all resizing of layers
procedure TfrmMain.IEView1LayerNotify(Sender: TObject; layer: integer; event: TIELayerEvent);
var
ALayer: TIELayer;
i: Integer;
sChangedLayers: string;
begin
if event = ielResized then
begin
sChangedLayers := '';
for i := 0 to IEView1.LayersCount - 1 do
begin
ALayer := IEView1.Layers[ I ];
if ( ALayer.Locked = False ) and ALayer.Selected then
sChangedLayers := sChangedLayers + IntToStr( i ) +',';
end;
if sChangedLayers <> '' then
begin
SetLength( sChangedLayers, Length( sChangedLayers ) - 1 ); // Remove final comma
memLog.Lines.Add( 'Layers Resized: ' + sChangedLayers );
end;
end;
end;

See Also

- OnLayerSelectionChange
- OnLayerMoveSize
- OnNewLayer

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.OnLayerSelectionChange

TImageEnView.OnLayerSelectionChange

Declaration

property OnLayerSelectionChange: TNotifyEvent;

Description

Occurs whenever a layer is selected or deselected. This event only fires on user actions (not programatic changes).

A selected text layer:

Example

procedure TfrmMain.IEView1LayerSelectionChange(Sender: TObject);
begin
// Enable the cut and copy buttons if layer cut/copy is possible
btnCut.Enabled := IEView1.Proc.CanCutFromClipboard( iecpLayer );
btnCopy.Enabled := IEView1.Proc.CanCopyFromClipboard( iecpLayer );
end;

See Also

- OnLayerNotify
- OnNewLayer

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.OnMediaFoundationNotify

TImageEnView.OnMediaFoundationNotify

Declaration

property OnMediaFoundationNotify: TIEMediaFoundationNotifyEvent;

Description

Occurs whenever Media Foundation sends a new frame or a notification to TImageEnView.

Example

// handler for TImageEnView.OnMediaFoundatioNotify event
procedure TForm1.ImageEnVect1MediaFoundationNotify(Sender, MediaFoundationObject: TObject; NotifyType: TIEMediaFountationNotifyType);
var
sample: TIEMFReceivedSample;
begin
if NotifyType = iemfnFRAME then // is this a frame?
begin
sample := ImageEnView1.IO.MediaFoundationSourceReader.GetNextSample(); // retrieve frame sample
try
sample.DecodeSample(ImageEnView1.IEBitmap); // convert frame sample to bitmap
ImageEnView1.Update(); // update TImageEnView to show the new bitmap
finally
sample.Free(); // free the sample
end;
end;
end;


TImageEnView.OnMouseInResizingGrip

TImageEnView.OnMouseInResizingGrip

Declaration

property OnMouseInResizingGrip: TIEMouseInResizingGripEvent;

Description

OnMouseInResizingGrip is called whenever the mouse moves over a grip and tells you which resizing grip is under the mouse position.


TImageEnView.OnMouseInSel

TImageEnView.OnMouseInSel

Declaration

property OnMouseInSel: TNotifyEvent;

Description

OnMouseInSel is called whenever the mouse is inside a selection or over its contours.


TImageEnView.OnNewLayer

TImageEnView.OnNewLayer

Declaration

property OnNewLayer: TIENewLayerEvent;

Description

Occurs whenever a layer is added. It is useful to assign default properties to the layer.
Both programmatic methods (e.g. using LayersAdd) and user methods (e.g. using miCreateShapeLayers) trigger this event.

LayerIdx is the index of the new layer.
LayerKind is the kind of layer that was added.

Notes:
- CurrentLayer will represent the new layer
- You can also use LayerDefaults to assign properties to new layers

Examples

procedure Tfmain.ImageEnView1NewLayer(Sender: TObject; LayerIdx: Integer; LayerKind: TIELayerKind);
begin
// Assign default properties for new objects
case LayerKind of
ielkImage : TIEImageLayer( ImageEnView1.CurrentLayer ).AspectRatioLocked := True;
ielkPolyline : TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesExplosion, True );
ielkText : TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'Double-click to edit text';
end;
end;

// Make new shape layer a red star
procedure TfrmMain.ImageEnView1NewLayer(Sender: TObject; LayerIdx: integer; LayerKind: TIELayerKind);
begin
if LayerKind = ielkShape then
begin
TIEShapeLayer( ImageEnView1.CurrentLayer ).Shape := iesStar5;
TIEShapeLayer( ImageEnView1.CurrentLayer ).FillColor := clRed;
end;
end;

See Also

- OnLayerMoveSize
- OnLayerNotify
- OnLayerSelectionChange
- LayerDefaults

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.OnPaint

TImageEnView.OnPaint

Declaration

property OnPaint: TNotifyEvent;

Description

OnPaint occurs whenever the component is redrawn. Use OnPaint to perform special processing when the component is redrawn.


TImageEnView.OnProgress

TImageEnView.OnProgress

Declaration

property OnProgress: TIEProgressEvent;

Description

The OnProgress event is called when image processing or input/output operations are executed. If you are using it to update a progress bar then you can reset it in the OnFinishWork event.

Note: To determine what type of work is in progress, check the class of the Sender, e.g.

if Sender is TImageEnIO then
MainForm.Caption := format( 'IO Task Progress: %d%%', [ per ])
else
if Sender is TImageEnProc then
MainForm.Caption := format( 'Processing Task Progress: %d%%', [ per ]);

Example

// An example showing seperate progress display for I/O operations and processing operations
procedure TMainForm.ImageEnView1Progress(Sender: TObject; per: Integer);
begin
// I/O PROGRESS
if Sender is TImageEnIO then
begin
IOProgressBar.Position := per;
IOProgressBar.Visible := True;
end
else
// IMAGE PROCESSING PROGRESS
if Sender is TImageEnProc then
begin
ProcProgressBar.Position := per;
ProcProgressBar.Visible := True;
end
end;

// Hide the progress bar
procedure TMainForm.ImageEnView1FinishWork(Sender: TObject);
begin
// I/O PROGRESS
if Sender is TImageEnIO then
IOProgressBar.Visible := False
else
// IMAGE PROCESSING PROGRESS
if Sender is TImageEnProc then
ProcProgressBar.Visible := False;
end;


TImageEnView.OnRulerClick

TImageEnView.OnRulerClick

Declaration

property OnRulerClick: TRulerClickEvent;

Description

Occurs when the user clicks on a ShowRulersruler.

Example

procedure TForm1.ImageEnView1RulerClick(Sender: TObject; RulerDir: TRulerDir; Ps: double);
begin
case RulerDir of
rdHorizontal : ShowMessage( 'Horizontal ruler clicked at: ' + FloatToStr( Ps ));
rdVertical : ShowMessage( 'Vertical ruler clicked at: ' + FloatToStr( Ps ));
end;
end;


TImageEnView.OnRulerGripClick

TImageEnView.OnRulerGripClick

Declaration

property OnRulerGripClick: TRulerGripClickEvent;

Description

Occurs when the user clicks a grip on a ShowRulersruler.

Example

procedure TForm1.ImageEnView1RulerGripClick(Sender: TObject; RulerDir: TRulerDir; Grip: integer; GripPos: Double);
begin
case RulerDir of
rdHorizontal : ShowMessage( format( 'Grip %d clicked on horizontal ruler', [ Grip ]));
rdVertical : ShowMessage( format( 'Grip %d clicked on vertical ruler', [ Grip ]));
end;
end;


TImageEnView.OnRulerGripDblClick

TImageEnView.OnRulerGripDblClick

Declaration

property OnRulerGripDblClick: TRulerGripClickEvent;

Description

Occurs when the user double-clicks a grip on a ShowRulersruler.

Example

procedure TForm1.ImageEnView1RulerGripDblClick(Sender: TObject; RulerDir: TRulerDir; Grip: integer; GripPos: Double);
begin
case RulerDir of
rdHorizontal : ShowMessage( format( 'Grip %d double-clicked on horizontal ruler', [ Grip ]));
rdVertical : ShowMessage( format( 'Grip %d double-clicked on vertical ruler', [ Grip ]));
end;
end;


TImageEnView.OnRulerGripPosChange

TImageEnView.OnRulerGripPosChange

Declaration

property OnRulerGripPosChange: TRulerGripPosChangeEvent;

Description

Occurs when a grip is moved on a ShowRulersruler.

Example

procedure TForm1.ImageEnView1RulerGripPosChange(Sender: TObject; RulerDir: TRulerDir; Grip: integer; NewPos: Double);
begin
case RulerDir of
rdHorizontal : ShowMessage( format( 'Grip %d moved on horizontal ruler', [ Grip ]));
rdVertical : ShowMessage( format( 'Grip %d moved on vertical ruler', [ Grip ]));
end;
end;


TImageEnView.OnSaveUndo

TImageEnView.OnSaveUndo

Declaration

property OnSaveUndo: TIESaveUndoEvent;

Description

OnSaveUndo occurs after SaveUndo is called by user action or your code.
source is the same parameter used when calling SaveUndo.


TImageEnView.OnSelectionChange

TImageEnView.OnSelectionChange

Declaration

property OnSelectionChange: TNotifyEvent;

Description

Occurs whenever the user finishes a change of the current selection.
Methods such as AddSelPoint or Select do not call the OnSelectionChange event.

Example 1

// Real time copy of user selected region to ImageEnView2 component
ImageEnView2.Clear;
ImageEnView2.CopyFromPolygon(ImageEnView2.Bitmap, ImageEnView2.PolySelPoints^, ImageEnView2.PolySelCount, Point(0, 0));

// An enhancement of above example: Display the current user selection as zoomed in ImageEnView2
ImageEnView2.Clear;
ImageEnView2.CopyFromPolygon(ImageEnView2.Bitmap, ImageEnView2.PolySelPoints^, ImageEnView2.PolySelCount, Point(0, 0));
ImageEnView2.Zoom := 200;

Example 2

procedure Tfmain.ImageEnView1LayerSelectionChange(Sender: TObject);
var
bmp: TIEBitmap;
begin
// Show a preview in ImageEnView2 of the layer selected in ImageEnView1
bmp := ImageEnView2.IEBitmap;
ImageEnView1.CurrentLayer.CopyToBitmap( bmp, ImageEnView2.IdealImageWidth, ImageEnView2.IdealImageWidth );
ImageEnView2.Update();
end;


TImageEnView.OnSelectionChanging

TImageEnView.OnSelectionChanging

Declaration

property OnSelectionChanging: TNotifyEvent;

Description

Occurs whenever the user is modifying the current selection.

Note: Methods such as AddSelPoint or Select do not call the OnSelectionChanging event.

Example

// Show the user selection rect (MouseInteract includes miSelectZoom)
procedure TForm.ImageEnVect1SelectionChanging(Sender: TObject);
begin
StatusBar.Panels[0].Text := '(' + IntToStr( ImageEnVect1.SelX1 ) +
',' + IntToStr( ImageEnVect1.SelY1 ) + '), ' +
'(' + IntToStr( ImageEnVect1.SelX2 ) +
',' + IntToStr( ImageEnVect1.SelY2) + ')';
end;


TImageEnView.OnSetCursor

TImageEnView.OnSetCursor

Declaration

property OnSetCursor: TIESetCursorEvent;

Description

OnSetCursor occurs whenever the mouse cursor needs to be changed. You can set your custom cursor by setting the Cursor parameter.
This event may be called multiple times for the same cursor shape.


TImageEnView.OnSpecialKey

TImageEnView.OnSpecialKey

Declaration

property OnSpecialKey: TIESpecialKeyEvent;

Description

OnSpecialKey is called whenever a special key is pressed. Special keys are arrows, "Home", "End", etc.

Notes:
- OnSpecialKey is called twice for each key press (On key down and on key up). This is by Microsoft design. You can use GetKeyState to determine whether this is the on key down or on key up call
- If you have problems receiving OnSpecialKey events, it is recommended that you place the TImageEnView (or its inherited components) on a TPanel instead of TForm

Example

// Allow the current layer to be moved using the Shift+Cursor keys
procedure Tfmain.ImageEnView1SpecialKey(Sender: TObject; CharCode: Word; Shift: TShiftState; var Handled: Boolean);
begin
if ( ssShift in Shift ) and ( ImageEnView1.LayersCurrent > 0 ) then
case CharCode of
VK_LEFT :
if IEIsKeyPressed( VK_LEFT ) then // Ensure this is a KeyDown call
begin
ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosX := ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosX - 10;
ImageEnView1.Update;
Handled := True;
end;
VK_RIGHT :
if IEIsKeyPressed( VK_RIGHT ) then // Ensure this is a KeyDown call
begin
ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosX := ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosX + 10;
ImageEnView1.Update;
Handled := True;
end;
VK_UP :
if IEIsKeyPressed( VK_UP ) then // Ensure this is a KeyDown call
begin
ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosY := ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosY - 10;
ImageEnView1.Update;
Handled := True;
end;
VK_DOWN :
if IEIsKeyPressed( VK_DOWN ) then // Ensure this is a KeyDown call
begin
ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosY := ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosY + 10;
ImageEnView1.Update;
Handled := True;
end;
end;
end;


TImageEnView.OnTextEditorKeyDown

TImageEnView.OnTextEditorKeyDown

Declaration

property OnTextEditorKeyDown: TKeyEvent;

Description

Occurs whenever a key is pressed when editing the text of a TIETextLayer or TIELineLayer.

Example

procedure TMainForm.ImageEnView1TextKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
// Make the Enter key cancel text input
if Key = VK_Return then
begin
Key := 0;
ImageEnView1.LayersCancelEditor( False );
end;
end;


TImageEnView.OnTransitionPaint

TImageEnView.OnTransitionPaint

Declaration

property OnTransitionPaint: TIEOnTransitionPaint;

Description

Occurs immediately before a new transition frame is painted. Step is a value from 0 to 1024.


TImageEnView.OnTransitionStep

TImageEnView.OnTransitionStep

Declaration

property OnTransitionStep: TIETransitionStepEvent;

Description

Occurs prior to the painting of each transition frame. Step is a value from 0 to 1024.


TImageEnView.OnTransitionStop

TImageEnView.OnTransitionStop

Declaration

property OnTransitionStop: TNotifyEvent;

Description

Occurs when the transition (that was started by using RunTransition) has finished its job (i.e. the transition effect has finished).


TImageEnView.OnViewChange

TImageEnView.OnViewChange

Declaration

property OnViewChange: TViewChangeEvent;

Description

Notifies of changes to Zoom, ViewX or ViewY.


TImageEnView.OnViewChanging

TImageEnView.OnViewChanging

Declaration

property OnViewChanging: TViewChangeEvent;

Description

Notifies that Zoom, ViewX or ViewY is going to change.


TImageEnView.OnVirtualKey

TImageEnView.OnVirtualKey

Declaration

property OnVirtualKey: TIEVirtualKeyEvent;

Description

Occurs whenever the component receives WM_KEYDOWN, WM_SYSKEYDOWN, WM_KEYUP or WM_SYSKEYUP message.


TImageEnView.OnZoomIn

TImageEnView.OnZoomIn

Declaration

property OnZoomIn: TIEZoomEvent;

Description

An OnZoomIn event occurs whenever the user zooms into the current image (increases its display size).
You can programatically customize the zoom value by changing the NewZoom parameter.

Example

// Max zoom-in of 50%
Procedure Tform1.ImageEnView1ZoomIn(Sender: TObject; var NewZoom: Double);
Begin
if NewZoom < 50 then
NewZoom := 50;
End;


TImageEnView.OnZoomOut

TImageEnView.OnZoomOut

Declaration

property OnZoomOut: TIEZoomEvent;

Description

An OnZoomOut event occurs whenever the user zooms out of the current image (reduces its display size).
You can programatically customize the zoom value by changing the NewZoom parameter.

Example

// Max zoom-out to 200%
Procedure Tform1.ImageEnView1ZoomOut(Sender: TObject; var NewZoom: Double);
Begin
if NewZoom > 200 then
NewZoom := 200;
End;


TImageEnView.PaintRect

TImageEnView.PaintRect

Declaration

procedure PaintRect(const rc: TRect);

Description

PaintRect repaints only the rectangle rc without waiting for the Windows Paint message.

Example

// this code paints an image (width=50 height=50) at bitmap coordinates 10,10
ImageEnView1.Bitmap.Canvas.Draw(10, 10, MyBitmap);
// map the bitmap coordinates to view coordinates (rc is a TRect type)
With ImageEnView1 do
rc := rect( XBmp2Scr(10), YBmp2Scr(10), XBmp2Scr(10+50), YBmp2Scr(10+50) );
ImageEnView1.UpdateRect(rc); // update internal ImageEn state
ImageEnView1.PaintRect(rc); // paint the changes on the screen


TImageEnView.Playing

TImageEnView.Playing

Declaration

property Playing : boolean;

Description

Set Playing to True to animate GIF and AVI files. If PlayLoop is enabled then the animation will replay continuously

Note: TImageEnView.Playing loads each frame on demand, which means that animations with short display times may appear jerky. It also cannot be used with LoadFromURL. You may find it more suitable to use TImageEnMView.Playing instead which preloads all frames.


TImageEnView.PlayLoop

TImageEnView.PlayLoop

Declaration

property PlayLoop: boolean;

Description

Set to True to continuously loop playback of animated GIF and AVI files (when Playing is enabled).

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.PolySel

TImageEnView.PolySel

Declaration

property PolySel[idx: Integer]: TPoint; (Read-only)

Description

Returns the idx point of the current polygonal selection. The point is specified in bitmap coordinates.

Example

var
MyPolySelArray: array of TPoint;
I: Integer;
begin
// Create an array of TPoints of the polygon selection in a TImageEnView
SetLength( MyPolySelArray, ImageEnView1.PolySelCount );
for I := 0 to ImageEnView1.PolySelCount - 1 do
MyPolySelArray[ I ] := ImageEnView1.PolySel[ I ];
end;

See Also

- PolySelCount
- PolySelPoints
- AddSelPoint

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.PolySelCount

TImageEnView.PolySelCount

Declaration

property PolySelCount: Integer; (Read-only)

Description

Returns the points number of the current polygonal selection (size of PolySel array).

Example

var
MyPolySelArray: array of TPoint;
I: Integer;
begin
// Create an array of TPoints of the polygon selection in a TImageEnView
SetLength( MyPolySelArray, ImageEnView1.PolySelCount );
for I := 0 to ImageEnView1.PolySelCount - 1 do
MyPolySelArray[ I ] := ImageEnView1.PolySel[ I ];
end;

See Also

- PolySel
- AddSelPoint

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.PolySelPoints

TImageEnView.PolySelPoints

Declaration

property PolySelPoints: PPointArray;

Description

PolySelPoints returns the current selection as a pointer to an array of TPoint.

Example

// Copies current selection to ImageEnView2. Then enhance contrast of ImageEnView2 and copy back to ImageEnView1 (in some selection).
ImageEnView2.CopyFromPolygon(ImageEnView1.Bitmap, ImageEnView2.PolySelPoints^, ImageEnView2.PolySelCount, Point(0, 0));
ImageEnView2.Proc.Contrast(30);
ImageEnView2.CopyToPolygon(ImageEnView1.Bitmap, ImageEnView1.PolySelPoints^, ImageEnView1.PolySelCount, Point(0, 0));
ImageEnView1.Update;


TImageEnView.PrepareTransition

TImageEnView.PrepareTransition

Declaration

procedure PrepareTransition;

Description

PrepareTransition must be called prior to running a transition effect.
It copies the currently displayed image to an internal buffer, which allows you to change current image (load, update, etc.) before starting the transition with RunTransition.

Example

// Show a transition effect from the image already loaded in AImageEnView to our new image, Pic2.jpg
AImageEnView.PrepareTransition; // Prepare the transition
AImageEnView.IO.LoadFromFile('C:\Pic2.jpg'); // Load the new image (though it won't yet display)
AImageEnView.RunTransition(iettRandompoints, 500); // Start display of the transition effect

See Also

- RunTransition
- TransitionRunning
- AbortTransition

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.Proc

TImageEnView.Proc

Declaration

property Proc: TImageEnProc;

Description

Provides access to the TImageEnProc component inside TImageEnView (The TImageEnProc component is automatically created the first time you access the Proc property).

TImageEnProc provides functionality for editing and manipulating images, clipboard and analysis.

Example

// Invert the colors of the image in the ImageEnView
ImageEnView1.Proc.Negative;


TImageEnView.RemoveAlphaChannel

TImageEnView.RemoveAlphaChannel

Declaration

procedure RemoveAlphaChannel(Merge: Boolean=false);

Description

Removes the alpha channel and its allocated memory. HasAlphaChannel will be set to false.
If Merge is true the image will be merged with the background color using its alpha channel.

Example

// remove alpha channel from a gif
ImageEnView.io.LoadFromFile('C:\test.gif');
ImageEnView.RemoveAlphaChannel;

// this add a shadow (that uses the alpha channel) then save it to a jpeg (that cannot support alpha channel)
ImageEnView.Proc.AddSoftShadow(4, 3, 3);
ImageEnView.RemoveAlphaChannel( True ); // merge the alpha channel
ImageEnView.IO.SaveToFile('C:\output.jpg');


TImageEnView.ResetState

TImageEnView.ResetState

Declaration

procedure ResetState();

Description

Resets some TImageEnView properties to their defaults.

ResetState will remove selection, empty layers, set input/output parameters to their defaults, reset Zoom and Scroll and clear the Undo buffer.

Leaves LegacyBitmap unchanged.


TImageEnView.RestoreSelection

TImageEnView.RestoreSelection

Declaration

function RestoreSelection(Remove: Boolean=true; Options: TIERSOptions = iersMoveToAdapt): boolean;

Description

Restore a saved selection from the selections stack. RestoreSelection returns false when there aren't any selections saved in the stack.

Options specifies how the selection is adapted when it comes from an image with different size or position.

Note: To share the same selection among layers you must use iersSyncLayers.

Remove allows you to remove restored selection from selections stack.

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.SaveSelection;
ImageEnView1.Select(200, 200, 150, 150);
ImageEnView1.SaveSelection;
ImageEnView1.Deselect;

ImageEnView1.RestoreSelection; // reload 200,200,150,150
..
ImageEnVIew1.RestoreSelection; // reload 10,10,100,100


TImageEnView.RulerParams

TImageEnView.RulerParams

Declaration

property RulerParams: TIEViewRulerParams;

Description

Allows you to configure the properties of your rulers

Demo

Demos\Other\ImageEnViewRulers\ImageEnViewRulers.dpr

Example

// Show rulers in TImageEnView
ImageEnView1.ShowRulers := [ rdHorizontal, rdVertical ];

// Set units to CM
ImageEnView1.RulerParams.Units := ieruCentimeters;


TImageEnView.RunTransition

TImageEnView.RunTransition

Declaration

procedure RunTransition(Effect : TIETransitionType; Duration : integer); overload;
procedure RunTransition(Effect : TIETransitionType; Duration : integer; StartRect, EndRect : TRect; bMaintainAspectRatio : Boolean; Smoothing: Integer = 96); overload;
procedure RunTransition(Effect : TIETransitionType; Duration : integer; PanZoomEffect : TIEPanZoomType; iZoomLevel : Integer; Smoothing: Integer = 96); overload;

Description

RunTransition starts the transition using Effect and Duration parameters.

Effect specifies the effect. Duration specifies the duration of the transition in milliseconds.

If effect is iettPanZoom then use one of the overloaded versions.

Pan-Zoom Overload 1:
Value | Description
StartRect | The starting rectangle of an iettPanZoom transition (specified in bitmap points)
EndRect | The ending rectangle of an iettPanZoom transition (specified in bitmap points)
bMaintainAspectRatio | StartRect and EndRect will be automatically adjusted to ensure the image appears with the correct aspect ratio
Smoothing | In order to reduce the "jumpiness" of pan zoom effects, transition frames are alpha blended. A low value will improve smoothness, but increase blurriness. A high value will improve clarity, but increase jumpiness. Typical range is 64 - 196. 255 means no alpha blending

Pan-Zoom Overload 2:
Value | Description
PanZoomEffect | One of ImageEn's built-in Pan Zoom effects
iZoomLevel | If the specified PanZoomEffect is a "Zoom" type, then this specifies the maximum amount to zoom in, e.g. 20%
Smoothing | In order to reduce the "jumpiness" of pan zoom effects, transition frames are alpha blended. A low value will improve smoothness, but increase blurriness. A high value will improve clarity, but increase jumpiness. Typical range is 64 - 196. 255 means no alpha blending

iettShreddedFromLeft

iettCubeRotateFromTop2

Demos

Demos\Display\Transitions\Transitions.dpr
Demos\Display\PanZoomEffects\PanZoomEffects.dpr

Example

// Transition from Image1.jpg to Image2.jpg with "Randon Points" transition
ImageEnView1.IO.LoadFromFile('D:\image1.jpg'); // Load initial image
ImageEnView1.PrepareTransition; // Prepare the transition
ImageEnView1.IO.LoadFromFile('D:\image2.jpg'); // Load the next image (but does not display it)
ImageEnView1.RunTransition(iettRandompoints, 500); // Execute the transition

// Pan from the top-left corner of the image to the bottom-right (Image is 600 x 800)
ImageEnView1.PrepareTransition;
ImageEnView1.IO.LoadFromFile('D:\image.jpg');
ImageEnView1.RunTransition(iettPanZoom,
2000, // 2 second transition
Rect(0, 0, 300, 400), // Top-left quarter
Rect(300, 400, 600, 800), // Bottom-right quarter
True); // Automatically adjust starting and ending rect to ensure the transition does not distort the image

// Pan from the top-left corner of the image to the bottom-right
ImageEnView1.PrepareTransition;
ImageEnView1.IO.LoadFromFile('D:\image.jpg');
ImageEnView1.RunTransition(iettPanZoom,
2000, // 2 second transition
iepzPanTopLeftToBottomRight,
20);

See Also

- PrepareTransition
- TransitionRunning
- AbortTransition

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SavedSelectionsCount

TImageEnView.SavedSelectionsCount

Declaration

property SavedSelectionsCount: Integer

Description

Returns the number of saved selections.


TImageEnView.SaveSelection

TImageEnView.SaveSelection

Declaration

procedure SaveSelection;

Description

Adds the current selection to the stack (selections list).

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.SaveSelection;
ImageEnView1.Select(200, 200, 150, 150);
ImageEnView1.SaveSelection;
ImageEnView1.Deselect;

ImageEnView1.RestoreSelection; // reload 200,200,150,150
..
ImageEnView1.RestoreSelection; // reload 10,10,100,100


TImageEnView.SaveSelectionToFile

TImageEnView.SaveSelectionToFile

Declaration

procedure SaveSelectionToFile(const FileName: String);

Description

Saves the current selection to the specified file (just the user selection, not the image content).

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.SaveSelectionToFile('selection1');
..
sel1.Position := 0;
ImageEnView1.LoadSelectionFromFile('selection1'); // this equates to Select(10, 10, 100, 100)


TImageEnView.SaveSelectionToStream

TImageEnView.SaveSelectionToStream

Declaration

procedure SaveSelectionToStream(Stream: TStream);

Description

Saves the current selection to the specified stream (just the user selection, not the image content)

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.SaveSelectionToStream(sel1);
..
sel1.Position := 0;
ImageEnView1.LoadSelectionFromStream(sel1); // this equates to Select(10, 10, 100, 100)


TImageEnView.SaveState

TImageEnView.SaveState

Declaration

procedure SaveState(const FileName: String);
procedure SaveState(Stream: TStream);

Description

Saves layers, selection and some other parameters such as Zoom and Scroll position.

See also: LoadState method.


TImageEnView.ScrollBars

TImageEnView.ScrollBars

Declaration

property ScrollBars: TScrollType;

Description

ScrollBars determines whether the TImageEnView control displays scroll bars (they are only shown if they are needed unless ScrollBarsAlwaysVisible is true).

Value | Description
ssNone | The control has no scroll bars
ssHorizontal | The control has a single scroll bar on the bottom edge when needed
ssVertical | The control has a single scroll bar on the right edge when needed
ssBoth | The control has a scroll bar on both the bottom and right edges when needed


TImageEnView.ScrollBarsAlwaysVisible

TImageEnView.ScrollBarsAlwaysVisible

Declaration

property ScrollBarsAlwaysVisible: Boolean;

Description

When the ScrollBarsAlwaysVisible property is True, the scrollbars specified in ScrollBars property will be displayed, even if when not required.


TImageEnView.SelColor1

TImageEnView.SelColor1

Declaration

property SelColor1: TColor

Description

SelColor1 and SelColor2 set the two colors of the animated selection polygon.


TImageEnView.SelColor2

TImageEnView.SelColor2

Declaration

property SelColor2: TColor

Description

SelColor1 and SelColor2 set the two colors of the animated selection polygon.


TImageEnView.Select

TImageEnView.Select

Declaration

procedure Select(x1, y1, x2, y2: integer; Op: TIESelOp = iespReplace); virtual;

Description

This method selects a portion of the image.
The selected area will be outlined with an animated rectangle.
If SelectionBase is iesbClientArea (default) all coordinates depend on actual zoom and scrolling.
If SelectionBase is iesbBitmap, all coordinates refer to bitmap pixels.

Parameter | Description
x1 | Top-left horizontal position
y1 | Top-left vertical position
x2 | Bottom-right horizontal position. Last column not selected
y2 | Bottom-right vertical position. Last row not selected
Op | Selection operation (add or replace selection). If Op is iespReplace, Select replaces all previous selections. If Op is iespAdd, Select adds a new selection

x2, y2 represent the right/bottom margin (not selected). To select an area of 1x1 pixels we need to select using 0,0,1,1 (the column 1 and the row 1 aren't selected).

Example

// Increase contrast of bitmap rectangle (0,0,49,49)
ImageEnView1.SelectionBase := iesbBitmap;
ImageEnView1.Select(0, 0, 50, 50);
ImageEnView1.Proc.Contrast(10);
ImageEnView1.Deselect;

// Enlarge the selection by ten pixels on all sides
With ImageEnView1 do
begin
SelectionBase := iesbBitmap;
Select( SelX1 - 10, SelY1 - 10, SelX2 - 10, SelY2 - 10 );
End;

See Also

- SelectEllipse
- SelectMagicWand
- SelectRoundRect
- InvertSelection
- Deselect
- SelX1
- SelY1
- SelX2
- SelY2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectColors

TImageEnView.SelectColors

Declaration

procedure SelectColors(StartColor, FinalColor: TRGB; Op: TIESelOp = iespReplace);
procedure SelectColors(Color: TRGB; Op: TIESelOp = iespReplace);
procedure SelectColors(ColorIndex: integer; Op: TIESelOp = iespReplace);

Description

Selects all colors inside the range StartColor up to FinalColor, or specific color or a color index.
If Op is iespReplace the region replaces the existing selection, otherwise if Op is iespAdd, the region is appended to the existing selection.

Third overload accepts ColorIndex, which is the index of a color in image colormap: the bitmat pixelformat must be ie8p (palette).

Example

// select from 200,200,200 to 255,255,255
ImageEnView1.SelectColors(CreateRGB(200, 200, 200), CreateRGB(255, 255, 255));

// select only color 255,0,0 (pure red)
ImageEnView1.SelectColors(CreateRGB(255, 0, 0));

// select color index 5 of a paletted bitmap (ie8p)
ImageEnView1.SelectColors(5);

See Also

- SelectNonAlpha
- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectCustom

TImageEnView.SelectCustom

Declaration

procedure SelectCustom;

Description

Call SelectCustom after you have specified a pixmap of selected pixels of the image.
To select a pixmap use SelectionMask methods like SetPixel.

Example

// only pixels at 10,10 and 15,15 are selected
ImageEnView.SelectionMask.SetPixel(10, 10, 1);
ImageEnView.SelectionMask.SetPixel(15, 15, 1);
ImageEnView.SelectCustom();

See Also

- SelectionMask

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.Selected

TImageEnView.Selected

Declaration

property Selected: boolean;

Description

Returns True if any portion of the image is selected. Selected is True after you have called the Select method. Selected is False after you have called Deselect method.
If Selected is True, the properties SelX1, SelY1, SelX2, SelY2 are valid.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectedRect

TImageEnView.SelectedRect

Declaration

property SelectedRect: TIERectangle;

Description

Returns current selected rectangle. If no selected exists returns the whole image rectangle.
The coordinate has the same dimensions of the bitmap (i.e. it is not affected by Zoom and ViewX, ViewY values).
You can programatically make a selection using the Select method.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectEllipse

TImageEnView.SelectEllipse

Declaration

procedure SelectEllipse(CenterX, CenterY, Width, Height: Integer; Op: TIESelOp = iespReplace);

Description

SelectEllipse makes an elliptical selection, centered at CenterX and CenterY, and with size specified by Width and Height.
Op specifies whether to add a new selection (iespAdd) or replace the current one (iespReplace).

Example

ImageEnView.SelectEllipse( 100, 100, 20, 20 );


TImageEnView.SelectionAbsHeight

TImageEnView.SelectionAbsHeight

Declaration

property SelectionAbsHeight: Integer;

Description

Locks the selection to a specific height, when SelectionAspectRatio is 0.

Example

// we want a fixed selection of 100 x 100 pixels
ImageEnView.SelectionAbsWidth := 100;
ImageEnView.SelectionAbsHeight := 100;
ImageEnView.SelectionAspectRatio := 0;

See Also

- SelectionAbsWidth
- SelectionAspectRatio
- LockHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectionAbsWidth

TImageEnView.SelectionAbsWidth

Declaration

property SelectionAbsWidth: Integer;

Description

Locks the selection to a specific width, when SelectionAspectRatio is 0.

Example

// we want a fixed selection of 100 x 100 pixels
ImageEnView.SelectionAbsWidth := 100;
ImageEnView.SelectionAbsHeight := 100;
ImageEnView.SelectionAspectRatio := 0;

See Also

- SelectionAbsHeight
- SelectionAspectRatio
- LockWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectionAspectRatio

TImageEnView.SelectionAspectRatio

Declaration

property SelectionAspectRatio: Double;

Description

Specifies whether the selection is locked to a specific size or aspect ratio.
If SelectionAspectRatio is -1, the aspect ratio is locked only when user press the ALT key, and is automatically calculated.
If SelectionAspectRatio is 0, the size of the selection is fixed by the SelectionAbsWidth and SelectionAbsHeight properties.
If SelectionAspectRatio is >0, ImageEn locks the selection to the specified aspect ratio.

Example

// we want standard behavior
ImageEnView1.SelectionAspectRatio := -1;

// we want a fixed selection of 100 x 100 pixels
ImageEnView1.SelectionAbsWidth := 100;
ImageEnView1.SelectionAbsHeight := 100;
ImageEnView1.SelectionAspectRatio := 0;

// we want a fixed aspect ratio of 4:3 (standard landscape, i.e. height is 75% of height)
ImageEnView1.SelectionAspectRatio := 4 / 3;

See Also

- LockAspectRatio

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectionBase

TImageEnView.SelectionBase

Declaration

property SelectionBase: TIESelectionBase;

Description

Specifies the meaning of coordinates used when creating a selection.
If SelectionBase is iesbClientArea, then all coordinates depend upon the actual zoom and window view/scrolling (i.e. pixels on screen). Otherwise, if SelectionBase is iesbBitmap, then all coordinates refer to bitmap pixels.

Default: iesbClientArea

Note: Specify before creating a selection. It has no effect on existing selections.

Examples

// Select a 100 pixel square in the top left corner of the bitmap
ImageEnView1.SelectionBase := iesbBitmap;
ImageEnView1.Select(0, 0, 100, 100);

// Select a 100 pixel square that is displayed in the top left corner of the ImageEnView window (100 x 100 pixels of screen area)
ImageEnView1.SelectionBase := iesbClientArea;
ImageEnView1.Select(0, 0, 100, 100);

Note: When ImageEnView1.Zoom = 100, ImageEnView1.ViewX = 0 and ImageEnView1.ViewY = 0, then both the preceeding examples will provide the same result

// Select 20% of the center of the screen
const
Selection_Size = 0.2; // 20% of screen area
begin
ImageEnView1.SelectionBase := iesbClientArea;
ImageEnView1.Select(Trunc((0.5 - Selection_Size / 2) * ImageEnView1.ClientWidth),
Trunc((0.5 - Selection_Size / 2) * ImageEnView1.ClientHeight),
Trunc((0.5 + Selection_Size / 2) * ImageEnView1.ClientWidth),
Trunc((0.5 + Selection_Size / 2) * ImageEnView1.ClientHeight));
end;

See Also

- Select
- XBmp2Scr
- XScr2Bmp
- YBmp2Scr
- YScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectionGridHeight

TImageEnView.SelectionGridHeight

Declaration

property SelectionGridHeight: Integer;

Description

When this is not 1, a grid is drawn over rectangular selections with the row count of SelectionGridHeight (e.g. if SelectionGridHeight=3 then there will be three rows within the selection box). The color of the grid is specified by SelectionGridColor.

This property can be used in place of SelectionGridSize.

Default: 1

See also: SelectionGridWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectionGridSize

TImageEnView.SelectionGridSize

Declaration

property SelectionGridSize: Integer;

Description

When this is not 1, a grid is drawn over rectangular selections with the column and row count of SelectionGridSize (e.g. if SelectionGridSize=3 then there will be three columns and rows within the selection box). The color of the grid is specified by SelectionGridColor.

This property can be used in place of SelectionGridWidth and SelectionGridHeight.

Default: 1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectionGridWidth

TImageEnView.SelectionGridWidth

Declaration

property SelectionGridWidth: Integer;

Description

When this is not 1, a grid is drawn over rectangular selections with the column count of SelectionGridWidth (e.g. if SelectionGridWidth=3 then there will be three columns within the selection box). The color of the grid is specified by SelectionGridColor.

This property can be used in place of SelectionGridSize.

Default: 1

See also: SelectionGridHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectionIntensity

TImageEnView.SelectionIntensity

Declaration

property SelectionIntensity: Integer;

Description

Specifies the selection intensity and is valid only when the SelectionMaskDepth is 8 (8 bit), otherwise it must be 1.
You can assign a value from 0 to 255 which will be applied to the next or current selection.

See also: SelectionMaskDepth.

Demo

Demos\ImageEditing\SoftSelections\SoftSel.dpr

Example

ImageEnView.SelectionMaskDepth := 8;
ImageEnView.SelectionIntensity := 128;
ImageEnView.Select( 10, 10, 100, 100 );
ImageEnView.Proc.Negative; // the negative is applied at 50 % (128=semi selected)


TImageEnView.SelectionMask

TImageEnView.SelectionMask

Declaration

property SelectionMask: TIEMask;

Description

SelectionMask contains the current selection as a bit mask of 1 bit per pixel (zero is unselected, 1 is selected).

Example

// Excludes pixel 100,100 from selection
ImageEnView1.SelectionMask.SetPixel(100, 100, 0);

// To create a new selection using only SelectionMask (this select point 50,50 and 55,55)
ImageEnView1.SelectionMask.SetPixel(50, 50, 1);
ImageEnView1.SelectionMask.SetPixel(55, 55, 1);
ImageEnView1.SelectCustom();

See Also

- SelectCustom

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectionMaskDepth

TImageEnView.SelectionMaskDepth

Declaration

property SelectionMaskDepth: Integer;

Description

The SelectionMaskDepth property allows the specification of the selection depth in bits.
The default is 1 bit which means a pixel has two states "unselected" (0) or "selected" (1).
If the setting is 8 (8 bit), a pixel can be "unselected" (0), "semi-selected" (1 to 254), or "fully selected" (255). This allows creating soft or feathered selections.

Note: SelectionOptions=iesoFilled is not supported when the SelectionMaskDepth = 8

Example

ImageEnView.SelectionMaskDepth := 8;
ImageEnView.SelectionIntensity := 128;
ImageEnView.Select( 10, 10, 100, 100 );
ImageEnView.Proc.Negative; // the negative is applied at 50 % (128=semi selected)


TImageEnView.SelectionOptions

TImageEnView.SelectionOptions

Declaration

property SelectionOptions: TIESelectionOptions;

Description

Provides access to selection behavior options.

Default: SelectionOptions = [iesoAnimated, iesoSizeable, iesoMoveable, iesoCanScroll, iesoAllowMoveByKeyboard];


TImageEnView.SelectMagicWand

TImageEnView.SelectMagicWand

Declaration

procedure SelectMagicWand(x, y: Integer; Op: TIESelOp);

Description

SelectMagicWand selects an irregular region that has similar colors.

Parameter | Description
x | Starting horizontal coordiante
y | Starting vertical coordinate
Op | If Op is iespReplace the region replaces the existing selection, otherwise if Op is iespAdd, the region is appended to the existing selection

Example

ImageEnView1.SelectMagicWand(10, 10, iespReplace);


TImageEnView.SelectNonAlpha

TImageEnView.SelectNonAlpha

Declaration

procedure SelectNonAlpha(Op: TIESelOp = iespReplace);

Description

Selects all pixels based on the alpha channel. Pixels of Alpha value 0 will be unselected, 255 will be selected, and 1 - 254 partially selected.
If Op is iespReplace the region replaces the existing selection, otherwise if Op is iespAdd, the region is appended to the existing selection.

Example

// Load a transparent PNG file and select the non-alpha pixels
ImageEnView1.IO.LoadFromFile( 'D:\Transparent.png' );
ImageEnView1.SelectNonAlpha();

See Also

- SelectColors

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelectRoundRect

TImageEnView.SelectRoundRect

Declaration

procedure SelectRoundRect(Left, Top, Right, Bottom, RoundWidth, RoundHeight: integer; Op: TIESelOp = iespReplace);

Description

Creates a rounded selection.
Left, Top, Right, Bottom are the rectangle coordinates.
RoundWidth and RoundHeight specify the size of the rounding (in pixels).
Op specifies whether to add a new selection (iespAdd) or replace the current one (iespReplace).

Example

ImageEnView1.SelectRoundRect(100, 100, 250, 250, 20, 20);


TImageEnView.SelX1

TImageEnView.SelX1

Declaration

property SelX1: integer; (Read-only)

Description

Returns the top-left X (column) coordinate of the selected area.
The value is a coordinate of the Bitmap itself, i.e. it is independent of scrolling (ViewX and ViewY) and Zoom (e.g. you will get the same result whether the zoom is 50% or 100%).

Note:
- The selected area can be specified using Select
- You can convert the returned value to a screen value using XBmp2Scr

Example

// Enlarge the selection by ten pixels on all sides
With ImageEnView1 do
begin
SelectionBase := iesbBitmap;
Select( SelX1 - 10, SelY1 - 10, SelX2 - 10, SelY2 - 10 );
End;

See Also

- SelY1
- SelX2
- SelY2
- Select
- XBmp2Scr
- YBmp2Scr
- XScr2Bmp
- YScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelX2

TImageEnView.SelX2

Declaration

property SelX2: integer; (Read-only)

Description

Returns bottom-right X (column) coordinate of the selected area.
The value is a coordinate of the Bitmap itself, i.e. it is independent of scrolling (ViewX and ViewY) and Zoom (e.g. you will get the same result whether the zoom is 50% or 100%).

Note:
- The selected area can be specified using Select
- You can convert the returned value to a screen value using XBmp2Scr

Example

// Enlarge the selection by ten pixels on all sides
With ImageEnView1 do
begin
SelectionBase := iesbBitmap;
Select( SelX1 - 10, SelY1 - 10, SelX2 - 10, SelY2 - 10 );
End;

See Also

- SelX1
- SelY1
- SelY2
- Select
- XBmp2Scr
- YBmp2Scr
- XScr2Bmp
- YScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelY1

TImageEnView.SelY1

Declaration

property SelY1: integer; (Read-only)

Description

Returns the top-left Y (row) coordinate of the selected area.
The value is a coordinate of the Bitmap itself, i.e. it is independent of scrolling (ViewX and ViewY) and Zoom (e.g. you will get the same result whether the zoom is 50% or 100%).

Note:
- The selected area can be specified using Select
- You can convert the returned value to a screen value using YBmp2Scr

Example

// Enlarge the selection by ten pixels on all sides
With ImageEnView1 do
begin
SelectionBase := iesbBitmap;
Select( SelX1 - 10, SelY1 - 10, SelX2 - 10, SelY2 - 10 );
End;

See Also

- SelX1
- SelX2
- SelY2
- Select
- XBmp2Scr
- YBmp2Scr
- XScr2Bmp
- YScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SelY2

TImageEnView.SelY2

Declaration

property SelY2: integer; (Read-only)

Description

Returns the bottom-right Y (row) coordinate of the selected area.
The value is a coordinate of the Bitmap itself, i.e. it is independent of scrolling (ViewX and ViewY) and Zoom (e.g. you will get the same result whether the zoom is 50% or 100%).

Note:
- The selected area can be specified using Select
- You can convert the returned value to a screen value using YBmp2Scr

Example

// Enlarge the selection by ten pixels on all sides
With ImageEnView1 do
begin
SelectionBase := iesbBitmap;
Select( SelX1 - 10, SelY1 - 10, SelX2 - 10, SelY2 - 10 );
End;

See Also

- SelX1
- SelY1
- SelX2
- Select
- XBmp2Scr
- YBmp2Scr
- XScr2Bmp
- YScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SetAlphaRangePixelsColor

TImageEnView.SetAlphaRangePixelsColor

Declaration

procedure SetAlphaRangePixelsColor(alphaMin, alphaMax: Integer; color: TRGB);

Description

Sets all pixels that have an alpha channel value between alphaMin and alphaMax to the specified color.

Example

// this example loads an image with alpha channel, then paints all transparent pixels (0...254 alpha values) using White color, finally saves in a jpeg where we cannot save the alpha channel.
ImageEnView.IO.LoadFromFile('C:\test.png');
ImageEnView.SetAlphaRangePixelsColor(0, 254, CreateRGB(255, 255, 255));
ImageEnView.IO.SaveToFile('C:\output.jpg');

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SetChessboardStyle

TImageEnView.SetChessboardStyle

Declaration

procedure SetChessboardStyle(Size: Integer; BrushStyle: TBrushStyle = bsSolid; Color1: TColor = clNone; Color2: TColor = clNone);

Description

Sets the size and brush of the chessboard background (when BackgroundStyle is iebsChessboard).

Parameter | Description
Size | Specifies the box size (default 16)
BrushStyle | Specifies the brush style of the boxes (default bsSolid)
Color1 | Color 1 of chessboard. Specifying this as something other than clNone will set Background
Color2 | Color 2 of chessboard. If specified as clNone, then color 2 will be a reverse of Color 1

Example

// Set small chessboard background of Yellow and Blue
ImageEnView1.SetChessboardStyle( 5, bsSolid, clBlue, clYellow );
ImageEnView1.BackgroundStyle := iebsChessboard;


TImageEnView.SetExternalBitmap

TImageEnView.SetExternalBitmap

Declaration

procedure SetExternalBitmap(bmp: TIEBitmap);

Description

Allows you to connect the TImageEnView component to another TIEBitmap, including sharing the bitmap of another TImageEnView.
This is useful to view the same image with multiple TImageEnView components, but loading the image only once.

Demo

Demos\Display\ExternalBitmap\ExternalBMP.dpr

Example

ImageEnView1.IO.LoadFromFile('C:\input.jpg');
ImageEnView2.SetExternalBitmap( ImageEnView1.IEBitmap );

..Both ImageEnView1 and ImageEnView2 now show input.jpg.


TImageEnView.SetInteractionHint

TImageEnView.SetInteractionHint

Declaration

procedure SetInteractionHint(const Text: String; x, y: Integer; const minText: String);

Description

Specify a text hint to appear over the ImageEnView (which will be displayed at the next painting event).

Parameter | Description
Text | Text to draw
x | Horizontal position
y | Vertical position
minText | Example (dummy) text to calculate the minimum text size

Example

// display current position in pixels
procedure TForm1.ImageEnVect1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
xx, yy: integer;
begin
xx := ImageEnView1.XScr2Bmp(X);
yy := ImageEnView1.yscr2bmp(Y);
if (xx >= 0) and (xx < ImageEnView1.IEBitmap.Width) and (yy >= 0) and (yy < ImageEnView1.IEBitmap.Height) then
begin
ImageEnView1.SetInteractionHint(Format('%d %d', [xx, yy]), X, Y, '0000 0000');
ImageEnView1.Paint();
end;
end;


TImageEnView.SetLayersBoxStyle

TImageEnView.SetLayersBoxStyle

Declaration

procedure SetLayersBoxStyle(PenStyle: TPenStyle = psDot; PenMode: TPenMode = pmNot; PenWidth: Integer = 1; PenColor: TColor = clBlack);

Description

Specifies the style of layer box border, if LayersDrawBox is enabled.

For more control, use OnDrawLayerBox

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SetLayersGripStyle

TImageEnView.SetLayersGripStyle

Declaration

procedure SetLayersGripStyle(GripColor1, GripColor2: TColor; GripBrushStyle: TBrushStyle; GripSize: Integer; Shape: TIEGripShape);

Description

SetLayersGripStyle determines the appearance of layers grips.

Parameter | Description
GripColor1 | grip border color
GripColor2 | grip brush color
GripBrushStyle | brush style
GripSize | size in pixels of the grip
Shape | specifies the grip shape

Example

ImageEnView1.SetLayersGripStyle(clWhite, clWhite, bsSolid, 5, iegsCircle);


TImageEnView.SetNavigator

TImageEnView.SetNavigator

Declaration

procedure SetNavigator(nav: TImageEnView; options: TIENavigatorOptions);

Description

SetNavigator specifies a TImageEnView component which works as navigator of current image. A navigator shows a selection that controls the zoom and scroll of the main control.
Use options to fine-tune navigator behavior.

Demos

Demos\Display\Navigator\Navigator.dpr
Demos\Display\Navigator2\Navigator.dpr

Example

ImageEnView1.SetNavigator(ImageEnView2, [ienoMouseWheelZoom, ienoMarkOuter]);
ImageEnView1.IO.LoadFromFile('input.jpg');


TImageEnView.SetSelectedAreaAlpha

TImageEnView.SetSelectedAreaAlpha

Declaration

procedure SetSelectedAreaAlpha(Alpha: Integer);

Description

Sets the Alpha value (transparency) for all pixels inside current selection.

To activate the alpha channel (transparency), set EnableAlphaChannel to True.

Example

// set transparency to 180 inside 10,10,100,100 rectangle
ImageEnView1.Select(10, 10, 100, 100);
ImageEnVIew1.SetSelectedAreaAlpha(180);
ImageEnView1.io.SaveToFile('C:\image.png'); // save with alpha channel


TImageEnView.SetSelectedPixelsColor

TImageEnView.SetSelectedPixelsColor

Declaration

procedure SetSelectedPixelsColor(color: TRGB);

Description

Sets selected pixels to the specified color.

Example

// select all pixels of a similar color to that 0, 0. Then fills all selected pixels with White.
ImageEnView.SelectMagicWand(0, 0, iespReplace);
ImageEnView.SetSelectedPixelsColor( CreateRGB(255, 255, 255) );

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SetSelectionGripStyle

TImageEnView.SetSelectionGripStyle

Declaration

procedure SetSelectionGripStyle(GripColor1, GripColor2: TColor; GripBrushStyle: TBrushStyle; GripSize: Integer; ExtendedGrips: Boolean; boolean; Shape: TIEGripShape);

Description

SetSelectionGripStyle determines the appearance of selection grips.

Parameter | Description
GripColor1 | grip border color (default clBlack)
GripColor2 | grip brush color (default clWhite)
GripBrushStyle | brush style (default bsSolid)
GripSize | size in pixels of the grip (default 5)
ExtendedGrips | if true enables grips on border with 8 resizing grips (deault true)
Shape | specifies the grip shape

Use GetSelectionGripStyle to know current values.

Example

ImageEnView1.SetSelectionGripStyle(clWhite, clWhite, bsSolid, 5, true, iegsCircle);


TImageEnView.SetSelectionMarkOuterStyle

TImageEnView.SetSelectionMarkOuterStyle

Declaration

procedure SetSelectionMarkOuterStyle(Alpha: Integer; Color: TColor);

Description

When SelectionOptions is iesoMarkOuter, this method specifies how the outer area will be drawn.
If Alpha = -1 (default) a gray grid is displayed.
If Alpha >= 0 and <= 255 a solid color is painted.

Example

// Areas outside the selection will be marked with red (with 50% transparency)
ImageEnView1.SelectionOptions := ImageEnView1.SelectionOptions+[iesoMarkOuter];
ImageEnView1.SetSelectionMarkOuterStyle(128, clRed);


TImageEnView.SetViewXY

TImageEnView.SetViewXY

Declaration

procedure SetViewXY(x, y: integer);

Description

Sets ViewX and ViewY in one step to change the displayed portion of the image (programatic scroll).


TImageEnView.SetViewXYSmooth

TImageEnView.SetViewXYSmooth

Declaration

procedure SetViewXYSmooth(x, y: Integer);

Description

Repositions the image view (i.e. by setting ViewX and ViewY), but does so with smooth scrolling (image will slowly pan to the new location).
To control the smoothness set SmoothScrollValue.

See Also

- OnFinishSmoothTask
- SmoothScrollValue

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.SetZoomSmooth

TImageEnView.SetZoomSmooth

Declaration

procedure SetZoomSmooth(Zoom: Double);

Description

Sets the image zoom (i.e. by setting Zoom), but does so with smooth zoom (image will slowly zoom to the new value).
To control the smoothness set SmoothZoomValue.

See Also

- OnFinishSmoothTask
- SmoothZoomValue

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ShowRulers

TImageEnView.ShowRulers

Declaration

property ShowRulers: TRulerDirs;

Description

Specify whether rulers are shown on the TImageEnView. Rulers show the current position of the cursor and can include optional grips to mark the position of other objects.
Use RulerParams to configure the ruler properties.

Default: [] (No rulers)

Demo

Demos\Other\ImageEnViewRulers\ImageEnViewRulers.dpr

Example

// Show rulers in TImageEnView
ImageEnView1.ShowRulers := [ rdHorizontal, rdVertical ];

// Set units to CM
ImageEnView1.RulerParams.Units := ieruCentimeters;


TImageEnView.SmoothScrollValue

TImageEnView.SmoothScrollValue

Declaration

property SmoothScrollValue: Integer;

Description

Specifies the smoothness (speed) of scrolling when SetViewXYSmooth is called or MouseInteract contains miMovingScroll.
A large values increases the smoothness. "0" disables smoothing (i.e. so that it acts like SetViewXY).
Default: 8.


TImageEnView.SmoothZoomValue

TImageEnView.SmoothZoomValue

Declaration

property SmoothZoomValue: Integer;

Description

Specifies the smoothness (speed) of zooming when SetZoomSmooth is called.
A large values increases the smoothness. "0" disables smoothing (i.e. so that it acts like Zoom).
Default: 8.


TImageEnView.SoftCrop

TImageEnView.SoftCrop

Declaration

property SoftCrop: TIESoftCropMode;

Description

Specifies the operation to perform when a layer is outside of the background layer (layer 0). I.e. to provide a visual indication to the user.

Portion of layers that are outside the background layer are shown as:
Value | Description
iesfNone | Normal
iesfAlphaBlend | Partially transparent (to the level specified by SoftCropValue)
iesfGrid | Grayed (Grid matrix pattern)
iesfAdd | Color shifted/washed out (to the level specified by SoftCropValue)


TImageEnView.SoftCropValue

TImageEnView.SoftCropValue

Declaration

property SoftCropValue: Integer;

Description

If SoftCrop is iesfAlphaBlend then the SoftCropValue specifies the level of transparency from 0 (minimal) to 255 (fully)
If SoftCrop is iesfAdd then the SoftCropValue specifies the amount of color shift from 0 (minimal) to 255 (extreme)


TImageEnView.Stretch

TImageEnView.Stretch

Declaration

procedure Stretch;

Description

This method sets ZoomX and ZoomY values to stretch the image to fit within the component borders.

Note: Using this method you will lose the image aspect ratio and some functions, which require aspect ratio, may not work properly.

See Also

- Fit
- FitToWidth
- FitToHeight
- loFitToLayersWhenZooming

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.TransitionRunning

TImageEnView.TransitionRunning

Declaration

property TransitionRunning: Boolean;

Description

TransitionRunning is True whenever a transition effect is being displayed.

See Also

- PrepareTransition
- RunTransition
- AbortTransition

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.TransitionTiming

TImageEnView.TransitionTiming

Declaration

property TransitionTiming: TIETransitionTiming;

Description

TransitionTiming provides alternative timing options for transition effect progress. Generally this will be iettLinear (normal progress).


TImageEnView.UnlockPaint

TImageEnView.UnlockPaint

Declaration

function UnlockPaint: integer;

Description

Use the UnlockPaint method to decrease the lock counter's value. The ImageEnView window will not be repainted while LockPaintCount > 0.

If calling UnlockPaint resets LockPaintCount to zero then the Update method is automatically called.

Returns the lock count.

See also: LockPaint

Example

ImageEnView1.LockPaint;
ImageEnView1.ViewX := 10;
ImageEnView1.ViewY := 20;
ImageEnView1.Zoom := 300;
ImageEnView1.UnLockPaint;


TImageEnView.UnlockUpdate

TImageEnView.UnlockUpdate

Declaration

procedure UnlockUpdate;

Description

Re-enables all calls to the Update method, after a call to LockUpdate.
LockUpdate and UnLockUpdate are useful, for example, when you need to resample multiple layers.
UnLockUpdate descreases LockUpdateCount and calls Update when the count reverts to zero.

Example

ImageEnView1.LockUpdate;
for i := 0 to ImageEnView1.LayersCount-1 do
begin
ImageEnView1.LayersCurrent := i;
ImageEnView1.Proc.Resample(300, -1, rfNone); // without LockUpdate this call resizes all other layers
end;
ImageEnView1.UnlockUpdate;


TImageEnView.UnLockUpdateEx

TImageEnView.UnLockUpdateEx

Declaration

procedure UnLockUpdateEx;

Description

UnLockUpdateEx re-enables all calls to the Update method, after a call to LockUpdate.
LockUpdate and UnLockUpdateEx are useful, for example, when you need to resample multiple layers.
UnLockUpdateEx doesn't call Update when the update can be unlocked.


TImageEnView.Update

TImageEnView.Update

Declaration

procedure Update;

Description

The Update method refreshes the TImageEnView component view with the current state of the image and redraws the client area.
You must call Update or UpdateNoPaint() whenever the Bitmap or IEBitmap property is modified by your code.
Update is called automatically when an image processing or I/O operation is executed.

Example

// Draw a rectangle on the image and show it
ImageEnView1.Bitmap.Canvas.Rectangle(5, 5, 100, 100);
ImageEnView1.Update;


TImageEnView.UpdateNoPaint

TImageEnView.UpdateNoPaint

Declaration

procedure UpdateNoPaint;

Description

The Update method refreshes the TImageEnView component view with the current state of the image.
You must call Update or UpdateNoPaint() whenever the Bitmap or IEBitmap property is modified by your code.
Unlike Update, UpdateNoPaint doesn't paint the image, just refreshes the bitmap data.


TImageEnView.UpdateReason

TImageEnView.UpdateReason

Declaration

property UpdateReason: TIEUpdateReason;

Description

Advises the reason for the next Update. This is used to optimize the Update() task.
This property is restored to ieurDefault after Update() has executed.


TImageEnView.UpdateRect

TImageEnView.UpdateRect

Declaration

procedure UpdateRect(rclip: TRect);

Description

UpdateRect updates the rectangle, rclip. Use this function instead of Update when only a portion of the image has changed.

Example

// we assume that Zoom = 100
ImageEnView1.Bitmap.Canvas.Fill(0, 0, 10, 10);
ImageEnView1.UpdateRect(rect(0, 0, 10, 10));


TImageEnView.ViewX

TImageEnView.ViewX

Declaration

property ViewX: integer;

Description

ViewX and ViewY specify the top-left of the image that is visible in the TImageEnView component window. Use ViewX/Y to programatically scroll images bigger than the TImageEnView.

Example

ImageEnView1.ViewX := 20; // View from column 20 of bitmap (i.e. first 20 pixels on the left of the image will no longer be visible)
ImageEnView1.Zoom := 200; // zoom image to 200%
ImageEnView1.ViewX := 20; // view from column 40 of bitmap (i.e. first 40 pixels on the left of the image will no longer be visible)

See Also

- ViewY
- ExtentX
- XScr2Bmp
- VisibleBitmapRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ViewY

TImageEnView.ViewY

Declaration

property ViewY: integer;

Description

ViewX and ViewY specify the top-left of the image that is visible in the TImageEnView component window. Use ViewX/Y to programatically scroll images bigger than the TImageEnView.

Example

ImageEnView1.ViewX := 20; // View from column 20 of bitmap (i.e. first 20 pixels on the left of the image will no longer be visible)
ImageEnView1.Zoom := 200; // zoom image to 200%
ImageEnView1.ViewX := 20; // view from column 40 of bitmap (i.e. first 40 pixels on the left of the image will no longer be visible)

See Also

- ViewX
- ExtentY
- YScr2Bmp
- VisibleBitmapRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.VisibleBitmapRect

TImageEnView.VisibleBitmapRect

Declaration

property VisibleBitmapRect : TRect; (read/write)

Description

Show a specific area of the current image, or return the area of the image that is shown.

Note: The rectangle passed will be automatically adjusted to ensure the correct aspect ratio.

Examples

// Show the central portion of an image
ImageEnView1.VisibleBitmapRect := Rect( 100, 100, 200, 200 );

// Output the visible bitmap in ImageEnView1 to ImageEnView2
ImageEnView2.IEBitmap.Width := IERectangle( ImageEnView1.VisibleBitmapRect ).Width;
ImageEnView2.IEBitmap.Height := IERectangle( ImageEnView1.VisibleBitmapRect ).Height;
ImageEnView1.IEBitmap.DrawToTIEBitmap( ImageEnView2.IEBitmap, 0, 0, IERectangle( ImageEnView1.VisibleBitmapRect ) );
ImageEnView2.Update;

See Also

- ViewX
- ViewY
- ExtentX
- ExtentY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.VisibleSelection

TImageEnView.VisibleSelection

Declaration

property VisibleSelection: Boolean;

Description

When true the current selection is displayed. This property is still valid when the selection is hidden.


TImageEnView.VScrollBarParams

TImageEnView.VScrollBarParams

Declaration

property VScrollBarParams: TIEScrollBarParams;

Description

The VScrollBarParams property allows an application to customize the vertical scrollbar behavior, including tracking (display refresh on mouse dragging), up/down buttons pixel scrolling, pagedown/up pixel scrolling.

Example

// disable tracking
ImageEnView1.VScrollBarParams.Tracking := False;


TImageEnView.Wallpaper

TImageEnView.Wallpaper

Declaration

property Wallpaper: TPicture;

Description

The Wallpaper property allows you to use an image for your background (behind the main image and layers).
Use WallpaperStyle to specify how to paint the wallpaper.

Example

// Tile a bitmap over the background
ImageEnView1.WallpaperStyle := iewoTile
ImageEnView1.Wallpaper.LoadFromFile('D:\MyWallpaper.bmp');

// Clear the wallpaper
ImageEnView1.Wallpaper := nil;


TImageEnView.WallpaperStyle

TImageEnView.WallpaperStyle

Declaration

property WallpaperStyle: TIEWallpaperStyle;

Description

If you are using an image for your background (specified by Wallpaper), then WallpaperStyle defines how it will be painted.

Example

// Tile a bitmap over the background
ImageEnView1.WallpaperStyle := iewoTile
ImageEnView1.Wallpaper.LoadFromFile('D:\MyWallpaper.bmp');


TImageEnView.XBmp2Scr

TImageEnView.XBmp2Scr

Declaration

function XBmp2Scr(x: Integer; CurrentLayer: Boolean): Integer;

Description

The XBmp2Scr and YBmp2Scr methods convert a bitmap coordinate to the window coordinate (considering the Zoom and View status). x and y are bitmap coordinates.
These methods are useful to select a bitmap region independently from the Zoom, ViewX and ViewY properties.

x is a bitmap coordinate.
If CurrentLayer is true, then x is assumed to be a coordinate of the current layer. If false, y is a coordinate of the background layer (layer 0).

Note: To convert a coordinate of a non-current layer, you can use TImageEnView.Layers[].ConvXBmp2Scr

Demo

Demos\Other\PixelView\PixelView.dpr

Example

// Select rect 10,10,100,100 of bitmap
ImageEnView1.Zoom(300);
x1 := XBmp2Scr(10);
y1 := YBmp2Scr(10);
x2 := XBmp2Scr(100);
y2 := YBmp2Scr(100);
ImageEnView1.Select( x1, y1, x2, y2);

// Select rect 10,10,100,100 of the window
ImageEnView1.Select(10, 10, 100, 100)

See Also

- YBmp2Scr
- XScr2Bmp
- YScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.XScr2Bmp

TImageEnView.XScr2Bmp

Declaration

function XScr2Bmp(x: integer; CurrentLayer: Boolean): integer;

Description

The XScr2Bmp and YScr2Bmp methods convert a window coordinate to the corresponding bitmap coordinate (considering Zoom and ViewX, ViewY status).

x is a window coordinate.
If CurrentLayer is true, then the result will be a coordinate relative to the current layer. If false, it will be a coordinate relative to the background layer (layer 0).

Notes:
- The result may be negative or greater than the bitmap width if x is beyond the displayed image's boundaries
- To convert a coordinate of a non-current layer, use TImageEnView.Layers[].ConvXScr2Bmp

Demo

Demos\Other\PixelView\PixelView.dpr

Example

// X and Y are MOUSE coordinates
bx := ImageEnView1.XScr2Bmp( X, False );
by := ImageEnView1.YScr2Bmp( Y, False );
// now bx and by are Bitmap coordinates (of ImageEnView1.Bitmap)

See Also

- YScr2Bmp
- XBmp2Scr
- YBmp2Scr
- VisibleBitmapRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.YBmp2Scr

TImageEnView.YBmp2Scr

Declaration

function YBmp2Scr(y: Integer; CurrentLayer: Boolean): Integer;

Description

The YBmp2Scr and XBmp2Scr methods convert a bitmap coordinate to the window coordinate (considering the Zoom and View status). x and y are bitmap coordinates.
These methods are useful to select a bitmap region independently from the Zoom, ViewX and ViewY properties.

y is a bitmap coordinate.
If CurrentLayer is true, then y is assumed to be a coordinate of the current layer. If false, y is a coordinate of the background layer (layer 0).

Note: To convert a coordinate of a non-current layer, you can use TImageEnView.Layers[].ConvYBmp2Scr

Demo

Demos\Other\PixelView\PixelView.dpr

Example

// Select rect 10, 10, 100, 100 of bitmap
ImageEnView1.Zoom(300);
x1 := XBmp2Scr(10);
y1 := YBmp2Scr(10);
x2 := XBmp2Scr(100);
y2 := YBmp2Scr(100);
ImageEnView1.Select( x1, y1, x2, y2);

// Select rect 10,10,100,100 of the window
ImageEnView1.Select(10, 10, 100, 100)

See Also

- XBmp2Scr
- XScr2Bmp
- YScr2Bmp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.YScr2Bmp

TImageEnView.YScr2Bmp

Declaration

function YScr2Bmp(y: integer; CurrentLayer: Boolean): integer;

Description

The XScr2Bmp and YScr2Bmp methods convert a window coordinate to the corresponding bitmap coordinate (considering Zoom and ViewX, ViewY status).

y is a window coordinate.
If CurrentLayer is true, then the result will be a coordinate relative to the current layer. If false, it will be a coordinate relative to the background layer (layer 0).

Notes:
- The result may be negative or greater than the bitmap height if y is beyond the displayed image's boundaries
- To convert a coordinate of a non-current layer, use TImageEnView.Layers[].ConvYScr2Bmp

Demo

Demos\Other\PixelView\PixelView.dpr

Example

// X and Y are MOUSE coordinates
bx := ImageEnView1.XScr2Bmp( X, False );
by := ImageEnView1.YScr2Bmp( Y, False );
// now bx and by are Bitmap coordinates (of ImageEnView1.Bitmap)

See Also

- XScr2Bmp
- XBmp2Scr
- YBmp2Scr
- VisibleBitmapRect

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.Zoom

TImageEnView.Zoom

Declaration

property Zoom: double;

Description

Use the Zoom property to zoom in or out of the image. The image itself is not modified, only its display size changes.
Zoom is expressed as a percentage of its native size, i.e. 100 is normal size, values less than 100 decrease the display size and values greater than 100 increase the display size.

Note: Zoom will have no effect if AutoFit, AutoShrink or AutoStretch are enabled.

See Also

- ZoomX
- ZoomY
- ZoomIn
- ZoomOut

Example

// Half size: a 200x200 pixel image is displayed at a size of 100x100
ImageEnView.Zoom := 50;

// Double size: a 200x200 pixel image is displayed at a size of 400x400
ImageEnView.Zoom := 200;

// floating point zoom
ImageEnView.Zoom := 30.25;


TImageEnView.ZoomAt

TImageEnView.ZoomAt

Declaration

procedure ZoomAt(x, y: integer; ZoomVal: double; Center: Boolean=true);

Description

Zooms by the percentage specified by ZoomVal.
If the optional Center parameter if False, the zooming center is x, y, otherwise (the default) it is the center of image.


TImageEnView.ZoomFilter

TImageEnView.ZoomFilter

Declaration

property ZoomFilter: TResampleFilter;

Description

Specifies the filter to apply when the image is not displayed at normal size (i.e. Zoom is not 100). It improves the quality of the image display.
For fastest display the ZoomFilter should be set to rfNone (default), but better quality is achieved with a filter such as rfLancoz3.

Default: rfNone

Demo

Demos\Display\ZoomFilter\ZoomFilter.dpr

Example

// Performs a 400% quality zoom
ImageEnView1.ZoomFilter := rfFastLinear;
ImageEnView1.Zoom := 400;


TImageEnView.ZoomIn

TImageEnView.ZoomIn

Declaration

procedure ZoomIn;

Description

Provides a convenient method to handle clicking of a "Zoom In" button. Each time ZoomIn is called it increases the zoom by a logical step, e.g. 50 to 75, 75 to 100, etc.
It also includes "Fit to Window" as one of the steps.

Note: ZoomIn will have no effect if AutoFit, AutoShrink or AutoStretch are enabled.

See Also

- Zoom
- ZoomOut

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ZoomOut

TImageEnView.ZoomOut

Declaration

procedure ZoomOut;

Description

Provides as a convenient method to handle clicking of a "Zoom Out" button. Each time ZoomOut is called it decreases the zoom by a logical step, e.g. 100 to 75, 75 to 50, etc.
It also includes "Fit to Window" as one of the steps.

Note: ZoomOut will have no effect if AutoFit, AutoShrink or AutoStretch are enabled.

See Also

- Zoom
- ZoomIn

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ZoomSelection

TImageEnView.ZoomSelection

Declaration

procedure ZoomSelection(AspectRatio: Boolean);

Description

The ZoomSelection method zooms to a rectangular area specified with Select method.
If AspectRatio is true then the zoom respects the aspect ratio of the image, otherwise the image area is stretched to match the size of the component.

Example

ImageEnView1.Select(10, 10, 100, 100);
ImageEnView1.ZoomSelection; // fill client area (if possible) with rectangle 10,10,100,100


TImageEnView.ZoomSelectionAspectRatio

TImageEnView.ZoomSelectionAspectRatio

Declaration

property ZoomSelectionAspectRatio: Boolean;

Description

This property is active when MouseInteract contains miSelectZoom. If true, the selected rectangle is adjusted to maintain the aspect ratio. Otherwise (false) the image loses the aspect ratio (ZoomX <> ZoomY and Zoom value is invalid) making it stretched inside the window.

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ZoomX

TImageEnView.ZoomX

Declaration

property ZoomX: Double;

Description

ZoomX specifies the horizontal Zoom. Using this property (and/or ZoomY) you lose the image aspect ratio and some functions, which require aspect ratio, may not work properly.
Setting ZoomX and ZoomY to the same value is equivalent to setting Zoom.

See Also

- Zoom
- ZoomY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TImageEnView.ZoomY

TImageEnView.ZoomY

Declaration

property ZoomY: Double;

Description

ZoomY specifies the vertical zoom. Using this property (and/or ZoomX) you lose the image aspect ratio and some functions, which require aspect ratio, may not work properly.
Setting ZoomX and ZoomY to the same value is equivalent to setting Zoom.

See Also

- Zoom
- ZoomX

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOBMPCompression

TIOBMPCompression

Declaration

type TIOBMPCompression = (ioBMP_UNCOMPRESSED, ioBMP_RLE);

Description

ioBMP_UNCOMPRESSED: Uncompressed bitmap
ioBMP_RLE: Compressed bitmap (generally smaller than uncompressed, but not always)


TIOBMPRAWChannelOrder

TIOBMPRAWChannelOrder

Declaration

TIOBMPRAWChannelOrder=(coRGB, coBGR);


TIOBMPRAWDataFormat

TIOBMPRAWDataFormat

Declaration

TIOBMPRAWDataFormat = (dfBinary, dfTextDecimal, dfTextHex);

Description

Value | Description
dfBinary | Binary raw data
dfTextDecimal | Ascii text as decimal values
dfTextHex | Ascii text as hexadecimal values


TIOBMPRAWPlanes

TIOBMPRAWPlanes

Declaration

TIOBMPRAWPlanes = (plInterleaved, plPlanar);

Description

plInterleaved channels are B,G,R,B,G,R...
plPlanar channels are BBB.., GGG.., RRR...


TIOBMPVersion

TIOBMPVersion

Declaration

type TIOBMPVersion = (ioBMP_BM, ioBMP_BM3, ioBMP_BMOS2V1, ioBMP_BMOS2V2);

Description

Value | Description
ioBMP_BM | Old Windows bitmap
ioBMP_BM3 | Windows 3.x or newer bitmap
ioBMP_BMOS2V1 | IBM OS/2 version 1.x bitmap
ioBMP_BMOS2V2 | IBM OS/2 version 2.x bitmap


TIOByteOrder

TIOByteOrder

Declaration

TIOByteOrder = (ioBigEndian, ioLittleEndian);

Description

ioBigEndian: Motorola Byte Order
ioLittleEndian: Intel Byte Order


TIOFileType

TIOFileType

Declaration

TIOFileType = integer;

Description

Specifies a file format supported by ImageEn (may be read-write, read-only or write-only).

Constant | Description
ioUnknown | Unknown file format
ioTIFF | TIFF Bitmap
ioGIF | GIF
ioJPEG | Jpeg bitmap
ioPCX | PaintBrush PCX
ioBMP | Windows Bitmap
ioICO | Windows Icon
ioCUR | Windows Cursor
ioPNG | Portable Network Graphics
ioWMF | Windows Metafile
ioEMF | Enhanced Windows Metafile
ioTGA | Targa Bitmap
ioPXM | Portable Pixmap, GreyMap, BitMap
ioJP2 | Jpeg2000
ioJ2K | Jpeg2000
ioAVI | AVI video
ioWBMP | Wireless bitmap
ioPS | Postscript
ioPDF | Adobe PDF
ioSVG | Scalable Vector Graphics
ioDCX | Multipage PCX
ioRAW | Digital Camera RAW (requires ielib or ievision)
ioBMPRAW | Bitmap RAW
ioWMV | Windows Media
ioMPEG | Video MPEG
ioPSD | Adobe Photoshop PSD
ioIEV | Vectorial objects (SaveToFileIEV)
ioIEN | ImageEn native image format with layers (formerly ioLYR)
ioALL | Combined layers and vectorial objects (SaveToFileAll)
ioDICOM | DICOM medical imaging
ioHDP | Microsoft HD Photo. Requires Windows XP (SP2) with .Net 3.0, Windows Vista or newer
ioOtherDLLPlugIns + offset | External plugins (e.g. JBIG)
ioMiscDLLPlugIns + offset | Misc External plugins (e.g. PCL)
ioUSER + offset | User registered file formats


TIOICOBitCount

TIOICOBitCount

Declaration

TIOICOBitCount = array[0..IEMAXICOIMAGES - 1] of integer;


TIOICOSizes

TIOICOSizes

Declaration

TIOICOSizes = array[0..IEMAXICOIMAGES - 1] of TSize;


TIOJ2000ColorSpace

TIOJ2000ColorSpace

Declaration

TIOJ2000ColorSpace = (
ioJ2000_GRAYLEV,
ioJ2000_RGB,
ioJ2000_YCbCr);

Description

Value | Description
ioJ2000_GRAYLEV | Gray scale image
ioJ2000_RGB | RGB image
ioJ2000_YcbCr | YcbCr image (currently supported only for loading)


TIOJ2000ScalableBy

TIOJ2000ScalableBy

Declaration

TIOJ2000ScalableBy = (
ioJ2000_Rate,
ioJ2000_Resolution);

Description

Value | Description
ioJ2000_Rate | Layer-resolution-component-position (LRCP) progressive (i.e. rate scalable)
ioJ2000_Resolution | Resolution-layer-component-position (RLCP) progressive (i.e. resolution scalable)


TIOJPEGColorspace

TIOJPEGColorspace

Declaration

type TIOJPEGColorspace=(ioJPEG_RGB, ioJPEG_GRAYLEV, ioJPEG_YCbCr, ioJPEG_CMYK, ioJPEG_YCbCrK);

Description

Value | Description
ioJPEG_RGB | Separate RGB channels
ioJPEG_GRAYLEV | Unique intensity channel (gray levels)
ioJPEG_YCbCr | Three channels (CCIR Recommendation 601-1)
ioJPEG_CMYK | Four channels (Cyan Magenta Yellow Black) - linear conversion
ioJPEG_YCbCrK | Four channels (YCbCr and Black)


TIOJPEGCromaSubsampling

TIOJPEGCromaSubsampling

Declaration

type TIOJPEGCromaSubsampling = (ioJPEG_MEDIUM, ioJPEG_HIGH, ioJPEG_NONE);

Description

Value | Description
ioJPEG_MEDIUM | 4:2:2 croma sub-sampling. Medium quality
ioJPEG_HIGH | 4:1:1 croma sub-sampling. Default quality for jpegs. Lowest quality
ioJPEG_NONE | 4:4:4 croma sub-sampling. Highest quality


TIOJPEGDctMethod

TIOJPEGDctMethod

Declaration

type TIOJPEGDctMethod = (ioJPEG_ISLOW, ioJPEG_IFAST, ioJPEG_FLOAT);

Description

Value | Description
ioJPEG_ISLOW | Slow but accurate integer algorithm (default)
ioJPEG_IFAST | Faster, less accurate integer method
ioJPEG_FLOAT | Floating-point method (machine dependent)


TIOJPEGScale

TIOJPEGScale

Declaration

TIOJPEGScale = (
ioJPEG_AUTOCALC,
ioJPEG_FULLSIZE,
ioJPEG_HALF,
ioJPEG_QUARTER,
ioJPEG_EIGHTH);

Description

Value | Description
ioJPEG_AUTOCALC | The JPEG Scale is selected automatically to ensure it is larger than your minimum dimensions. You need to specify this using the Width and Height properties
ioJPEG_FULLSIZE | The full image is loaded (default). Slowest loading
ioJPEG_HALF | Image is loaded at 1/2 size
ioJPEG_QUARTER | Image is loaded at 1/4 size
ioJPEG_EIGHTH | Image is loaded at 1/8 size. Very fast loading

Example

// Load JPEG as fast as possible while still being larger than the display size
ImageEnView.IO.Params.Width := ImageEnView1.ClientWidth;
ImageEnView.IO.Params.Height := ImageEnView1.ClientHeight;
ImageEnView.IO.Params.JPEG_Scale := ioJPEG_AUTOCALC;
ImageEnView.IO.LoadFromFile('D:\MyImage.jpeg’);


TIOMultiParams.Assign

TIOMultiParams.Assign

Declaration

procedure Assign(Source: TObject);

Description

Assign params of another TIOMultiParams object.


TIOMultiParams.Clear

TIOMultiParams.Clear

Declaration

procedure Clear();

Description

Empty the params list

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOMultiParams.Count

TIOMultiParams.Count

Declaration

property Count: integer;

Description

Returns the number of elements in the list.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOMultiParams.DuplicateCompressionInfo

TIOMultiParams.DuplicateCompressionInfo

Declaration

procedure DuplicateCompressionInfo;

Description

Clone the compression information from idx 0 to all indexes.

Example

// Change the compression method for a TIFF file
MBitmap := TIEMultiBitmap.create;
MBitmap.ParamsEnabled := True; // Load params with the image
MBitmap.Read( 'C:\MyImage.tiff' );
MBitmap.Params[ 0 ].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.DuplicateCompressionInfo;
MBitmap.Write( 'C:\OutImage.tiff' );
MBitmap.Free;


TIOMultiParams.Params

TIOMultiParams.Params

Declaration

property Params[idx: integer]: TIOParams;

Description

Provides access to the TIOParams object for the image idx to modify image parameters (e.g. bits per sample, compression, etc).


TIOMultiParams.Read

TIOMultiParams.Read

Declaration

function Read(const FileName: WideString; Format: TIOFileType = ioUnknown): Boolean; overload;
function Read(const FileName: WideString; bUseExtension: Boolean): Boolean; overload;
function Read(Stream: TStream; Format: TIOFileType = ioUnknown): Boolean; overload;
function Read(Buffer: Pointer; BufferSize: Integer; Format: TIOFileType = ioUnknown): Boolean; overload;

Description

Reads the properties from an image file. Result is false if a loading error is encountered due to a corrupt or unknown image format.

FileName is the file name with full path.
Format is the file format that the stream or file contains. If ioUnknown is specified then the file content is analyzed to determine the format.
bUseExtension determines that the file format is based on the extension of the file, e.g. image.jpeg will be processed as ioJPEG format.

Examples

// Load the parameters of an image (which may be a TIFF file, but we will examine the content to be sure)
IOParams.Read( 'C:\alfa.tiff' );
Label1.Caption := 'alfa.tiff contains ' + inttostr(IOParams[0].ImageCount) + ' images';

// Load the parameters of a TIFF
IOParams.Read( 'C:\alfa.tiff', ioTIFF );
Label1.Caption := 'alfa.tiff contains ' + inttostr(IOParams[0].ImageCount) + ' images';

// Load the parameters of a file. It will be assumed to a TIFF because of the file extension
IOParams.Read( 'C:\alfa.tiff', True );
Label1.Caption := 'alfa.tiff contains ' + inttostr(IOParams[0].ImageCount) + ' images';


TIOParams.AdjustGPSCoordinates

TIOParams.AdjustGPSCoordinates

Declaration

procedure AdjustGPSCoordinates();

Description

Adjusts the GPS properties (ie EXIF_GPSLongitudeDegrees, EXIF_GPSLongitudeMinutes, etc...) to fit into integer values (when possible).
This method is automatically called when loading EXIF-GPS tags.


TIOParams.Assign

TIOParams.Assign

Declaration

procedure Assign(Source: TIOParams);

Description

Copy all image format parameters from Source to this object.

Example

ImageEnView1.IO.Params.Assign( ImageEnView2.IO.Params );


TIOParams.AVI_FrameCount

TIOParams.AVI_FrameCount

Declaration

property AVI_FrameCount: Integer;

Description

Returns the number of frames contained in the current AVI file.

See Also

- ImageCount
- IEGetFileFramesCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.AVI_FrameDelayTime

TIOParams.AVI_FrameDelayTime

Declaration

property AVI_FrameDelayTime: Double;

Description

Specifies the time (in milliseconds) that the current frame will be shown when animated/playing.


TIOParams.BitsPerSample

TIOParams.BitsPerSample

Declaration

property BitsPerSample: integer;

Description

Specifies the depth, in bits, for each sample.
Allowed values:
Value | Description
1 | 1 bit black & white
2 to 7 | Color mapped bitmap (from 4 to 128 colors)
8 | Color mapped (256 colors), 8 bit gray scale, 24 bit RGB, 48 bit CMYK, 24 bit CIELab
16 | 16 bit gray scale or 48 bit RGB
32 | 32 bit floating point

Default: 8

See also: SamplesPerPixel

Example

// saves 256 colormapped bitmap
ImageEnView1.IO.Params.BitsPerSample := 8;
ImageEnView1.IO.Params.SamplesPerPixel := 1;
ImageEnView1.IO.Params.SaveToFile('D:\Alfa.bmp');


TIOParams.BMP_Compression

TIOParams.BMP_Compression

Declaration

property BMP_Compression: TIOBMPCompression;

Description

Specifies the compression method when saving a BMP image.

Default: ioBMP_UNCOMPRESSED

Note: Only 16 or 256 color bitmap can be saved with RLE compression.

Example

// Save a compressed bitmap
ImageEnView1.IO.Params.BMP_Compression := ioBMP_RLE;
ImageEnView1.IO.SaveToFile('D:\alfa.bmp');


TIOParams.BMP_HandleTransparency

TIOParams.BMP_HandleTransparency

Declaration

property BMP_HandleTransparency: Boolean;

Description

BMP files can have up to 32 bits per pixel. This property controls how to interpret the extra byte in the 32 bit word.
When BMP_HandleTransparency is true the extra byte is interpreted as an alpha channel, otherwise it is just ignored.
So if BMP_HandleTransparency = True the image will be displayed in ImageEn with transparency. Whereas if BMP_HandleTransparency = False the transparent color will not be used.

Default: False

Example

// if BMP_HandleTransparency = true then display with transparency
ImageENVect1.IO.Params.BMP_HandleTransparency := chkBMPHandleTransparency.Checked;
ImageENVect1.IO.LoadFromFile( FilePath );

See Also

- SynchronizeRGBA

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.BMP_Version

TIOParams.BMP_Version

Declaration

property BMP_Version: TIOBMPVersion;

Description

Returns the version of the BMP file.

Default: ioBMP_BM3

Example

// Save a Windows 3.x bitmap
ImageEnView1.IO.Params.BMP_Version := ioBMP_BM3;
ImageEnView1.IO.SaveToFile('D:\alfa.bmp');


TIOParams.BMPRAW_ChannelOrder

TIOParams.BMPRAW_ChannelOrder

Declaration

property BMPRAW_ChannelOrder: TIOBMPRAWChannelOrder;

Description

Specifies the channels order for a BmpRaw file (a true "raw" format, not the same as a digital camera Raw file). It can be coRGB or coBGR and it is valid only for color images.

Default: coRGB

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Examples

// load a RAW image, RGB, interleaved, 8 bit aligned, 1024x768
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Allocate(1024, 768, ie24RGB);
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plInterleaved;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.Params.BMPRAW_HeaderSize := 0;
ImageEnView1.IO.LoadFromFileBMPRAW('C:\input.dat');

// load a RAW image, CMYK, interleaved, 8 bit aligned, 1024x768
ImageEnView1.LegacyBitmap := False;
ImageEnView1.IEBitmap.Allocate(1024, 768, ieCMYK);
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plInterleaved;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.Params.BMPRAW_HeaderSize := 0;
ImageEnView1.IO.LoadFromFileBMPRAW('C:\input.dat');

// saves current image as RAW image
ImageEnView1.IO.Params.BMPRAW_ChannelOrder := coRGB;
ImageEnView1.IO.Params.BMPRAW_Planes := plPlanar;
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.SaveToFileBMPRAW('C:\output.dat');


TIOParams.BMPRAW_DataFormat

TIOParams.BMPRAW_DataFormat

Declaration

property BMPRAW_DataFormat: TIOBMPRAWDataFormat;

Description

Specifies the next input/output data format.
ASCII text values must be separated by one or more non-alpha characters (#13, #10, #32...).

Default: dfBinary

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Examples

// load a RAW image, 16 bit gray scale, ascii-text
ImageEnView1.LegacyBitmap := false;
ImageEnView1.IEBitmap.Allocate(1024, 768, ie16g);
ImageEnView1.IO.Params.BMPRAW_RowAlign := 8;
ImageEnView1.IO.Params.BMPRAW_HeaderSize := 0;
ImageEnView1.IO.Params.BMPRAW_DataFormat := dfTextDecimal;
ImageEnView1.IO.LoadFromFileBMPRAW('input.dat');


TIOParams.BMPRAW_HeaderSize

TIOParams.BMPRAW_HeaderSize

Declaration

property BMPRAW_HeaderSize: Integer;

Description

Specifies the header size in bytes. The header will be bypassed.

Default: 0

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Example

See example at BMPRAW_ChannelOrder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.BMPRAW_Planes

TIOParams.BMPRAW_Planes

Declaration

property BMPRAW_Planes: TIOBMPRAWPlanes;

Description

Specifies how channels of a BmpRaw file are disposed.

Default: plInterleaved

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Example

See example at BMPRAW_ChannelOrder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.BMPRAW_RowAlign

TIOParams.BMPRAW_RowAlign

Declaration

property BMPRAW_RowAlign: Integer;

Description

Specifies the row alignment in bits.

Default: 8

Demo

Demos\InputOutput\RealRAW\RealRaw.dpr

Example

See example at BMPRAW_ChannelOrder

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.ClearIPTCField

TIOParams.ClearIPTCField

Declaration

procedure ClearIPTCField(iRecNo, iFieldIndex: Integer);

Description

Remove the specified field from the IPTC field list.

Example

// Clear all IPTC keywords of a file
AnImageEnIO.Params.ClearIPTCField(PhotoShop_IPTC_Records, IPTC_PS_Keywords);

See Also

- Photoshop IPTC consts
- WriteIPTCField
- IPTC_Photoshop

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.ColorMap

TIOParams.ColorMap

Declaration

property ColorMap: PRGBROW;

Description

Returns the color map of the current image.

Note: Not all image types have a valid colormap (in which case ColorMap will be nil).

See also: ColorMapCount

Example

// Show the palette of the file "myfile.gif"
var
fPalDial : TImageEnPaletteDialog;
begin
ImageEnView1.IO.LoadFromFile('C:\myfile.gif');
fPalDial := TImageEnPaletteDialog.Create(self);
fPalDial.SetPalette(ImageEnView1.IO.Params.ColorMap^, ImageEnView1.IO.Params.ColorMapCount);
fPalDial.Execute;
fPalDial.free;
end;


TIOParams.ColorMapCount

TIOParams.ColorMapCount

Declaration

property ColorMapCount: integer;

Description

Returns the number of entries in the ColorMap array.

See also: ColorMap

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.Create

TIOParams.Create

Declaration

constructor Create(AttachTo: TObject = nil);

Description

A TIOParams object is automatically created by the TImageEnIO component and optionally by a TIEBitmap if ParamsEnabled is True. AttachTo can be a TImageEnIO or TIEBitmap


TIOParams.CUR_Background

TIOParams.CUR_Background

Declaration

property CUR_Background: TRGB;

Description

Specifies the color that is used for transparency (i.e. becomes the image background) when loading cursor files.

Default: (255, 255, 255), i.e. white

Note: This property must be set before loading.

Example

ImageEnView1.IO.Params.CUR_Background := CreateRGB(255, 255, 255);
ImageEnView1.IO.LoadFromFileCUR('C:\myicon.cur');

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.CUR_ImageIndex

TIOParams.CUR_ImageIndex

Declaration

property CUR_ImageIndex: Integer;

Description

The index (zero-based) of the current image/cursor of the current cursor file (CUR files can contain multiple images). Use ImageCount to return the number of images the file contains.

Example

// Load the second cursor inside 'alfa.cur'
ImageEnView1.IO.Params.CUR_ImageIndex := 1;
ImageEnView1.IO.LoadFromFile('C:\alfa.cur');


TIOParams.CUR_XHotSpot

TIOParams.CUR_XHotSpot

Declaration

property CUR_XHotSpot: Integer;

Description

Specifies the horizontal position of the "hot spot". The hot spot is the point of the cursor that activates a click.

Default: 0

See also: CUR_YHotSpot

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.CUR_YHotSpot

TIOParams.CUR_YHotSpot

Declaration

property CUR_YHotSpot: Integer;

Description

Specifies the vertical position of the "hot spot". The hot spot is the point of the cursor that activates a click

Default: 0.

See also: CUR_XHotSpot

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.DCX_ImageIndex

TIOParams.DCX_ImageIndex

Declaration

property DCX_ImageIndex: Integer;

Description

The index (zero-based) of the current page of the loaded DCX image. You can also use Seek to load/navigate images within the loaded file.

Note: You can use ImageIndex for generic access to the ImageIndex (not specific to an image format).

See Also

- ImageCount
- Seek
- EnumDCXIm

Examples

// Load the second page of 'input.dcx'
ImageEnView1.IO.Params.DCX_ImageIndex := 1;
ImageEnView1.IO.LoadFromFile('C:\input.dcx');

// Print all pages of a DCX image
Printer.BeginDoc;
for I := 0 to ImageEnView1.IO.Params.ImageCount - 1 do
begin
ImageEnView1.IO.Params.DCX_ImageIndex := I;
ImageEnView1.IO.LoadFromFile('C:\input.dcx');
ImageEnView1.IO.PrintImage(Printer.Canvas);
end;
Printer.EndDoc;


TIOParams.DefaultICCProfile

TIOParams.DefaultICCProfile

Declaration

property DefaultICCProfile: TIEICC;

Description

Specifies a default ICC profile associated with the loaded image.

Note: A default ICC profile is used only when the loaded image does not have its own ICC profile.

Example

ImageEnView1.IO.Params.DefaultICCProfile.LoadFromFile('C:\Windows\System32\spool\drivers\color\AdobeRGB1998.icc');
ImageEnView1.IO.LoadFromFile('C:\input.tif');


TIOParams.DICOM_Compression

TIOParams.DICOM_Compression

Declaration

property DICOM_Compression: TIEDicomCompression;

Description

The compression used for a DICOM file.

Default: iedcUncompressed

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.DICOM_J2000Rate

TIOParams.DICOM_J2000Rate

Declaration

property DICOM_J2000Rate: double;

Description

Specifies the compression rate to use when saving a DICOM file as JPEG 2000.
Allowed values are from 0 to 1, where 1 is no compression (lossless mode).

Default: 0.07

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.DICOM_JPEGQuality

TIOParams.DICOM_JPEGQuality

Declaration

property DICOM_JPEGQuality: integer;

Description

Specifies the quality factor (ranging from 1 to 100) to use when saving a DICOM file as a lossy JPEG.

Higher values improve image quality but require more disk space.

Default: 80

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.DICOM_Range

TIOParams.DICOM_Range

Declaration

property DICOM_Range: TIEDicomRange;

Description

Specifies how to handle the pixel visibility range.

Default: iedrAdjust

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.DICOM_Tags

TIOParams.DICOM_Tags

Declaration

property DICOM_Tags: TIEDicomTags;

Description

Provides access to the object which contains all the informational tags within a DICOM file.

You can view a list of tags at: Dicom Tag List

Demo

Demos\InputOutput\Dicom\Dicom.dpr

Example

ImageType := ImageEnView1.IO.Params.DICOM_Tags.GetTagString( tags.IndexOf($0008, $0008) );
PatientName := ImageEnView1.IO.Params.DICOM_Tags.GetTagString( tags.IndexOf($0010, $0010) );


TIOParams.DICOM_WindowCenterOffset

TIOParams.DICOM_WindowCenterOffset

Declaration

property DICOM_WindowCenterOffset: Double;

Description

Returns the calculated offset of the window center.


TIOParams.Dict

TIOParams.Dict

Declaration

property Dict: TIEDictionary;

Description

Contains a dictionary of additional properties.

The key "XMP" will contain a sub-dictionary parsed from XMP info.

Demo

Demos\InputOutput\XMP\XMP.dpr

Example

// loads first page of specified PDF rasterizing at 150dpi (assumes ImageMagick and GhostScript are installed)
TIEMiscPluginsImageMagick.RegisterPlugin();
ImageEnView1.IO.Params.ImageIndex := 0;
ImageEnView1.IO.Params.Dict.Insert('PDF:Density', 150);
ImageEnView1.IO.LoadFromFile('mybook.pdf');

// gets XMP doc id
docid := ImageEnView1.IO.Params.Dict.GetString('xapMM:DocumentID', true);


TIOParams.Dpi

TIOParams.Dpi

Declaration

property Dpi: Integer;

Description

Specifies the resolution (dots per inch) of the acquired image. If the horizontal and vertical resolutions aren't equal, Dpi is the horizontal resolution (the same as DpiX).

See Also

- DpiX
- DpiY
- ChangeResolution

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.DpiX

TIOParams.DpiX

Declaration

property DpiX: integer;

Description

Specifies the horizontal Dpi (dots per inch) of the image.

Example

// Show the width of the current image in inches/mm
lblWidth.Caption := IntToStr( Trunc( ImageEnView1.IO.Params.Width / ImageEnView1.IO.Params.DpiX )) + ' inches';
lblWidth.Caption := IntToStr( Trunc( ImageEnView1.IO.Params.Width / ImageEnView1.IO.Params.DpiX * 25.4 )) + ' mm';

See Also

- Dpi
- DpiY

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.DpiY

TIOParams.DpiY

Declaration

property DpiY: integer;

Description

Specifies the vertical Dpi (dots per inch) of the image.

Example

// Show the height of the current image in inches/mm
lblHeight.Caption := IntToStr( Trunc( ImageEnView1.IO.Params.Height / ImageEnView1.IO.Params.DpiY )) + ' inches';
lblHeight.Caption := IntToStr( Trunc( ImageEnView1.IO.Params.Height / ImageEnView1.IO.Params.DpiY * 25.4 )) + ' mm';

See Also

- Dpi
- DpiX

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EnableAdjustOrientation

TIOParams.EnableAdjustOrientation

Declaration

property EnableAdjustOrientation: Boolean;

Description

If enabled before loading a file which contains EXIF orientation information, the image will be automatically rotated for display (the actual file is not modified).
Orientation information is often found in digital photos from high-end cameras. ImageEn uses the data found in EXIF_Orientation or TIFF_Orientation to determine the correct orientation.

Note: This property also sets JPEG_EnableAdjustOrientation and TIFF_EnableAdjustOrientation.

Default: False

Example

ImageEnView1.IO.Params.EnableAdjustOrientation := True;
ImageEnView1.IO.LoadFromFile('C:\input.jpg');


TIOParams.EXIF_ApertureValue

TIOParams.EXIF_ApertureValue

Declaration

property EXIF_ApertureValue: Double;

Description

The aperture of the lens when the photo was taken. The unit is APEX.

To convert EXIF_ApertureValue to a human-readable F-number (F-stop) calculate this value's power of root 2 (=1.4142). For example, if EXIF_ApertureValue is 5, then the F-number is 1.41425 = F5.6.

A string version of EXIF_ApertureValue (in human-readable format) is available in the iexMetaHelpers.pas EXIF helper unit.

Example

sApertureValue := ApexToStr( Sqrt( 2 ), ImageEnView1.IO.Params.EXIF_ApertureValue, 'F' );
if sApertureValue = 'F0' then
sApertureValue := '';

// Write value
ImageEnView1.IO.Params.EXIF_ApertureValue := StrToApex( Sqrt( 2 ), sApertureValue, 'F' );

// Note: ApexToStr() and StrToApex() are the iexMetaHelpers unit


TIOParams.EXIF_Artist

TIOParams.EXIF_Artist

Declaration

property EXIF_Artist: AnsiString;

Description

Specifies the EXIF artist.


TIOParams.EXIF_Bitmap

TIOParams.EXIF_Bitmap

Declaration

property EXIF_Bitmap: TIEBitmap;

Description

Contains a thumbnail of the image, if available. If you modify the image, you can use UpdateEXIFThumbnail to update the thumbnail.

Note: EXIF_Bitmap is supported by JPEG, TIFF, RAW and PSP files, though files of these types will not always include thumbnails.


TIOParams.EXIF_BodySerialNumber

TIOParams.EXIF_BodySerialNumber

Declaration

property EXIF_BodySerialNumber: AnsiString;

Description

Returns the serial number of the body of the camera that was used in photography as an ASCII string.


TIOParams.EXIF_BrightnessValue

TIOParams.EXIF_BrightnessValue

Declaration

property EXIF_BrightnessValue: Double;

Description

The brightness of the photo subject. Unit is APEX.

To calculate Exposure (Ev) from BrigtnessValue (Bv), you must add SensitivityValue(Sv).
Ev = Bv + Sv Sv = log2(ISOSpeedRating / 3.125)
ISO100: Sv = 5, ISO200: Sv = 6, ISO400: Sv = 7, ISO125: Sv = 5.32.


TIOParams.EXIF_CameraOwnerName

TIOParams.EXIF_CameraOwnerName

Declaration

property EXIF_CameraOwnerName: AnsiString;

Description

Returns the owner of a camera used in photography as an ASCII string.


TIOParams.EXIF_ColorSpace

TIOParams.EXIF_ColorSpace

Declaration

property EXIF_ColorSpace: Integer;

Description

Defines the Color Space. DCF image must use the sRGB color space so the value is always "1". If the photo uses another color space, the value is "65535": Uncalibrated.


TIOParams.EXIF_CompressedBitsPerPixel

TIOParams.EXIF_CompressedBitsPerPixel

Declaration

property EXIF_CompressedBitsPerPixel: Double;

Description

The average JPEG compression ratio (rough estimate)


TIOParams.EXIF_Contrast

TIOParams.EXIF_Contrast

Declaration

property EXIF_Contrast: Integer;

Description

Returns the direction of contrast processing applied by the camera when the photo was taken:
0: Normal
1: Soft
2: Hard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_Copyright

TIOParams.EXIF_Copyright

Declaration

property EXIF_Copyright: AnsiString;

Description

Returns the copyright information.


TIOParams.EXIF_DateTime

TIOParams.EXIF_DateTime

Declaration

property EXIF_DateTime: AnsiString;

Description

The date and time that the image was last modified. Data format is "YYYY:MM:DD HH:MM:SS"+0x00, total 20 bytes. If the clock has not been set or the camera doesn't have clock, the field may be filled with spaces. Usually this returns the same value as EXIF_DateTimeOriginal.

See Also

- EXIF_DateTime2
- EXIF_DateTimeOriginal

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_DateTime2

TIOParams.EXIF_DateTime2

Declaration

property EXIF_DateTime2 : TDateTime;

Description

The date and time that the image was last modified. It is a TDateTime variant of EXIF_DateTime. If the clock has not been set or the camera doesn't have clock, a zero result will be returned. Usually this returns the same value as EXIF_DateTimeOriginal2.

See Also

- EXIF_DateTime
- EXIF_DateTimeOriginal2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_DateTimeDigitized

TIOParams.EXIF_DateTimeDigitized

Declaration

property EXIF_DateTimeDigitized: AnsiString;

Description

The date and time that the image was digitized. Usually, it will return the same value as EXIF_DateTimeOriginal. The data format is "YYYY:MM:DD HH:MM:SS"+0x00, total 20 bytes.
If the clock has not been set or the camera doesn't have a clock, the field may be filled with spaces. In the Exif standard this tag is optional, but it is mandatory for DCF.

See Also

- EXIF_DateTimeDigitized2
- EXIF_DateTimeOriginal

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_DateTimeDigitized2

TIOParams.EXIF_DateTimeDigitized2

Declaration

property EXIF_DateTimeDigitized2: TDateTime;

Description

The date and time that the image was digitized. This property is a TDateTime variant of EXIF_DateTimeDigitized. Usually, it will return the same value as EXIF_DateTimeOriginal2.

If the clock has not been set or the camera doesn't have a clock, the property may return zero. In the Exif standard this tag is optional, but it is mandatory for DCF.

See Also

- EXIF_DateTimeDigitized
- EXIF_DateTimeOriginal2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_DateTimeOriginal

TIOParams.EXIF_DateTimeOriginal

Declaration

property EXIF_DateTimeOriginal: AnsiString;

Description

The date and time that the original image was taken. This value should not be modified by your software. The data format is "YYYY:MM:DD HH:MM:SS"+0x00, total 20 bytes. If the clock has not been set or the camera doesn't have a clock, the field may be filled with spaces. In the Exif standard this tag is optional, but it is mandatory for DCF.

See Also

- EXIF_DateTimeOriginal2
- EXIF_DateTime

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_DateTimeOriginal2

TIOParams.EXIF_DateTimeOriginal2

Declaration

property EXIF_DateTimeOriginal2: TDateTime;

Description

The date and time that the original image was taken. This property is a TDateTime variant of EXIF_DateTimeOriginal. This value should not be modified by your software. If the clock has not been set or the camera doesn't have a clock, the property may return zero. In the Exif standard this tag is optional, but it is mandatory for DCF.

See Also

- EXIF_DateTimeOriginal
- EXIF_DateTime2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_DigitalZoomRatio

TIOParams.EXIF_DigitalZoomRatio

Declaration

property EXIF_DigitalZoomRatio: Double;

Description

Returns the digital zoom ratio when the photo was taken.

Note: If the numerator of the recorded value is 0, this indicates that digital zoom was not used.


TIOParams.EXIF_ExifImageHeight

TIOParams.EXIF_ExifImageHeight

Declaration

property EXIF_ExifImageHeight: Integer;

Description

Returns the vertical size of the image (in pixels)


TIOParams.EXIF_ExifImageWidth

TIOParams.EXIF_ExifImageWidth

Declaration

property EXIF_ExifImageWidth: Integer;

Description

Returns the horizontal size of the image (in pixels)


TIOParams.EXIF_ExifVersion

TIOParams.EXIF_ExifVersion

Declaration

property EXIF_ExifVersion: AnsiString;

Description

Returns the EXIF version number. It is stored as 4 bytes of ASCII characters, e.g. if the data is based on Exif V2.1, then the value is "0210". Since the type is "undefined", there is no NULL (0x00) for termination.


TIOParams.EXIF_ExposureBiasValue

TIOParams.EXIF_ExposureBiasValue

Declaration

property EXIF_ExposureBiasValue: Double;

Description

The exposure bias (compensation) value of the photo. Unit is APEX (EV).


TIOParams.EXIF_ExposureIndex

TIOParams.EXIF_ExposureIndex

Declaration

property EXIF_ExposureIndex: Double;

Description

This is the same as EXIF_ISOSpeedRatings (0x8827) but the data type is an unsigned rational.

Only Kodak cameras use this tag in preference to EXIF_ISOSpeedRatings.


TIOParams.EXIF_ExposureMode

TIOParams.EXIF_ExposureMode

Declaration

property EXIF_ExposureMode: Integer;

Description

Returns the exposure mode that was set when the photo was taken. In auto-bracketing mode, the camera shoots a series of frames of the same scene at different exposure settings.
0: Auto exposure
1: Manual exposure
2: Auto bracketing

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_ExposureProgram

TIOParams.EXIF_ExposureProgram

Declaration

property EXIF_ExposureProgram: Integer;

Description

The exposure program used by the camera for the photo:
1: Manual control
2: Program normal
3: Aperture priority
4: Shutter priority
5: Program creative (slow program)
6: Program action (high-speed program)
7: Portrait mode
8: Landscape mode

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_ExposureTime

TIOParams.EXIF_ExposureTime

Declaration

property EXIF_ExposureTime: Double;

Description

The exposure time of the photo (reciprocal of the shutter speed). Unit is second.

A string version of EXIF_ExposureTime (in human-readable format) is available in the iexMetaHelpers.pas EXIF helper unit.

Example

if ImageEnView1.IO.Params.EXIF_ExposureTime > 1 then
// It will be something like 4 i.e. 4 seconds
sExifExposureTime := IntToStr( Round( ImageEnView1.IO.Params.EXIF_ExposureTime ))
else
if ImageEnView1.IO.Params.EXIF_ExposureTime > 0 then
// It is something like 0.25, which translates to 1/4 second
sExifExposureTime := DoubleToFraction( Round(1 / ImageEnView1.IO.Params.EXIF_ExposureTime ))
else
sExifExposureTime := '';

// Write the value back to image parameters
if pos( '1/', sExifExposureTime ) > 0 then
ImageEnView1.IO.Params.EXIF_ExposureTime := 1 / FractionToDouble( sExifExposureTime )
else
ImageEnView1.IO.Params.EXIF_ExposureTime := StrToInt( sExifExposureTime );

// Note: DoubleToFraction() and FractionToDouble() are in the iexMetaHelpers unit


TIOParams.EXIF_FileSource

TIOParams.EXIF_FileSource

Declaration

property EXIF_FileSource: Integer;

Description

Returns the image source, e.g. a value of "0x03" means the image source is a digital still camera.


TIOParams.EXIF_Flash

TIOParams.EXIF_Flash

Declaration

property EXIF_Flash: Integer;

Description

The status of the flash when the photo was taken:
0: Flash did not fire
1: Flash fired
5: Flash fired but strobe return light not detected
7: Flash fired and strobe return light detected


TIOParams.EXIF_FlashPixVersion

TIOParams.EXIF_FlashPixVersion

Declaration

property EXIF_FlashPixVersion: AnsiString;

Description

Returns the FlashPix version as 4 character string, e.g. if the image data is based on FlashPix format Ver. 1.0, then the value is "0100".


TIOParams.EXIF_FNumber

TIOParams.EXIF_FNumber

Declaration

property EXIF_FNumber: Double;

Description

The actual F-number (F-stop) of the lens when the photo was taken.

A string version of EXIF_FNumber (in human-readable format) is available in the iexMetaHelpers.pas EXIF helper unit.

Example

if ( ImageEnView1.IO.Params.EXIF_Fnumber <> 0 ) and ( ImageEnView1.IO.Params.EXIF_Fnumber <> -1 ) then
sExifFNumber := 'F' + FloatToStr( ImageEnView1.IO.Params.EXIF_FNumber )
else
sExifFNumber := '';

// And write back...
if ( sExifFNumber <> '' ) and ( uppercase( sExifFNumber )[ 1 ] = 'F' ) then
delete( sExifFNumber , 1, 1 );
ImageEnView1.IO.Params.EXIF_FNumber := StrToFloatDef( sExifFNumber, 0 );


TIOParams.EXIF_FocalLength

TIOParams.EXIF_FocalLength

Declaration

property EXIF_FocalLength: Double;

Description

Returns the focal length of lens used to take image (in millimeters).


TIOParams.EXIF_FocalLengthIn35mmFilm

TIOParams.EXIF_FocalLengthIn35mmFilm

Declaration

property EXIF_FocalLengthIn35mmFilm: Integer;

Description

Returns the equivalent focal length assuming a 35mm film camera, in mm. A value of 0 means the focal length is unknown.

Note: This property differs from the EXIF_FocalLength tag.


TIOParams.EXIF_FocalPlaneResolutionUnit

TIOParams.EXIF_FocalPlaneResolutionUnit

Declaration

property EXIF_FocalPlaneResolutionUnit: Integer;

Description

The unit of FocalPlaneXResoluton/FocalPlaneYResolution:
1: No unit
2: Inches
3: Centimeters

Note: Some Fujifilm cameras (e.g. FX2700, FX2900, Finepix 4700Z/40i, etc.) return a value of centimeters (3), but the actual resoluion appears to be 8.3mm? (1/3 inch?). This seems to be a bug with Fujifilm cameras. With the Finepix4900Z the value has been changed to inches (2) but it doesn't appear to match an actual value either.

See Also

- EXIF_FocalPlaneXResolution
- EXIF_FocalPlaneYResolution

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_FocalPlaneXResolution

TIOParams.EXIF_FocalPlaneXResolution

Declaration

property EXIF_FocalPlaneXResolution: Double;

Description

Returns the pixel density at CCD's position. With megapixel cameras, when a photo is taken at a lower resolution (e.g. VGA mode), this value is re-sampled by the photo resolution. In such a case, FocalPlaneResolution is not the same as CCD's actual resolution.

See Also

- EXIF_FocalPlaneYResolution
- EXIF_FocalPlaneResolutionUnit

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_FocalPlaneYResolution

TIOParams.EXIF_FocalPlaneYResolution

Declaration

property EXIF_FocalPlaneYResolution: Double;

Description

Returns the pixel density at CCD's position. With megapixel cameras, when a photo is taken at a lower resolution (e.g. VGA mode), this value is re-sampled by the photo resolution. In such a case, FocalPlaneResolution is not the same as CCD's actual resolution.

See Also

- EXIF_FocalPlaneXResolution
- EXIF_FocalPlaneResolutionUnit

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GainControl

TIOParams.EXIF_GainControl

Declaration

property EXIF_GainControl: Integer;

Description

Returns the degree of overall image gain adjustment:
0: None
1: Low gain up
2: High gain up
3: Low gain down
4: High gain down

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_Gamma

TIOParams.EXIF_Gamma

Declaration

property EXIF_Gamma: Double;

Description

Specifies the coefficient gamma. The formula of transfer function used for image reproduction is expressed as follows:
Value = Power( InputValue, Gamma );

Range: 0 to 1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSAltitude

TIOParams.EXIF_GPSAltitude

Declaration

property EXIF_GPSAltitude: Double;

Description

Returns the altitude (in meters) based on the reference in EXIF_GPSAltitudeRef.


TIOParams.EXIF_GPSAltitudeRef

TIOParams.EXIF_GPSAltitudeRef

Declaration

property EXIF_GPSAltitudeRef: AnsiString;

Description

Returns the altitude used as a reference:
- If the reference is sea level and the altitude is above sea level, "0" is returned.
- If the altitude is below sea level, a value of "1" is returned and the altitude is indicated as an absolute value in the EXIF_GPSAltitude tag.

The reference unit is meters.

Default value is empty string, which means "unknown". An unknown value is not written when saving EXIF values.


TIOParams.EXIF_GPSDateStamp

TIOParams.EXIF_GPSDateStamp

Declaration

property EXIF_GPSDateStamp: AnsiString;

Description

Returns the GPS date.


TIOParams.EXIF_GPSDestBearing

TIOParams.EXIF_GPSDestBearing

Declaration

property EXIF_GPSDestBearing: Double;

Description

Returns the bearing to the destination point. The range of values is from 0.00 to 359.99.

See also: EXIF_GPSDestBearingRef

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestBearingRef

TIOParams.EXIF_GPSDestBearingRef

Declaration

property EXIF_GPSDestBearingRef: AnsiString;

Description

Returns the reference used for the bearing to the destination point. "T" denotes true direction, whereas "M" is magnetic direction.
The default value is an empty string, which means "unknown". An unknown value is not written when saving EXIF values.


TIOParams.EXIF_GPSDestDistance

TIOParams.EXIF_GPSDestDistance

Declaration

property EXIF_GPSDestDistance: Double;

Description

Returns the distance to destination.

See also: EXIF_GPSDestDistanceRef

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestDistanceRef

TIOParams.EXIF_GPSDestDistanceRef

Declaration

property EXIF_GPSDestDistanceRef: AnsiString;

Description

Returns the unit used to express the distance to the destination point:
K: Kilometers
M: Miles
N: Knots
The default value is an empty string, which means "unknown". An unknown value is not written when saving EXIF values.


TIOParams.EXIF_GPSDestLatitudeDegrees

TIOParams.EXIF_GPSDestLatitudeDegrees

Declaration

property EXIF_GPSDestLatitudeDegrees: Double;

Description

Returns the latitude degrees of the destination point.

See Also

- EXIF_GPSDestLatitudeRef
- EXIF_GPSDestLatitudeMinutes
- EXIF_GPSDestLatitudeSeconds

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestLatitudeMinutes

TIOParams.EXIF_GPSDestLatitudeMinutes

Declaration

property EXIF_GPSDestLatitudeMinutes: Double;

Description

Returns the latitude minutes of the destination point.

See Also

- EXIF_GPSDestLatitudeRef
- EXIF_GPSDestLatitudeDegrees
- EXIF_GPSDestLatitudeSeconds

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestLatitudeRef

TIOParams.EXIF_GPSDestLatitudeRef

Declaration

property EXIF_GPSDestLatitudeRef: AnsiString;

Description

Indicates whether the latitude of the destination point is North or South latitude. The ASCII value "N" indicates North latitude, whereas "S" is South latitude.
The default value is an empty string, which means "unknown". An unknown value is not written when saving EXIF values.

See Also

- EXIF_GPSDestLatitudeDegrees
- EXIF_GPSDestLatitudeMinutes
- EXIF_GPSDestLatitudeSeconds

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestLatitudeSeconds

TIOParams.EXIF_GPSDestLatitudeSeconds

Declaration

property EXIF_GPSDestLatitudeSeconds: Double;

Description

Returns the latitude seconds of the destination point.

See Also

- EXIF_GPSDestLatitudeRef
- EXIF_GPSDestLatitudeDegrees
- EXIF_GPSDestLatitudeMinutes

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestLongitudeDegrees

TIOParams.EXIF_GPSDestLongitudeDegrees

Declaration

property EXIF_GPSDestLongitudeDegrees: Double;

Description

Returns the longitude degrees of the destination point.

See Also

- EXIF_GPSDestLongitudeRef
- EXIF_GPSDestLongitudeMinutes
- EXIF_GPSDestLongitudeSeconds

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestLongitudeMinutes

TIOParams.EXIF_GPSDestLongitudeMinutes

Declaration

property EXIF_GPSDestLongitudeMinutes: Double;

Description

Returns the longitude minutes of the destination point.

See Also

- EXIF_GPSDestLongitudeRef
- EXIF_GPSDestLongitudeDegrees
- EXIF_GPSDestLongitudeSeconds

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestLongitudeRef

TIOParams.EXIF_GPSDestLongitudeRef

Declaration

property EXIF_GPSDestLongitudeRef: AnsiString;

Description

Indicates whether the longitude of the destination point is East or West longitude. An ASCII value of "E" indicates East longitude, whereas "W" is West longitude.
The default value is an empty string, which means "unknown". An unknown value is not written when saving EXIF values.

See Also

- EXIF_GPSDestLongitudeDegrees
- EXIF_GPSDestLongitudeMinutes
- EXIF_GPSDestLongitudeSeconds

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDestLongitudeSeconds

TIOParams.EXIF_GPSDestLongitudeSeconds

Declaration

property EXIF_GPSDestLongitudeSeconds: Double;

Description

Returns the longitude seconds of the destination point.

See Also

- EXIF_GPSDestLongitudeRef
- EXIF_GPSDestLongitudeDegrees
- EXIF_GPSDestLongitudeMinutes

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSDOP

TIOParams.EXIF_GPSDOP

Declaration

property EXIF_GPSDOP: Double;

Description

Returns the GPS DOP (data degree of precision). An HDOP value is written during two-dimensional measurement, and PDOP during three-dimensional measurement.


TIOParams.EXIF_GPSImgDirection

TIOParams.EXIF_GPSImgDirection

Declaration

property EXIF_GPSImgDirection: Double;

Description

Returns the direction of the image when it was captured. The range of values is from 0.00 to 359.99.

See also: EXIF_GPSImgDirectionRef

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSImgDirectionRef

TIOParams.EXIF_GPSImgDirectionRef

Declaration

property EXIF_GPSImgDirectionRef: AnsiString;

Description

Returns the reference for the direction of the image when it was captured. "T" denotes true direction and "M" is magnetic direction.
The default value is an empty string, which means "unknown". An unknown value is not written when saving EXIF values.


TIOParams.EXIF_GPSLatitude

TIOParams.EXIF_GPSLatitude

Declaration

property EXIF_GPSLatitude: Double;

Description

Returns the latitude in decimal degrees where the photo was taken (if the camera supports GPS).

Note: This uses the following EXIF properties: EXIF_GPSLatitudeDegrees, EXIF_GPSLatitudeMinutes, EXIF_GPSLatitudeSeconds and EXIF_GPSLatitudeRef

See Also

- EXIF_GPSLatitude_Str
- EXIF_GPSLongitude

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLatitude_Str

TIOParams.EXIF_GPSLatitude_Str

Declaration

property EXIF_GPSLatitude_Str : string; (Read-only)

Description

Returns a human-readable representation of EXIF_GPSLongitude. Returns '' if the image does not contain EXIF GPS data.

Note: This uses the following EXIF properties: EXIF_GPSLatitudeDegrees, EXIF_GPSLatitudeMinutes, EXIF_GPSLatitudeSeconds and EXIF_GPSLatitudeRef

See Also

- EXIF_GPSLatitude
- EXIF_GPSLongitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLatitudeDegrees

TIOParams.EXIF_GPSLatitudeDegrees

Declaration

property EXIF_GPSLatitudeDegrees: Double;

Description

Returns the latitude degrees where the photo was taken (if the camera supports GPS).

See Also

- EXIF_GPSLatitude
- EXIF_GPSLatitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLatitudeMinutes

TIOParams.EXIF_GPSLatitudeMinutes

Declaration

property EXIF_GPSLatitudeMinutes: Double;

Description

Returns the latitude minutes where the photo was taken (if the camera supports GPS).

See Also

- EXIF_GPSLatitude
- EXIF_GPSLatitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLatitudeRef

TIOParams.EXIF_GPSLatitudeRef

Declaration

property EXIF_GPSLatitudeRef: AnsiString;

Description

Indicates whether the latitude is North or South. The ASCII value "N" indicates North latitude, whereas "S" is South latitude.
Default value is empty string, which means "unknown". An unknown value is not written when saving EXIF values.

See Also

- EXIF_GPSLatitude
- EXIF_GPSLatitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLatitudeSeconds

TIOParams.EXIF_GPSLatitudeSeconds

Declaration

property EXIF_GPSLatitudeSeconds: Double;

Description

Returns the latitude seconds where the photo was taken (if the camera supports GPS).

See Also

- EXIF_GPSLatitude
- EXIF_GPSLatitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLongitude

TIOParams.EXIF_GPSLongitude

Declaration

property EXIF_GPSLongitude: Double;

Description

Returns the longitude in decimal degrees where the photo was taken (if the camera supports GPS).

Note: This uses the following EXIF properties: EXIF_GPSLongitudeDegrees, EXIF_GPSLongitudeMinutes, EXIF_GPSLongitudeSeconds and EXIF_GPSLongitudeRef

See Also

- EXIF_GPSLongitude_Str
- EXIF_GPSLatitude

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLongitude_Str

TIOParams.EXIF_GPSLongitude_Str

Declaration

property EXIF_GPSLongitude_Str : string; (Read-only)

Description

Returns a human-readable representation of EXIF_GPSLongitude. Returns '' if the image does not contain EXIF GPS data.

Note: This uses the following EXIF properties: EXIF_GPSLongitudeDegrees, EXIF_GPSLongitudeMinutes, EXIF_GPSLongitudeSeconds and EXIF_GPSLongitudeRef

See Also

- EXIF_GPSLongitude
- EXIF_GPSLatitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLongitudeDegrees

TIOParams.EXIF_GPSLongitudeDegrees

Declaration

property EXIF_GPSLongitudeDegrees: Double;

Description

Returns the longitude degrees where the photo was taken (if the camera supports GPS).

See Also

- EXIF_GPSLongitude
- EXIF_GPSLongitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLongitudeMinutes

TIOParams.EXIF_GPSLongitudeMinutes

Declaration

property EXIF_GPSLongitudeMinutes: Double;

Description

Returns the longitude minutes where the photo was taken (if the camera supports GPS).

See Also

- EXIF_GPSLongitude
- EXIF_GPSLongitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLongitudeRef

TIOParams.EXIF_GPSLongitudeRef

Declaration

property EXIF_GPSLongitudeRef: AnsiString;

Description

Indicates whether the longitude is East or West. An ASCII value of "E" indicates East longitude, whereas "W" is West longitude.
Default value is empty string, which means "unknown". An unknown value is not written when saving EXIF values.

See Also

- EXIF_GPSLongitude
- EXIF_GPSLongitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSLongitudeSeconds

TIOParams.EXIF_GPSLongitudeSeconds

Declaration

property EXIF_GPSLongitudeSeconds: Double;

Description

Returns the longitude seconds where the photo was taken (if the camera supports GPS).

See Also

- EXIF_GPSLongitude
- EXIF_GPSLongitude_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSMapDatum

TIOParams.EXIF_GPSMapDatum

Declaration

property EXIF_GPSMapDatum: AnsiString;

Description

Returns the geodetic survey data used by the GPS receiver. If the survey data is restricted to Japan, the value of this tag is "TOKYO" or "WGS-84".


TIOParams.EXIF_GPSMeasureMode

TIOParams.EXIF_GPSMeasureMode

Declaration

property EXIF_GPSMeasureMode: AnsiString;

Description

Returns the GPS measurement mode. "2" means two-dimensional measurement and "3" means three-dimensional measurement is in progress.


TIOParams.EXIF_GPSSatellites

TIOParams.EXIF_GPSSatellites

Declaration

property EXIF_GPSSatellites: AnsiString

Description

Returns the GPS satellites used for measurement. This tag can be used to describe the number of satellites, their ID number, angle of elevation, azimuth, SNR and other information in ASCII notation. The format is not defined.


TIOParams.EXIF_GPSSpeed

TIOParams.EXIF_GPSSpeed

Declaration

property EXIF_GPSSpeed: Double;

Description

Returns the speed of GPS receiver movement.

See also: EXIF_GPSSpeedRef

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSSpeedRef

TIOParams.EXIF_GPSSpeedRef

Declaration

property EXIF_GPSSpeedRef: AnsiString;

Description

Returns the unit used to express the GPS receiver speed of movement:
K: Kilometers per hour
M: Miles per hour
N: Knots

Default value is empty string, which means "unknown". An unknown value is not written when saving EXIF values.


TIOParams.EXIF_GPSStatus

TIOParams.EXIF_GPSStatus

Declaration

property EXIF_GPSStatus: AnsiString;

Description

Returns the status of the GPS receiver when the image was recorded. "A" means measurement is in progress, and "V" means the measurement is interoperability.


TIOParams.EXIF_GPSTimeStampHour

TIOParams.EXIF_GPSTimeStampHour

Declaration

property EXIF_GPSTimeStampHour: Double;

Description

Returns the hour portion of the GPS time as UTC (Coordinated Universal Time).


TIOParams.EXIF_GPSTimeStampMinute

TIOParams.EXIF_GPSTimeStampMinute

Declaration

property EXIF_GPSTimeStampMinute: Double;

Description

Returns the minutes portion of the GPS time as UTC (Coordinated Universal Time).


TIOParams.EXIF_GPSTimeStampSecond

TIOParams.EXIF_GPSTimeStampSecond

Declaration

property EXIF_GPSTimeStampSecond: Double;

Description

Returns the second portion of the GPS time as UTC (Coordinated Universal Time).


TIOParams.EXIF_GPSTrack

TIOParams.EXIF_GPSTrack

Declaration

property EXIF_GPSTrack: Double;

Description

Returns the direction of GPS receiver movement. The range of values is from 0.00 to 359.99.

See also: EXIF_GPSTrackRef

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_GPSTrackRef

TIOParams.EXIF_GPSTrackRef

Declaration

property EXIF_GPSTrackRef: AnsiString;

Description

Returns the reference for the direction of GPS receiver movement. "T" denotes true direction and "M" is magnetic direction.

Default value is empty string, which means "unknown". An unknown value is not written when saving EXIF values.


TIOParams.EXIF_GPSVersionID

TIOParams.EXIF_GPSVersionID

Declaration

property EXIF_GPSVersionID: AnsiString;

Description

Indicates the version of the GPSInfoIFD tag.
To save GPS info fill this property with '2.2.0.0' string.


TIOParams.EXIF_HasEXIFData

TIOParams.EXIF_HasEXIFData

Declaration

property EXIF_HasEXIFData: Boolean;

Description

If True, the loaded image contains EXIF information tags. EXIF data is commonly added by digital cameras to provide meta data on a photo.

Note: If you do not wish to maintain the original EXIF info, set EXIF_HasEXIFData to False before saving.

Important Note: If an image is assigned from a TImageEnView to another, the EXIF tags is NOT automatically assigned.
To maintain EXIF data in the second TImageEnView or TImageEnVect, you must also assign the EXIF Data. This applies to all ImageEn "Display" components including TImageEnView and TImageEnVect.

Typical situations:
1) You want to maintain the EXIF data untouched:
Do nothing... (default behavior)

2) You want to set some EXIF fields, e.g.
Params.EXIF_Software := 'ImageEn';
Params.EXIF_HasEXIFData := true;

3) You want to remove all EXIF data:
Params.ResetInfo;

Demo

Demos\InputOutput\EXIF\EXIF.dpr

Example

// In this example, a form named DlgEXIF has a TImageEnView (ImageEnView1) and another form has a TImageEnView (ImageEnView). Both the image and its EXIF data are passed from one to another via assign.

// Assign the image to DlgEXIF
DlgEXIF.ImageEnView1.Assign ( ImageEnView );
// Assign EXIF data to DlgEXIF.ImageEnView1
DlgEXIF.ImageEnView1.IO.Params.Assign ( ImageEnView.IO.Params );


TIOParams.EXIF_ImageDescription

TIOParams.EXIF_ImageDescription

Declaration

property EXIF_ImageDescription: AnsiString;

Description

Returns a description of the image.


TIOParams.EXIF_ImageUniqueID

TIOParams.EXIF_ImageUniqueID

Declaration

property EXIF_ImageUniqueID: AnsiString;

Description

Returns an identifier assigned uniquely to each image. It is recorded as an ASCII string equivalent of hexadecimal notation with a 128-bit fixed length.


TIOParams.EXIF_InteropIndex

TIOParams.EXIF_InteropIndex

Declaration

property EXIF_InteropIndex: AnsiString;

Description

Returns the EXIF interoperability index.


TIOParams.EXIF_InteropVersion

TIOParams.EXIF_InteropVersion

Declaration

property EXIF_InteropVersion: AnsiString;

Description

Returns the EXIF interoperability version.


TIOParams.EXIF_ISOSpeedRatings

TIOParams.EXIF_ISOSpeedRatings

Declaration

property EXIF_ISOSpeedRatings[index: Integer]: Integer;

Description

CCD sensitivity equivalent to Ag-Hr film speedrate. index is in the range 0 to 1.

"0" for all values means "unspecified".


TIOParams.EXIF_LensMake

TIOParams.EXIF_LensMake

Declaration

property EXIF_LensMake: AnsiString;

Description

Returns the lens manufacturer as an ASCII string.


TIOParams.EXIF_LensModel

TIOParams.EXIF_LensModel

Declaration

property EXIF_LensModel: AnsiString;

Description

Returns the lens model name and number as an ASCII string.


TIOParams.EXIF_LensSerialNumber

TIOParams.EXIF_LensSerialNumber

Declaration

property EXIF_LensSerialNumber: AnsiString;

Description

Returns the serial number of the interchangeable lens that was used in photography as an ASCII string.


TIOParams.EXIF_LightSource

TIOParams.EXIF_LightSource

Declaration

property EXIF_LightSource: Integer;

Description

The Light source of the photo, though generally this refers to the white balance setting:
0: Unknown
1: Daylight
2: Fluorescent
3: Tungsten
10: Flash
17: Standard light A
18: Standard light B
19: Standard light C
20: D55
21: D65
22: D75
255: Other

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_Make

TIOParams.EXIF_Make

Declaration

property EXIF_Make: AnsiString;

Description

The manufacturer of the recording equipment (camera, scanner, video digitizer, etc.) that generated the image.


TIOParams.EXIF_MakerNote

TIOParams.EXIF_MakerNote

Declaration

property EXIF_MakerNote: TIETagsHandler;

Description

Contains custom tags that are added by camera manufacturers. Unfortunately there is not a standard for this tag, so ImageEn offers a general handler which will read the IFD (if present) of the maker note.

See the InputOutput/EXIF demo for more details.

Example

// Read the ISO value for a Canon camera photo
case ImageEnView1.IO.Params.EXIF_MakerNote.GetIntegerIndexed(1, 16) of
15: ShowMessage('Auto');
16: ShowMessage ('50');
17: ShowMessage ('100');
18: ShowMessage ('200');
19: ShowMessage ('400');
end;

Demo

Demos\InputOutput\EXIF\EXIF.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_MaxApertureValue

TIOParams.EXIF_MaxApertureValue

Declaration

property EXIF_MaxApertureValue: Double;

Description

Returns the maximum aperture value of the lens.

Convert to an F-number by calculating the power of root 2 (see the process described for EXIF_ApertureValue).

A string version of EXIF_MaxApertureValue (in human-readable format) is available in the iexMetaHelpers.pas EXIF helper unit.

Example

sMaxApertureValue := ApexToStr( Sqrt( 2 ), ImageEnView1.IO.Params.EXIF_MaxApertureValue, 'F' );
if sMaxApertureValue = 'F0' then
sMaxApertureValue := '';

// Write value
ImageEnView1.IO.Params.EXIF_MaxApertureValue := StrToApex( Sqrt( 2 ), sMaxApertureValue, 'F' );

// Note: ApexToStr() and StrToApex() are the iexMetaHelpers unit


TIOParams.EXIF_MeteringMode

TIOParams.EXIF_MeteringMode

Declaration

property EXIF_MeteringMode: Integer;

Description

Exposure metering method:
0: Unknown
1: Average
2: Center weighted average
3: Spot
4: Multi-spot
5: Multi-segment
6: Partial
255: Other

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_Model

TIOParams.EXIF_Model

Declaration

property EXIF_Model: AnsiString;

Description

Returns the model number of the camera

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_Orientation

TIOParams.EXIF_Orientation

Declaration

property EXIF_Orientation: Integer;

Description

The orientation of the camera relative to the scene, when the image was captured

Value | Description
_exoCorrectOrientation (1) | Image is Orientated Correctly (top left side)
_exoNeedsHorizontalFlip (2) | Image is Horizontally Flipped (top right side)
_exoNeeds180Rotate (3) | Image is Offset by 180º (bottom right side)
_exoNeedsVerticalFlip (4) | Image is Vertically Flipped (bottom left side)
_exoNeedsHorzAndVertFlip (5) | Image is Flipped Horiz. and Offset 90º CCW (left side top)
_exoNeeds90RotateCW (6) | Image is Offset by 90º CCW (right side top)
_exoNeedsFlipHorzAnd90Rotate (7) | Image is Flipped Horiz. and offset 90º CW (right side bottom)
_exoNeeds270RotateCW (8) | Image is Offset by 90º clockwise (left side bottom)

See also: EXIF Orientation Consts

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_PrimaryChromaticities

TIOParams.EXIF_PrimaryChromaticities

Declaration

property EXIF_PrimaryChromaticities[index: Integer]: Double;

Description

Defines the chromaticity of the primaries of the image. index is in the range 0 to 5.

If the image uses CCIR Recommendation 709 primaries, the values are '640/1000,330/1000,300/1000,600/1000,150/1000,0/1000'.

"-1" for all values means "unspecified".


TIOParams.EXIF_ReferenceBlackWhite

TIOParams.EXIF_ReferenceBlackWhite

Declaration

property EXIF_ReferenceBlackWhite[index: Integer]: Double;

Description

Returns the reference value of the black point/white point. index is in the range 0 to 5.

YCbCr format: The first two values show the black/white of Y, the next two are Cb, and the last two are Cr
RGB format: The first two values show the black/white of R, the next two are G, and the last two are B.

"-1" for all values means "unspecified".


TIOParams.EXIF_RelatedSoundFile

TIOParams.EXIF_RelatedSoundFile

Declaration

property EXIF_RelatedSoundFile: AnsiString;

Description

Returns an audio filename if the source camera recorded audio with the image.


TIOParams.EXIF_ResolutionUnit

TIOParams.EXIF_ResolutionUnit

Declaration

property EXIF_ResolutionUnit: Integer;

Description

Returns the units of EXIF_XResolution and EXIF_YResolution:
1: No unit
2: Inches
3: Centimeters

Default: 2 (inches)


TIOParams.EXIF_Saturation

TIOParams.EXIF_Saturation

Declaration

property EXIF_Saturation: Integer;

Description

Returns the direction of saturation processing applied by the camera when the photo was taken:
0: Normal
1: Low saturation
2: High saturation

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_SceneCaptureType

TIOParams.EXIF_SceneCaptureType

Declaration

property EXIF_SceneCaptureType: Integer;

Description

Returns the type of scene that was shot. It may also be used to record the mode in which the photo was taken.

Allowed values:
0: Standard
1: Landscape
2: Portrait
3: Night scene

Note: This property differs from the EXIF_SceneType tag.


TIOParams.EXIF_SceneType

TIOParams.EXIF_SceneType

Declaration

property EXIF_SceneType: Integer;

Description

Returns the type of scene, e.g. a value of "0x01" means that the image was directly photographed.


TIOParams.EXIF_SensingMethod

TIOParams.EXIF_SensingMethod

Declaration

property EXIF_SensingMethod: Integer;

Description

Returns the type of image sensor unit. "2" means a one-chip color area sensor. Most digital cameras use this type.


TIOParams.EXIF_Sharpness

TIOParams.EXIF_Sharpness

Declaration

property EXIF_Sharpness: Integer;

Description

Returns the direction of sharpness processing applied by the camera when the photo was taken:
0: Normal
1: Soft
2: Hard

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_ShutterSpeedValue

TIOParams.EXIF_ShutterSpeedValue

Declaration

property EXIF_ShutterSpeedValue: Double;

Description

The shutter speed as an APEX value.

To convert this value to a human-readable "Shutter Speed" calculate this value's power of 2, then make it a reciprocal. For example, if EXIF_ShutterSpeedValue is 4, then the shutter speed is 1/16 second.

A string version of EXIF_ShutterSpeedValue (in human-readable format) is available in the iexMetaHelpers.pas EXIF helper unit.

Example

sShutterSpeed := ApexToStr( 2, ImageEnView1.IO.Params.EXIF_ShutterSpeedValue, '1/' );

// Write value
ImageEnView1.IO.Params.EXIF_ShutterSpeedValue := StrToApex( 2, sShutterSpeed, '1/' );

// Note: ApexToStr() and StrToApex() are the iexMetaHelpers unit


TIOParams.EXIF_Software

TIOParams.EXIF_Software

Declaration

property EXIF_Software: AnsiString;

Description

Returns the version number of the camera firmware (the internal software of the hardware)


TIOParams.EXIF_SubjectArea

TIOParams.EXIF_SubjectArea

Declaration

property EXIF_SubjectArea[Index: Integer]: Integer;

Description

Specifies the location and area of the main subject in the overall scene. EXIF_SubjectArea has either 2, 3, or 4 values, so Index can be 0 to 3.

The subject location and area are defined by Count values as follows:
Count = 2: Indicates the location of the main subject as coordinates. The first value is the X coordinate and the second is the Y coordinate.
Count = 3: The area of the main subject is given as a circle. The circular area is expressed as center coordinates and diameter. The first value is the center X coordinate, the second is the center Y coordinate, and the third is the diameter.
Count = 4: The area of the main subject is given as a rectangle. The rectangular area is expressed as center coordinates and area dimensions. The first value is the center X coordinate, the second is the center Y coordinate, the third is the width of the area, and the fourth is the height of the area.

Notes:
- Count = 2 would mean EXIF_SubjectArea[2] and EXIF_SubjectArea[3] are both -1, for example
- Coordinate values, width, and height are expressed in relation to the upper left as origin, prior to rotation processing as per the Rotation tag.
- A string version of EXIF_SubjectArea is available in the iexMetaHelpers.pas EXIF helper unit.

See Also

- EXIF_SubjectArea_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_SubjectDistance

TIOParams.EXIF_SubjectDistance

Declaration

property EXIF_SubjectDistance: Double;

Description

Distance to the focus point (in meters).


TIOParams.EXIF_SubjectDistanceRange

TIOParams.EXIF_SubjectDistanceRange

Declaration

property EXIF_SubjectDistanceRange: Integer;

Description

Returns the distance to the subject:
0: Unknown
1: Macro
2: Close view
3: Distant view

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_SubjectLocationX

TIOParams.EXIF_SubjectLocationX

Declaration

property EXIF_SubjectLocationX: Integer;

Description

Indicates the X and EXIF_SubjectLocationY location of the main subject in the scene. The value of this tag represents the pixel at the center of the main subject relative to the left edge, prior to rotation processing as per the Rotation tag.
When a camera records the main subject location, it is recommended that the EXIF_SubjectArea tag be used instead of this tag.

See Also

- EXIF_SubjectLocationY
- EXIF_SubjectLocation_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_SubjectLocationY

TIOParams.EXIF_SubjectLocationY

Declaration

property EXIF_SubjectLocationY: Integer;

Description

Indicates the EXIF_SubjectLocationX and Y location of the main subject in the scene. The value of this tag represents the pixel at the center of the main subject relative to the left edge, prior to rotation processing as per the Rotation tag.
When a camera records the main subject location, it is recommended that the EXIF_SubjectArea tag be used instead of this tag.

See Also

- EXIF_SubjectLocationX
- EXIF_SubjectLocation_Str

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_SubsecTime

TIOParams.EXIF_SubsecTime

Declaration

property EXIF_SubsecTime: AnsiString;

Description

Some digital cameras can take 2 - 30 pictures per second, but the EXIF_DateTime/EXIF_DateTimeOriginal/EXIF_DateTimeDigitized tags cannot record a sub-second time, so EXIF_SubsecTime is used to record the detail.

For example, if the DateTime = "1996:09:01 09:15:30" and the SubSecTime = "130", then the precise date and time is "1996:09:01 09:15:30.130"


TIOParams.EXIF_SubsecTimeDigitized

TIOParams.EXIF_SubsecTimeDigitized

Declaration

property EXIF_SubsecTimeDigitized: AnsiString;

Description

Some digital cameras can take 2 - 30 pictures per second, but the EXIF_DateTime/EXIF_DateTimeOriginal/EXIF_DateTimeDigitized tags cannot record a sub-second time, so EXIF_SubsecTime is used to record the detail.

For example, if the DateTimeDigitized = "1996:09:01 09:15:30" and the SubSecTimeDigitized = "130", then the precise digitized time is "1996:09:01 09:15:30.130"


TIOParams.EXIF_SubsecTimeOriginal

TIOParams.EXIF_SubsecTimeOriginal

Declaration

property EXIF_SubsecTimeOriginal: AnsiString;

Description

Some digital cameras can take 2 - 30 pictures per second, but the EXIF_DateTime/EXIF_DateTimeOriginal/EXIF_DateTimeDigitized tags cannot record a sub-second time, so EXIF_SubsecTime is used to record the detail.

For example, if the DateTimeOriginal = "1996:09:01 09:15:30" and the SubSecTimeOriginal = "130", then the precise original time is "1996:09:01 09:15:30.130"


TIOParams.EXIF_UserComment

TIOParams.EXIF_UserComment

Declaration

property EXIF_UserComment: WideString

Description

Provides an alternative tag for storing textual data (keywords, comments, etc) with the image instead of EXIF_ImageDescription (which has character code limitations).

Note: You must specify how the string is coded (ASCII or Unicode) using the EXIF_UserCommentCode property.

Example

// Write our comment to the file
ImageEnView1.IO.LoadFromFile('C:\input.jpg');
ImageEnView1.IO.Params.EXIF_UserComment := 'Hello World!';
ImageEnView1.IO.Params.EXIF_UserCommentCode := IEEXIFUSERCOMMENTCODE_UNICODE;
ImageEnView1.IO.Params.EXIF_HasEXIFData := true;
ImageEnView1.IO.SaveToFileTIFF('D:\test.tiff');

// Read back the comment
ImageEnView1.IO.LoadFromFileTIFF('D:\test.tiff');
ShowMessage( ImageEnView1.IO.Params.EXIF_UserComment );


TIOParams.EXIF_UserCommentCode

TIOParams.EXIF_UserCommentCode

Declaration

property EXIF_UserCommentCode: AnsiString;

Description

Specifies the character code (8 bytes) for the EXIF_UserComment property.

Allowed values:

Description

ImageEn Const | Character Code | Desgination (8 bytes) | References
IEExifUserCommentCode_Unicode | Unicode | #$55#$4E#$49#$43#$4F#$44#$45#$00 | Unicode Standard
IEExifUserCommentCode_ASCII | ASCII | #$41#$53#$43#$49#$49#$00#$00#$00 | ITU-T T.50 IA5
IEExifUserCommentCode_JIS | JIS | #$4A#$49#$53#$00#$00#$00#$00#$00 | JIS X0208-1990
IEExifUserCommentCode_Undefined | Undefined | #$00#$00#$00#$00#$00#$00#$00#$00 | Undefined

Note: All consts are defined in ImageEnIO.pas

Example

// Write a comment to file
ImageEnView1.IO.LoadFromFile('C:\input.jpg');
ImageEnView1.IO.Params.EXIF_UserComment := 'Hello World!';
ImageEnView1.IO.Params.EXIF_UserCommentCode := IEEXIFUSERCOMMENTCODE_UNICODE;
ImageEnView1.IO.Params.EXIF_HasEXIFData := true;
ImageEnView1.IO.SaveToFileTIFF('D:\test.tiff');


TIOParams.EXIF_WhiteBalance

TIOParams.EXIF_WhiteBalance

Declaration

property EXIF_WhiteBalance: Integer;

Description

Returns the white balance mode selected when the photo was taken:
0: Auto white balance
1: Manual white balance

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.EXIF_WhitePoint

TIOParams.EXIF_WhitePoint

Declaration

property EXIF_WhitePoint[index: Integer]: Double;

Description

Defines the chromaticity of white points of the image. index is in the range 0 to 1.

If the image uses CIE Standard Illumination D65 (known as international standard of "daylight"), the values are '3127/10000, 3290/10000'.

"-1" for both values means "unspecified".


TIOParams.EXIF_XPAuthor

TIOParams.EXIF_XPAuthor

Declaration

property EXIF_XPAuthor: WideString;

Description

Specifies the Windows image author. This is shown in the properties dialog for JPEG and TIFF files. It is still read on newer versions of Windows, but only if a relevant XMP field cannot be found.


TIOParams.EXIF_XPComment

TIOParams.EXIF_XPComment

Declaration

property EXIF_XPComment: WideString;

Description

Specifies the Windows image comment. This is shown in the properties dialog for JPEG and TIFF files. It is still read on newer versions of Windows, but only if a relevant XMP field cannot be found.


TIOParams.EXIF_XPKeywords

TIOParams.EXIF_XPKeywords

Declaration

property EXIF_XPKeywords: WideString;

Description

Specifies the Windows image keywords. This is shown in the properties dialog for JPEG and TIFF files. It is still read on newer versions of Windows, but only if a relevant XMP field cannot be found.


TIOParams.EXIF_XPRating

TIOParams.EXIF_XPRating

Declaration

property EXIF_XPRating: Integer;

Description

Specifies the Windows image rating. This is shown in the properties dialog for JPEG and TIFF files. It is still read on newer versions of Windows, but only if a relevant XMP field cannot be found.

Allowed values from 0 up to 5. -1 is returned when not available.


TIOParams.EXIF_XPSubject

TIOParams.EXIF_XPSubject

Declaration

property EXIF_XPSubject: WideString;

Description

Specifies the Windows image subject. This is shown in the properties dialog for JPEG and TIFF files. It is still read on newer versions of Windows, but only if a relevant XMP field cannot be found.


TIOParams.EXIF_XPTitle

TIOParams.EXIF_XPTitle

Declaration

property EXIF_XPTitle: WideString;

Description

Specifies the Windows image title. This is shown in the properties dialog for JPEG and TIFF files. It is still read on newer versions of Windows, but only if a relevant XMP field cannot be found.


TIOParams.EXIF_XResolution

TIOParams.EXIF_XResolution

Declaration

property EXIF_XResolution: Double;

Description

Returns the horizontal resolution of the image. The default value is 1/72 inch (one "point"), but it is largely meaningless as personal computers typicaly don't use this value for display/printing.

A string version of EXIF_XResolution (in human-readable format) is available in the iexMetaHelpers.pas EXIF helper unit.

See Also

- EXIF_YResolution
- EXIF_ResolutionUnit
- EXIF_XResolution_Str

Example

// Get as string value
sExifXResolution := DoubleToFraction( ImageEnView1.IO.Params.EXIF_XResolution );

// Write string value
// Note: Assumes a value formatted as a fraction, e.g. '1/72'
ImageEnView1.IO.Params.EXIF_XResolution := FractionToDouble( sExifXResolution );

// Note: DoubleToFraction() and FractionToDouble() are in the iexMetaHelpers unit


TIOParams.EXIF_YCbCrCoefficients

TIOParams.EXIF_YCbCrCoefficients

Declaration

property EXIF_YCbCrCoefficients[index: Integer]: Double;

Description

When the image format is YCbCr, this value shows a constant to translate it to RGB format. index is in the range 0 to 2. Usually the values are '0.299/0.587/0.114'.

"-1" for all values means "unspecified".


TIOParams.EXIF_YCbCrPositioning

TIOParams.EXIF_YCbCrPositioning

Declaration

property EXIF_YCbCrPositioning: Integer;

Description

When the image format is YCbCr and uses "Sub-sampling" (cropping of chroma data which is performed by all cameras), this property defines the chroma sample point of the sub-sampling pixel array.
0: Unspecified
1: The center of pixel array.
2: The datum point.


TIOParams.EXIF_YResolution

TIOParams.EXIF_YResolution

Declaration

property EXIF_YResolution: Double;

Description

Returns the vertical resolution of the image. The default value is 1/72 inch (one "point"), but it is largely meaningless as personal computers typicaly don't use this value for display/printing.

A string version of EXIF_YResolution (in human-readable format) is available in the iexMetaHelpers.pas EXIF helper unit.

See Also

- EXIF_XResolution
- EXIF_ResolutionUnit
- EXIF_YResolution_Str

Example

// Get as string value
sExifYResolution := DoubleToFraction( ImageEnView1.IO.Params.EXIF_YResolution );

// Write string value
// Note: Assumes a value formatted as a fraction, e.g. '1/72'
ImageEnView1.IO.Params.EXIF_YResolution := FractionToDouble( sExifYResolution );

// Note: DoubleToFraction() and FractionToDouble() are in the iexMetaHelpers unit


TIOParams.FileName

TIOParams.FileName

Declaration

property FileName: WideString;

Description

Returns the filename of the last loaded or saved image.


TIOParams.FileType

TIOParams.FileType

Declaration

property FileType: TIOFileType;

Description

Returns the file type of the last loaded or saved image, e.g. after a calling LoadFromFileGIF this property will have the ioGIF value.

Default: ioUnknown

Example

if OpenImageEnDialog1.Execute then
begin
ImageEnView1.IO.LoadFromFile(OpenImageEnDialog1.FileName);
case ImageEnView1.IO.Params.FileType of
ioTIFF : ShowMessage('You have loaded a TIFF file');
ioGIF : ShowMessage('You have loaded a GIF file');
...
end;
end;


TIOParams.FileTypeStr

TIOParams.FileTypeStr

Declaration

property FileTypeStr: String; (Read-only)

Description

Returns a textual description of the current file type and other file format specific properties.
For example, if FileType is ioTIFF and TIFF_Compression is ioTIFF_G4FAX, FileTypeStr returns the string: 'TIFF Bitmap (TIFF) Group 4 Fax'.

Example

if OpenImageEnDialog1.Execute then
begin
ImageEnView1.IO.LoadFromFile(OpenImageEnDialog1.FileName);
ShowMessage( ImageEnView1.IO.Params.FileTypeStr );
end;


TIOParams.GetThumbnail

TIOParams.GetThumbnail

Declaration

property GetThumbnail: Boolean;

Description

Specifies that the thumbnail for an image will be loaded instead of the full image. A thumbnail is often available for images returned by digital cameras (EXIF Thumbnail). It applies to JPEG, RAW, IEN, PSD files, and also images loaded using TIEWICReader.
If enabled and the file does not contain a thumbnail the full image will be automatically loaded instead.

The property sets:
- JPEG_GetExifThumbnail
- RAW_GetExifThumbnail
- IEN_GetThumbnail

Default: False

Note: Must be set before loading an image

Example

// Load only the thumbnail of our image (if it has one)
ImageEnView1.IO.Params.GetThumbnail := true;
ImageEnView1.IO.LoadFromFile('C:\Input.jpg');


TIOParams.GIF_Action

TIOParams.GIF_Action

Declaration

property GIF_Action: TIEGIFAction;

Description

Specifies how frames are displayed in a multi-frame GIF.

Default: ioGIF_DrawBackground

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.GIF_Background

TIOParams.GIF_Background

Declaration

property GIF_Background: TRGB;

Description

Returns the background color of the GIF.

Note: This color should exist in the image.

Default: (0, 0, 0), i.e. Black

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.GIF_Comments

TIOParams.GIF_Comments

Declaration

property GIF_Comments: TStringList;

Description

Returns the text comments contained in a GIF file.

Example

ImageEnIO.Params.Gif_Comments.Clear;
ImageEnIO.Params.GIF_Comments.Add('Hello world!');
ImageEnIO.SaveToFile('D:\output.gif');


TIOParams.GIF_DelayTime

TIOParams.GIF_DelayTime

Declaration

property GIF_DelayTime: integer;

Description

Specifies the period (in 1/100th sec) for which the current frame remains shown.

Default: 0

Demo

Demos\ImageEditing\AnimatedGIF\AnimatedGIF.dpr

Example

ImageEnView1.IO.Params.GIF_DelayTime := 10; // Set current frame to display for 1/10th of a second


TIOParams.GIF_FlagTranspColor

TIOParams.GIF_FlagTranspColor

Declaration

property GIF_FlagTranspColor: boolean;

Description

If enabled then the GIF_TranspColor property specifies the transparency color of the image. If false, GIF_TranspColor is not valid.

Default: False

Note: If the image contains an alpha channel (transparency channel) this property is handled automatically.

Example

ImageEnView1.IO.Params.GIF_FlagTranspColor := True;
ImageEnView1.IO.Params.GIF_TranspColor := CreateRGB(0, 0, 0); // black is the transparent color


TIOParams.GIF_ImageCount

TIOParams.GIF_ImageCount

Declaration

property GIF_ImageCount: Integer; (Read-only)

Description

Returns the number of images contained in the currently loaded GIF. You can use Seek to load/navigate images within the loaded file.

Note: You can use ImageCount for generic access to the image count (not specific to an image format). For non-component access, see EnumGifIm.

See Also

- ImageCount
- IEGetFileFramesCount
- GIF_ImageIndex
- Seek
- EnumGifIm

Examples

// Return the frame count of 'animated.gif' without load the GIF
ImageEnView1.IO.ParamsFromFile('C:\Animated.gif');
iImageCount := ImageEnView1.IO.Params.GIF_ImageCount;

// Print all images of a GIF
Printer.BeginDoc;
for I := 0 to ImageEnView1.IO.Params.GIF_ImageCount - 1 do
begin
ImageEnView1.IO.Params.GIF_ImageIndex := I;
ImageEnView1.IO.LoadFromFile('C:\input.gif');
ImageEnView1.IO.PrintImage(Printer.Canvas);
end;
Printer.EndDoc;


TIOParams.GIF_ImageIndex

TIOParams.GIF_ImageIndex

Declaration

property GIF_ImageIndex: integer;

Description

The index (zero-based) of the current image of the loaded GIF image. You can also use Seek to load/navigate images within the loaded file.

Note: You can use ImageIndex for generic access to the ImageIndex (not specific to an image format).

See Also

- ImageIndex
- GIF_ImageCount
- Seek

Examples

// Want the second page of the GIF
ImageEnView1.IO.Params.GIF_ImageIndex := 1;
ImageEnView1.IO.LoadFromFile('C:\Animation.gif');

// Print all images of a GIF
Printer.BeginDoc;
for I := 0 to ImageEnView1.IO.Params.GIF_ImageCount - 1 do
begin
ImageEnView1.IO.Params.GIF_ImageIndex := I;
ImageEnView1.IO.LoadFromFile('C:\input.gif');
ImageEnView1.IO.PrintImage(Printer.Canvas);
end;
Printer.EndDoc;


TIOParams.GIF_Interlaced

TIOParams.GIF_Interlaced

Declaration

property GIF_Interlaced: boolean;

Description

Returns True if the GIF image is interlaced.


TIOParams.GIF_Ratio

TIOParams.GIF_Ratio

Declaration

property GIF_Ratio: integer;

Description

Returns the aspect ratio of the GIF image, which is calculated as follows:

Width / Height = (Ratio + 15) / 64

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.GIF_RAWLoad

TIOParams.GIF_RAWLoad

Declaration

property GIF_RAWLoad: boolean;

Description

If true ImageEn doesn't process the GIF disposal method (i.e. doesn't merge frames when required).
This property is not applicable to multi-page loading (like TImageEnMIO and TImageEnMView).
If TImageEnIO is attached to TImageEnView, the layer positions (PosX and PosY) are also set.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.GIF_TranspColor

TIOParams.GIF_TranspColor

Declaration

property GIF_TranspColor: TRGB;

Description

Specifies the transparency color.

Default: (0, 0, 0), i.e. Black

Notes:
- Only valid if GIF_FlagTranspColor = True
- The specified color should exist within the image

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.GIF_Version

TIOParams.GIF_Version

Declaration

property GIF_Version: AnsiString;

Description

Returns the GIF standard version, either "GIF87a" or "GIF89a".

Default: 'GIF89a'

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.GIF_WinHeight

TIOParams.GIF_WinHeight

Declaration

property GIF_WinHeight: integer;

Description

Returns the height of the window where the GIF is shown.


TIOParams.GIF_WinWidth

TIOParams.GIF_WinWidth

Declaration

property GIF_WinWidth: integer;

Description

Returns the width of the window where the GIF is shown.


TIOParams.GIF_XPos

TIOParams.GIF_XPos

Declaration

property GIF_XPos: integer;

Description

The X coordinate where the top-left of the frame will be shown.

Due to optimization secondary frames of a GIF may not contain all the image data of the original frame, but only what data has changed. This property allows you to draw the subsequent frames at the correct position.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.GIF_YPos

TIOParams.GIF_YPos

Declaration

property GIF_YPos: integer;

Description

The Y coordinate where the top-left of the frame will be shown.

Due to optimization secondary frames of a GIF may not contain all the image data of the original frame, but only what data has changed. This property allows you to draw the subsequent frames at the correct position.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.HDP_ImageQuality

TIOParams.HDP_ImageQuality

Declaration

property HDP_ImageQuality: Double;

Description

Specifies the quality to use when saving an HDP file. 0.0 produces the lowest possible quality, and 1.0 produces the highest quality, which for
Microsoft HD Photo results in mathematically lossless compression.

Default: 0.9

See also: HDP_Lossless

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.HDP_Lossless

TIOParams.HDP_Lossless

Declaration

property HDP_Lossless: Boolean;

Description

Enabling this property will create an HDP file with mathematically lossless compression (overriding the HDP_ImageQuality property).

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.Height

TIOParams.Height

Declaration

property Height: integer;

Description

Returns the height of the image in pixels.


TIOParams.ICO_Background

TIOParams.ICO_Background

Declaration

property ICO_background: TRGB;

Description

Specifies the color that is used for transparency (i.e. becomes the image background) when loading icon files.

Default: (255, 255, 255), i.e. white

Note: This property must be set before loading. It is not used when saving because only the image's alpha channel is used for transparency. To make a color transparent you use SetTransparentColors before saving.

Example

// Reading
ImageEnView1.IO.Params.ICO_Background := CreateRGB(255, 255, 255);
ImageEnView1.IO.LoadFromFileICO('D:\myicon.ico');

// Writing example
ImageEnView1.Proc.SetTransparentColors(transparent_color, transparent_color, 0);
ImageEnView1.IO.SaveToFileICO('D:\myicon.ico');

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.ICO_BitCount

TIOParams.ICO_BitCount

Declaration

ICO_BitCount: TIOICOBitCount;

Description

An array of integers which specify the bit count of all images contained in an icon file.

The last bitcount must be set to 0.

Example

// save the current image in 'output.ico', It will contain three images with 64x64 32bit (24bit + alphachannel), 32x32 256 colors and 32x32 16 colors

// 64 x 64 x 32bit
ImageEnView.IO.Params.ICO.BitCount[0] := 32;
ImageEnView.IO.Params.ICO.Sizes[0].cx := 64;
ImageEnView.IO.Params.ICO.Sizes[0].cy := 64;

// 32 x 32 x 8bit
ImageEnView.IO.Params.ICO.BitCount[1] := 8;
ImageEnView.IO.Params.ICO.Sizes[1].cx := 32;
ImageEnView.IO.Params.ICO.Sizes[1].cy := 32;

// 32 x 32 x 4bit
ImageEnView.IO.Params.ICO.BitCount[2] := 4;
ImageEnView.IO.Params.ICO.Sizes[2].cx := 32;
ImageEnView.IO.Params.ICO.Sizes[2].cy := 32;

// I don't want other images
ImageEnView.IO.Params.ICO.BitCount[3] := 0;
ImageEnView.IO.Params.ICO.Sizes[3].cx := 0;
ImageEnView.IO.Params.ICO.Sizes[3].cy := 0;

// save
ImageEnView.IO.SaveToFile('D:\output.ico');


TIOParams.ICO_ImageIndex

TIOParams.ICO_ImageIndex

Declaration

property ICO_ImageIndex: Integer;

Description

The index (zero-based) of the current image of the current icon file. An icon file can contain multiple images of varying sizes and color depths. Use ImageCount to return the number of images the file contains.

Note: You can use ImageIndex for generic access to the ImageIndex (not specific to an image format).

See Also

- ImageCount
- EnumICOIm

Example

// Load the second image inside 'alfa.ico'
ImageEnView1.IO.Params.ICO_ImageIndex := 1;
ImageEnView1.IO.LoadFromFile('C:\alfa.ico');


TIOParams.ICO_Sizes

TIOParams.ICO_Sizes

Declaration

ICO_Sizes: TIOICOSizes;

Description

An array of TSize structures which specify the dimensions of all images contained in an icon file.

Note: The last item must specify the size as 0 x 0.

Example

// save the current image in 'output.ico', It will contain three images with 64x64 32bit (24bit + alphachannel), 32x32 256 colors and 32x32 16 colors

// 64 x 64 x 32bit
ImageEnView.IO.Params.ICO.BitCount[0] := 32;
ImageEnView.IO.Params.ICO.Sizes[0].cx := 64;
ImageEnView.IO.Params.ICO.Sizes[0].cy := 64;

// 32 x 32 x 8bit
ImageEnView.IO.Params.ICO.BitCount[1] := 8;
ImageEnView.IO.Params.ICO.Sizes[1].cx := 32;
ImageEnView.IO.Params.ICO.Sizes[1].cy := 32;

// 32 x 32 x 4bit
ImageEnView.IO.Params.ICO.BitCount[2] := 4;
ImageEnView.IO.Params.ICO.Sizes[2].cx := 32;
ImageEnView.IO.Params.ICO.Sizes[2].cy := 32;

// I don't want other images
ImageEnView.IO.Params.ICO.BitCount[3] := 0;
ImageEnView.IO.Params.ICO.Sizes[3].cx := 0;
ImageEnView.IO.Params.ICO.Sizes[3].cy := 0;

// save
ImageEnView.IO.SaveToFile('D:\output.ico');


TIOParams.IEN_Compression

TIOParams.IEN_Compression

Declaration

property IEN_Compression: TIOFileType;

Description

Specifies the format to save an ImageEn layer file.

If CompressionFormat is -1, an internal lossless compressed format is used. Pixel format and alpha channel are preserved.
If CompressionFormat is -2, an internal non-compressed format is used. Pixel format and alpha channel are preserved.
Otherwise any standard image format can be used , except ioTIFF.

Note: Even if a standard compression format, such as ioJPEG is used, the file will only be readable by ImageEn.

Default: -1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.IEN_Description

TIOParams.IEN_Description

Declaration

property IEN_Description: Widestring;

Description

A description you can specify for the file.


TIOParams.IEN_GetThumbnail

TIOParams.IEN_GetThumbnail

Declaration

property IEN_GetThumbnail: Boolean;

Description

Specifies that the thumbnail for an IEN image will be loaded instead of the full image.
Thumbnails are saved for IEN images when ThumbnailSize is specified.
If enabled and the file does not contain a thumbnail, the full image is automatically loaded instead.

See also: GetThumbnail

Example

// Load only the thumbnail
ImageEnView1.IO.Params.IEN_GetThumbnail := True;
ImageEnView1.IO.LoadFromFile('C:\input.ien');


TIOParams.IEN_LayerCount

TIOParams.IEN_LayerCount

Declaration

property IEN_LayerCount: Integer;

Description

Returns the number of layers in the file.

Read-only

See Also

- Width
- Height

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.IEN_Version

TIOParams.IEN_Version

Declaration

property IEN_Version: Integer;

Description

Returns the version of this IEN file.

Read-only

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.ImageCount

TIOParams.ImageCount

Declaration

property ImageCount: integer

Description

Returns the number of pages/frames/images in the current file. Many image file formats can store multiple images, including TIFF, GIF, DCX, ICO and cursor.

This property is valid for all file formats (i.e. returning 1 for formats that do not support multiple images). It provides generic access to file specific properties: GIF_ImageCount, TIFF_ImageCount, GIF_ImageCount and MEDIAFILE_FrameCount.

You can use Seek to load/navigate images within the loaded file.

See Also

- IEGetFileFramesCount
- ImageIndex
- Seek

Examples

// Show the number of pages in a TIFF
ImageEnView1.IO.LoadFromFile('C:\input.tif');
iPages := ImageEnView1.IO.Params.ImageCount;
ShowMessage('Page Count: ' + IntToStr(iPages));

// Print all pages of a TIFF
Printer.BeginDoc;
for I := 0 to ImageEnView1.IO.Params.ImageCount - 1 do
begin
ImageEnView1.IO.Params.ImageIndex := I;
ImageEnView1.IO.LoadFromFile('C:\input.tif');
ImageEnView1.IO.PrintImage(Printer.Canvas);
end;
Printer.EndDoc;


TIOParams.ImageDelayTime

TIOParams.ImageDelayTime

Declaration

property ImageDelayTime : Integer (Read-only)

Description

If the current file supports animation and has multiple frames, then this property provides access to the delay in MS (milliseconds) between images. E.g. if ImageDelayTime = 2000 then each frame should be shown for 2 seconds when animated.

This is a read-only property which provides generic access to one of:
- AVI_FrameDelayTime
- GIF_DelayTime
- MEDIAFILE_FrameDelayTime
- The frame interval tag of DICOM files

Example

// Set frame load timer to correct interval to animate the image
FrameLoadTimer.Interval := ImageEnView1.IO.Params.ImageDelayTime;


TIOParams.ImageEnAnnot

TIOParams.ImageEnAnnot

Declaration

property ImageEnAnnot: TIEImageEnAnnot;

Description

Provides access to the TImageEnVect objects or TImageEnView layers loaded (or to be saved) from a TIFF or JPEG.
Using a TIEImageEnAnnot object you can create new objects, copy to or from a TImageEnVect (as vectorial objects) or TImageEnView (as layers), or just draw onto the bitmap.

ImagingAnnot vs ImageEnAnnot

ImagingAnnot handles annotations that are supported by other third party applications, but does not support all objects of TImageEnVect. ImageEnAnnot supports all objects of TImageEnVect and TImageEnView, but are not understood by other applications.

Example

// Load an image and all annotations from input.tif to a TImageEnVect. This allows the annotations to be edited:
ImageEnVect1.IO.LoadFromFile('C:\input.tif');
ImageEnVect1.IO.Params.ImageEnAnnot.CopyToTImageEnVect();

// Load an image and all annotations from input.jpg to a TImageEnView. This allows the annotations to be edited:
ImageEnView1.IO.LoadFromFile('C:\input.jpg');
ImageEnView1.IO.Params.ImageEnAnnot.CopyToTImageEnView();

// Load an image and all annotations from input.tif, but just draw annotation on the image (display only, cannot be edited):
ImageEnVect1.IO.LoadFromFile('C:\input.tif');
ImageEnVect1.IO.Params.ImageEnAnnot.DrawToBitmap( ImageEnVect1.IEBitmap, True );
ImageEnVect1.Update();

// Save an image and all annotations to output.tif
ImageEnVect1.IO.Params.ImageEnAnnot.CopyFromTImageEnVect();
ImageEnVect1.IO.SaveToFile('C:\output.tif');


TIOParams.ImageIndex

TIOParams.ImageIndex

Declaration

property ImageIndex: Integer;

Description

Specifies the index of the next page/frame to load. You must set this property before calling read methods like LoadFromFile.
This property is valid for all multi-page file formats (TIFF, GIF, DCX, Dicom, etc..).

Note: Setting ImageIndex is the same as setting the relevant format image index: TIFF_ImageIndex, GIF_ImageIndex, DCX_ImageIndex, ICO_ImageIndex or CUR_ImageIndex.

See Also

- ImageCount
- Seek

Examples

// Load the second page of the TIFF
ImageEnView1.IO.Params.ImageIndex := 1;
ImageEnView1.IO.LoadFromFile('C:\input.tif');

// Print all pages of a TIFF
Printer.BeginDoc;
for I := 0 to ImageEnView1.IO.Params.ImageCount - 1 do
begin
ImageEnView1.IO.Params.ImageIndex := I;
ImageEnView1.IO.LoadFromFile('C:\input.tif');
ImageEnView1.IO.PrintImage(Printer.Canvas);
end;
Printer.EndDoc;


TIOParams.ImagingAnnot

TIOParams.ImagingAnnot

Declaration

property ImagingAnnot: TIEImagingAnnot;

Description

Provides access to the (Wang) imaging annotations loaded (or to be saved) from a TIFF.
Using the TIEImagingAnnot object you can create new objects, copy to or from a TImageEnVect (as vectorial objects) or TImageEnView (as layers), or just draw onto the bitmap.

ImagingAnnot vs ImageEnAnnot

ImagingAnnot handles annotations that are supported by other third party applications, but does not support all objects of TImageEnVect. ImageEnAnnot supports all objects of TImageEnVect, but are not understood by other applications.

Example

// Load an image and all annotations from input.tif . This allows the annotations to be edited:
ImageEnVect1.IO.LoadFromFile('C:\input.tif');
ImageEnVect1.IO.Params.ImagingAnnot.CopyToTImageEnVect( ImageEnVect1 );

// Load an image and all annotations from input.tif, but just draw annotation on the image (display only, cannot be edited):
ImageEnVect1.IO.LoadFromFile('C:\input.tif');
ImageEnVect1.IO.Params.ImagingAnnot.DrawToBitmap( ImageEnVect1.IEBitmap, True );
ImageEnVect1.Update;


TIOParams.InputICCProfile

TIOParams.InputICCProfile

Declaration

property InputICCProfile: TIEICC;

Description

Provides access to the ICC profile associated with the current image.

If EnableCMS is True and ImageEn has a CMS, the InputICCProfile and OutputICCProfile are applied when you load the image.


TIOParams.IPTC_Info

TIOParams.IPTC_Info

Declaration

property IPTC_Info: TIEIPTCInfoList;

Description

A list of all IPTC information contained in a file. View object details at TIEIPTCInfoList.

IPTC records can contains text, objects and images. Applications can read/write information from IPTC_Info using string objects or a memory buffer.
Each IPTC_Info item has a record number and a dataset number. These values specify the type of data contained in the item, according to IPTC - NAA Information Interchange Model Version 4 (See: www.iptc.org).
For JPEG files ImageEn can read/write IPTC fields from the APP13 marker.
ImageEn can also read/write IPTC textual information of PhotoShop (access In Photoshop under "File Info"). View a list IPTC Photoshop items.

Note: A set of IPTC helper functions are available in iexMetaHelpers.pas

Demo

Demos\InputOutput\IPTC\IPTC.dpr

Examples

// Read the PhotoShop image description
ImageEnView1.IO.LoadFromFile('C:\image.jpg');
Idx := ImageEnView1.IO.Params.IPTC_Info.IndexOf(2, 120);
Caption := ImageEnView1.IO.Params.IPTC_Info.StringItem[idx];

// write the image description
ImageEnView1.IO.Params.IPTC_Info.StringItem[idx] := 'This is the new caption';
ImageEnView1.IO.SaveToFile('D:\image.jpg');

See Also

- Photoshop IPTC consts
- IPTC_Photoshop
- ReadIPTCField
- WriteIPTCField
- ClearIPTCField

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.IPTC_Photoshop

TIOParams.IPTC_Photoshop

Declaration

property IPTC_Photoshop[FieldID: Integer]: string;

Description

Read or write a Photoshop compatible IPTC field.

Note: This is the same as calling Params.ReadIPTCField(PhotoShop_IPTC_Records, FieldID) or Params.WriteIPTCField(PhotoShop_IPTC_Records, FieldID, Value)

Acceptable values for FieldID:
Const | Description
IPTC_PS_Title (5) | Object name
IPTC_PS_Edit_Status (7) | Edit status
IPTC_PS_Urgency (10) | Urgency
IPTC_PS_Category (15) | Category
IPTC_PS_Category_2 (20) | Supplemental Category
IPTC_PS_Fixture_Identifier (22) | Fixture Identifier
IPTC_PS_Keywords (25) | Keywords
IPTC_PS_Release_Date (30) | Release Date
IPTC_PS_Release_Time (35) | Release Time
IPTC_PS_Instructions (40) | Special Instructions
IPTC_PS_Reference_Service (45) | Reference Service
IPTC_PS_Reference_Date (47) | Reference Date
IPTC_PS_Reference_Number (50) | Reference Number
IPTC_PS_Date_Created (55) | Date Created
IPTC_PS_Time_Created (60) | Time Created
IPTC_PS_Originating_Program (65) | Originating Program
IPTC_PS_Program_Version (70) | Program Version
IPTC_PS_Object_Cycle (75) | Object Cycle
IPTC_PS_Byline_1 (80) | By-line
IPTC_PS_Byline_2 (85) | By-line Title
IPTC_PS_City (90) | City
IPTC_PS_State_Province (95) | Province/State
IPTC_PS_Country_Code (100) | Country/Primary Location Code
IPTC_PS_Country (101) | Country/Primary Location Name
IPTC_PS_Transmission_Reference (103) | Original Transmission Reference
IPTC_PS_Credit (110) | Credit
IPTC_PS_Source (115) | Source
IPTC_PS_Copyright_Notice (116) | Copyright Notice
IPTC_PS_Caption (120) | Caption/Abstract
IPTC_PS_Writer (122) | Writer/Editor
IPTC_PS_Image_Type (130) | Image Type

Notes:
- IPTC_PS_Keywords is stored with multiple instances. This will be returned as a comma-separated string, and can be set as a comma-separated or Linebreak-delimited string (or use the overloaded version of WriteIPTCField)
- IPTC_PS_Caption can contain linebreaks
- All fields have maximum lengths

Demo

Demos\InputOutput\IPTC\IPTC.dpr

Examples

// Read the image description (written by PhotoShop)
ImageEnView1.IO.LoadFromFile('C:\image.jpg');
Caption := ImageEnView1.IO.Params.IPTC_Photoshop[IPTC_PS_Caption];

// Write the image description (without resaving JPEG image)
ImageEnView1.IO.Params.IPTC_Photoshop[IPTC_PS_Caption] := 'This is the new caption';
ImageEnView1.IO.InjectJpegIPTC('D:\image.jpg');

// Write keywords
ImageEnView1.IO.Params.IPTC_Photoshop[IPTC_PS_Keywords] := Listbox1.Text;
ImageEnView1.IO.SaveToFile('D:\image.jpg');

See Also

-
- Photoshop IPTC consts
- ReadIPTCField
- WriteIPTCField
- ClearIPTCField

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.IsResource

TIOParams.IsResource

Declaration

property IsResource: Boolean;

Description

Some formats (BMP, ICO, CUR) do not contain all headers when stored as resources (e.g. in EXE, DLL, etc...). If you set IsResource = true, ImageEn will skip loading of these headers so the image can be loaded correctly.

Default: False

Demo

Demos\InputOutput\ResourceLoader\ResourceLoader.dpr

Example

// loads resource 143 in "Bitmap" of "explorer.exe" (should be a little Windows logo)
var
re: TIEResourceExtractor;
buffer: Pointer;
bufferLen: Integer;
begin
re := TIEResourceExtractor.Create('explorer.exe');
try
buffer := re.GetBuffer('Bitmap', 'INTRESOURCE:143', bufferLen);
ImageEnView1.IO.Params.IsResource := true;
ImageEnView1.IO.LoadFromBuffer(buffer, bufferLen, ioBMP);
finally
re.Free;
end;
end;


TIOParams.J2000_ColorSpace

TIOParams.J2000_ColorSpace

Declaration

property J2000_ColorSpace: TIOJ2000ColorSpace;

Description

Specifies the currently loaded/saved color space.

Default: ioJ2000_RGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.J2000_Rate

TIOParams.J2000_Rate

Declaration

property J2000_Rate : Double;

Description

Specifies the compression rate to use when saving a JPEG2000 image. Allowed values are from 0 to 1, where 1 is no compression (lossless mode).

Default: 0.07

Example

// Save without quality loss
ImageEnIO.Params.J2000_Rate := 1;
ImageEnIO.SaveToFile('D:\output.jp2');

// Save with lossy compression
ImageEnView1.IO.Params.J2000_Rate := 0.015
ImageEnView1.IO.SaveToFile('D:\output.jp2');


TIOParams.J2000_ScalableBy

TIOParams.J2000_ScalableBy

Declaration

property J2000_ScalableBy: TIOJ2000ScalableBy;

Description

Specifies the JPEG2000 progression order.

Default: ioJ2000_Rate

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.JPEG_ColorSpace

TIOParams.JPEG_ColorSpace

Declaration

property JPEG_ColorSpace: TIOJPEGColorSpace;

Description

Specifies the saved/loaded color space.

Default: ioJPEG_YCbCr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.JPEG_CromaSubsampling

TIOParams.JPEG_CromaSubsampling

Declaration

property JPEG_CromaSubsampling: TIOJPEGCromaSubsampling;

Description

Specifies the croma sub-sampling, which affects the JPEG quality.

Default: ioJPEG_HIGH

Note: This property is valid only when JPEG_ColorSpace = ioJPEG_YCbCr.


TIOParams.JPEG_DCTMethod

TIOParams.JPEG_DCTMethod

Declaration

property JPEG_DCTMethod: TIOJPEGDCTMethod;

Description

Specifies the DCT method of the current JPEG.

Default: ioJPEG_ISLOW

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.JPEG_EnableAdjustOrientation

TIOParams.JPEG_EnableAdjustOrientation

Declaration

property JPEG_EnableAdjustOrientation: boolean;

Description

If enabled before loading a file which contains EXIF orientation information, the image will be automatically rotated for display (the actual file is not modified).
Orientation information is often found in digital photos from high-end cameras. ImageEn uses the data found in EXIF_Orientation to determine the correct orientation for JPEG images.

Default: False

See also: EnableAdjustOrientation

Example

ImageEnView1.IO.Params.JPEG_EnableAdjustOrientation := True;
ImageEnView1.IO.LoadFromFile('C:\input.jpg');


TIOParams.JPEG_GetExifThumbnail

TIOParams.JPEG_GetExifThumbnail

Declaration

property JPEG_GetExifThumbnail: Boolean;

Description

Specifies that the thumbnail for an image will be loaded instead of the full image. A thumbnail is often available for JPEG images from digital cameras (EXIF Thumbnail).
If enabled and the file does not contain a thumbnail the full image will be automatically loaded instead.

Default: False

See also: GetThumbnail

Example

// Load only the thumbnail
ImageEnView1.IO.Params.JPEG_GetExifThumbnail := True;
ImageEnView1.IO.LoadFromFile('C:\input.jpg');


TIOParams.JPEG_MarkerList

TIOParams.JPEG_MarkerList

Declaration

property JPEG_MarkerList: TIEMarkerList;

Description

Contains a list of of the markers within a JPEG file (from APP0 to APP15 and COM). JPEG markers can contain text, objects and images. Applications can read/write raw markers from JPEG_MarkerList using a stream or memory buffer.

Examples

// Read the JPEG_COM marker (idx is integer, Comment is string)
ImageEnView1.IO.LoadFromFile('C:\image.jpg');
Idx := ImageEnView1.IO.Params.JPEG_MarkerList.IndexOf(JPEG_COM);
Comment := ImageEnView1.IO.Params.JPEG_MarkerList.MarkerData[idx];

// Now writes the JPEG_COM marker
Comment := 'This is the new comment';
ImageEnView1.IO.Params.JPEG_MarkerList.SetMarker(idx, JPEG_COM, PAnsiChar(Comment), length(Comment));
ImageEnView1.IO.SaveToFile('D:\image.jpg');


TIOParams.JPEG_OptimalHuffman

TIOParams.JPEG_OptimalHuffman

Declaration

property JPEG_OptimalHuffman: boolean;

Description

If enabled, an optimal Huffman table is used by the JPEG compressor (to improve the compression level). If False, a standard table is used.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.JPEG_OriginalHeight

TIOParams.JPEG_OriginalHeight

Declaration

property JPEG_OriginalHeight: Integer;

Description

Returns the actual height of a Jpeg image before it was scaled (using JPEG_Scale).

Note: This is the same value as OriginalHeight.

See also: JPEG_OriginalWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.JPEG_OriginalWidth

TIOParams.JPEG_OriginalWidth

Declaration

property JPEG_OriginalWidth: Integer;

Description

Returns the actual width of a Jpeg image before it was scaled (using JPEG_Scale).

Note: This is the same value as OriginalWidth.

See also: JPEG_OriginalHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.JPEG_Progressive

TIOParams.JPEG_Progressive

Declaration

property JPEG_Progressive: boolean;

Description

Returns true if the current image is a progressive JPEG.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.JPEG_Quality

TIOParams.JPEG_Quality

Declaration

property JPEG_Quality: integer;

Description

The quality factor for the current JPEG image. Range is 1 to 100, though typical range is 60 (low quality) to 95 (high quality).
Higher values will improve image quality but require more disk space.

Default: 80

Note: This property is not stored in a JPEG image, so it is never set when loading an image. Instead you set it when saving a JPEG to specify your desired compression.
It is possible to estimate the original JPEG compression using IECalcJpegStreamQuality or IECalcJpegFileQuality.

Example

// load a jpeg and save it using the same compression quality
ImageEnView1.IO.LoadFromFile('C:\input.jpg');
ImageEnView1.IO.Params.JPEG_Quality := IECalcJpegFileQuality('C:\input.jpg');
ImageEnView1.IO.SaveToFile('D:\output.jpg');


TIOParams.JPEG_Scale

TIOParams.JPEG_Scale

Declaration

property JPEG_Scale: TIOJPEGScale;

Description

Specifies the size at which to load a JPEG image. It is used to speed up loading when a full size image is not required.

Default: ioJPEG_FULLSIZE

Example

// This is the fastest way to load a thumbnailed jpeg of about 100x100 pixels
ImageEnView1.IO.Params.Width := 100;
ImageEnView1.IO.Params.Height := 100;
ImageEnView1.IO.Params.JPEG_Scale := ioJPEG_AUTOCALC;
ImageEnView1.IO.LoadFromFile('C:\myimage.jpg');


TIOParams.JPEG_Scale_Used

TIOParams.JPEG_Scale_Used

Declaration

property JPEG_Scale_Used: Integer;

Description

Returns the denominator of the scale used to load the current Jpeg image (e.g. if it was loaded at 1/4 size, then 4 will be returned). It is used only when JPEG_Scale is ioJPEG_AUTOCALC.

Default: 1

Example

ImageEnView1.IO.Params.Width := 100;
ImageEnView1.IO.Params.Height := 100;
ImageEnView1.IO.Params.JPEG_Scale := ioJPEG_AUTOCALC;
ImageEnView1.IO.LoadFromFile('C:\my.jpg');
Case ImageEnView1.IO.Params.JPEG_Scale_Used of
1: ShowMessage('Full-size');
2: ShowMessage('Half-size');
4: ShowMessage('Quarter-size');
8: ShowMessage('Eighth-size');
end;


TIOParams.JPEG_Smooth

TIOParams.JPEG_Smooth

Declaration

property JPEG_Smooth: integer;

Description

The smoothing factor for the JPEG. Range is 0 (No smoothing) to 100 is (max). If JPEG_Smooth is not zero, the JPEG compressor smoothes the image before compressing it. This improves the level of compression.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.JPEG_WarningCode

TIOParams.JPEG_WarningCode

Declaration

property JPEG_WarningCode: Integer;

Description

Returns the last warning code encountered while loading the current Jpeg.
Value | Error | Description
0 | ARITH_NOTIMPL | There are legal restrictions on arithmetic coding
1 | BAD_ALIGN_TYPE | ALIGN_TYPE is wrong
2 | BAD_ALLOC_CHUNK | MAX_ALLOC_CHUNK is wrong
3 | BAD_BUFFER_MODE | Bogus buffer control mode
4 | BAD_COMPONENT_ID | Invalid component ID in SOS
5 | BAD_DCT_COEF | DCT coefficient out of range
6 | BAD_DCTSIZE | IDCT output block size not supported
7 | BAD_HUFF_TABLE | Bogus Huffman table definition
8 | BAD_IN_COLORSPACE | Bogus input colorspace
9 | BAD_J_COLORSPACE | Bogus JPEG colorspace
10 | BAD_LENGTH | Bogus marker length
11 | BAD_LIB_VERSION | Wrong JPEG library version
12 | BAD_MCU_SIZE | Sampling factors too large for interleaved scan
13 | BAD_POOL_ID | Invalid memory pool code
14 | BAD_PRECISION | Unsupported JPEG data precision
15 | BAD_PROGRESSION | Invalid progressive parameters
16 | BAD_PROG_SCRIPT | Invalid progressive parameters
17 | BAD_SAMPLING | Bogus sampling factors
18 | BAD_SCAN_SCRIPT | Invalid scan script
19 | BAD_STATE | Improper call to JPEG library
20 | BAD_STRUCT_SIZE | JPEG parameter struct mismatch
21 | BAD_VIRTUAL_ACCESS | Bogus virtual array access
22 | BUFFER_SIZE | Buffer passed to JPEG library is too small
23 | CANT_SUSPEND | Suspension not allowed here
24 | CCIR601_NOTIMPL | CCIR601 sampling not implemented yet
25 | COMPONENT_COUNT | Too many color components
26 | CONVERSION_NOTIMPL | Unsupported color conversion request
27 | DAC_INDEX | Bogus DAC
28 | DAC_VALUE | Bogus DAC
29 | DHT_INDEX | Bogus DHT
30 | DQT_INDEX | Bogus DQT
31 | EMPTY_IMAGE | Empty JPEG image (DNL not supported)
32 | EMS_READ | Read from EMS failed
33 | EMS_WRITE | Write to EMS failed
34 | EOI_EXPECTED | Didn't expect more than one scan
35 | FILE_READ | Input file read error
36 | FILE_WRITE | Output file write error - out of disk space?
37 | FRACT_SAMPLE_NOTIMPL | Fractional sampling not implemented yet
38 | HUFF_CLEN_OVERFLOW | Huffman code size table overflow
39 | HUFF_MISSING_CODE | Missing Huffman code table entry
40 | IMAGE_TOO_BIG | Image too big
41 | INPUT_EMPTY | Empty input file
42 | INPUT_EOF | Premature end of input file
43 | MISMATCHED_QUANT_TABLE | Cannot transcode due to multiple use of quantization table
44 | MISSING_DATA | Scan script does not transmit all data
45 | MODE_CHANGE | Invalid color quantization mode change
46 | NOTIMPL | Not implemented yet
47 | NOT_COMPILED | Requested feature was omitted at compile time
48 | NO_BACKING_STORE | Backing store not supported
49 | NO_HUFF_TABLE | Huffman table was not defined
50 | NO_IMAGE | JPEG datastream contains no image
51 | NO_QUANT_TABLE | Quantization table was not defined
52 | NO_SOI | Not a Jpeg file
53 | OUT_OF_MEMORY | Insufficient memory
54 | QUANT_COMPONENTS | Cannot quantize
55 | QUANT_FEW_COLORS | Cannot quantize
56 | QUANT_MANY_COLORS | Cannot quantize
57 | SOF_DUPLICATE | Invalid Jpeg file structure: two SOF markers
58 | SOF_NO_SOS | Invalid Jpeg file structure: missing SOS marker
59 | SOF_UNSUPPORTED | Unsupported JPEG process
60 | SOI_DUPLICATE | Invalid Jpeg file structure: two SOI markers
61 | SOS_NO_SOF | Invalid Jpeg file structure: SOS before SOF
62 | TFILE_CREATE | Failed to create temporary file
63 | TFILE_READ | Read failed on temporary file
64 | TFILE_SEEK | Seek failed on temporary file
65 | TFILE_WRITE | Write failed on temporary file - out of disk space?
66 | TOO_LITTLE_DATA | Application transferred too few scanlines
67 | UNKNOWN_MARKER | Unsupported marker
68 | VIRTUAL_BUG | Virtual array controller messed up
69 | WIDTH_OVERFLOW | Image too wide for this implementation
70 | XMS_READ | Read from XMS failed
71 | XMS_WRITE | Write to XMS failed
72 | COPYRIGHT
73 | VERSION
74 | 16BIT_TABLES | Caution: quantization tables are too coarse for baseline JPEG
75 | ADOBE | Adobe APP14 marker
76 | APP0 | Unknown APP0 marker
77 | APP14 | Unknown APP14 marker
78 | DAC | Define Arithmetic Table
79 | DHT | Define Huffman Table
80 | DQT | Define Quantization Table
81 | DRI | Define Restart Interval
82 | EMS_CLOSE | Freed EMS handle
83 | EMS_OPEN | Obtained EMS handle
84 | EOI | End Of Image
85 | HUFFBITS
86 | JFIF | JFIF APP0 marker
87 | JFIF_BADTHUMBNAILSIZE | Warning: thumbnail image size does not match data length
88 | JFIF_EXTENSION | JFIF extension marker
89 | JFIF_THUMBNAIL
90 | MISC_MARKER | Miscellaneous marker
91 | PARMLESS_MARKER | Unexpected marker
92 | QUANTVALS
93 | QUANT_3_NCOLORS
94 | QUANT_NCOLORS
95 | QUANT_SELECTED
96 | RECOVERY_ACTION
97 | RST
98 | SMOOTH_NOTIMPL | Smoothing not supported with nonstandard sampling ratios
99 | SOF
100 | SOF_COMPONENT
101 | SOI | Start of Image
102 | SOS | Start Of Scan
103 | SOS_COMPONENT
104 | SOS_PARAMS
105 | TFILE_CLOSE | Closed temporary file
106 | TFILE_OPEN | Opened temporary file
107 | THUMB_JPEG | JFIF extension marker
108 | THUMB_PALETTE | JFIF extension marker
109 | THUMB_RGB | JFIF extension marker
110 | UNKNOWN_IDS | Unrecognized component IDs, assuming YCbCr
111 | XMS_CLOSE | Freed XMS handle
112 | XMS_OPEN | Obtained XMS handle
113 | ADOBE_XFORM | Unknown Adobe color transform code
114 | BOGUS_PROGRESSION | Inconsistent progression sequence
115 | EXTRANEOUS_DATA | Corrupt JPEG data: extraneous bytes before marker
116 | HIT_MARKER | Corrupt JPEG data: premature end of data segment
117 | HUFF_BAD_CODE | Corrupt JPEG data: bad Huffman code
118 | JFIF_MAJOR | Warning: unknown JFIF revision number
119 | JPEG_EOF | Premature end of Jpeg file
120 | MUST_RESYNC | Corrupt JPEG data
121 | NOT_SEQUENTIAL | Invalid SOS parameters for sequential JPEG
122 | TOO_MUCH_DATA | Application transferred too many scanlines


TIOParams.JPEG_WarningTot

TIOParams.JPEG_WarningTot

Declaration

property JPEG_WarningTot: Integer;

Description

Returns a count of all warnings encountered while loading the current Jpeg.

Note: You should use the Aborting property to see if the image is corrupt.


TIOParams.LoadFromFile

TIOParams.LoadFromFile

Declaration

procedure LoadFromFile(const FileName: WideString; CheckMagicString: Boolean = true);

Description

Load file formats parameters from a meta-data file (that was saved using SaveToFile).

CheckMagicString should always be True, unless you must maintain compatibility with files saved from earlier editions of ImageEn (prior to v6.3.1)

Note: This does NOT read the parameters from an existing image file. See Read instead

Example

// Save default parameters
ImageEnView1.IO.Params.TIFF_Compression := ioTIFF_LZW;
ImageEnView1.IO.Params.SaveToFile('D:\default.params');

...

// Load default parameters
ImageEnView1.IO.Params.LoadFromFile('D:\default.params');


TIOParams.LoadFromStream

TIOParams.LoadFromStream

Declaration

procedure LoadFromStream(Stream: TStream; CheckMagicString: Boolean = true);

Description

Load file formats parameters from a stream that was filled using SaveToStream.

CheckMagicString should always be True, unless you must maintain compatibility with streams saved from earlier editions of ImageEn (prior to v6.3.1)

Note: This does NOT read the parameters from an existing image file stream. See Read instead.


TIOParams.MEDIAFILE_FrameCount

TIOParams.MEDIAFILE_FrameCount

Declaration

property MEDIAFILE_FrameCount: integer;

Description

Returns the number of frames of the current media file (using OpenMediaFile).

See Also

- ImageCount
- IEGetFileFramesCount

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.MEDIAFILE_FrameDelayTime

TIOParams.MEDIAFILE_FrameDelayTime

Declaration

property MEDIAFILE_FrameDelayTime: double;

Description

Specifies the time (in milliseconds) that the current frame will be shown when animated/playing.


TIOParams.OriginalHeight

TIOParams.OriginalHeight

Declaration

property OriginalHeight: Integer;

Description

Returns the actual height of an image before it was scaled during loading.

JPEG and Raw images can be loaded at a reduced size to speed up the loading. This property allows you to access the true size of the image.

See also: OriginalWidth

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.OriginalWidth

TIOParams.OriginalWidth

Declaration

property OriginalWidth: Integer;

Description

Returns the actual width of an image before it was scaled during loading.

JPEG and Raw images can be loaded at a reduced size to speed up the loading. This property allows you to access the true size of the image.

See also: OriginalHeight

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.OutputICCProfile

TIOParams.OutputICCProfile

Declaration

property OutputICCProfile: TIEICC;

Description

Specifies the ICC profile associated with the current display system. The default profile is sRGB.

If EnableCMS is True and ImageEn has a CMS, the InputICCProfile and OutputICCProfile are applied when you load the image.


TIOParams.PCX_Compression

TIOParams.PCX_Compression

Declaration

property PCX_Compression: TIOPCXCompression;

Description

Specifies the compression type for a PCX image.

Default: ioPCX_RLE

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PCX_Version

TIOParams.PCX_Version

Declaration

property PCX_Version: integer;

Description

Returns the PCX Version.

Default: 5

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PDF_Author

TIOParams.PDF_Author

Declaration

property PDF_Author: AnsiString;

Description

Specifies the name of the person who created the document.


TIOParams.PDF_Compression

TIOParams.PDF_Compression

Declaration

property PDF_Compression: TIOPDFCompression;

Description

Specifies the compression filter for an Adobe PDF file.

Default: ioPDF_G4FAX

Example

ImageEnView1.IO.LoadFromFile('D:\input.tif');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX;
ImageEnView1.IO.SaveToFile('D:\output.pdf');


TIOParams.PDF_Creator

TIOParams.PDF_Creator

Declaration

property PDF_Creator: AnsiString;

Description

Specifies the application that created the original document.


TIOParams.PDF_Keywords

TIOParams.PDF_Keywords

Declaration

property PDF_Keywords: AnsiString;

Description

Specifies the keywords associated with a PDF document.


TIOParams.PDF_PaperHeight

TIOParams.PDF_PaperHeight

Declaration

property PDF_PaperHeight: Integer

Description

Specifies the height of the page in Adobe PDF points (1 point = 1/72 of inch). Default values are width: 595 and height: 842 (A4 format).
Alternatively, you can use PDF_PaperSize.

Note: If you set PDF_PaperWidth and PDF_PaperHeight to 0 the page will be output at the size of the image. Note: This may create huge pages!

Common values:
Paper Size | PDF_PaperWidth | PDF_PaperHeight
A0 | 2380 | 3368
A1 | 1684 | 2380
A2 | 1190 | 1684
A3 | 842 | 1190
A4 | 595 | 842
A5 | 421 | 595
A6 | 297 | 421
B5 | 501 | 709
US Letter (8.5 x 11") | 612 | 792
US Legal (8.5 x 14") | 612 | 1008
US Ledger (17 x 11") | 1224 | 792
US Tabloid (11 x 17") | 792 | 1224

Example

// Save using "US Letter" paper size
ImageEnView1.IO.Params.PDF_PaperWidth := 612;
ImageEnView1.IO.Params.PDF_PaperHeight := 792;
ImageEnView1.IO.SaveToFile('D:\output.pdf');


TIOParams.PDF_PaperSize

TIOParams.PDF_PaperSize

Declaration

property PDF_PaperSize : TIOPDFPaperSize

Description

Provides a quick way to set PDF_PaperWidth and PDF_PaperHeight or interpret their current values.

If this is set to iepAuto then each page will be output at the size of the image. Note: This may create huge pages!

Example

// Save using "US Letter" paper size
ImageEnView1.IO.Params.PDF_PaperSize := iepLetter;
ImageEnView1.IO.SaveToFile('D:\output.pdf');

// Which is the same as...
ImageEnView1.IO.Params.PDF_PaperWidth := 612;
ImageEnView1.IO.Params.PDF_PaperHeight := 792;
ImageEnView1.IO.SaveToFile('D:\output.pdf');

See Also

- IEPaperSizeToStr
- IEStrToPaperSize
- IEPointsToPaperSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PDF_PaperWidth

TIOParams.PDF_PaperWidth

Declaration

property PDF_PaperWidth: Integer

Description

Specifies the width of the page in Adobe PDF points (1 point = 1/72 of inch). Default values are width: 595 and height: 842 (A4 format).
Alternatively, you can use PDF_PaperSize.

Note: If you set PDF_PaperWidth and PDF_PaperHeight to 0 the page will be output at the size of the image. Note: This may create huge pages!

Common values:
Paper Size | PDF_PaperWidth | PDF_PaperHeight
A0 | 2380 | 3368
A1 | 1684 | 2380
A2 | 1190 | 1684
A3 | 842 | 1190
A4 | 595 | 842
A5 | 421 | 595
A6 | 297 | 421
B5 | 501 | 709
US Letter (8.5 x 11") | 612 | 792
US Legal (8.5 x 14") | 612 | 1008
US Ledger (17 x 11") | 1224 | 792
US Tabloid (11 x 17") | 792 | 1224

Example

// Save using "US Letter" paper size
ImageEnView1.IO.Params.PDF_PaperWidth := 612;
ImageEnView1.IO.Params.PDF_PaperHeight := 792;
ImageEnView1.IO.SaveToFile('D:\output.pdf');


TIOParams.PDF_Producer

TIOParams.PDF_Producer

Declaration

property PDF_Producer: AnsiString;

Description

Specifies the application that converted the image to PDF.


TIOParams.PDF_Subject

TIOParams.PDF_Subject

Declaration

property PDF_Subject: AnsiString;

Description

Specifies the subject of the PDF document.


TIOParams.PDF_Title

TIOParams.PDF_Title

Declaration

property PDF_Title: AnsiString;

Description

Specifies the title of a PDF document.


TIOParams.PNG_Background

TIOParams.PNG_Background

Declaration

property PNG_Background: TRGB;

Description

Specifies the background color of the image.

Default: (0, 0, 0), i.e. Black

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PNG_Compression

TIOParams.PNG_Compression

Declaration

property PNG_Compression: Integer;

Description

Determines how much time the PNG compressor will spend trying to compress image data when saving a PNG.
Allowed values are from 0 (no compression) to 9 (best compression).

Default: 5

Example

// Set best compression
ImageEnView1.IO.Params.PNG_Filter := ioPNG_FILTER_PAETH;
ImageEnView1.IO.Params.PNG_Compression := 9;
// Save PNG
ImageEnView1.IO.SaveToFilePNG('max.png');


TIOParams.PNG_Filter

TIOParams.PNG_Filter

Declaration

property PNG_Filter: TIOPNGFilter;

Description

Specifies the filter to use when saving a PNG file. PNG filters can have a significant impact on the file size and encoding (i.e. saving) speed, though, generally the effect on the decoding/loading speed is minimal.

Default: ioPNG_FILTER_NONE

Example

// Set best compression
ImageEnView1.IO.Params.PNG_Filter := ioPNG_FILTER_PAETH;
ImageEnView1.IO.Params.PNG_Compression := 9;
// Save PNG
ImageEnView1.IO.SaveToFilePNG('D:\max.png');


TIOParams.PNG_Interlaced

TIOParams.PNG_Interlaced

Declaration

property PNG_Interlaced: Boolean;

Description

Returns true if the current PNG image is interlaced.


TIOParams.PNG_TextKeys

TIOParams.PNG_TextKeys

Declaration

property PNG_TextKeys: TStringList;

Description

Contains the keys associated with the list of values (PNG_TextValues property).

Note: PNG_TextKeys and PNG_TextValues must contain the same number of entries. Only uncompressed text is supported.

Examples

// Add author and other text info to a PNG file
ImageEnView1.IO.Params.PNG_TextKeys.Add('Author');
ImageEnView1.IO.Params.PNG_TextValues.Add('Letizia');
ImageEnView1.IO.Params.PNG_TextKeys.Add('Subject');
ImageEnView1.IO.Params.PNG_TextValues.Add('Colosseo');
ImageEnView1.IO.SaveToFile('D:\output.png');

// read all text info from a PNG
for i := 0 to ImageEnView1.IO.Params.PNG_TextKeys.Count - 1 do
begin
key := ImageEnView1.IO.Params.PNG_TextKeys[i];
value := ImageEnView1.IO.Params.PNG_TextValues[I];
end;


TIOParams.PNG_TextValues

TIOParams.PNG_TextValues

Declaration

property PNG_TextValues: TStringList;

Description

Contains the values associated with a list of keys (PNG_TextKeys property).

Note: PNG_TextKeys and PNG_TextValues must contain the same number of entries. Only uncompressed text is supported.

Example

Examples

// Add author and other text info to a PNG file
ImageEnView1.IO.Params.PNG_TextKeys.Add('Author');
ImageEnView1.IO.Params.PNG_TextValues.Add('Letizia');
ImageEnView1.IO.Params.PNG_TextKeys.Add('Subject');
ImageEnView1.IO.Params.PNG_TextValues.Add('Colosseo');
ImageEnView1.IO.SaveToFile('D:\output.png');

// read all text info from a PNG
for i := 0 to ImageEnView1.IO.Params.PNG_TextKeys.Count - 1 do
begin
key := ImageEnView1.IO.Params.PNG_TextKeys[i];
value := ImageEnView1.IO.Params.PNG_TextValues[I];
end;


TIOParams.PS_Compression

TIOParams.PS_Compression

Declaration

property PS_Compression: TIOPSCompression;

Description

Specifies the compression filter for a PostScript file.

Default: ioPS_G4FAX

Example

ImageEnView1.IO.LoadFromFile('D:\input.tif');
ImageEnView1.IO.Params.PS_Compression := ioPS_G4FAX;
ImageEnView1.IO.SaveToFile('D:\output.ps');


TIOParams.PS_PaperHeight

TIOParams.PS_PaperHeight

Declaration

property PS_PaperHeight: Integer

Description

Specifies the height of the page in "PostScript points" (1 point = 1/72 of inch). Default values are width: 595 and height: 842 (A4 format).
Alternatively, you can use PS_PaperSize.

Common values:
Paper Size | PS_PaperWidth | PS_PaperHeight
A0 | 2380 | 3368
A1 | 1684 | 2380
A2 | 1190 | 1684
A3 | 842 | 1190
A4 | 595 | 842
A5 | 421 | 595
A6 | 297 | 421
B5 | 501 | 709
US Letter (8.5 x 11") | 612 | 792
US Legal (8.5 x 14") | 612 | 1008
US Ledger (17 x 11") | 1224 | 792
US Tabloid (11 x 17") | 792 | 1224

Example

// Save using "US Letter" paper size
ImageEnView1.IO.Params.PS_PaperWidth := 612;
ImageEnView1.IO.Params.PS_PaperHeight := 792;
ImageEnView1.IO.SaveToFile('D:\output.ps');


TIOParams.PS_PaperSize

TIOParams.PS_PaperSize

Declaration

property PS_PaperSize : TIOPDFPaperSize

Description

Provides a quick way to set PS_PaperWidth and PS_PaperHeight or interpret their current values.

Note: iepAuto CANNOT be used with PS format!

Example

// Save using "US Letter" paper size
ImageEnView1.IO.Params.PS_PaperSize := iepLetter;
ImageEnView1.IO.SaveToFile('D:\output.ps');

// Which is the same as...
ImageEnView1.IO.Params.PS_PaperWidth := 612;
ImageEnView1.IO.Params.PS_PaperHeight := 792;
ImageEnView1.IO.SaveToFile('D:\output.ps');

See Also

- IEPaperSizeToStr
- IEStrToPaperSize
- IEPointsToPaperSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PS_PaperWidth

TIOParams.PS_PaperWidth

Declaration

property PS_PaperWidth: Integer

Description

Specifies the width of the page in "PostScript points" (1 point = 1/72 of inch). Default values are width: 595 and height: 842 (A4 format).
Alternatively, you can use PS_PaperSize.

Common values:
Paper Size | PS_PaperWidth | PS_PaperHeight
A0 | 2380 | 3368
A1 | 1684 | 2380
A2 | 1190 | 1684
A3 | 842 | 1190
A4 | 595 | 842
A5 | 421 | 595
A6 | 297 | 421
B5 | 501 | 709
US Letter (8.5 x 11") | 612 | 792
US Legal (8.5 x 14") | 612 | 1008
US Ledger (17 x 11") | 1224 | 792
US Tabloid (11 x 17") | 792 | 1224

Example

// Save using "US Letter" paper size
ImageEnView1.IO.Params.PS_PaperWidth := 612;
ImageEnView1.IO.Params.PS_PaperHeight := 792;
ImageEnView1.IO.SaveToFile('D:\output.ps');


TIOParams.PS_Title

TIOParams.PS_Title

Declaration

property PS_Title: AnsiString;

Description

Specifies the title of the PostScript file.

Default: 'No Title'

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PSD_HasPremultipliedAlpha

TIOParams.PSD_HasPremultipliedAlpha

Declaration

property PSD_HasPremultipliedAlpha: Boolean;

Description

Returns true if the alpha channel is premultiplied.


TIOParams.PSD_LargeDocumentFormat

TIOParams.PSD_LargeDocumentFormat

Declaration

property PSD_LargeDocumentFormat: Boolean;

Description

Returns true if the loaded file is a PSB (Large document format) Photoshop file.
Set PSD_LargeDocumentFormat = true before saving to use PSB format instead of PSD (enabled automatically when using '.psb' extension).

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PSD_LoadLayers

TIOParams.PSD_LoadLayers

Declaration

property PSD_LoadLayers: Boolean;

Description

When enabled, ImageEn will load the separated layers of a PSD file. If False, only the merged image is loaded (flattened layers).

Default: False

About Adobe PhotoShop Layers

PSD files are unique among the file types supported by ImageEnIO because the file stores layer information inside of the file including layer positions, layer names, layer dimensions and other unique information along with a merged image containing all the layers flattened onto a background.

When opening PSD files with ImageEnIO the layers can be loaded automatically by setting ImageEnView1.IO.Params.PSD_LoadLayers to true (before loading). If PSD_LoadLayers is True then the merged image is ignored and only the layers are loaded. If PSD_LoadLayers is False then only the merged image is loaded.

You can replace the layers automatically by setting ImageEnView1.IO.Params.PSD_ReplaceLayers to true before loading the file. If PSD_LoadLayers is True then the layers in the PSD file replace any layers already in ImageEnView. If PSD_ReplaceLayers is False then all layers in the PSD file will be added to the layers in ImageEnView. When PSD_ReplaceLayers is True, the content of the PSD file replaces the content of the ImageEnView. For example, assume a PSD file has three layers, and ImageEnView has two layers. This is the situation before loading the PSD file:

ImageEnView, Layer 0: image X
ImageEnView, Layer 1: image Y

Now, you load the PSD file with PSD_ReplaceLayers = True: The result will be:
ImageEnView, Layer 0 : PSD layer 0
ImageEnView, Layer 1 : PSD layer 1
ImageEnView, Layer 2 : PSD layer 2

If PSD_ReplaceLayers was False, the result will be:
ImageEnView, Layer 0: image X
ImageEnView, Layer 1: image Y
ImageEnView, Layer 2 : PSD layer 0
ImageEnView, Layer 3 : PSD layer 1
ImageEnView, Layer 4 : PSD layer 2

ImageEn usually has a Layer 0 so when you load a PSD file, PSD_LoadLayers should be True and PSD_ReplaceLayers should be True:
ImageEnView1.IO.Params.PSD_LoadLayers := True;
ImageEnView1.IO.Params.PSD_ReplaceLayers := True;
ImageEnView1.IO.LoadFromFilePSD(iFilename);
ImageEnView1.Update;

If both PSD_LoadLayers and PSD_ReplaceLayers is true then the layers displayed by ImageEnView after the file is loaded will be the same as the layers that are in the PSD file. Generally, both of these params should be set to true before opening a PSD file.
If you do not set PSD_ReplaceLayers to True before loading the PSD file, ImageEnView will contain an empty layer 0 after the PSD file is opened.

Example

// loads a multilayer PSD and allow user to move and resize layers
ImageEnView1.IO.Params.PSD_LoadLayers := True;
ImageEnView1.IO.LoadFromFile('C:\input.psd');
ImageEnView1.MouseInteract := [miMoveLayers, miResizeLayers];

See Also

- PSD_ReplaceLayers

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PSD_ReplaceLayers

TIOParams.PSD_ReplaceLayers

Declaration

property PSD_ReplaceLayers: Boolean;

Description

If enabled, the layers of the current image are replaced by the content of the PSD file, otherwise the PSD file content is appended to the existing layers.

Default: False

Note: See detail on PSD layer support at: PSD_LoadLayers

See Also

- PSD_LoadLayers

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.PSD_SelectLayer

TIOParams.PSD_SelectLayer

Declaration

PSD_SelectLayer: AnsiString;

Description

Specifies name of the layer to load. Specifying an empty string will load all layers.
You should set PSD_LoadLayers = true.

Default: ''

Example

ImageEnView1.IO.Params.PSD_LoadLayers := true;
ImageEnView1.IO.Params.PSD_SelectLayer := 'upperlayer';
ImageEnView1.IO.LoadFromFile('input.psd');


TIOParams.PXM_Comments

TIOParams.PXM_Comments

Declaration

property PXM_Comments: TStringList;

Description

Contains a list of the comments in a PPM, PBM or PGM file.


TIOParams.RAW_AutoAdjustColors

TIOParams.RAW_AutoAdjustColors

Declaration

property RAW_AutoAdjustColors: Boolean;

Description

If True, ImageEn applies an algorithm to adjust image colors.

Note: This works only when the RAW file contains an EXIF thumbnail with correct colors, as it used to calculate image colors.

Example

ImageEnView.IO.Params.RAW_AutoAdjustColors := True;
ImageEnView.IO.LoadFromFile('C:\input.crw');

See Also

- RAW_UseAutoWB
- RAW_UseCameraWB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.RAW_BlueScale

TIOParams.RAW_BlueScale

Declaration

property RAW_BlueScale: Double

Description

Specifies the blue multiplier used when loading a RAW image.

Default: 1.0 (Daylight)

Example

ImageEnView1.IO.Params.RAW_BlueScale := 0.8;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


TIOParams.RAW_Bright

TIOParams.RAW_Bright

Declaration

property RAW_Bright: Double

Description

Specifies the brightness value used when loading a RAW image.

Default: 1.0

Example

ImageEnView1.IO.Params.RAW_Bright := 1.5;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


TIOParams.RAW_Camera

TIOParams.RAW_Camera

Declaration

property RAW_Camera: AnsiString;

Description

Returns the camera description.

Example

ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');
Cameraname := ImageEnView1.IO.Params.RAW_Camera;


TIOParams.RAW_ExtraParams

TIOParams.RAW_ExtraParams

Declaration

property RAW_ExtraParams: AnsiString;

Description

Specifies extra parameters for the raw plug-in (based on Dcraw).

Example

ImageEnView1.IO.Params.RAW_ExtraParams := '-H 0 -j';
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


TIOParams.RAW_FourColorRGB

TIOParams.RAW_FourColorRGB

Declaration

property RAW_FourColorRGB: Boolean

Description

If True, ImageEn interpolates RGBG as four colors.

Default: False

Example

ImageEnView1.IO.Params.RAW_FourColorRGB := True;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


TIOParams.RAW_Gamma

TIOParams.RAW_Gamma

Declaration

property RAW_Gamma: Double;

Description

Specifies the gamma used when loading a RAW image.

Default: 2.222

Example

ImageEnView1.IO.Params.RAW_Gamma := 1;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


TIOParams.RAW_GetExifThumbnail

TIOParams.RAW_GetExifThumbnail

Declaration

property RAW_GetExifThumbnail: Boolean;

Description

Specifies that the thumbnail for an image will be loaded instead of the full image. A thumbnail is often available for Raw images (EXIF Thumbnail).
If enabled and the file does not contain a thumbnail the full image will be automatically loaded instead.

See also: GetThumbnail

Example

// Load only the thumbnail
ImageEnView1.IO.Params.RAW_GetExifThumbnail := True;
ImageEnView1.IO.LoadFromFile('C:\input.crw');


TIOParams.RAW_HalfSize

TIOParams.RAW_HalfSize

Declaration

property RAW_HalfSize: Boolean;

Description

Set to True before loading to retrieve only a half-size image of a Raw image. This will speed up loading.

Default: False

Example

ImageEnView1.IO.Params.RAW_HalfSize := True;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


TIOParams.RAW_QuickInterpolate

TIOParams.RAW_QuickInterpolate

Declaration

property RAW_QuickInterpolate: Boolean;

Description

If True, a quick, low-quality color interpolation is performed.

Default: True

Example

ImageEnView1.IO.Params.RAW_QuickInterpolate := False;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


TIOParams.RAW_RedScale

TIOParams.RAW_RedScale

Declaration

property RAW_RedScale: Double

Description

Specifies the red multiplier used when loading a RAW image.

Default: 1.0 (Daylight)

Example

ImageEnView1.IO.Params.RAW_RedScale := 0.8;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


TIOParams.RAW_UseAutoWB

TIOParams.RAW_UseAutoWB

Declaration

property RAW_UseAutoWB: Boolean;

Description

If True, automatic white balance is performed.
By default, Raw images are given a fixed white balance based on a color chart illuminated with a standard D65 lamp. When RAW_UseAutoWB is enabled, the white balance is calculated by averaging the entire image.

Default: False

Example

ImageEnView1.IO.Params.RAW_UseAutoWB := True;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');

See Also

- RAW_UseCameraWB
- RAW_AutoAdjustColors

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.RAW_UseCameraWB

TIOParams.RAW_UseCameraWB

Declaration

property RAW_UseCameraWB: Boolean

Description

If True, The camera's white balance is used if possible.
By default, Raw images are given a fixed white balance based on a color chart illuminated with a standard D65 lamp. When RAW_UseCameraWB is enabled, the white balance specified by the camera is used (if it exists). This has preference over RAW_UseAutoWB.

Default: False

Example

ImageEnView1.IO.Params.RAW_UseCameraWB := True;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');

See Also

- RAW_UseAutoWB
- RAW_AutoAdjustColors

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.Read

TIOParams.Read

Declaration

function Read(const FileName: WideString; Format: TIOFileType = ioUnknown): Boolean; overload;
function Read(const FileName: WideString; bUseExtension: Boolean): Boolean; overload;
function Read(Stream: TStream; Format: TIOFileType = ioUnknown): Boolean; overload;
function Read(Buffer: Pointer; BufferSize: Integer; Format: TIOFileType = ioUnknown): Boolean; overload;

Description

Reads the properties of an image. Result is false if a loading error is encountered due to a corrupt or unknown image format.

FileName is the file name with full path.
Format is the file format that the stream or file contains. If ioUnknown is specified then the file content is analyzed to determine the format.
bUseExtension determines that the file format is based on the extension of the file, e.g. image.jpeg will be processed as ioJPEG format.

Examples

// Load the parameters of an image (which may be a BMP file, but we will examine the content to be sure)
IOParams.Read( 'C:\alfa.bmp' );
Label1.Caption := 'alfa.bmp has ' + inttostr(IOParams.BitsPerSample) + ' bits per sample';

// Load the parameters of a BMP
IOParams.Read( 'C:\alfa.bmp', ioBMP );
Label1.Caption := 'alfa.bmp has ' + inttostr(IOParams.BitsPerSample) + ' bits per sample';

// Load the parameters of a file. It will be assumed to a BMP because of the file extension
IOParams.Read( 'C:\alfa.bmp', True );
Label1.Caption := 'alfa.bmp has ' + inttostr(IOParams.BitsPerSample) + ' bits per sample';

// Read the count of the images in a file (Same as IEGetFileFramesCount)
function GetImageCount(const FileName: WideString): Integer;
var
iop : TIOParams;
begin
Result := -1;
iop := TIOParams.Create( Nil );
If iop.Read( FileName ) then
Result := iop.ImageCount;
iop.Free;
end;


TIOParams.ReadIPTCField

TIOParams.ReadIPTCField

Declaration

function ReadIPTCField(iRecNo, iFieldIndex: Integer): string;
procedure ReadIPTCField(iRecNo, iFieldIndex: Integer; Dest: TStrings);

Description

Return a value from an IPTC field. Fields such as Photoshop's keyword field may have multiple instances. In this case the first method will return a comma separated string, whereas the second will add each instance to the TStrings object

Example

// Read the Photoshop description
sDescription := AnImageEnIO.Params.ReadIPTCField(PhotoShop_IPTC_Records, IPTC_PS_Caption);

// Read all the Photoshop keywords (comma-separated):
sKeywords := AnImageEnIO.Params.ReadIPTCField(PhotoShop_IPTC_Records, IPTC_PS_Keywords);

// Add all Photoshop keywords to a Listbox:
AnImageEnIO.Params.ReadIPTCField(PhotoShop_IPTC_Records, IPTC_PS_Keywords, MyListBox.Items);

See Also

- Photoshop IPTC consts
- WriteIPTCField
- IPTC_Photoshop

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.ResetEXIF

TIOParams.ResetEXIF

Declaration

procedure ResetEXIF;

Description

Resets (nulls) all EXIF fields. This is useful to remove EXIF info from your files.

Note: To remove all meta-data from a JPEG, it is better to call ResetInfo instead.


TIOParams.ResetInfo

TIOParams.ResetInfo

Declaration

procedure ResetInfo;

Description

Resets IPTC information, imaging annotations, JPEG markers, EXIF, GIF comments, PNG comments, TIFF textual tags, TGA comments, PXM comments and any other loaded textual information. It also removes the input ICC profile.

This can be used to reduce the size of images.

The following operations are performed:
- Resets IPTC_Info
- Clears ImageEnAnnot
- Clears ImagingAnnot
- Clears JPEG_MarkerList
- Calls ResetEXIF
- Clears GIF_Comments
- Resets DICOM_Tags
- Resets DICOM position info
- Clears PNG_TextKeys
- Clears PNG_TextValues
- Clears TIFF_DocumentName
- Clears TIFF_ImageDescription
- Clears TIFF_PageName
- Clears TGA_Author
- Clears TGA_Descriptor
- Clears TGA_ImageName
- Clears PXM_Comments
- Clears XMP_Info
- Resets InputICCProfile

Example

ImageEnView1.IO.Params.ResetInfo;


TIOParams.SamplesPerPixel

TIOParams.SamplesPerPixel

Declaration

property SamplesPerPixel: integer;

Description

Specifies the Samples (channels) for each pixel.
Allowed values:
Parameter | Description
1 | Single channel, colormapped or gray scale image
3 | Three channels, RGB or CIELab
4 | Four channels, CMYK or BGRA

Default: 3

See also: BitsPerSample

Example

// saves 256 colormapped bitmap
ImageEnView1.IO.Params.BitsPerSample := 8;
ImageEnView1.IO.Params.SamplesPerPixel := 1;
ImageEnView1.IO.Params.SaveToFile('D:\Alfa.bmp');


TIOParams.SaveToFile

TIOParams.SaveToFile

Declaration

procedure SaveToFile(const FileName: WideString);

Description

Saves the file format parameters to a custom meta-data file.

CheckMagicString should always be True, unless you must maintain compatibility with earlier editions of ImageEn (prior to v6.3.1)

Note: This does NOT write parameters to an existing image file. Use methods like InjectJpegEXIF, InjectTiffEXIF, InjectJpegIPTC instead.

Example

// Save default parameters
ImageEnView1.IO.Params.TIFF_Compression := ioTIFF_LZW;
ImageEnView1.IO.Params.SaveToFile('D:\default.params');

...

// Load default parameters
ImageEnView1.IO.Params.LoadFromFile('D:\default.params');


TIOParams.SaveToStream

TIOParams.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream);

Description

Saves the file format parameters to stream in a custom meta-data format.

CheckMagicString should always be True, unless you must maintain compatibility with earlier editions of ImageEn (prior to v6.3.1)

Note: This does NOT save the parameters from an existing image file stream.


TIOParams.SetDefaultParams

TIOParams.SetDefaultParams

Declaration

procedure SetDefaultParams;

Description

Resets the parameters of the TIOParams object to their default (start-up values).


TIOParams.SVG_ImageCompression

TIOParams.SVG_ImageCompression

Declaration

property SVG_ImageCompression: TIOFileType;

Description

Specifies the format that is used when saving raster images within an SVG file.

Notes:
- SVG_ImageCompression should be a web-safe image format, such as ioPNG or ioJPEG
- If SVG_ImageCompression is ioJPEG, then the quality will be specified by JPEG_Quality

Default: ioPNG

Example

// Save current layers (compress image layers as jpeg)
ImageEnView1.IO.Params.SVG_ImageCompression := ioJPEG;
ImageEnView1.IO.Params.JPEG_Quality := 80;
ImageEnView1.IO.SaveToFileSVG( 'D:\layers.SVG' );


TIOParams.TGA_AspectRatio

TIOParams.TGA_AspectRatio

Declaration

property TGA_AspectRatio: Double;

Description

Returns the pixel aspect ratio (pixel width/height) of the current TGA image.


TIOParams.TGA_Author

TIOParams.TGA_Author

Declaration

property TGA_Author: AnsiString;

Description

Specifies the author name of the current TGA file.


TIOParams.TGA_Background

TIOParams.TGA_Background

Declaration

property TGA_Background: TRGB;

Description

Specifies the background (or transparency) color of the current TGA image.

Default: (0, 0, 0), i.e. Black

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TGA_Compressed

TIOParams.TGA_Compressed

Declaration

property TGA_Compressed: Boolean;

Description

Set to True to compress a TGA image (using RLE compression).

Default: True

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TGA_Date

TIOParams.TGA_Date

Declaration

property TGA_Date: TDateTime;

Description

Specifies the creation date and time of the current TGA file.


TIOParams.TGA_Descriptor

TIOParams.TGA_Descriptor

Declaration

property TGA_Descriptor: AnsiString;

Description

Specifies the description of the current TGA file.


TIOParams.TGA_Gamma

TIOParams.TGA_Gamma

Declaration

property TGA_Gamma: Double;

Description

Returns the gamma value of the current TGA image.

Default: 2.2

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TGA_GrayLevel

TIOParams.TGA_GrayLevel

Declaration

property TGA_GrayLevel: Boolean;

Description

When set to True, the image will be saved in gray-scale (i.e. without color).

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TGA_ImageName

TIOParams.TGA_ImageName

Declaration

property TGA_ImageName: AnsiString;

Description

Specifies the image name of the current TGA file.


TIOParams.TGA_XPos

TIOParams.TGA_XPos

Declaration

property TGA_XPos: Integer;

Description

Specifies the X coordinate where the top-left of the image will be shown (not used by ImageEn).


TIOParams.TGA_YPos

TIOParams.TGA_YPos

Declaration

property TGA_YPos: Integer;

Description

Specifies the Y coordinate where the top-left of the image will be shown (not used by ImageEn).


TIOParams.TIFF_BigTIFF

TIOParams.TIFF_BigTIFF

Declaration

property TIFF_BigTIFF: boolean;

Description

Returns true if the TIFF is a BigTIFF (>4GB).


TIOParams.TIFF_ByteOrder

TIOParams.TIFF_ByteOrder

Declaration

property TIFF_ByteOrder: TIOByteOrder;

Description

Returns the byte order of the current TIFF image.

This property is read-only because ImageEn always uses ioLittleEndian when saving TIFF files.

ioBigEndian byte order is used by Motorola, while ioLittleEndian is used by Intel processors.

This function is useful when using InsertTIFFImageFile or InsertTIFFImageStream which merge two tiff images without decoding them, because the created TIFF will be unreadable if the images have different byte orders.


TIOParams.TIFF_Compression

TIOParams.TIFF_Compression

Declaration

property TIFF_Compression: TIOTIFFCompression;

Description

Specifies the compression type for TIFF images.

Default: ioTIFF_UNCOMPRESSED

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_DocumentName

TIOParams.TIFF_DocumentName

Declaration

property TIFF_DocumentName: AnsiString;

Description

Specifies the document name of a TIFF image.

Default: ''

Example

ImageEnView1.IO.Params.TIFF_DocumentName := 'Sanremo';
ImageEnView1.IO.Params.TIFF_ImageDescription := 'The city of the flowers';
ImageEnView1.IO.SaveToFile('D:\Italy.tif');


TIOParams.TIFF_EnableAdjustOrientation

TIOParams.TIFF_EnableAdjustOrientation

Declaration

property TIFF_EnableAdjustOrientation: Boolean;

Description

If enabled before loading a file which contains EXIF orientation information, the image will be automatically rotated for display (the actual file is not modified).
Orientation information is often found in digital photos from high-end cameras. ImageEn uses the data found in TIFF_Orientation to determine the correct orientation for TIFF images.

See also: EnableAdjustOrientation

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_FillOrder

TIOParams.TIFF_FillOrder

Declaration

property TIFF_FillOrder: integer;

Description

Specifies the logical order of bits within a byte.
Value | Description
1 | Pixels are arranged within a byte such that pixels with lower column values are stored in the higher-order bits of the byte
2 | Pixels are arranged within a byte such that pixels with lower column values are stored in the lower-order bits of the byte

Default: 1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_GetTile

TIOParams.TIFF_GetTile

Declaration

property TIFF_GetTile: integer;

Description

Specifies the tile number to load when loading a tiled TIFF file (tiles are often used in large Tiff files to reduce load time). If -1 is specified, all tiles are loaded.

Default: -1 (Load all tiles)

Example

// Load first tile of a TIFF
ImageEnView1.IO.Params.TIFF_GetTile := 1;
ImageEnView1.IO.SaveToFile('D:\BigBigTiff.tif');


TIOParams.TIFF_ImageCount

TIOParams.TIFF_ImageCount

Declaration

property TIFF_ImageCount: Integer; (Read-only)

Description

Returns the number of images/pages contained in the current TIFF. You can use Seek to load/navigate images within the loaded file.

Note: You can use ImageCount for generic access to the image count (not specific to an image format). For non-component access, see EnumTiffIm.

See Also

- ImageCount
- IEGetFileFramesCount
- TIFF_ImageIndex
- Seek
- EnumTiffIm

Examples

// Show number of pages in a TIFF
ImageEnView1.IO.LoadFromFile('C:\input.tif');
iPages := ImageEnView1.IO.Params.ImageCount;
ShowMessage('Page Count: ' + IntToStr(iPages));

// Print all pages of a TIFF
Printer.BeginDoc;
for I := 0 to ImageEnView1.IO.Params.ImageCount - 1 do
begin
ImageEnView1.IO.Params.ImageIndex := I;
ImageEnView1.IO.LoadFromFile('C:\input.tif');
ImageEnView1.IO.PrintImage(Printer.Canvas);
end;
Printer.EndDoc;


TIOParams.TIFF_ImageDescription

TIOParams.TIFF_ImageDescription

Declaration

property TIFF_ImageDescription: AnsiString;

Description

Specifies the image description of a TIFF image.

Default: ''

Example

ImageEnView1.IO.Params.TIFF_DocumentName := 'Sanremo';
ImageEnView1.IO.Params.TIFF_ImageDescription := 'The city of the flowers';
ImageEnView1.IO.SaveToFile('D:\Italy.tif');


TIOParams.TIFF_ImageIndex

TIOParams.TIFF_ImageIndex

Declaration

property TIFF_ImageIndex: integer;

Description

The index (zero-based) of the current page of the loaded TIFF image. You can also use Seek to load/navigate images within the loaded file.

Note: You can use ImageIndex for generic access to the ImageIndex (not specific to an image format).

Examples

// Want the second page of the TIFF
ImageEnView1.IO.Params.TIFF_ImageIndex := 1;
ImageEnView1.IO.LoadFromFile('C:\input.tif');

// Print all pages of a TIFF
Printer.BeginDoc;
for I := 0 to ImageEnView1.IO.Params.TIFF_ImageCount - 1 do
begin
ImageEnView1.IO.Params.TIFF_ImageIndex := I;
ImageEnView1.IO.LoadFromFile('C:\input.tif');
ImageEnView1.IO.PrintImage(Printer.Canvas);
end;
Printer.EndDoc;

See Also

- ImageIndex
- TIFF_ImageCount
- Seek

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_JPEGColorSpace

TIOParams.TIFF_JPEGColorSpace

Declaration

property TIFF_JPEGColorSpace: TIOJPEGColorSpace;

Description

Specifies the desired color space for the Jpeg included in a TIFF file.

Default: ioJPEG_YCBCR

Example

ImageEnView.IO.Params.TIFF_JPEGColorSpace := ioJPEG_RGB;
ImageEnView.IO.Params.TIFF_Compression := ioTIFF_JPEG;
ImageEnView.IO.SaveToFile('D:\output.tif');


TIOParams.TIFF_JPEGQuality

TIOParams.TIFF_JPEGQuality

Declaration

property TIFF_JPEGQuality: Integer;

Description

Specifies the quality factor for a TIFF compressed as JPEG. Range is 1 to 100.
High values improve image quality but require more disk space.

Default: 80

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_NewSubfileType

TIOParams.TIFF_NewSubfileType

Declaration

property TIFF_NewSubfileType: integer;

Description

A general indication of the kind of data contained in the current sub-file.

This field is made up of a set of 32 flag bits.

Currently defined values are:
Bit | Description
Bit 0 | is 1 if the image is a reduced-resolution version of another image in this TIFF file, else the bit is 0.
Bit 1 | is 1 if the image is a single page of a multi-page image (see the PageNumber field description), else the bit is 0.
Bit 2 | is 1 if the image defines a transparency mask for another image in this TIFF file. The PhotometricInterpretation value must be 4, designating a transparency mask.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_Orientation

TIOParams.TIFF_Orientation

Declaration

property TIFF_Orientation: Integer;

Description

Specifies the orientation of the original image. ImageEn can automatically display an image with the correct if TIFF_EnableAdjustOrientation is True.

Allowed values:
Value | Description
_exoCorrectOrientation (1) | Image is Orientated Correctly (top left side)
_exoNeedsHorizontalFlip (2) | Image is Horizontally Flipped (top right side)
_exoNeeds180Rotate (3) | Image is Offset by 180º (bottom right side)
_exoNeedsVerticalFlip (4) | Image is Vertically Flipped (bottom left side)
_exoNeedsHorzAndVertFlip (5) | Image is Flipped Horiz. and Offset 90º CCW (left side top)
_exoNeeds90RotateCW (6) | Image is Offset by 90º CCW (right side top)
_exoNeedsFlipHorzAnd90Rotate (7) | Image is Flipped Horiz. and offset 90º CW (right side bottom)
_exoNeeds270RotateCW (8) | Image is Offset by 90º clockwise (left side bottom)

Note: Support for orientations other than 1 is not a baseline TIFF requirement.

Default: _exoCorrectOrientation (1)

See also: EXIF Orientation Consts

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_PageCount

TIOParams.TIFF_PageCount

Declaration

property TIFF_PageCount: integer;

Description

Returns the number of pages in a TIFF file.


TIOParams.TIFF_PageName

TIOParams.TIFF_PageName

Declaration

property TIFF_PageName: AnsiString;

Description

Specifies the page name of a TIFF image.

Default: ''

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_PageNumber

TIOParams.TIFF_PageNumber

Declaration

property TIFF_PageNumber: integer;

Description

Specifies the page number of a TIFF image.

Default: -1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_PhotometInterpret

TIOParams.TIFF_PhotometInterpret

Declaration

property TIFF_PhotometInterpret: TIOTIFFPhotometInterpret;

Description

Specifies the Photometric interpretation of a TIFF image.

Default: ioTIFF_RGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_PhotoshopImageResources

TIOParams.TIFF_PhotoshopImageResources

Declaration

property TIFF_PhotoshopImageResources: TIEArrayOfByte;

Description

Contains Photoshop raw image resources. ImageEn doesn't use this data, but will maintain it when saving.


TIOParams.TIFF_PhotoshopImageSourceData

TIOParams.TIFF_PhotoshopImageSourceData

Declaration

property TIFF_PhotoshopImageSourceData: TIEArrayOfByte;

Description

Contains Photoshop raw image source data. ImageEn doesn't use this data, but will maintain it for saving.


TIOParams.TIFF_PlanarConf

TIOParams.TIFF_PlanarConf

Declaration

property TIFF_PlanarConf: integer;

Description

Specifies the Planar configuration of a TIFF image:
Value | Description
1 | The component values for each pixel are stored contiguously (ex. RGBRGBRGB...)
2 | The components are stored in separate component planes (ex. RRRRRR...GGGGGGG.....BBBBBB)

Default: 1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_StripCount

TIOParams.TIFF_StripCount

Declaration

property TIFF_StripCount: Integer;

Description

Specifies the number of strips to use when creating a TIFF file.

Default: 0 (value is chosen automatically)

Note: TIFF_StripCount is not read when loading a TIFF.

Example

// Create a TIFF with a unique strip
ImageEnView1.IO.TIFF_StripCount := 1;
ImageEnView1.IO.SaveToFile('D:\out.tiff');


TIOParams.TIFF_SubIndex

TIOParams.TIFF_SubIndex

Declaration

property TIFF_SubIndex: Integer;

Description

A TIFF can contain several pages. You can load image or parameters from a page using TIFF_ImageIndex (or just ImageIndex). Each page can also contain sub-images, so you can load a specific sub-page using TIFF_SubIndex.
This is useful, for example, to load an embedded JPEG from a DNG (camera raw format), which is located in the first page and the second sub-index.

Default: -1

Example

// Load the embedded Jpeg from a DNG
ImageEnView1.IO.Params.TIFF_ImageIndex := 0;
ImageEnView1.IO.Params.TIFF_SubIndex := 1;
ImageEnView1.IO.LoadFromFileTIFF('DCS001.DNG');


TIOParams.TIFF_XPos

TIOParams.TIFF_XPos

Declaration

property TIFF_XPos: integer;

Description

Returns the X position of the Top-left of the original scanned image.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_YPos

TIOParams.TIFF_YPos

Declaration

property TIFF_YPos: integer;

Description

Returns the Y position of the top-left of the original scanned image.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.TIFF_ZIPCompression

TIOParams.TIFF_ZIPCompression

Declaration

property TIFF_ZIPCompression: Integer;

Description

Specifies the compression level used when using ioTIFF_ZIP compression.
Value | Description
0 | Fastest
1 | Normal (default)
2 | Maximum compression

Default: 1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.UpdateEXIFThumbnail

TIOParams.UpdateEXIFThumbnail

Declaration

procedure UpdateEXIFThumbnail(Width: integer = 160; Height: integer = -1; ResampleFilter: TResampleFilter = rfTriangle);

Description

Updates the EXIF_Bitmap property with the content of current image.
You should call this method just before saving a JPEG so the thumbnail is consistent with the saved image.

Parameter | Description
Width | Width of the thumbnail.
Height | Height of the thumbnail.
ResampleFilter | Interpolation filter to use when resampling.

Example

ImageEnView1.IO.LoadFromFile('C:\input.jpg');
ImageEnView1.Proc.Negative;
ImageEnView1.IO.Params.UpdateEXIFThumbnail;
ImageEnView1.IO.SaveToFile('D:\output.jpg');


TIOParams.Width

TIOParams.Width

Declaration

property Width: integer;

Description

Returns the width of the image in pixels.


TIOParams.WriteIPTCField

TIOParams.WriteIPTCField

Declaration

procedure WriteIPTCField(iRecNo, iFieldIndex: Integer; const Value: string);
procedure WriteIPTCField(iRecNo, iFieldIndex: Integer; ssValues: TStrings);

Description

Write a value to an IPTC field.

Note: Items that require multiple instances, such as Photoshop's keyword field, should be added using the TStrings overload method.

Example

// Write the Photoshop description:
AnImageEnIO.Params.WriteIPTCField(PhotoShop_IPTC_Records, IPTC_PS_Caption, sDescription);

// Write the Photoshop keywords (in a comma-separated string):
ssList := TStringList.create;
ssList.DelimitedText := sKeywords;
AnImageEnIO.Params.WriteIPTCField(PhotoShop_IPTC_Records, IPTC_PS_Keywords, ssList);
ssList.Free;

See Also

- Photoshop IPTC consts
- ReadIPTCField
- IPTC_Photoshop

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParams.XMP_Info

TIOParams.XMP_Info

Declaration

property XMP_Info: AnsiString;

Description

Returns the Adobe XMP info loaded from Jpeg, TIFF and PSD file formats. Adobe XMP is an XML coded string defined by the Adobe XMP Specification (updated to January 2004).

XMP_Info is also saved back to Jpeg, TIFF and PSD file formats.

You can read parsed values using Dict dictionary, under "XMP" key:
xmp := ImageEnView1.IO.Params.Dict.GetDictionary('XMP');
sDescription := xmp.GetString('dc:description', True);

You can also use the XMP helper functions in iexMetaHelpers


TIOParamsHelper

TIOParamsHelper

Declaration

TIOParamsHelper = class helper for TIOParams

Description

iexMetaHelpers


TIOParamsHelper.DICOM_FindTag

TIOParamsHelper.DICOM_FindTag

Declaration

function TIOParamsHelper.DICOM_FindTag(Group: Word; Element: Word): PIEDicomTag;

Description

Parses all the tags of DICOM_Tags to find the first tag matching the specified group and element (even if it is a child tag).

Examples

// Find the "Pixel Data" tag
aTag := ImageEnMView1.MIO.Params[0].DICOM_FindTag( $7FE0, $0010 );
if assigned( aTag ) then
begin
aMemStream := TMemoryStream.Create();
aMemStream.Write( atag^.Data, atag^.DataLen );
aMemStream.Position := 0;
// Do something with aMemStream
aMemStream.Free;
end;

See Also

- DICOM_HasDicomTags
- GetTag
- TIEDicomTags

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParamsHelper.DICOM_HasDicomTags

TIOParamsHelper.DICOM_HasDicomTags

Declaration

function DICOM_HasDicomTags : Boolean; (read-only)

Description

Returns true if there are any Dicom tags in the current image.

This is a shortcut function that calls:
Result := DICOM_Info.Count > 0;

Examples

btnShowDicom.Enabled := ImageEnView1.IO.Params.DICOM_HasDicomTags;


TIOParamsHelper.DICOM_WriteToStrings

TIOParamsHelper.DICOM_WriteToStrings

Declaration

function TIOParamsHelper.DICOM_WriteToStrings(Dest : TStrings; TagInclude: TIEDicomInclude) : Boolean;

Description

Fills a TStrings object with the Dicom properties of the current image in the format:
Description: Value

TagInclude allows you to filter the types of tags returned.
Result is true if the image has any Dicom fields.

Examples

// Output the Dicom properties of the current image to a TMemo (all types)
ImageEnView1.IO.DICOM_WriteToStrings( memo1.Lines, [ diProprietary, diDeprecated, diChildTags, diUnknown ] );

// Export the dicom list of the current image to a file (exclude deprecated and unknown tags)
aStringList := TStringList.create;
ImageEnView1.IO.Params.DICOM_WriteToStrings( aStringList, [ diProprietary, diChildTags ] );
aStringList.SaveToFile('D:\DicomList.txt');
aStringList.Free;


TIOParamsHelper.EXIF_ApertureValue_Str

TIOParamsHelper.EXIF_ApertureValue_Str

Declaration

property EXIF_ApertureValue_Str : string; (read/write)

Description

A string formatted version of EXIF_ApertureValue. EXIF_ApertureValue is an Apex value which can be difficult to calculate. This property returns a human readible format, e.g. if EXIF_ApertureValue is 5, then 'F5.6' will be returned.


TIOParamsHelper.EXIF_AsStr

TIOParamsHelper.EXIF_AsStr

Declaration

property EXIF_AsStr [index : Integer]: string; (read/write)

Description

Provides an alternative way to access EXIF properties in batch situations. Each property is available as a human-readible string value, and in most cases write access is also supported.

Index is a value between 0 and _EXIF_Tag_Count - 1 and can be referred to by constants.

Const | Description | Writeable? | Output
_EXIF_UserComment | User Comment | YES | EXIF_UserComment
_EXIF_ImageDescription | Description | YES | EXIF_ImageDescription
_EXIF_Make | Camera Make | YES | EXIF_Make
_EXIF_Model | Camera Model | YES | EXIF_Model
_EXIF_XResolution | Horizontal Resolution | YES | EXIF_YResolution_Str with unit
_EXIF_YResolution | Vertical Resolution | YES | EXIF_XResolution_Str with unit
_EXIF_DateTime | Date and Time | YES | DateTimeToStr(EXIF_DateTime2)
_EXIF_DateTimeOriginal | Original Date and Time | YES | DateTimeToStr(EXIF_DateTimeOriginal2)
_EXIF_DateTimeDigitized | Digitized Date and Time | YES | DateTimeToStr(EXIF_DateTimeDigitized2)
_EXIF_Copyright | Copyright | YES | EXIF_Copyright
_EXIF_Orientation | Orientation | YES | Text description of EXIF_Orientation
_EXIF_ExposureTime | Exposure Time | YES | EXIF_ExposureTime_Str seconds
_EXIF_FNumber | F-Stop | YES | EXIF_Fnumber_Str
_EXIF_ExposureProgram | Exposure Program | YES | Text description of EXIF_ExposureProgram
_EXIF_ISOSpeedRatings | ISO Speed Rating | YES | EXIF_ISOSpeedRatings
_EXIF_ShutterSpeedValue | Shutter Speed | YES | EXIF_ShutterSpeedValue_Str
_EXIF_ApertureValue | Aperture Value | YES | EXIF_ApertureValue_Str
_EXIF_BrightnessValue | Brightness | YES | FloatToStr(EXIF_BrightnessValue)
_EXIF_ExposureBiasValue | Exposure Compensation | YES | FloatToStr(EXIF_ExposureBiasValue)
_EXIF_MaxApertureValue | Max Aperture Value | YES | EXIF_MaxApertureValue_Str
_EXIF_SubjectDistance | Subject Distance | YES | FloatToStr(EXIF_SubjectDistance) m
_EXIF_MeteringMode | Metering Mode | YES | Text description of EXIF_MeteringMode
_EXIF_LightSource | Lighting | YES | Text description of EXIF_LightSource
_EXIF_Flash | Flash | YES | Text description of EXIF_Flash
_EXIF_FocalLength | Focal Length | YES | FloatToStr(EXIF_FocalLength) mm
_EXIF_FlashPixVersion | FlashPix Version | YES | EXIF_FlashPixVersion
_EXIF_ColorSpace | Color Space | YES | Text description of EXIF_ColorSpace
_EXIF_ExifImageWidth | Image Width | YES | EXIF_EXIFImageWidth
_EXIF_ExifImageHeight | Image Height | YES | EXIF_EXIFImageHeight
_EXIF_RelatedSoundFile | Sound File | YES | EXIF_RelatedSoundFile
_EXIF_FocalPlaneXResolution | Focal Plane Horz. Resolution | YES | FloatToStr(EXIF_FocalPlaneXResolution) with unit
_EXIF_FocalPlaneYResolution | Focal Plane Vert. Resolution | YES | FloatToStr(EXIF_FocalPlaneYResolution) with unit
_EXIF_ExposureIndex | Exposure Index | YES | FloatToStr(EXIF_ExposureIndex)
_EXIF_SensingMethod | Sensing Method | no | Text description of EXIF_SensingMethod
_EXIF_FileSource | File Source | no | Text description of EXIF_FileSource
_EXIF_SceneType | Scene Type | no | Text description of EXIF_SceneType
_EXIF_YCbCrPositioning | Data Point | YES | Text description of EXIF_YCbCrPositioning
_EXIF_ExposureMode | Exposure Mode | no | Text description of EXIF_ExposureMode
_EXIF_WhiteBalance | White Balance | no | Text description of EXIF_WhiteBalance
_EXIF_DigitalZoomRatio | Digital Zoom Ratio | no | Text description of EXIF_DigitalZoomRatio
_EXIF_FocalLengthIn35mmFilm | Focal Length in 35mm Film | no | IntToStr(EXIF_FocalLengthIn35mmFilm) mm
_EXIF_SceneCaptureType | Scene Capture Type | no | Text description of EXIF_SceneCaptureType
_EXIF_GainControl | Gain Control | no | Text description of EXIF_GainControl
_EXIF_Contrast | Contrast | no | Text description of EXIF_Contrast
_EXIF_Saturation | Saturation | no | Text description of EXIF_Saturation
_EXIF_Sharpness | Sharpness | no | Text description of EXIF_Sharpness
_EXIF_SubjectDistanceRange | Subject Distance | no | Text description of EXIF_SubjectDistanceRange
_EXIF_GPSLatitude | GPS Latitude | no | EXIF_GPSLatitude_Str
_EXIF_GPSLongitude | GPS Longitude | no | EXIF_GPSLongitude_Str
_EXIF_GPSAltitude | GPS Altitude | no | Text description of EXIF_GPSAltitude and EXIF_GPSAltitudeRef
_EXIF_GPSImageDirection | GPS Image Direction | no | Text description of EXIF_GPSImgDirection and EXIF_GPSImgDirectionRef
_EXIF_GPSTrack | GPS Movement Direction | no | Text description of EXIF_GPSTrack and EXIF_GPSTrackRef
_EXIF_GPSSpeed | GPS Movement Speed | no | Text description of EXIF_GPSSpeed and EXIF_GPSSpeedRef
_EXIF_GPSDateAndTime | GPS Date and Time | no | EXIF_GPSDateStamp
_EXIF_GPSSatellites | GPS Satellites | YES | EXIF_GPSSatellites
_EXIF_GPSVersionID | GPS Version | YES | EXIF_GPSVersionID
_EXIF_Artist | Artist | YES | EXIF_Artist
_EXIF_XPTitle | Title (Windows) | YES | EXIF_XPTitle
_EXIF_XPComment | Comment (Windows) | YES | EXIF_XPComment
_EXIF_XPAuthor | Author (Windows) | YES | EXIF_XPAuthor
_EXIF_XPKeywords | Keywords (Windows) | YES | EXIF_XPKeywords
_EXIF_XPSubject | Subject (Windows) | YES | EXIF_XPSubject
_EXIF_XPRating | Rating (Windows) | YES | IntToStr(EXIF_XPRating)
_EXIF_InteropVersion | Interoperability Version | YES | EXIF_InteropVersion
_EXIF_CameraOwnerName | Camera Owner Name | YES | EXIF_CameraOwnerName
_EXIF_BodySerialNumber | Body Serial Number | YES | EXIF_BodySerialNumber
_EXIF_LensMake | Lens Make | YES | EXIF_LensMake
_EXIF_LensModel | Lens Model | YES | EXIF_LensModel
_EXIF_LensSerialNumber | Lens Serial Number | YES | EXIF_LensSerialNumber
_EXIF_Gamma | Gamma | YES | FloatToStr(EXIF_Gamma)
_EXIF_SubjectArea | Subject Area | no | EXIF_SubjectArea_Str
_EXIF_SubjectLocation | Subject Location | YES | EXIF_SubjectLocation_Str

See Also

- EXIF_FieldDescription

Examples

// Output all fields of current image to a memo (same as EXIF_WriteToStrings)
for i := 0 to _EXIF_Tag_Count - 1 do
memo1.Lines.Add( ImageEnView1.IO.Params.EXIF_FieldDescription[ i ] + ': ' + ImageEnView1.IO.Params.EXIF_AsStr[ i ] );

// Set EXIF_ShutterSpeedValue to 1/4 a second
ImageEnView1.IO.Params.EXIF_AsStr[ _EXIF_ShutterSpeedValue ] := '1/4';


TIOParamsHelper.EXIF_Camera_Str

TIOParamsHelper.EXIF_Camera_Str

Declaration

property EXIF_Camera_Str : string; (read/write)

Description

Returns a concatenation of EXIF_Make and EXIF_Model.


TIOParamsHelper.EXIF_CanWriteEXIFData

TIOParamsHelper.EXIF_CanWriteEXIFData

Declaration

property EXIF_CanWriteEXIFData : Boolean; (read-only)

Description

Returns true if the current image is of a type that supports EXIF writing, i.e. TIFF or JPEG

Note: This is only based on the current format. Naturally you could add EXIF data to an image that was loaded as a Bitmap and then save it to JPEG.


TIOParamsHelper.EXIF_ExposureTime_Str

TIOParamsHelper.EXIF_ExposureTime_Str

Declaration

property EXIF_ExposureTime_Str : string; (read/write)

Description

A string formatted version of EXIF_ExposureTime. E.g. if EXIF_ExposureTime is 4 then EXIF_ExposureTime_Str returns '4' (seconds). If EXIF_ExposureTime is 0.25 then it returns '1/4' (of a second).


TIOParamsHelper.EXIF_FieldDescription

TIOParamsHelper.EXIF_FieldDescription

Declaration

property EXIF_FieldDescription [index : Integer]: string; (read-only)

Description

Returns a description of an EXIF field specified by the constants used by EXIF_AsStr.

Index is a value between 0 and _EXIF_Tag_Count - 1.

Const | Description
_EXIF_UserComment | User Comment
_EXIF_ImageDescription | Description
_EXIF_Make | Camera Make
_EXIF_Model | Camera Model
_EXIF_XResolution | Horizontal Resolution
_EXIF_YResolution | Vertical Resolution
_EXIF_DateTime | Date and Time
_EXIF_DateTimeOriginal | Original Date and Time
_EXIF_DateTimeDigitized | Digitized Date and Time
_EXIF_Copyright | Copyright
_EXIF_Orientation | Orientation
_EXIF_ExposureTime | Exposure Time
_EXIF_FNumber | F-Stop
_EXIF_ExposureProgram | Exposure Program
_EXIF_ISOSpeedRatings | ISO Speed Rating
_EXIF_ShutterSpeedValue | Shutter Speed
_EXIF_ApertureValue | Aperture Value
_EXIF_BrightnessValue | Brightness
_EXIF_ExposureBiasValue | Exposure Compensation
_EXIF_MaxApertureValue | Max Aperture Value
_EXIF_SubjectDistance | Subject Distance
_EXIF_MeteringMode | Metering Mode
_EXIF_LightSource | Lighting
_EXIF_Flash | Flash
_EXIF_FocalLength | Focal Length
_EXIF_FlashPixVersion | FlashPix Version
_EXIF_ColorSpace | Color Space
_EXIF_ExifImageWidth | Image Width
_EXIF_ExifImageHeight | Image Height
_EXIF_RelatedSoundFile | Sound File
_EXIF_FocalPlaneXResolution | Focal Plane Horz. Resolution
_EXIF_FocalPlaneYResolution | Focal Plane Vert. Resolution
_EXIF_ExposureIndex | Exposure Index
_EXIF_SensingMethod | Sensing Method
_EXIF_FileSource | File Source
_EXIF_SceneType | Scene Type
_EXIF_YCbCrPositioning | Data Point
_EXIF_ExposureMode | Exposure Mode
_EXIF_WhiteBalance | White Balance
_EXIF_DigitalZoomRatio | Digital Zoom Ratio
_EXIF_FocalLengthIn35mmFilm | Focal Length in 35mm Film
_EXIF_SceneCaptureType | Scene Capture Type
_EXIF_GainControl | Gain Control
_EXIF_Contrast | Contrast
_EXIF_Saturation | Saturation
_EXIF_Sharpness | Sharpness
_EXIF_SubjectDistanceRange | Subject Distance
_EXIF_GPSLatitude | GPS Latitude
_EXIF_GPSLongitude | GPS Longitude
_EXIF_GPSAltitude | GPS Altitude
_EXIF_GPSImageDirection | GPS Image Direction
_EXIF_GPSTrack | GPS Movement Direction
_EXIF_GPSSpeed | GPS Movement Speed
_EXIF_GPSDateAndTime | GPS Date and Time
_EXIF_GPSSatellites | GPS Satellites
_EXIF_GPSVersionID | GPS Version
_EXIF_Artist | Artist
_EXIF_XPTitle | Title (Windows)
_EXIF_XPComment | Comment (Windows)
_EXIF_XPAuthor | Author (Windows)
_EXIF_XPKeywords | Keywords (Windows)
_EXIF_XPSubject | Subject (Windows)
_EXIF_XPRating | Rating (Windows)
_EXIF_InteropVersion | Interoperability Version
_EXIF_CameraOwnerName | Camera Owner Name
_EXIF_BodySerialNumber | Body Serial Number
_EXIF_LensMake | Lens Make
_EXIF_LensModel | Lens Model
_EXIF_LensSerialNumber | Lens Serial Number
_EXIF_Gamma | Gamma
_EXIF_SubjectArea | Subject Area
_EXIF_SubjectLocation | Subject Location

See Also

- EXIF_AsStr

Example

// Output all fields of current image to a memo (same as EXIF_WriteToStrings)
for i := 0 to _EXIF_Tag_Count - 1 do
memo1.Lines.Add( ImageEnView1.IO.Params.EXIF_FieldDescription[ i ] + ': ' + ImageEnView1.IO.Params.EXIF_AsStr[ i ] );


TIOParamsHelper.EXIF_FNumber_Str

TIOParamsHelper.EXIF_FNumber_Str

Declaration

property EXIF_FNumber_Str : string; (read/write)

Description

A string formatted version of EXIF_FNumber. EXIF_FNumber_Str simply prefixes an 'F' for valid values, e.g. if EXIF_FNumber is 5.6, this property would return 'F5.6'


TIOParamsHelper.EXIF_MaxApertureValue_Str

TIOParamsHelper.EXIF_MaxApertureValue_Str

Declaration

property EXIF_MaxApertureValue_Str : string; (read/write)

Description

A string formatted version of EXIF_MaxApertureValue. EXIF_MaxApertureValue is an Apex value which can be difficult to calculate. This property returns a human readible format, e.g. if EXIF_MaxApertureValue is 5, then 'F5.6' will be returned.


TIOParamsHelper.EXIF_ShutterSpeedValue_Str

TIOParamsHelper.EXIF_ShutterSpeedValue_Str

Declaration

property EXIF_ShutterSpeedValue_Str : string; (read/write)

Description

A string formatted version of EXIF_ShutterSpeedValue. Returns the value as a formatted fraction or number, e.g. '1/4' of a second or '2' (seconds).


TIOParamsHelper.EXIF_SubjectArea_Str

TIOParamsHelper.EXIF_SubjectArea_Str

Declaration

property EXIF_SubjectArea_Str : string; (read-only)

Description

A string formatted version of EXIF_SubjectArea.

Example results:
"Point at 100,200"
"Circle of 50 centered at 100,200"
"Rectangle of 50,50 centered at 100,200"

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParamsHelper.EXIF_SubjectLocation_Str

TIOParamsHelper.EXIF_SubjectLocation_Str

Declaration

property EXIF_SubjectLocation_Str : string; (read/write)

Description

A string formatted version of EXIF_SubjectLocationX and EXIF_SubjectLocationY, e.g. "150,250"


TIOParamsHelper.EXIF_WriteToStrings

TIOParamsHelper.EXIF_WriteToStrings

Declaration

function TIOParamsHelper.EXIF_WriteToStrings(Dest : TStrings) : Boolean;

Description

Fills a TStrings object with the EXIF properties of the current image in the format:
Description: Value

Result is true if the image has any EXIF fields.

Example

// Output the EXIF properties of the current image to a TMemo
ImageEnView1.IO.Params.EXIF_WriteToStrings( memo1.Lines );


TIOParamsHelper.EXIF_XResolution_Str

TIOParamsHelper.EXIF_XResolution_Str

Declaration

property EXIF_XResolution_Str : string; (read/write)

Description

A string formatted version of EXIF_XResolution. E.g. if EXIF_XResolution is 72 then EXIF_XResolution_Str returns '1/72'


TIOParamsHelper.EXIF_YResolution_Str

TIOParamsHelper.EXIF_YResolution_Str

Declaration

property EXIF_YResolution_Str : string; (read/write)

Description

A string formatted version of EXIF_YResolution. E.g. if EXIF_YResolution is 72 then EXIF_YResolution_Str returns '1/72'


TIOParamsHelper.IPTC_HasIPTCData

TIOParamsHelper.IPTC_HasIPTCData

Declaration

function IPTC_HasIPTCData : Boolean; (read-only)

Description

Returns true if there are any IPTC tags in the current image.

This is a shortcut function that calls:
Result := IPTC_Info.Count > 0;

Examples

btnShowIPTC.Enabled := ImageEnView1.IO.Params.IPTC_HasIPTCData;


TIOParamsHelper.IPTC_WriteToStrings

TIOParamsHelper.IPTC_WriteToStrings

Declaration

function TIOParamsHelper.IPTC_WriteToStrings(Dest : TStrings) : Boolean;

Description

Fills a TStrings object with the IPTC properties of the current image in the format:
Description: Value

Result is true if the image has any IPTC fields.

Example

// Output the IPTC properties of the current image to a TMemo
ImageEnView1.IO.Params.IPTC_WriteToStrings( memo1.Lines );


TIOParamsHelper.XMP_AsDateTime

TIOParamsHelper.XMP_AsDateTime

Declaration

property XMP_AsDateTime [Field : Integer]: TDateTime; (read-only)

Description

A shortcut function that calls:
Result := Dict.GetDictionary( 'XMP' ).GetString( Field, True )

And then uses EXIFDateToDateTime to convert the value to a TDateTime (as XMP date strings are the same as EXIF).

Any XMP field, such as xmp:CreateDate, can be specified. Result is 0 if the field is not found or not a valid date field. Consts are available common XMP fields

Examples

// Return the creation date
dtCreateDate := ImageEnView1.IO.Params.XMP_AsDateTime[ XMP_CreateDate ];

See Also

- XMP_AsStr
- XMP_AsInt
- XMP_Info
- Dict

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParamsHelper.XMP_AsInt

TIOParamsHelper.XMP_AsInt

Declaration

property XMP_AsInt [Field : Integer]: Integer; (read-only)

Description

A shortcut function that calls:
Result := Dict.GetDictionary( 'XMP' ).GetInteger( Field, True )

Any XMP field, such as photoshop:ColorMode, can be specified. Result is 0 if the field is not found or not an integer field. Consts are available common XMP fields

Examples

// Return the Photoshop Color Mode from the XMP metadata
iColorMode := ImageEnView1.IO.Params.XMP_AsInt[ 'photoshop:ColorMode' ];

See Also

- XMP_AsStr
- XMP_AsDateTime
- XMP_Info
- Dict

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParamsHelper.XMP_AsStr

TIOParamsHelper.XMP_AsStr

Declaration

property XMP_AsStr [Field : Integer]: String; (read-only)

Description

A shortcut function that calls:
Result := Dict.GetDictionary( 'XMP' ).GetString( Field, True )

Any XMP field, such as dc:subject, can be specified. Result is '' if the field is not found. Consts are available common XMP fields

Examples

// Return the photo description
sDescription := ImageEnView1.IO.Params.XMP_AsStr[ XMP_DC_Description ];

// Which is the same as calling (except that exceptions are raised on failure)
sDescription := ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( 'dc:Description', True );

// Return the creator or author of the asset
sCreator := ImageEnView1.IO.Params.XMP_AsStr[ XMP_DC_Creator ];

// Return location information about the content being shown in the image
sLocation := ImageEnView1.IO.Params.XMP_AsStr[ XMP_Photoshop_City ] + ', ' +
ImageEnView1.IO.Params.XMP_AsStr[ XMP_Photoshop_State ] + ', ' +
ImageEnView1.IO.Params.XMP_AsStr[ XMP_Photoshop_Country ];

// Return the document title
sTitle := ImageEnView1.IO.Params.XMP_AsStr[ XMP_DC_Title ];

// Return the document keywords
sKeywords := ImageEnView1.IO.Params.XMP_AsStr[ XMP_DC_Subject ];

// Return the document copyright information
sCopyright := ImageEnView1.IO.Params.XMP_AsStr[ XMP_DC_Rights ];

// Return the Photoshop Headline
sHeadline := ImageEnView1.IO.Params.XMP_AsStr[ XMP_Photoshop_Headline ];

// Return the Windows Rating (0 to 5)
sRating := ImageEnView1.IO.Params.XMP_AsStr[ XMP_Rating ];

// Return the creation date (XMP date strings are formatted the same EXIF date strings)
dtCreateDate := EXIFDateToDateTime( ImageEnView1.IO.Params.XMP_AsStr[ XMP_CreateDate ] );

See Also

- XMP_AsInt
- XMP_AsDateTime
- XMP_Info
- Dict

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOParamsHelper.XMP_HasXMPData

TIOParamsHelper.XMP_HasXMPData

Declaration

function XMP_HasXMPData : Boolean; (read-only)

Description

Returns true if there are any XMP tags in the current image.

This is a shortcut function that calls:
Result := XMP_Info <> '';

Examples

btnShowXMP.Enabled := ImageEnView1.IO.Params.XMP_HasXMPData;


TIOParamsHelper.XMP_WriteToStrings

TIOParamsHelper.XMP_WriteToStrings

Declaration

function TIOParamsHelper.XMP_WriteToStrings(Dest : TStrings) : Boolean;

Description

Fills a TStrings object with the XMP properties of the current image in the format:
Description: Value

Result is true if the image has any XMP fields.

Note: Only common XMP fields are added. Unknown XMP tags are skipped.

Examples

// Output the XMP properties of the current image to a TMemo
ImageEnView1.IO.Params.XMP_WriteToStrings( memo1.Lines );

// Export the XMP list of the current image to a file (exclude deprecated and unknown tags)
aStringList := TStringList.create;
ImageEnView1.IO.Params.XMP_WriteToStrings( aStringList );
aStringList.SaveToFile('D:\XMPList.txt');
aStringList.Free;


TIOPCXCompression

TIOPCXCompression

Declaration

type TIOPCXCompression = (ioPCX_UNCOMPRESSED, ioPCX_RLE);

Description

ioPCX_UNCOMPRESSED: Uncompressed PCX (incompatible with most PCX readers).
ioPCX_RLE: Compressed PCX (standard PCX).


TIOPDFCompression

TIOPDFCompression

Declaration

TIOPDFCompression = (
ioPDF_UNCOMPRESSED,
ioPDF_RLE,
ioPDF_G4FAX,
ioPDF_G3FAX2D,
ioPDF_JPEG,
ioPDF_LZW
);

Description

Value | Description
ioPDF_UNCOMPRESSED | No compression
ioPDF_RLE | Run length compression
ioPDF_G4FAX | G4Fax (black & white images only)
ioPDF_G3FAX2D | G3Fax (black & white images only)
ioPDF_JPEG | DCT-JPEG (color images only)
ioPDF_LZW | LZW compression (color and black/white images)


TIOPDFPaperSize

TIOPDFPaperSize

Declaration

TIOPDFPaperSize = (iepA0, iepA1, iepA2, iepA3, iepA4, iepA5, iepA6, iepB5, iepLetter, iepLegal, iepLedger, iepTabloid, iepAuto, iepUnknown);

Description

Standard paper sizes that can be specified for PS_PaperSize and PDF_PaperSize. If iepAuto is selected (PDF only) then the page will be output at the size of the image (which may create huge PDF pages).

Example

procedure TMainForm.FormCreate(Sender: TObject);
var
a: TPDFPaperSize;
begin
// Fill combobox with available PDF paper sizes
cmbPaperSize.Clear;
for a := Low(TPDFPaperSize) to High(TPDFPaperSize) do
cmbPaperSize.Items.Add(IEPaperSizeToStr(a));

// Make "US Letter" the selected one
cmbPaperSize.ItemIndex := cmbPaperSize.Items.IndexOf(IEPaperSizeToStr(iepLetter));
end;

// Set PDF paper size to user's selection
ImageEnView1.IO.Params.PDF_PaperSize := IEStrToPaperSize(cmbPaperSize.Text);

See Also

- IEPaperSizeToStr
- IEStrToPaperSize
- IEPointsToPaperSize
- IECalcPaperSize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOPNGFilter

TIOPNGFilter

Declaration

TIOPNGFilter = (
ioPNG_FILTER_NONE,
ioPNG_FILTER_SUB,
ioPNG_FILTER_PAETH,
ioPNG_FILTER_UP,
ioPNG_FILTER_AVG,
ioPNG_FILTER_ALL);


TIOPreviewsParams

TIOPreviewsParams

Declaration

TIOPreviewsParams = set of TIOPreviewsParamsItems;

Description

Value | Description
ioppDefaultLockPreview | Enable "Lock preview" by default
ioppApplyButton | Display an "Apply" button

Example

// Show preview by default
ImageEnView1.IO.PreviewsParams := ImageEnView1.IO.PreviewsParams + [ ioppDefaultLockPreview ];


TIOPreviewsParamsItems

TIOPreviewsParamsItems

Declaration

TIOPreviewsParamsItems = (ioppDefaultLockPreview, ioppApplyButton);

Description

Value | Description
ioppDefaultLockPreview | Enable "Lock preview" by default
ioppApplyButton | Display an "Apply" button

Example

// Show preview by default
ImageEnView1.IO.PreviewsParams := ImageEnView1.IO.PreviewsParams + [ ioppDefaultLockPreview ];


TIOPrintPreviewParams

TIOPrintPreviewParams

Description

This class provides access to the properties of the Print Preview dialog.

Methods and Properties

Storage Handling
GetProperty
LoadFromFile
LoadFromStream
SaveToFile
SaveToStream
SetProperty

Settings
Gamma
Height
MarginBottom
MarginLeft
MarginRight
MarginTop
Position
Size
Width

TImageEnMIO.DoPrintPreviewDialog Only
DlgWidth
DlgHeight
PrintSelected
PrintThumbnails
ThumbnailColumns
ThumbnailRows
ThumbnailSpacing
ThumbnailStyle
ThumbnailShowText

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOPrintPreviewParams.DlgHeight

TIOPrintPreviewParams.DlgHeight

Declaration

property DlgHeight : Integer;

Description

The Height of the Preview dialog in pixels or zero for the default size (TImageEnMIO.DoPrintPreviewDialog only)


TIOPrintPreviewParams.DlgWidth

TIOPrintPreviewParams.DlgWidth

Declaration

property DlgWidth : Integer;

Description

The width of the Preview dialog in pixels or zero for the default size (TImageEnMIO.DoPrintPreviewDialog only)


TIOPrintPreviewParams.Gamma

TIOPrintPreviewParams.Gamma

Declaration

property Gamma: Double;

Description

Gamma value.


TIOPrintPreviewParams.GetProperty

TIOPrintPreviewParams.GetProperty

Declaration

function GetProperty(const Prop: WideString): WideString;

Description

Read a property of the Print Preview dialog using its string representation.


TIOPrintPreviewParams.Height

TIOPrintPreviewParams.Height

Declaration

property Height: Double;

Description

Height of the printed image when Size = psSpecifiedSize (in inches or CM depending on DialogsMeasureUnit). Number of pages down when Size = psMultiplePages.


TIOPrintPreviewParams.LoadFromFile

TIOPrintPreviewParams.LoadFromFile

Declaration

procedure LoadFromFile(const FileName: WideString);

Description

Load all settings of the Print Preview dialog from file.

Example

// Show Print dialog (remembering the user's settings)
if FileExists( PrinterSettingsFilename ) then
ImageEnView1.IO.PrintPreviewParams.LoadFromFile( PrinterSettingsFilename );
ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog );
ImageEnView1.IO.PrintPreviewParams.SaveToFile( PrinterSettingsFilename );


TIOPrintPreviewParams.LoadFromStream

TIOPrintPreviewParams.LoadFromStream

Declaration

procedure LoadFromStream(Stream: TStream);

Description

Loads all settings of the Print Preview dialog from a stream.

Example

// Show Print dialog (remembering the user's settings)
if FileExists( PrinterSettingsStream ) then
ImageEnView1.IO.PrintPreviewParams.LoadFromStream( PrinterSettingsStream );
ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog );
ImageEnView1.IO.PrintPreviewParams.SaveToStream( PrinterSettingsStream );


TIOPrintPreviewParams.MarginBottom

TIOPrintPreviewParams.MarginBottom

Declaration

property MarginBottom: Double;

Description

The bottom margin (unprintable area) of the printed page.


TIOPrintPreviewParams.MarginLeft

TIOPrintPreviewParams.MarginLeft

Declaration

property MarginLeft: Double;

Description

The left margin (unprintable area) of the printed page.


TIOPrintPreviewParams.MarginRight

TIOPrintPreviewParams.MarginRight

Declaration

property MarginRight: Double;

Description

The right margin (unprintable area) of the printed page.


TIOPrintPreviewParams.MarginTop

TIOPrintPreviewParams.MarginTop

Declaration

property MarginTop: Double;

Description

The top margin (unprintable area) of the printed page.


TIOPrintPreviewParams.Position

TIOPrintPreviewParams.Position

Declaration

property Position: TIOPrintPreviewPosition;

Description

The alignment of the image on the printed page.


TIOPrintPreviewParams.PrintSelected

TIOPrintPreviewParams.PrintSelected

Declaration

property PrintSelected: Boolean;

Description

Default to printing the images selected in the associated TImageEnMView instead of printing all images (TImageEnMIO.DoPrintPreviewDialog only).

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOPrintPreviewParams.PrintThumbnails

TIOPrintPreviewParams.PrintThumbnails

Declaration

property PrintThumbnails: Boolean;

Description

Default to printing of thumbnails (TImageEnMIO.DoPrintPreviewDialog only).

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOPrintPreviewParams.SaveToFile

TIOPrintPreviewParams.SaveToFile

Declaration

procedure SaveToFile(const FileName: WideString);

Description

Save all settings of the Print Preview dialog to file.

Example

// Show Print dialog (remembering the user's settings)
if FileExists( PrinterSettingsFilename ) then
ImageEnView1.IO.PrintPreviewParams.LoadFromFile( PrinterSettingsFilename );
ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog );
ImageEnView1.IO.PrintPreviewParams.SaveToFile( PrinterSettingsFilename );


TIOPrintPreviewParams.SaveToStream

TIOPrintPreviewParams.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream);

Description

Save all settings of the Print Preview dialog to a stream.

Example

// Show Print dialog (remembering the user's settings)
if FileExists( PrinterSettingsStream ) then
ImageEnView1.IO.PrintPreviewParams.LoadFromStream( PrinterSettingsStream );
ImageEnView1.IO.DoPrintPreviewDialog( iedtDialog );
ImageEnView1.IO.PrintPreviewParams.SaveToStream( PrinterSettingsStream );


TIOPrintPreviewParams.SetProperty

TIOPrintPreviewParams.SetProperty

Declaration

procedure SetProperty(Prop, Value: WideString);

Description

Write a property of the Print Preview dialog using its string representation.


TIOPrintPreviewParams.Size

TIOPrintPreviewParams.Size

Declaration

property Size: TIOPrintPreviewSize;

Description

The size of the image on the printed page.


TIOPrintPreviewParams.ThumbnailColumns

TIOPrintPreviewParams.ThumbnailColumns

Declaration

property ThumbnailColumns: Integer;

Description

Number of thumbnail columns per page (TImageEnMIO.DoPrintPreviewDialog only)


TIOPrintPreviewParams.ThumbnailRows

TIOPrintPreviewParams.ThumbnailRows

Declaration

property ThumbnailRows: Integer;

Description

Number of thumbnail rows per page (TImageEnMIO.DoPrintPreviewDialog only)


TIOPrintPreviewParams.ThumbnailShowText

TIOPrintPreviewParams.ThumbnailShowText

Declaration

property ThumbnailShowText: Boolean;

Description

Whether the caption from items in a TImageEnMView is included when printing thumbnails (TImageEnMIO.DoPrintPreviewDialog only)


TIOPrintPreviewParams.ThumbnailSpacing

TIOPrintPreviewParams.ThumbnailSpacing

Declaration

property ThumbnailSpacing : Double;

Description

Spacing between each thumbnail in inches or CM depending on DialogsMeasureUnit (TImageEnMIO.DoPrintPreviewDialog only)


TIOPrintPreviewParams.ThumbnailStyle

TIOPrintPreviewParams.ThumbnailStyle

Declaration

property ThumbnailStyle: TIOPrintPreviewThumbnailStyle;

Description

Style of printed thumbnails (TImageEnMIO.DoPrintPreviewDialog only)


TIOPrintPreviewParams.Width

TIOPrintPreviewParams.Width

Declaration

property Width: Double;

Description

Width of the printed image when Size = psSpecifiedSize (in inches or CM depending on DialogsMeasureUnit). Number of pages across when Size = psMultiplePages.


TIOPrintPreviewPosition

TIOPrintPreviewPosition

Declaration

TIOPrintPreviewPosition = (ppTopLeft, ppTop, ppTopRight, ppLeft, ppCenter, ppRight, ppBottomLeft, ppBottom, ppBottomRight);


TIOPrintPreviewSize

TIOPrintPreviewSize

Declaration

TIOPrintPreviewSize = (psNormal, psFitToPage, psStretchToPage, psFillPage, psSpecifiedSize, psMultiplePages);

Description

Aligns with TIESize

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIOPrintPreviewThumbnailStyle

TIOPrintPreviewThumbnailStyle

Declaration

TIOPrintPreviewThumbnailStyle = (ptFlat, ptSoftShadow, ptBorder);


TIOPSCompression

TIOPSCompression

Declaration

TIOPSCompression = (ioPS_RLE, ioPS_G4FAX, ioPS_G3FAX2D, ioPS_JPEG);

Description

Value | Description
ioPS_RLE | Run length compression
ioPS_G4FAX | G4Fax (black & white images only)
ioPS_G3FAX2D | G3Fax (black & white images only)
ioPS_JPEG | DCT-JPEG (color images only)


TIOTIFFCompression

TIOTIFFCompression

Declaration

type TIOTIFFCompression = (ioTIFF_UNCOMPRESSED, ioTIFF_CCITT1D, ioTIFF_G3FAX1D, ioTIFF_G3FAX2D, ioTIFF_G4FAX, ioTIFF_LZW, ioTIFF_OLDJPEG, ioTIFF_JPEG, ioTIFF_PACKBITS, ioTIFF_ZIP, ioTIFF_DEFLATE, ioTIFF_UNKNOWN);

Description

Value | Description | Supported Pixel Formats | Supports Alpha Channel?
ioTIFF_UNCOMPRESSED | Uncompressed TIFF | All | Yes
ioTIFF_CCITT1D | Bilevel Huffman compression | Black/White Only | No
ioTIFF_G3FAX1D | Bilevel Group 3 CCITT compression, mono-dimensional | Black/White Only | No
ioTIFF_G3FAX2D | Bilevel Group 3 CCITT compression, bi-dimensional | Black/White Only | No
ioTIFF_G4FAX | Bilevel Group 4 CCITT compression, bi-dimensional | Black/White Only | No
ioTIFF_LZW | LZW compression | All | Yes
ioTIFF_OLDJPEG | Ver 6.0 JPEG compression (unsupported) | True Color Images Only | No
ioTIFF_JPEG | JPEG compression | True Color Images Only | No
ioTIFF_PACKBITS | RLE compression | All | Yes
ioTIFF_ZIP | ZIP compression (non-TIFF standard) | All | No
ioTIFF_DEFLATE | Adobe ZIP compression (non-TIFF standard) | All | No
ioTIFF_UNKNOWN | Unknown compression |  |

For black/white compressions (ioTIFF_CCITT1D, ioTIFF_G3FAX1D, ioTIFF_G3FAX2D and ioTIFF_G4FAX) make sure that BitsPerSample = 1 and SamplesPerPixel = 1.

Example

ImageEnView1.IO.Params.TIFF_Compression := ioTIFF_G4FAX;
ImageEnView1.IO.Params.BitsPerSample := 1;
ImageEnView1.IO.Params.SamplesPerPixel := 1;
ImageEnView1.IO.SaveToFile('D:\output.tif');


TIOTIFFPhotometInterpret

TIOTIFFPhotometInterpret

Declaration

type TIOTIFFPhotometInterpret = (ioTIFF_WHITEISZERO, ioTIFF_BLACKISZERO, ioTIFF_RGB, ioTIFF_RGBPALETTE, ioTIFF_TRANSPMASK, ioTIFF_CMYK, ioTIFF_YCBCR, ioTIFF_CIELAB);


TIPDialogParams

TIPDialogParams

Description

Provides read/write access to the parameters of the Image Processing Dialog (displayed by calling DoPreviews).

Fields

DialogWidth: Integer;
DialogHeight: Integer;
CONTRAST_Contrast: Integer;
CONTRAST_Brightness: Integer;
HSV_H: Integer;
HSV_S: Integer;
HSV_V: Integer;
HSL_H: Integer;
HSL_S: Integer;
HSL_L: Integer;
RGB_R: Integer;
RGB_G: Integer;
RGB_B: Integer;
USERFILTER_Values: TGraphFilter;
EQUALIZATION_ThresholdDown: TRGB;
EQUALIZATION_ThresholdUp: TRGB;
EQUALIZATION_EqDown: TRGB;
EQUALIZATION_EqUp: TRGB;
EQUALIZATION_EqualizeButton: Boolean;
BUMPMAP_Left: Integer;
BUMPMAP_Top: Integer;
BUMPMAP_Width: Integer;
BUMPMAP_Height: Integer;
BUMPMAP_Col: TRGB;
BUMPMAP_Src: Integer;
BUMPMAP_Auto: Boolean;
LENS_Left: Integer;
LENS_Top: Integer;
LENS_Width: Integer;
LENS_Height: Integer;
LENS_Ref: Double;
LENS_Auto: Boolean;
WAVE_Amplitude: Integer;
WAVE_WaveLength: Integer;
WAVE_Phase: Integer;
WAVE_Reflect: Boolean;
MORPH_Filter: Integer;
MORPH_WinSize: Integer;
ROTATE_Angle: Double;
FLIP_Horz: Boolean;
FLIP_Vert: Boolean;
GAMMACORRECTION_Value: Double;
SHARPEN_Sharpen: Integer;
SHARPEN_Size: Integer;
FFT_Left: Integer;
FFT_Top: Integer;
FFT_Right: Integer;
FFT_Bottom: Integer;
FFT_GrayScale: Boolean;
FFT_Selection: TMemoryStream;
Resize_Percent : Integer;
Shadow_Radius : Integer;
Shadow_Offset : Integer;
AutoEnhance1_Slope: Integer;
AutoEnhance1_Range : Integer;
AutoEnhance3_Gamma : Double;
AutoEnhance3_Saturation : Integer;
Crop_Left : Integer;
Crop_Top : Integer;
Crop_Right : Integer;
Crop_Bottom : Integer;
BackgroundColor : TColor;

Methods

SaveToFile
LoadFromFile
SaveToStream
LoadFromStream
SetProperty
GetProperty
SetDefaultParams

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TIPDialogParams.GetProperty

TIPDialogParams.GetProperty

Declaration

function GetProperty(const Prop: String): String;

Description

Return a parameters of the Image Processing Dialog as a string.


TIPDialogParams.LoadFromFile

TIPDialogParams.LoadFromFile

Declaration

procedure LoadFromFile(const FileName: String);

Description

Load parameters for the Image Processing Dialog (i.e. the current setting of all controls).


TIPDialogParams.LoadFromStream

TIPDialogParams.LoadFromStream

Declaration

procedure LoadFromStream(Stream: TStream);

Description

Load parameters for the Image Processing Dialog from a stream (i.e. the current setting of all controls).


TIPDialogParams.SaveToFile

TIPDialogParams.SaveToFile

Declaration

procedure SaveToFile(const FileName: String);

Description

Save parameters for the Image Processing Dialog (i.e. the current setting of all controls).


TIPDialogParams.SaveToStream

TIPDialogParams.SaveToStream

Declaration

procedure SaveToStream(Stream: TStream);

Description

Save parameters for the Image Processing Dialog to a stream (i.e. the current setting of all controls).


TIPDialogParams.SetDefaultParams

TIPDialogParams.SetDefaultParams

Declaration

procedure SetDefaultParams;

Description

Load the default parameters for the Image Processing Dialog (i.e. resetting all controls to their default state). You can call this method to reset parameters before displaying the dialog.


TIPDialogParams.SetProperty

TIPDialogParams.SetProperty

Declaration

procedure SetProperty(Prop, Value: String);

Description

Set a parameters of the Image Processing Dialog by a string.

Example

SetProperty('ROTATE_Angle', '45');

Which is the same as:
Rotate_Angle := 45;


TLightOrigin

TLightOrigin

Declaration

TLightOrigin = (_loTopLeft, _loTopRight, _loBottomLeft, _loBottomRight);


TListViewHelper

TListViewHelper

Declaration

TListViewHelper = class helper for TListView

Description

iexMetaHelpers


TListViewHelper.ClearListFields

TListViewHelper.ClearListFields

Declaration

procedure ClearListFields;

Description

Clears all values in a TListView containing EXIF or IPTC properties, which was initialized using:
- NewListForExif
- NewListForIPTC
- ReadListFromExif
- ReadListFromIPTC

Note: Only clears the ListView, not EXIF/IPTC properties of a file

Examples

procedure TMainForm.btnResetListClick(Sender: TObject);
begin
// Clear all the specified values for our ListView
MyExifListView.ClearEXIFFields;
end;


TListViewHelper.InitializeList

TListViewHelper.InitializeList

Declaration

procedure InitializeList(bFixLayout : Boolean = True);

Description

Set up a TListView for display or editing of EXIF, IPTC and Dicom meta data. If bFixLayout is true then it will automatically adjust the properties for best display.

Example

// Display a TListView allowing user to add EXIF data
procedure TEXIFForm.FormCreate(Sender: TObject);
begin
// Fix List layout
MyExifListView.InitializeList;

// Add fields to List
MyExifListView.NewListForExif;
end;


TListViewHelper.NewListForExif

TListViewHelper.NewListForExif

Declaration

procedure NewListForExif;

Description

Set up a TListView for specifying values for EXIF fields (e.g. to a file without EXIF fields presently).
Two columns will be added with the left one containing property descriptions (using EXIF_FieldDescription) and the right blank for field entry. The headings will read "Name" and "Value".

Notes:
- A standard TListView does not permit editing of subitems, so either download a TListView descendent that allows editing, or search for code snippets for "Edit Subitems TListView"
- You may wish to call InitializeList before NewListForExif to automatically assign the optimal layout to the TListView

Example

// Display a TListView allowing user to add EXIF data
procedure TExifForm.FormCreate(Sender: TObject);
begin
// Fix List layout
MyExifListView.InitializeList;

// Add fields to List
MyExifListView.NewListForExif;
end;


TListViewHelper.NewListForIPTC

TListViewHelper.NewListForIPTC

Declaration

procedure NewListForIPTC;

Description

Set up a TListView for specifying values for IPTC fields (e.g. to a file without IPTC fields presently).
Two columns will be added with the left one containing property descriptions and the right blank for field entry. The headings will read "Name" and "Value".

Notes:
- A standard TListView does not permit editing of subitems, so either download a TListView descendent that allows editing, or search for code snippets for "Edit Subitems TListView"
- Call InitializeList before NewListForIPTC to automatically assign the optimal layout to the TListView

Example

// Display a TListView allowing user to add IPTC data
procedure TIPTCForm.FormCreate(Sender: TObject);
begin
// Fix List layout
MyIPTCListView.InitializeList;

// Add fields to List
MyIPTCListView.NewListForIPTC;
end;


TListViewHelper.ReadListFromDicom

TListViewHelper.ReadListFromDicom

Declaration

function ReadListFromDicom(IOParams : TIOParams; TagInclude: TIEDicomInclude) : Boolean; overload;
function ReadListFromDicom(const sFilename : string; TagInclude: TIEDicomInclude) : Boolean; overload;

Description

Fill a TListView with the Dicom properties of the current image, or one loaded from file. TagInclude allows you to filter the types of tags returned.
Result is true if the file has any Dicom fields specified.

Note: You may wish to call InitializeList before ReadListFromDicom to automatically assign the optimal layout to the TListView

Examples

// Display the Dicom properties of the current image (all types)
MyDicomListView.ReadListFromDicom( ImageEnView1.IO.Params, [ diProprietary, diDeprecated, diChildTags, diUnknown ] );

// Display of Dicom properties of a file (excluding deprecated and unknown tags)
MyDicomListView.ReadListFromDicom( 'C:\MyImage.jpeg', [ diProprietary, diChildTags ] );


TListViewHelper.ReadListFromExif

TListViewHelper.ReadListFromExif

Declaration

function ReadListFromExif(IOParams : TIOParams) : Boolean; overload;
function ReadListFromExif(const sFilename : string) : Boolean; overload;

Description

Fill a TListView with the EXIF properties of the current image, or one loaded from file.
Result is true if the file has any EXIF fields.

Note: You may wish to call InitializeList before ReadListFromExif to automatically assign the optimal layout to the TListView

Examples

// Display the EXIF properties of the current image
MyExifListView.ReadListFromExif( ImageEnView1.IO.Params );

// Read-only display of EXIF properties of a file
MyExifListView.ReadListFromExif( 'C:\MyImage.jpeg', True );


TListViewHelper.ReadListFromIPTC

TListViewHelper.ReadListFromIPTC

Declaration

function ReadListFromIPTC(IOParams : TIOParams) : Boolean; overload;
function ReadListFromIPTC(const sFilename : string) : Boolean; overload;

Description

Fill a TListView with the IPTC properties of the current image, or one loaded from file.
Result is true if the file has any IPTC fields specified.

Note: You may wish to call InitializeList before ReadListFromIPTC to automatically assign the optimal layout to the TListView

Examples

// Display the IPTC properties of the current image
MyIPTCListView.ReadListFromIPTC( ImageEnView1.IO.Params );

// Read-only display of IPTC properties of a file
MyIPTCListView.ReadListFromIPTC( 'C:\MyImage.jpeg', True );


TListViewHelper.ReadListFromXMP

TListViewHelper.ReadListFromXMP

Declaration

function ReadListFromXMP(IOParams : TIOParams) : Boolean; overload;
function ReadListFromXMP(const sFilename : string) : Boolean; overload;

Description

Fill a TListView with XMP properties of the current image, or one loaded from file.
Result is true if the file has XMP fields specified.

Note: Only common XMP fields are added

Examples

// Display the XMP properties of the current image
MyXMPListView.ReadListFromXMP( ImageEnView1.IO.Params );

// Display of XMP properties of a file (excluding deprecated and unknown tags)
MyXMPListView.ReadListFromXMP( 'C:\MyImage.jpeg' );


TListViewHelper.WriteListToExif

TListViewHelper.WriteListToExif

Declaration

function WriteListToExif(IOParams : TIOParams) : Boolean; overload;
function WriteListToExif(const sFilename : string) : Boolean; overload;

Description

Write the changes made by a user to EXIF values in a TListView (which was initialized using NewListForExif or ReadListFromExif) to the current image or an image file.
Result is true if any changes were made to the EXIF properties (i.e. a result of false means the TListView EXIF content matches the file).

NOTE: A standard TListView does not permit editing of subitems, so either download a TListView descendent that allows editing, or search for code snippets for "Edit Subitems TListView"

Other Notes:
- For first overload, only the TIOParams is updated, the changes are not saved to file.
- For the second overload, the file must already exist! If no changes were made to the EXIF data then the file is not modified

Examples

// Write changes to EXIF properties of the current image, and ask if the user wants to save changes if any fields were modified
if MyExifListView.WriteListToExif( ImageEnView1.IO.Params ) then
PromptToSaveFile;

// write EXIF changes to a file
MyExifListView.WriteListToExif( 'D:\MyImage.jpeg' );


TListViewHelper.WriteListToIPTC

TListViewHelper.WriteListToIPTC

Declaration

function WriteListToIPTC(IOParams : TIOParams) : Boolean; overload;
function WriteListToIPTC(const sFilename : string) : Boolean; overload;

Description

Write the changes made by a user to IPTC values in a TListView (which was initialized using NewListForIPTC or ReadListFromIPTC) to the current image or an image file.
Result is true if any changes were made to the IPTC properties (i.e. a result of false means the TListView IPTC content matches the file).

NOTE: A standard TListView does not permit editing of subitems, so either download a TListView descendent that allows editing, or search for code snippets for "Edit Subitems TListView"

Other Notes:
- For first overload, only the TIOParams is updated, the changes are not saved to file.
- For the second overload, the file must already exist! If no changes were made to the IPTC data then the file is not modified

Examples

// Write changes to IPTC properties of the current image, and ask if the user wants to save changes if any fields were modified
if MyIPTCListView.WriteListToIPTC( ImageEnView1.IO.Params ) then
PromptToSaveFile;

// write IPTC changes to a file
MyIPTCListView.WriteListToIPTC( 'D:\MyImage.jpeg' );


TMsgLanguage

TMsgLanguage

Declaration

Type TMsgLanguage = (msSystem, msEnglish, msItalian, msGerman, msSpanish, msFrench, msPortuguese, msGreek, msRussian, msDutch, msSwedish, msPolish, msJapanese, msCzech, msFinnish, msFarsi, msChinese, msChineseTraditional, msDanish, msTurkish, msKorean, msHungarian, msArabic, msSerbian, msChineseTraditionalBig5, msNorwegian, msUser);

See Also

- LanguageToStr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TMsgLanguageWords

TMsgLanguageWords

Declaration

TMsgLanguageWords = (IEMSG_PREVIEW, IEMSG_SOURCE, IEMSG_RESULT, IEMSG_OK, IEMSG_CANCEL,
IEMSG_LOCKPREVIEW, IEMSG_COPYRESULTTOSOURCE, IEMSG_CONTRAST, IEMSG_BRIGHTNESS,
IEMSG_HUE, IEMSG_SATURATION, IEMSG_VALUE, IEMSG_BASECOLOR, IEMSG_NEWCOLOR,
IEMSG_LUMINOSITY, IEMSG_RED, IEMSG_GREEN, IEMSG_BLUE, IEMSG_FILTERVALUES, IEMSG_PRESETS,
IEMSG_DIVISOR, IEMSG_LOAD, IEMSG_SAVE, IEMSG_EQUALIZATION, IEMSG_THRESHOLD, IEMSG_EQUALIZE,
IEMSG_HISTOGRAM, IEMSG_GRAY, IEMSG_LIGHT, IEMSG_LEFT, IEMSG_TOP, IEMSG_WIDTH, IEMSG_HEIGHT,
IEMSG_COLOR, IEMSG_SOURCEIMAGEQUANTITY, IEMSG_LENS, IEMSG_REFRACTION, IEMSG_PARAMETERSPREVIEW,
IEMSG_QUALITY, IEMSG_DCTMETHOD, IEMSG_SMOOTHINGFACTOR, IEMSG_GRAYSCALE, IEMSG_OPTIMALHUFFMAN,
IEMSG_ORIGINALSIZE, IEMSG_COMPRESSEDSIZE, IEMSG_ADVANCED, IEMSG_PROGRESSIVE, IEMSG_COMPRESSION,
IEMSG_IMAGEINDEX, IEMSG_PHOTOMETRIC, IEMSG_SCANNDEDDOCUMENTINFO, IEMSG_NAME, IEMSG_DESCRIPTION,
IEMSG_PAGENAME, IEMSG_PAGENUMBER, IEMSG_OF, IEMSG_HORIZPOSITIONINCH, IEMSG_VERTPOSITIONINCH,
IEMSG_COLORS, IEMSG_TRANSPARENT, IEMSG_TRANSPARENTCOLOR, IEMSG_INTERLACED, IEMSG_BACKGROUND,
IEMSG_HORIZPOSITION, IEMSG_VERTPOSITION, IEMSG_DELAYTIME, IEMSG_FILTER, IEMSG_WAVE,
IEMSG_AMPLITUDE, IEMSG_WAVELENGTH, IEMSG_PHASE, IEMSG_REFLECTIVE, IEMSG_USERFILTER,
IEMSG_MORPHFILTER, IEMSG_WINDOWSIZE, IEMSG_MAXIMUM, IEMSG_MINIMUM, IEMSG_OPEN,
IEMSG_CLOSE, IEMSG_ROTATE, IEMSG_FLIP, IEMSG_FLIPHOR, IEMSG_FLIPVER,
IEMSG_FREQUENCYDOMAINIMAGE, IEMSG_SELECTTHEREGIONTOCLEAR, IEMSG_CLEAR, IEMSG_RESET,
IEMSG_ANIMATE, IEMSG_LOADFILTER, IEMSG_SAVEFILTER, IEMSG_BUMPMAP, IEMSG_PRINT, IEMSG_MARGINS, IEMSG_INCHES,
IEMSG_RIGHT, IEMSG_BOTTOM, IEMSG_POSITION, IEMSG_SIZE, IEMSG_NORMAL, IEMSG_FITTOPAGE, IEMSG_STRETCHTOPAGE,
IEMSG_SPECIFIEDSIZE, IEMSG_GAMMACORRECTION, IEMSG_VALUE2, IEMSG_PRINTSETUP, IEMSG_LEFTMARGIN, IEMSG_TOPMARGIN,
IEMSG_RIGHTMARGIN, IEMSG_BOTTOMMARGIN, IEMSG_LOCATIONSIZE, IEMSG_TOPLEFT, IEMSG_TOPCENTER, IEMSG_TOPRIGHT,
IEMSG_CENTERLEFT, IEMSG_CENTER, IEMSG_CENTERRIGHT, IEMSG_BOTTOMLEFT, IEMSG_BOTTOMCENTER, IEMSG_BOTTOMRIGHT,
IEMSG_CLOSE2, IEMSG_APPLY, IEMSG_MEASUREUNITS, IEMSG_UNITS, IEMSG_RATE,
IEMSG_ALLGRAPHICS, IEMSG_VIDEOFORWINDOWS, IEMSG_FILE, IEMSG_MEM, IEMSG_LOCKPREVIEWHINT,
IEMSG_PRINTALL, IEMSG_PRINTSELECTED, IEMSG_ALLCOMMONGRAPHICFILES, IEMSG_ALLFILES,
IEMSG_HSV, IEMSG_HSL, IEMSG_RGB, IEMSG_FFT, IEMSG_SHARPEN, IEMSG_CHANNELS,
IEMSG_PIXELS, IEMSG_FRAMES, IEMSG_BIT, IEMSG_BYTE, IEMSG_DPI, IEMSG_KB, IEMSG_FIT, IEMSG_OTHER,
IEMSG_COLUMNS, IEMSG_ROWS, IEMSG_STYLE, IEMSG_SPACING, IEMSG_SELECTACQUIREDEVICE, IEMSG_SELECTANACQUISITIONDEVICE,
IEMSG_Page_X_of_X, IEMSG_X_Pages, IEMSG_Previous, IEMSG_Next, IEMSG_THUMBNAILS,
IEMsg_Acquire,
IEMsg_AddFromFile,
IEMsg_AddLayer,
IEMsg_AdjustColors,
IEMsg_AutoEqualizeColors,
IEMsg_AutoRotateDisplay,
IEMsg_AutoShrink,
IEMsg_AutoStretch,
IEMsg_BringForward,
IEMsg_BringToFront,
IEMsg_CircularSelect,
IEMsg_ConvertToGray,
IEMsg_CopyImage,
IEMsg_CopySelection,
IEMsg_Copy,
IEMsg_CropImageToObjects,
IEMsg_CropToSelection,
IEMsg_CropTransparency,
IEMsg_CutSelection,
IEMsg_Cut,
IEMsg_DeleteAll,
IEMsg_Delete,
IEMsg_DeselectAll,
IEMsg_Deselect,
IEMsg_EditPolyline,
IEMsg_FirstFrame,
IEMsg_FitImageToHeight,
IEMsg_FitImageToWidth,
IEMsg_FitImage,
IEMsg_FlipHorizontal,
IEMsg_FlipVertical,
IEMsg_ImageEffects,
IEMsg_ImageSaveProperties,
IEMsg_InsertAngle,
IEMsg_InsertEllipse,
IEMsg_InsertImage,
IEMsg_InsertLabelWithLine,
IEMsg_InsertLine,
IEMsg_InsertMemo,
IEMsg_InsertPolyline,
IEMsg_InsertRectangle,
IEMsg_InsertRuler,
IEMsg_InsertText,
IEMsg_LassoSelect,
IEMsg_LastFrame,
IEMsg_LoadFileAsLayer,
IEMsg_LoopPlayback,
IEMsg_MeasureArea,
IEMsg_MeasureDistance,
IEMsg_MeasureLength,
IEMsg_MergeAllLayers,
IEMsg_MergeAllToBackground,
IEMsg_MergeToBackground,
IEMsg_MoveLayers,
IEMsg_Negative,
IEMsg_NextFrame,
IEMsg_PasteAsLayer,
IEMsg_Paste,
IEMsg_PolygonSelect,
IEMsg_PreviousFrame,
IEMsg_PrintAllThumbnails,
IEMsg_PrintPreview,
IEMsg_PrintThumbnails,
IEMsg_PrintToPage,
IEMsg_RectangularSelect,
IEMsg_Redo,
IEMsg_RemoveLayer,
IEMsg_RemoveRedEyes,
IEMsg_ResizeLayers,
IEMsg_Rotate180,
IEMsg_RotateLayers,
IEMsg_RotateLeft,
IEMsg_RotateRight,
IEMsg_SaveAs,
IEMsg_SaveProperties,
IEMsg_ScrollImage,
IEMsg_ScrollToCursor,
IEMsg_SelectAcquisitionSource,
IEMsg_SelectAll,
IEMsg_SelectByColor,
IEMsg_Select,
IEMsg_SendBackward,
IEMsg_SendToBack,
IEMsg_SingleFrameOnly,
IEMsg_Undo,
IEMsg_Unstamp,
IEMsg_ZoomIn,
IEMsg_ZoomOut,
IEMsg_ZoomToFullSize,
IEMsg_ZoomToSelection,
IEMsg_Zoom,
IEMsg_AddALineObject,
IEMsg_AddAMultiLineTextObject,
IEMsg_AddANewLabelObjectWithALine,
IEMsg_AddANewLayerToThisImage,
IEMsg_AddARulerObject,
IEMsg_AddATextObject,
IEMsg_AddAnAngleMeasurementObject,
IEMsg_AddAnEllipticalObject,
IEMsg_AddAnImageObject,
IEMsg_AddAnImageToTheGridFromFile,
IEMsg_AddAnRectangularObject,
IEMsg_ApplyASharpeningFilterToTheImage,
IEMsg_AutomaticallyDisplayImageWithTheCorrectOrientation,
IEMsg_AutomaticallyDisplayImagesWithTheCorrectOrientation,
IEMsg_BringTheSelectedLayerToTheFrontOfAllOthers,
IEMsg_BringTheSelectedObjectToTheFrontOfAllOtherObjects,
IEMsg_ClearAllImages,
IEMsg_ClearAll,
IEMsg_ClearThisImage,
IEMsg_ClearYourSelection,
IEMsg_ClickTheImageAndDragTheMouseToScroll,
IEMsg_ContinuouslyLoopThePlaybackOfAGIFOrAVIFile,
IEMsg_CopyImageToTheClipboard,
IEMsg_CopyTheCurrentImageOrSelectionToTheClipboard,
IEMsg_CopyTheCurrentImageToTheClipboardAndRemoveIt,
IEMsg_CopyTheCurrentImageToTheClipboard,
IEMsg_CutTheSelectionToTheClipboard,
IEMsg_CopyTheCurrentSelectionToTheClipboard,
IEMsg_CopyTheSelectedObjectToTheClipboard,
IEMsg_DeselectAllObjects,
IEMsg_DisplayAPreviewOfThisImageForPrinting,
IEMsg_DisplayAPreviewOfYourPrinting,
IEMsg_DisplayLargeImagesAtTheWindowSize,
IEMsg_DisplayOnlyTheActiveFrame,
IEMsg_DisplaySmallImagesAtTheWindowSize,
IEMsg_DisplayTheAnimationOfAGIFOrAVIFile,
IEMsg_DisplayTheFirstFrameOfThisImage,
IEMsg_DisplayTheImageAtFullSize,
IEMsg_DisplayTheImageAtTheHeightOfTheWindow,
IEMsg_DisplayTheImageAtTheSizeOfTheWindow,
IEMsg_DisplayTheImageAtTheWidthOfTheWindow,
IEMsg_DisplayTheImageLarger,
IEMsg_DisplayTheImageSmaller,
IEMsg_DisplayTheLastFrameOfThisImage,
IEMsg_DisplayTheNextFrameOfThisImage,
IEMsg_DisplayThePriorFrameOfThisImage,
IEMsg_DynamicallyMeasureADistance,
IEMsg_EditPointsOfAPolyline,
IEMsg_EqualizesTheColorHistogramForTheSelectedRegion,
IEMsg_FlipTheImageFromLeftToRight,
IEMsg_FlipTheImageFromTopToBottom,
IEMsg_FlipTheSelectedImageFromLeftToRight,
IEMsg_FlipTheSelectedImageFromTopToBottom,
IEMsg_FreeHandPaintAnOpenPolygon,
IEMsg_InvertTheColorsOfTheImage,
IEMsg_LeftClickTheImageToZoomInRightClickToZoomOut,
IEMsg_LoadAnImageFromFile,
IEMsg_MatchTheSizeOfTheBackgroundImageToAllOfTheObjectsItContains,
IEMsg_MeasureARectangularArea,
IEMsg_MeasureTheDistanceBetweenTwoPoints,
IEMsg_MergeAllObjectsWithTheBackgroundLayer,
IEMsg_MergeTheSelectedObjectWithTheBackgroundLayer,
IEMsg_MergeAllLayersOfTheImageIntoASingleOne,
IEMsg_MoveTheMouseToScrollTheImage,
IEMsg_MoveTheSelectedLayerBackward,
IEMsg_MoveTheSelectedLayerForward,
IEMsg_MoveTheSelectedObjectBackward,
IEMsg_MoveTheSelectedObjectForward,
IEMsg_MoveTheSelectedObjectToTheClipboard,
IEMsg_PasteFromTheClipboard,
IEMsg_PasteObjectFromTheClipboard,
IEMsg_PasteTheContentOfTheClipboardAsANewLayer,
IEMsg_PerformColorEnhancementFunctionsOnTheImage,
IEMsg_PerformColorEnhancementFunctionsOnTheSelectedImage,
IEMsg_PerformAnIrregularSelectionOfYourImageByClickingTheMouse,
IEMsg_PerformAnIrregularSelectionOfYourImageByDraggingTheMouse,
IEMsg_PerformEffectsOnTheImage,
IEMsg_PerformEffectsOnTheSelectedImage,
IEMsg_PlaybackTheseFramesInSequence,
IEMsg_PositionTheSelectedLayerBehindAllOthers,
IEMsg_PositionTheSelectedObjectBehindAllOtherObjects,
IEMsg_PrintAllImagesOfTheGridAsASheetOfThumbnails,
IEMsg_PrintTheSelectedImageAtItsOriginalSize,
IEMsg_PrintTheSelectedImageToFitThePage,
IEMsg_PrintTheSelectedImagesAsASheetOfThumbnails,
IEMsg_PrintThisImageAtItsOriginalSize,
IEMsg_PrintThisImageToFitThePage,
IEMsg_PromptForAnImageFileToLoadAsANewLayer,
IEMsg_RedoTheLastActionThatWasUndone,
IEMsg_ReduceTheColorsOfTheImageToGrayscale,
IEMsg_RemoveAllObjectsFromTheImage,
IEMsg_CropTheImageToTheCurrentSelection,
IEMsg_RemoveTheRedEyeEffectFromTheSelection,
IEMsg_RemoveTheSelectedImage,
IEMsg_RemoveTheSelectedLayersFromTheImage,
IEMsg_RemoveTheSelectedObjectFromTheImage,
IEMsg_RemoveTheTransparentBordersFromTheSelectedLayers,
IEMsg_RestartPlaybackAfterItCompletes,
IEMsg_RetrieveAnImageFromACameraOrScanner,
IEMsg_RetrieveImagesFromACameraOrScanner,
IEMsg_RotateTheImage180Clockwise,
IEMsg_RotateTheImage90Clockwise,
IEMsg_RotateTheImage90CounterClockwise,
IEMsg_RotateTheSelectedImage180Clockwise,
IEMsg_RotateTheSelectedImage90Clockwise,
IEMsg_RotateTheSelectedImage90CounterClockwise,
IEMsg_RotateTheSelectedObject180Clockwise,
IEMsg_RotateTheSelectedObject90Clockwise,
IEMsg_RotateTheSelectedObject90CounterClockwise,
IEMsg_SaveChangesToThisImageToFile,
IEMsg_SaveThisImageToANewFilename,
IEMsg_SelectACircularAreaOfYourImage,
IEMsg_SelectAPortionOfYourImageOfASimilarColor,
IEMsg_SelectARectangularAreaOfYourImage,
IEMsg_SelectAllImagesInTheGrid,
IEMsg_SelectAllObjectsOfImage,
IEMsg_SelectAnAreaOfTheImageToZoomInto,
IEMsg_SelectOrResizeAnObject,
IEMsg_SelectTheCameraOrScannerToAcquireImagesFrom,
IEMsg_SelectTheFirstFrame,
IEMsg_SelectTheLastFrame,
IEMsg_SelectTheNextFrame,
IEMsg_SelectThePreviousFrame,
IEMsg_SingleClickingWillNotInsertANewObject,
IEMsg_SpecifyAdvancedPropertiesForAllImages,
IEMsg_SpecifyAdvancedPropertiesForTheSelectedImage,
IEMsg_SpecifyAdvancedPropertiesForThisImage,
IEMsg_UndoTheLastAction,
IEMsg_UndoTheLastEdit,
IEMsg_UseTheMouseToMoveImageLayers,
IEMsg_UseTheMouseToResizeImageLayers,
IEMsg_UseTheMouseToRotateImageLayers,
IEMsg_ZoomImage ,
IEMsg_DisplayImageAtCustomZoom ,
IEMsg_CustomRotate ,
IEMsg_RotateImageByACustomAngle ,
IEMsg_ResizeImage ,
IEMsg_SpecifyANewSizeForTheImage,
IEMSG_RESIZE,
IEMSG_CURRENT,
IEMSG_NEW,
IEMSG_SCALE,
IEMSG_MAINTAINASPECTRATIO,
IEMSG_Folder,
IEMSG_Dimensions,
IEMSG_Type,
IEMSG_Created,
IEMSG_Modified ,
IEMsg_CopyFiles ,
IEMsg_CopyFilesToClipboard ,
IEMsg_CopyTheSelectedFilesToANewFolder ,
IEMsg_CopyTheSelectedFilesToTheClipboard ,
IEMsg_CutFilesToClipboard ,
IEMsg_CutTheSelectedFilesToTheClipboard ,
IEMsg_DeleteFiles ,
IEMsg_DeleteTheSelectedFilesFromTheFolder ,
IEMsg_GoUp ,
IEMsg_MoveFiles ,
IEMsg_MoveTheSelectedFilesToANewFolder ,
IEMsg_OpenFile ,
IEMsg_OpenTheParentOfTheCurrentFolder ,
IEMsg_OpenTheSelectedFileInTheDefaultViewer ,
IEMsg_PasteFilesFromClipboard ,
IEMsg_PasteFilesFromTheClipboardToThisFolder ,
IEMsg_Refresh ,
IEMsg_RefreshTheFileListing ,
IEMsg_WhereDoYouWantToMoveTheseFiles ,
IEMsg_WhereDoYouWantToCopyTheseFiles ,
IEMsg_XIsNotAValidFolder ,
IEMsg_RenameFile ,
IEMsg_SpecifyANewNameForTheSelectedFile ,
IEMsg_SpecifyANewNameForX ,
IEMsg_SelectAFolderToOpen ,
IEMsg_SelectFolder ,
IEMsg_CreateFolder ,
IEMsg_CreateANewFolderAtTheCurrentLocation ,
IEMsg_SpecifyTheNameOfYourNewFolder ,
IEMsg_SoftShadow ,
IEMsg_AddSoftShadow ,
IEMsg_Radius ,
IEMsg_Offset ,
IEMsg_All_Glow ,
IEMsg_FillPage ,
IEMsg_AutoEnhance ,
IEMsg_AutoEnhanceMethod ,
IEMsg_General ,
IEMsg_ToneMapping ,
IEMsg_Slope ,
IEMsg_Range ,
IEMsg_Gamma ,
IEMSG_Crop ,
IEMSG_CropImage ,
IEMsg_EditImage ,
IEMsg_PerformEditingFunctionsOnTheImage ,
IEMsg_PreviewEffects ,
IEMsg_PreviewEffectsToEditAndEnhanceTheImage ,
IEMsg_ThumbnailView ,
IEMsg_DisplayLargeThumbnails ,
IEMsg_DetailView ,
IEMsg_DisplayFileDetails ,
IEMsg_Filename ,
IEMsg_FileType ,
IEMsg_FileSize ,
IEMsg_CreateDate ,
IEMsg_EditDate ,
IEMsg_ImageSize ,
IEMsg_SortByX ,
IEMsg_Ascending ,
IEMsg_Descending ,
IEMsg_SortX ,
IEMsg_MultiplePages ,
IEMsg_PagesAcross ,
IEMsg_PagesDown ,
IEMsg_SelectAllLayers ,
IEMsg_SelectAllLayersOfTheImage ,
IEMsg_DeselectAllLayers ,
IEMsg_DeselectAllLayersOfTheImage ,
IEMsg_GroupLayers ,
IEMsg_AddSelectedLayersToASelectionGroup ,
IEMsg_UngroupLayers ,
IEMsg_RemoveSelectedLayersFromSelectionGroup ,
IEMsg_MergeLayers ,
IEMsg_MergeSelectedLayersIntoASingleLayer ,
IEMsg_ColumnView ,
IEMsg_DisplayFileColumns ,
IEMsg_LargeThumbnailView ,
IEMsg_DisplayThumbnails ,
IEMsg_FileListView ,
IEMsg_DisplayFileList ,
IEMsg_ShowColumnX ,
IEMsg_Path ,
IEMsg_ImageProperties ,
IEMsg_Caption ,
IEMsg_ADDINNERSHADOW ,
IEMsg_ADJUSTBRIGHTNESSCONTRASTSATURATION ,
IEMsg_ADJUSTGAINOFFSET ,
IEMsg_AdjustLuminanceSaturation ,
IEMsg_ADJUSTTEMPERATURE ,
IEMsg_ADJUSTTINT ,
IEMsg_Automatic ,
IEMsg_AUTOSHARPEN ,
IEMsg_BLUR ,
IEMsg_CASTALPHA ,
IEMsg_CASTCOLOR ,
IEMsg_CASTCOLORRANGE ,
IEMsg_CLEARSEL ,
IEMsg_COLORIZE ,
IEMsg_CONVERTTO ,
IEMsg_CONVERTTO24BIT ,
IEMsg_CONVERTTOPALETTE ,
IEMsg_CONVERTTOSEPIA ,
IEMsg_CONVOLVE ,
IEMsg_DECRYPT ,
IEMsg_DEINTERLACE ,
IEMsg_ReorderColorChannels ,
IEMsg_EDGEDETECT ,
IEMsg_ENCRYPT ,
IEMsg_FEATHEREDGES ,
IEMsg_FILL ,
IEMsg_FTCLEARZONE ,
IEMsg_HISTAUTOEQUALIZE ,
IEMsg_INTENSITY ,
IEMsg_AdjustHistogram ,
IEMsg_MAPGRAYTOCOLOR ,
IEMsg_MATCHHSVRANGE ,
IEMsg_MEDIANFILTER ,
IEMsg_MERGEWITHMASK ,
IEMsg_MERGE ,
IEMsg_Monochrome ,
IEMsg_MOTIONBLUR ,
IEMsg_PAINTMARK ,
IEMsg_PERSPECTIVEDRAW ,
IEMsg_ConvolutionFilter ,
IEMsg_PROJECTDRAW ,
IEMsg_RADIALSTRETCH ,
IEMsg_RANDOMIZE ,
IEMsg_REFLECTION ,
IEMsg_REMOVECHROMAKEY ,
IEMsg_REMOVEISOLATEDPIXELS ,
IEMsg_REMOVENOISE ,
IEMsg_RESIZECANVASXX ,
IEMsg_ROTATEANDCROP ,
IEMsg_ROUNDIMAGE ,
IEMSG_ConvertToXColors ,
IEMsg_SHIFTCHANNEL ,
IEMSG_TileImage ,
IEMsg_UNSHARPEN ,
IEMsg_WALLISFILTER ,
IEMsg_WHITEBALANCE ,
IEMsg_WRITEHIDDENDATA ,
IEMSG_AdjustHSV ,
IEMSG_AdjustHSL ,
IEMSG_AdjustRGB ,
IEMsg_ShowRulers ,
IEMsg_ShowMeasurementRulersBesideImage ,
IEMsg_CapPixels ,
IEMsg_ShowRulerInPixels ,
IEMsg_CapInches ,
IEMsg_ShowRulerInInches ,
IEMsg_Millimeters ,
IEMsg_ShowRulerInMillimeters ,
IEMsg_Centimeters ,
IEMsg_ShowRulerInCentimeters ,
IEMsg_SymmetricNearestNeighbour ,
IEMsg_Pixelize ,
IEMsg_PencilSketch ,
IEMsg_PasteAnImageFromTheClipboard ,
IEMsg_Linear ,
IEMsg_LinearClipped ,
IEMsg_Logarithmic ,

IEMsg_IncludeSubFolders ,
IEMsg_AlsoDisplayFilesFoundInSubfoldersOfThisFolder,
IEMsg_EnableCropping,
IEMsg_EnableCroppingModeToSelectAnAreaOfTheImageToMaintain,
IEMsg_CancelCropping,
IEMsg_ClearTheCurrentCropSelection,
IEMsg_AddImageLayers ,
IEMsg_ClickAndDragToCreateAnImageLayer ,
IEMsg_AddShapeLayers ,
IEMsg_ClickAndDragToCreateAShapeLayer ,
IEMsg_AddLineLayers ,
IEMsg_ClickAndDragToCreateALineLayer ,
IEMsg_AddPolylineLayers ,
IEMsg_ClickAndDragToCreateAPolylineLayer ,
IEMsg_AddTextLayers ,
IEMsg_ClickAndDragToCreateATextLayer ,
IEMsg_AlignLeftEdges ,
IEMsg_AlignRightEdges ,
IEMsg_AlignTopEdges ,
IEMsg_AlignBottomEdges ,
IEMsg_AlignHorizontalCenters ,
IEMsg_AlignVerticalCenters ,
IEMsg_MatchWidth ,
IEMsg_MatchHeight ,

IEMsg_AlignSelectedLayersToTheEdgeOfTheLeftmostLayer ,
IEMsg_AlignSelectedLayersToTheEdgeOfTheRightmostLayer ,
IEMsg_AlignSelectedLayersToTheEdgeOfTheTopmostLayer ,
IEMsg_AlignSelectedLayersToTheEdgeOfTheBottommostLayer ,
IEMsg_AlignSelectedLayersToHaveTheSameHorizontalCenter ,
IEMsg_AlignSelectedLayersToHaveTheSameVerticalCenter ,
IEMsg_ResizeAllSelectedLayersToTheWidthOfTheWidestLayer ,
IEMsg_ResizeAllSelectedLayersToTheHeightOfTheTallestLayer ,

IEMsg_CropBackgroundToSelection ,
IEMsg_CropTheBackgroundImageToMatchSelectedLayers ,
IEMsg_FastPreview ,
IEMsg_ReducePreviewQualityToImprovePerformance ,
IEMsg_LockAspectRatio ,
IEMsg_LockPosition ,
IEMsg_RestoreAspectRatio ,
IEMsg_SizeToFit ,
IEMsg_Visible ,
IEMsg_ResetSize ,
IEMsg_SelectImage ,
IEMsg_ClosePolyline ,
IEMsg_PreventResizingFromAffectingTheAspectRatioOfTheSelectedLayer ,
IEMsg_PreventMovementOfTheSelectedLayer ,
IEMsg_RestoreTheOriginalAspectRatioOfTheSelectedLayer ,
IEMsg_ResizeTheLayerToMatchItsContent ,
IEMsg_AddASoftShadowToTheSelectedLayer ,
IEMsg_DisplayTheCurrentLayer ,
IEMsg_RestoreTheOriginalSizeOfTheSelectedLayer ,
IEMsg_BrowseForAnImageToLoadIntoTheLayer ,
IEMsg_JoinTheFirstAndLastPointsOfThePolylineToCreateAPolygon ,
IEMsg_AddImageLayer ,
IEMsg_AddShapeLayer ,
IEMsg_AddLineLayer ,
IEMsg_AddPolylineLayer ,
IEMsg_AddTextLayer ,
IEMsg_RotateTheLayerCounterClockwise ,
IEMsg_RotateTheLayerClockwise ,
IEMsg_ConvertToImageLayer ,
IEMsg_ConvertTheLayerToAnImage ,
IEMsg_ArrangeLayers ,
IEMsg_SetLayerProperties ,
IEMsg_CropLayerToBackground ,
IEMsg_HideAnyPartOfTheSelectedLayerLyingOutsideTheBackground ,
IEMsg_ShowLabel ,
IEMsg_AttachATextLabelToThisLine ,
IEMsg_EditLayerText ,
IEMsg_EditTheTextOfTheSelectedLayer ,
IEMsg_ResetRotation ,
IEMsg_ResetTheRotationOfTheSelectedLayer
);


TOnError

TOnError

Declaration

TOnError = procedure(const Sender: TObject;
const ErrorCode: Integer;
const ErrorMessage: string
) of Object;


TOpenImageEnDialog.AlwaysAnimate

TOpenImageEnDialog.AlwaysAnimate

Declaration

property AlwaysAnimate: Boolean;

Description

When enabled, GIF and AVI files will be automatically animated/played in the preview window.


TOpenImageEnDialog.AutoAdjustDPI

TOpenImageEnDialog.AutoAdjustDPI

Declaration

property AutoAdjustDPI : Boolean;

Description

When True and the last loaded/scanned image has a horizontal DPI not equal to the vertical DPI, ImageEn will resize the image so that DPIX = DPIY.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.AutoSetFilter

TOpenImageEnDialog.AutoSetFilter

Declaration

property AutoSetFilter : boolean;

Description

When AutoSetFilter is True, TOpenImageEnDialog/TSaveImageEnDialog ignores the Filter property and fills it with all supported ImageEn file formats (with custom file formats) or a specific format if AutoSetFilterFileType is used.

Default: True

Example

// Allow loading of all file types
OpenImageEnDialog1.AutoSetFilter := True;
OpenImageEnDialog1.AutoSetFilterFileType := -1;

// Only allow the user to save to GIF format
SaveImageEnDialog1.AutoSetFilter := True;
SaveImageEnDialog1.AutoSetFilterFileType := ioGIF;

See Also

- AutoSetFilterFileType
- Filter

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.AutoSetFilterFileType

TOpenImageEnDialog.AutoSetFilterFileType

Declaration

property AutoSetFilterFileType : TIOFileType;

Description

If AutoSetFilter is enabled, then the value of AutoSetFilterFileType will specify what formats are assigned to Filter.

By default (-1), all supported formats are added but you can specify an ImageEn type to limit the filter to that type.

Note: With TOpenImageEnDialog the filter will always include a line item for "Supported Types" and "All Files" even if if AutoSetFilterFileType is used.

Example

// Allow loading of all file types
OpenImageEnDialog1.AutoSetFilter := True;
OpenImageEnDialog1.AutoSetFilterFileType := -1;

// Only allow the user to save to GIF format
SaveImageEnDialog1.AutoSetFilter := True;
SaveImageEnDialog1.AutoSetFilterFileType := ioGIF;

See Also

- AutoSetFilter
- Filter

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.Execute

TOpenImageEnDialog.Execute

Declaration

property SelectedFrame: Integer;

Description

Displays the ImageEn Open dialog, returning true if the user selects a file and clicks OK. If the user cancels the dialog, Execute returns false.

Example

// Browse for an image and display it in an ImageEnView
If OpenImageEnDialog1.Execute then
ImageEnView1.LoadFromFile( OpenImageEnDialog1.FileName );

See Also

- Filename

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.ExtendedFilters

TOpenImageEnDialog.ExtendedFilters

Declaration

property ExtendedFilters: String;

Description

Specifies additional file formats to include when AutoSetFilter is True.

Example

// Add the "Fun" file type to the file formats list
OpenImageEnDialog1.ExtendedFilters := 'Fun Bitmap|*.fun;*.fan;'


TOpenImageEnDialog.FileName

TOpenImageEnDialog.FileName

Declaration

property FileName : String;

Description

Returns the name and complete directory path of the most recently selected file. The value of FileName is the same as the first item in the Files property.

To specify a default filename appear for the dialog's edit box, assign it to this property before calling Execute.

If you require widestring support, use FilenameW.

Example

// Select an image to load in an ImageEnView
If OpenImageEnDialog1.Execute then
ImageEnView1.IO.LoadFromFile(OpenImageEnDialog1.FileName);

See Also

- FilenameW
- Files

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.FileNameW

TOpenImageEnDialog.FileNameW

Declaration

property FileNameW: WideString;

Description

Returns the name and complete directory path of the most recently selected file.

FileNameW is the same as Filename but uses WideString instead of String.

See Also

- FilesW
- Filename
- Files

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.Files

TOpenImageEnDialog.Files

Declaration

property Files: TStrings;

Description

A string list that contains all selected filenames (with a full directory path).

Notes:
- Set the ofAllowMultiSelect flag in Options to allow multiple selection
- If you require widestring support use FilesW.

See Also

- Filename
- FilesW

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.FilesW

TOpenImageEnDialog.FilesW

Declaration

property FilesW: TIEWideStrings;

Description

A widestring equivalent of Files, which provides access to all selected filenames (with a full directory path).

See Also

- Files
- FilenameW

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.Filter

TOpenImageEnDialog.Filter

Declaration

property Filter : string;

Description

The Open/Save dialog includes a drop-down list of file types under the edit box. When the user picks a file type from the list, only files of the selected type are displayed in the dialog.

If AutoSetFilter is true then ImageEn will automatically fill the dialog with all supported file types that it supports (or a specific one if you use AutoSetFilterFileType). If you wish to override the default handling, set AutoSetFilter to false and specify your prefered filter.

Example

// Only allow the user to open GIF and BMP Files
OpenImageEnDialog1.Filter := 'Supported Images |*.gif;*.bmp|GIF Images (*.gif)|*.gif|Bitmaps (*.bmp)|*.bmp'

See Also

- AutoSetFilter
- AutoSetFilterFileType
- ExtendedFilters
- FilterDefault
- FilterIndex

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.FilterDefault

TOpenImageEnDialog.FilterDefault

Declaration

property FilterDefault : TIOFileType;

Description

Specifies a file type which is the default selection for the Filter, e.g. if you choose ioGIF then GIF will be the default save type. This setting overrides FilterIndex, but is ignored if you have specified a FileName.

See Also

- FilterIndex
- AutoSetFilter
- AutoSetFilterFileType

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.FilteredAdjustDPI

TOpenImageEnDialog.FilteredAdjustDPI

Declaration

property FilteredAdjustDPI : boolean;

Description

The FilteredAdjustDPI property is valid when AutoAdjustDPI is True. If set, ImageEn applies a resampling filter to the image to enhance quality.
This can slow down the loading process.


TOpenImageEnDialog.FilterIndex

TOpenImageEnDialog.FilterIndex

Declaration

property FilterIndex : Integer;

Description

Determines which of the file types in Filter is selected by default when the dialog opens. Set FilterIndex to 1 to choose the first file type in the list as the default, or 2 to choose the second file type, etc.

Generally it is better to use FilterDefault to choose a particular format such as JPEG or AVI.

Note: this setting is ignored if you have specified a filename or set a type for FilterDefault.

See Also

- FilterDefault

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.GetExifThumbnail

TOpenImageEnDialog.GetExifThumbnail

Declaration

property GetExifThumbnail : Boolean;

Description

If enabled, preview is sped up by loading the thumbnail for JPEG, IEN and Raw files.

Default: False

See Also

- JPEG_GetExifThumbnail
- RAW_GetExifThumbnail
- IEN_GetThumbnail

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.InfoPanel

TOpenImageEnDialog.InfoPanel

Declaration

property InfoPanel: TPanel;

Description

The TPanel object that displays image information and additional controls. It contains labels for file detail, a button for Advanced Save settings and a preview checkbox.
This property can be used to customize the open/save dialogs with new controls.

See Also

- PicturePanel
- OnCreateCustomControls

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.OnCreateCustomControls

TOpenImageEnDialog.OnCreateCustomControls

Declaration

property OnCreateCustomControls: TNotifyEvent;

Description

Occurs immediately before an open/save dialog is executed (shown).

This event is often used to add your own controls to the dialog. You should free custom controls in OnDestroyCustomControls event.

Example

var
MyCbx : TCheckBox;

procedure TForm1.OpenImageEnDialogCreateCustomControls(Sender: TObject);
var
p: TWinControl;
begin
p := (sender as TOpenImageEnDialog).InfoPanel;
MyCbx := TCheckBox.Create(p);
MyCbx.parent := p;
MyCbx.Caption := 'Test';
MyCbx.SetBounds(280, 0, 130, 23);
end;

procedure TForm1.OpenImageEnDialogDestroyCustomControls(Sender: TObject);
begin
MyCbx.free;
end;


TOpenImageEnDialog.OnDestroyCustomControls

TOpenImageEnDialog.OnDestroyCustomControls

Declaration

property OnDestroyCustomControls: TNotifyEvent;

Description

Occurs immediately after an open/save dialog is executed (shown).

It is generally used to destroy objects, that have been added using OnCreateCustomControls.

See Also

- OnCreateCustomControls example
- InfoPanel
- PicturePanel

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.OnPreviewFile

TOpenImageEnDialog.OnPreviewFile

Declaration

property OnPreviewFile: TIEFileDlgPreviewEvent;

Description

Occurs whenever a file is selected and needs to be previewed.

You can change the method that is used to load images by handling this event.

Example

// this is the default behavior
procedure TForm1.OnPreviewFile(Sender: TObject; Viewer: TObject; FileName: String; ParamsOnly: Boolean;
begin
if ParamsOnly then
(Viewer as TImageEnView).IO.ParamsFromFile(FileName)
else
if Viewer is TImageEnView then
(Viewer as TImageEnView).IO.LoadFromFileAuto(FileName)
else
if Viewer is TImageEnMView then
(Viewer as TImageEnMView).LoadFromFileOnDemand(FileName);
end;


TOpenImageEnDialog.PicturePanel

TOpenImageEnDialog.PicturePanel

Declaration

property PicturePanel: TPanel;

Description

The TPanel object that shows a preview of the image (it contains both a TImageEnMView and a TImageEnVect component).
This property can be used to customize the open/save dialogs with new controls.

See Also

- InfoPanel
- OnCreateCustomControls

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.PreviewBorderStyle

TOpenImageEnDialog.PreviewBorderStyle

Declaration

property PreviewBorderStyle: TIEDBorderStyle;

Description

Specifies the border style for the preview box that is used for single frame images.

Note: This values overrides the effect of PreviewImageBackgroundStyle

Default: iepsDefault

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.PreviewSize

TOpenImageEnDialog.PreviewSize

Declaration

property PreviewSize : TIEPreviewSize;

Description

Specifies the size of the image preview that is shown on the right of the dialog.


TOpenImageEnDialog.SelectedFrame

TOpenImageEnDialog.SelectedFrame

Declaration

property SelectedFrame: Integer;

Description

Returns the selected page (or frame) in the open dialog for multipage files like TIFF, GIF.

Example

// Prompt the user to select a TIFF file and load the page that they select
If OpenImageEnDialog1.Execute then
Begin
ImageEnView1.IO.Params.TIFF_ImageIndex := OpenImageEnDialog1.SelectedFrame;
ImageEnView1.IO.LoadFromFile( OpenImageEnDialog1.FileName );
End;


TOpenImageEnDialog.ShowAllFrames

TOpenImageEnDialog.ShowAllFrames

Declaration

property ShowAllFrames: Boolean;

Description

When previewing a multi-page file (TIFF, GIF or AVI) if ShowAllFrames is true, it shows and loads all frames, otherwise only the first is shown.


TOpenImageEnDialog.ShowFormats

TOpenImageEnDialog.ShowFormats

Declaration

property ShowFormats: TIEShowFormats;

Description

Specifies the file types listed in the drop down filter selector of the TOpenImageEnDialog. Also determines which formats are included in the "All Common Graphic Files" filter (which is the default filter).

Default: iesfImagesAndVideos

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TOpenImageEnDialog.ZoomFilter

TOpenImageEnDialog.ZoomFilter

Declaration

property ZoomFilter: TResampleFilter;

Description

Specifies the filter to apply when displaying an image preview (to improve its quality).


TPointArray

TPointArray

Declaration

TPointArray = array[0..Maxint div 16] of Windows.TPoint;


TPointerArray

TPointerArray

Declaration

TPointerArray = array[0..maxint div 16] of pointer;


TPreviewEffects

TPreviewEffects

Declaration

TPreviewEffects = set of (peAll, peContrast, peHSV, peHSL, peRGB, peUserFilt, peEqualize, peBumpMap, peLens, peWave, peMorph, peRotate, peFFT, peGamma, peSharpen, peResize, peSoftShadow, peAutoEnhance, peCrop);

Description

Specify which tabs are shown in the Image Processing Dialog (displayed by calling DoPreviews).

Value | Description | Method Used
peAll | All tabs will be shown | -
peContrast | Adjust contrast | Contrast, IntensityRGBAll
peHSV | Adjust the Hue/Saturation/Value | HSVvar
peHSL | Adjust the Hue/Saturation/Luminance | HSLvar
peRGB | Adjust Red/Green/Blue values | IntensityRGBAll
peUserFilt | Apply a 3x3 filter | ApplyFilter
peEqualize | Equalize the color histogram | Threshold, HistEqualize, HistAutoEqualize
peBumpMap | Apply Bump map effect | BumpMapping
peLens | Apply Lens effect | Lens
peWave | Apply Wave effect | Wave
peMorph | Set the minimum of maximum pixel values | Minimum, Maximum
peRotate | Rotate the image | Rotate, Flip
peFFT | Apply a Fourier Analysis | FTCreateImage
peGamma | Perform gamma correction | GammaCorrect
peSharpen | Apply a sharpening filter | Sharpen
peResize | Change the dimensions of the image | Resample
peSoftShadow | Apply a soft-shadow | AddSoftShadow
peAutoEnhance | Automatic color enhancement | AutoImageEnhance1, AutoImageEnhance2
peCrop | Crop or allow border to an image | Crop, ImageResize


TPreviewParams

TPreviewParams

Declaration

type TPreviewParams = set of (ppALL, ppAUTO, ppJPEG, ppTIFF, ppGIF, ppBMP, ppPCX, ppPNG, ppTGA, ppJ2000);

Description

Specify which pages are included in the IO Parameters dialog:
Value | Description
ppALL | Show all pages
ppAUTO | Show the relevant page for the current file type (i.e. as specified in Params.FileType)
ppJPEG | Show JPEG parameters
ppTIFF | Show TIFF paramaters
ppGIF | Show GIF (non-animated) parameters
ppBMP | Show BMP parameters
ppPCX | Show PCX parameters
ppPNG | Show PNG parameters
ppTGA | Show TGA parameters
ppJ2000 | Show JPEG2000 parameters


TProgressRec

TProgressRec

Declaration

// helper structure for OnProgress
TProgressRec = record
fOnProgress: TIEProgressEvent;
Sender: TObject;
val: integer; // counter (per=trunc(per1*val))
tot: integer;
per1: double; // (100/maxval)
per2: double;
Aborting: pboolean;
end;


TPRPreviewsParams

TPRPreviewsParams

Declaration

TPRPreviewsParams = set of TPRPreviewsParamsItems;

Description

Configure features of the Image Processing Dialog (displayed by calling DoPreviews).

Value | Description
prppDefaultLockPreview | Enable the "Lock preview" checkbox when the dialog is shown (i.e. preview is shown by default)
prppShowResetButton | Show a "Reset" button, which resets parameters to previous values
prppHardReset | Allow Reset button to reset to default values instead of previous values
prppResetSelectedTab | The Reset button will reset only the selected tab instead of all tabs

Example

// Show preview by default
ImageEnView1.Proc.PreviewsParams := ImageEnView1.Proc.PreviewsParams + [ prppDefaultLockPreview ];


TPRPreviewsParamsItems

TPRPreviewsParamsItems

Declaration

TPRPreviewsParamsItems = (prppDefaultLockPreview, prppShowResetButton, prppHardReset, prppResetSelectedTab);

Description

Configure features of the Image Processing Dialog (displayed by calling DoPreviews).

Value | Description
prppDefaultLockPreview | Enable the "Lock preview" checkbox when the dialog is shown (i.e. preview is shown by default)
prppShowResetButton | Show a "Reset" button, which resets parameters to previous values
prppHardReset | Allow Reset button to reset to default values instead of previous values
prppResetSelectedTab | The Reset button will reset only the selected tab instead of all tabs

Example

// Show preview by default
ImageEnView1.Proc.PreviewsParams := ImageEnView1.Proc.PreviewsParams + [ prppDefaultLockPreview ];


TResampleFilter

TResampleFilter

Declaration

TResampleFilter = (rfNone, rfTriangle, rfHermite, rfBell, rfBSpline, rfLanczos3, rfMitchell, rfNearest, rfLinear, rfFastLinear, rfBilinear, rfBicubic, rfProjectBW, rfProjectWB, rfWICNearestNeighbor, rfWICLinear, rfWICCubic, rfWICFant);

Description

If you need the best quality we suggest: rfHermite, rfBell, rfBSpline, rfLanczos3, rfMitchell, rfNearest, rfBilinear, rfBicubic

If you need speed we suggest: rfTriangle, rfLinear, rfFastLinear, rfWICNearestNeighbor, rfWICLinear, rfWICCubic, rfWICFant

For projects (white on black or black on white) we suggest: rfProjectBW and rfProjectWB

You can view the effect of the various filters in the demo:
Demos\Display\ZoomFilter\ZoomFilter.dpr

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRGB

TRGB

Declaration

TRGB = packed record
b: byte;
g: byte;
r: byte;
end;

See Also

- CreateRGB
- TRGB2TColor
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRGB2TColor

TRGB2TColor

Declaration

function TRGB2TColor(rgb: TRGB): TColor;

Description

Converts a TRGB color to TColor.

Example

Panel1.Color := TRGB2TColor(CreateRGB(255, 0, 0)); // Panel1.Color will be clRed

See Also

- CreateRGB
- TColor2TRGB

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRGB48

TRGB48

Declaration

TRGB48 = packed record
r: word;
g: word;
b: word;
end;


TRGB48ROW

TRGB48ROW

Declaration

TRGB48ROW = array[0..Maxint div 16] of TRGB48;


TRGBA

TRGBA

Declaration

TRGBA = packed record
b: byte;
g: byte;
r: byte;
a: byte;
end;


TRGBA48

TRGBA48

Declaration

TRGBA48 = packed record
r: word;
g: word;
b: word;
a: word;
end;


TRulerBox.Background

TRulerBox.Background

Declaration

property Background: TColor;

Description

Specifies the color of the background (non-ruler area).

Default: clBtnFace

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.DotPerUnit

TRulerBox.DotPerUnit

Declaration

property DotPerUnit: double;

Description

Specifies the number of pixels per logical unit.

Default: 1

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.FitInView

TRulerBox.FitInView

Declaration

property FitInView: boolean;

Description

If enabled, DotPerUnit is automatically adjusted to ensure that the range of the ruler (from ViewMin to ViewMax) fits within the viewing area.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.Frequency

TRulerBox.Frequency

Declaration

property Frequency: double;

Description

Specifies the number of logical units where ticks are shown.

Use LabelFreq to configure labels and longer tick marks.

Default: 10

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.GripBaseDim

TRulerBox.GripBaseDim

Declaration

property GripBaseDim: integer;

Description

Specifies the width of grip triangles in pixels.

Default: 12

See also: GripsKind

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.GripColorDefault

TRulerBox.GripColorDefault

Declaration

property GripColorDefault: TColor;

Description

Specifies the brush color of all grips.
This color will be assigned to any grips for which you have not set a custom color using GripsColor.

Notes:
- You can set the pen color with GripPenColor
- This value may be overridden if EnableTheming is enabled.

Default: clBtnFace

Example

// Set default color of grips to clSilver, but clRed to grips > 10
RulerBox1.GripColorDefault := clSilver;
for i := 10 to RulerBox1.GripsCount - 1 do
RulerBox1.GripsColor[ i ] := clRed;


TRulerBox.GripKindDefault

TRulerBox.GripKindDefault

Declaration

property GripKindDefault: TGripKind;

Description

Specifies the default style for all grips.
This style will be assigned to any grips for which you have not set a custom style using GripsKind.

The width of the grip is specified by GripBaseDim.

Default: gkTriangle

Example

// Set default style of grips to gkTriangle, but gkArrow2 to grips > 10
RulerBox1.GripKindDefault := gkTriangle;
for i := 10 to RulerBox1.GripsCount - 1 do
RulerBox1.GripsKind[ i ] := gkArrow2;


TRulerBox.GripPenColor

TRulerBox.GripPenColor

Declaration

property GripPenColor: TColor;

Description

Specifies the pen (border) color of all grips.

Notes:
- The brush color is specified by GripColorDefault, or for individual grips with GripsColor.
- This value may be overridden if EnableTheming is enabled.

Default: clBlack

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.GripsColor

TRulerBox.GripsColor

Declaration

property GripsColor[g: integer]: TColor;

Description

Specifies the brush color of the grip, g.

Note: The default color of all grips is set by GripColorDefault. Use GripsColor to assign custom colors to specific grips.

You can set the pen color with GripPenColor

Example

// Set default color of grips to clSilver, but clRed for grips > 10
RulerBox1.GripColorDefault := clSilver;
for i := 10 to RulerBox1.GripsCount - 1 do
RulerBox1.GripsColor[ i ] := clRed;


TRulerBox.GripsCount

TRulerBox.GripsCount

Declaration

property GripsCount: integer;

Description

Specifies the number of the grips.

Default: 1

Examples

// Add twenty grips
RulerBox1.GripsCount := 20;

// Set default color of grips to clSilver, but clRed for grips > 10
RulerBox1.GripColorDefault := clSilver;
for i := 10 to RulerBox1.GripsCount - 1 do
RulerBox1.GripsColor[ i ] := clRed;


TRulerBox.GripsDir

TRulerBox.GripsDir

Declaration

property GripsDir: TGripsDir;

Description

Specifies the direction of the grips (up or down).

Note: On a vertical ruler, gdUp implies left, whereas gdDown is Right.

Default: gdUp

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.GripsKind

TRulerBox.GripsKind

Declaration

property GripsKind[g: integer]: TGripKind;

Description

Specifies the style of the grip, g (triangle, arrow, etc).

Notes:
- The default style for grips is specified by GripKindDefault. Use GripsKind when you want individual grips with different styles.
- The width of the grip is specified by GripBaseDim.

Example

// Set default style of grips to gkTriangle, but gkArrow2 to grips > 10
RulerBox1.GripKindDefault := gkTriangle;
for i := 10 to RulerBox1.GripsCount - 1 do
RulerBox1.GripsKind[ i ] := gkArrow2;


TRulerBox.GripsMax

TRulerBox.GripsMax

Declaration

property GripsMax[g: integer]: double;

Description

Specifies the max position of the grip, g.


TRulerBox.GripsMin

TRulerBox.GripsMin

Declaration

property GripsMin[g: integer]: double;

Description

Specifies the minimum position of the grip, g.


TRulerBox.GripsPos

TRulerBox.GripsPos

Declaration

property GripsPos[g: integer]: double;

Description

Specifies the current position of the grip, g.


TRulerBox.HexLabels

TRulerBox.HexLabels

Declaration

property HexLabels: boolean;

Description

If HexLabels is True, the labels are shown in hexadecimal notation.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.Inverted

TRulerBox.Inverted

Declaration

property Inverted: boolean;

Description

When true the ruler is painted from right to left.

Default: False.


TRulerBox.LabelFreq

TRulerBox.LabelFreq

Declaration

property LabelFreq: double;

Description

Specifies the number of logical units where to show labels (and longer tick marks).

Use Frequency to configure short tick marks.

Default: 40

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.LabelPrecision

TRulerBox.LabelPrecision

Declaration

property LabelPrecision: integer;

Description

Specifies the number of decimal places shown for values in the ruler.

Default: 3

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.LockUpdate

TRulerBox.LockUpdate

Declaration

procedure LockUpdate();

Description

Prevents redrawing of the control while you are setting many properties. Call LockUpdate before setting properties, and then UnlockUpdate to resume drawing.

Note: Multiple LockUpdate can be in use at once. The control will not be updated until an equal number of UnlockUpdate calls have been made.

Example

RulerBox1.LockUpdate();
RulerBox1.DotPerUnit := 1;
RulerBox1.Frequency := 20;
RulerBox1.LabelFreq := 100;
RulerBox1.UnlockUpdate();


TRulerBox.MaxGripHeight

TRulerBox.MaxGripHeight

Declaration

property MaxGripHeight: integer;

Description

Specifies the maximum height of the grip.

Default: 15

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.MinLabelSpacing

TRulerBox.MinLabelSpacing

Declaration

property MinLabelSpacing: integer;

Description

Specifies the spacing between (center of) labels. To reduce crowding, labels positioned closer than this value are not shown.
If MinLabelSpacing is 0 then labels are always drawn.

Default: 30

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.OffsetX

TRulerBox.OffsetX

Declaration

property OffsetX: integer;

Description

Specifies the horizontal offset where the ruler begins.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.OffsetY

TRulerBox.OffsetY

Declaration

property OffsetY: integer;

Description

Specifies the vertical offset where the ruler begins.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.OnRulerClick

TRulerBox.OnRulerClick

Declaration

property OnRulerClick: TRulerClickEvent;

Description

Occurs when the user clicks the ruler.

Example

procedure TForm1.RulerClick(Sender: TObject; RulerDir: TRulerDir; Ps: double);
begin
case RulerDir of
rdHorizontal : ShowMessage( 'Horizontal ruler clicked at: ' + FloatToStr( Ps ));
rdVertical : ShowMessage( 'Vertical ruler clicked at: ' + FloatToStr( Ps ));
end;
end;


TRulerBox.OnRulerGripClick

TRulerBox.OnRulerGripClick

Declaration

property OnRulerGripClick: TRulerGripClickEvent;

Description

Occurs when the user clicks on a grip.

Example

procedure TForm1.RulerGripClick(Sender: TObject; RulerDir: TRulerDir; Grip: integer; GripPos: Double);
begin
case RulerDir of
rdHorizontal : ShowMessage( format( 'Grip %d clicked on horizontal ruler', [ Grip ]));
rdVertical : ShowMessage( format( 'Grip %d clicked on vertical ruler', [ Grip ]));
end;
end;


TRulerBox.OnRulerGripDblClick

TRulerBox.OnRulerGripDblClick

Declaration

property OnRulerGripDblClick: TRulerGripClickEvent;

Description

Occurs when the user double-clicks a grip.

Example

procedure TForm1.RulerGripDblClick(Sender: TObject; RulerDir: TRulerDir; Grip: integer; GripPos: Double);
begin
case RulerDir of
rdHorizontal : ShowMessage( format( 'Grip %d double-clicked on horizontal ruler', [ Grip ]));
rdVertical : ShowMessage( format( 'Grip %d double-clicked on vertical ruler', [ Grip ]));
end;
end;


TRulerBox.OnRulerPosChange

TRulerBox.OnRulerPosChange

Declaration

property OnRulerPosChange: TRulerGripPosChangeEvent;

Description

Occurs when ViewPos changes.

Example

procedure TForm1.RulerPosChange(Sender: TObject; RulerDir: TRulerDir; Grip: integer; NewPos: Double);
begin
case RulerDir of
rdHorizontal : ShowMessage( format( 'Grip %d moved on horizontal ruler', [ Grip ]));
rdVertical : ShowMessage( format( 'Grip %d moved on vertical ruler', [ Grip ]));
end;
end;


TRulerBox.Ruler

TRulerBox.Ruler

Declaration

property Ruler: boolean;

Description

Specify whether a measurement block is drawn on the ruler.

Default: True

Example

// Show only grips
RulerBox1.Ruler := False;


TRulerBox.RulerColor

TRulerBox.RulerColor

Declaration

property RulerColor: TColor;

Description

Specifies the color of the measurement block of the ruler.

Note: This value may be overridden if EnableTheming is enabled.

Default: clBtnFace

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.RulerDir

TRulerBox.RulerDir

Declaration

property RulerDir: TRulerDir;

Description

Specifies the direction of the ruler (horizontal or vertical).

Default: rdHorizontal

Example

// Configure ruler along the top of a TImageEnView
RulerBox1.RulerDir := rdHorizontal;

// Configure ruler along the left of a TImageEnView
RulerBox1.RulerDir := rdVertical;


TRulerBox.ScrollRate

TRulerBox.ScrollRate

Declaration

property ScrollRate: double;

Description

Specifies the scroll rate used when moving a grip out of ruler borders.

Default: 1.0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.ShowBorder

TRulerBox.ShowBorder

Declaration

property ShowBorder: boolean;

Description

Specify whether a border is displayed below the ruler.

Default: False

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.UnlockUpdate

TRulerBox.UnlockUpdate

Declaration

procedure UnlockUpdate();

Description

Prevents redrawing of the control while you are setting many properties. Call LockUpdate before setting properties, and then UnlockUpdate to resume drawing.

Note: Multiple LockUpdate can be in use at once. The control will not be updated until an equal number of UnlockUpdate calls have been made.

Example

RulerBox1.LockUpdate();
RulerBox1.DotPerUnit := 1;
RulerBox1.Frequency := 20;
RulerBox1.LabelFreq := 100;
RulerBox1.UnlockUpdate();


TRulerBox.ViewMax

TRulerBox.ViewMax

Declaration

property ViewMax: double;

Description

pecifies the maximum value for ViewPos property.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.ViewMin

TRulerBox.ViewMin

Declaration

property ViewMin: double;

Description

Specifies the minimum value for ViewPos property.

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerBox.ViewPos

TRulerBox.ViewPos

Declaration

property ViewPos: double;

Description

Specifies the initial position of the view (i.e. where 0 is within the view).

Default: 0

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TRulerClickEvent

TRulerClickEvent

Declaration

TRulerClickEvent = procedure(Sender: TObject; RulerDir: TRulerDir; Ps: double) of object;


TRulerDir

TRulerDir

Declaration

TRulerDir = (rdHorizontal, rdVertical);


TRulerDirs

TRulerDirs

Declaration

TRulerDirs = Set of TRulerDir;


TRulerGripClickEvent

TRulerGripClickEvent

Declaration

TRulerGripClickEvent = procedure(Sender: TObject; RulerDir: TRulerDir; Grip: integer; GripPos: Double) of object;


TRulerGripPosChangeEvent

TRulerGripPosChangeEvent

Declaration

TRulerGripPosChangeEvent = procedure(Sender: TObject; RulerDir: TRulerDir; Grip: integer; NewPos: Double) of object;


TSaveImageEnDialog.AttachedImageEnIO

TSaveImageEnDialog.AttachedImageEnIO

Declaration

property AttachedImageEnIO: TComponent;

Description

You can attach the dialog to a TImageEnIO, TImageEnMIO, TImageEnMView or TImageEnView. When it is attached the user can click the "Advanced" button in the save dialog to read/write the Params (which are only updated if the user clicks "OK").

If no ImageEn component is attached to the TSaveImageEnDialog it will function as a standard save dialog with an image preview, but without an "Advanced" button.


TSaveImageEnDialog.Execute

TSaveImageEnDialog.Execute

Declaration

function Execute : Boolean;

Description

Displays the ImageEn Save dialog, returning true if the user selects a file and clicks Save. If the user cancels the save operation, Execute returns false.

Note: If you have not set AttachedImageEnIO the user will be unable to set advanced parameters.

Example

// Save the displayed image in an ImageEnView
SaveImageEnDialog1.AttachedImageEnIO := ImageEnView1;
If SaveImageEnDialog1.Execute then
ImageEnView1.SaveToFile(SaveImageEnDialog1ImageEnDialog1.FileName);

See Also

- Filename
- AttachedImageEnIO

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


TSaveImageEnDialog.ExOptions

TSaveImageEnDialog.ExOptions

Declaration

property ExOptions: TIESaveDlgOpt;

Description

Options to hide/show the image preview and "Advanced" button.

Note

: If the "Advanced" button does not display, ensure you have correctly set AttachedImageEnIO.


TSingleArray

TSingleArray

Declaration

TSingleArray = array[0..maxint div 16] of single;


TStringGridHelper

TStringGridHelper

Declaration

TStringGridHelper = class helper for TStringGrid

Description

iexMetaHelpers


TStringGridHelper.ClearGridFields

TStringGridHelper.ClearGridFields

Declaration

procedure ClearGridFields;

Description

Clears all values in a TStringGrid containing EXIF or IPTC properties, which was filled using one of the following:
- NewGridForExif
- NewGridForIPTC
- ReadGridFromExif
- ReadGridFromIPTC

Note: Only clears the grid, not EXIF or IPTC properties of a file

Examples

procedure TMainForm.btnResetGridClick(Sender: TObject);
begin
// Clear all the specified values for our grid
MyExifStringGrid.ClearGridFields;
end;


TStringGridHelper.InitializeGrid

TStringGridHelper.InitializeGrid

Declaration

procedure InitializeGrid(bFixLayout : Boolean = True);

Description

Set up a TStringGrid for display or editing of EXIF, IPTC and Dicom meta data. If bFixLayout is true then it will automatically add columns and a header row to your grid.

Example

// Display a grid allowing user to add EXIF data
procedure TExifForm.FormCreate(Sender: TObject);
begin
// Fix grid layout
MyExifStringGrid.InitializeGrid;

// Add fields to grid
MyExifStringGrid.NewGridForExif;
end;


TStringGridHelper.NewGridForExif

TStringGridHelper.NewGridForExif

Declaration

procedure NewGridForExif(bReadOnly : Boolean = False);

Description

Set up a TStringGrid for specifying values for EXIF fields (e.g. to a file without EXIF fields presently).
Two columns will be added with the left one containing property descriptions (using EXIF_FieldDescription) and the right blank for field entry. If the grid has a fixed row it will be given a heading of "Name" and "Value".
If bReadOnly is true the right-column will not be editable.

Note: You may wish to call InitializeGrid before NewGridForExif to automatically assign the optimal layout to the grid.

Example

// Display a grid allowing user to add EXIF data
procedure TExifForm.FormCreate(Sender: TObject);
begin
// Fix grid layout
MyExifStringGrid.InitializeGrid;

// Add fields to grid
MyExifStringGrid.NewGridForExif;
end;


TStringGridHelper.NewGridForIPTC

TStringGridHelper.NewGridForIPTC

Declaration

procedure NewGridForIPTC(bReadOnly : Boolean = False);

Description

Set up a TStringGrid for specifying values for IPTC fields (e.g. to a file without IPTC fields presently).
Two columns will be added with the left one containing property descriptions and the right blank for field entry. If the grid has a fixed row it will be given a heading of "Name" and "Value".
If bReadOnly is true the right-column will not be editable.

Note: You may wish to call InitializeGrid before NewGridForIPTC to automatically assign the optimal layout to the grid.

Example

// Display a grid allowing user to add IPTC data
procedure TIPTCForm.FormCreate(Sender: TObject);
begin
// Fix grid layout
MyIPTCStringGrid.InitializeGrid;

// Add fields to grid
MyIPTCtringGrid.NewGridForIPTC;
end;


TStringGridHelper.ReadGridFromDicom

TStringGridHelper.ReadGridFromDicom

Declaration

function ReadGridFromDicom(IOParams : TIOParams; TagInclude: TIEDicomInclude) : Boolean; overload;
function ReadGridFromDicom(const sFilename : string; TagInclude: TIEDicomInclude) : Boolean; overload;

Description

Fill a TStringGrid with the Dicom properties of the current image, or one loaded from file.
Two columns will be added with the left one containing property descriptions (using GetTagDescription) and the right one containing Dicom values (using GetTagString). If the grid has a fixed row it will be given a heading of "Name" and "Value".
TagInclude allows you to filter the types of tags returned.
Result is true if the file has any Dicom fields.

Note: You may wish to call InitializeGrid before ReadGridFromDicom to automatically assign the optimal layout to the grid.

Examples

// Display the Dicom properties of the current image (all types)
MyDicomGridView.ReadGridFromDicom( ImageEnView1.IO.Params, [ diProprietary, diDeprecated, diChildTags, diUnknown ] );

// Display of Dicom properties of a file (excluding deprecated and unknown tags)
MyDicomGridView.ReadGridFromDicom( 'C:\MyImage.jpeg', [ diProprietary, diChildTags ] );


TStringGridHelper.ReadGridFromExif

TStringGridHelper.ReadGridFromExif

Declaration

function ReadGridFromExif(IOParams : TIOParams; bReadOnly : Boolean = False) : Boolean; overload;
function ReadGridFromExif(const sFilename : string; bReadOnly : Boolean = False) : Boolean; overload;

Description

Fill a TStringGrid with the EXIF properties of the current image, or one loaded from file.
Two columns will be added with the left one containing property descriptions (using EXIF_FieldDescription) and the right one containing properties values (using EXIF_AsStr). If the grid has a fixed row it will be given a heading of "Name" and "Value".
If bReadOnly is true the right-column will not be editable.
Result is true if the file has any EXIF fields.

Note: You may wish to call InitializeGrid before ReadGridFromExif to automatically assign the optimal layout to the grid.

Examples

// Display the EXIF properties of the current image
MyExifStringGrid.ReadGridFromExif( ImageEnView1.IO.Params );

// Read-only display of EXIF properties of a file
MyExifStringGrid.ReadGridFromExif( 'C:\MyImage.jpeg', True );


TStringGridHelper.ReadGridFromIPTC

TStringGridHelper.ReadGridFromIPTC

Declaration

function ReadGridFromIPTC(IOParams : TIOParams; bReadOnly : Boolean = False) : Boolean; overload;
function ReadGridFromIPTC(const sFilename : string; bReadOnly : Boolean = False) : Boolean; overload;

Description

Fill a TStringGrid with the IPTC properties of the current image, or one loaded from file.
Two columns will be added with the left one containing property descriptions and the right one containing properties values. If the grid has a fixed row it will be given a heading of "Name" and "Value".
If bReadOnly is true the right-column will not be editable.
Result is true if the file has any IPTC fields.

Note: You may wish to call InitializeGrid before ReadGridFromIPTC to automatically assign the optimal layout to the grid.

Examples

// Display the IPTC properties of the current image
MyIPTCStringGrid.ReadGridFromIPTC( ImageEnView1.IO.Params );

// Read-only display of IPTC properties of a file
MyIPTCStringGrid.ReadGridFromIPTC( 'C:\MyImage.jpeg', True );


TStringGridHelper.ReadGridFromXMP

TStringGridHelper.ReadGridFromXMP

Declaration

function ReadGridFromXMP(IOParams : TIOParams) : Boolean; overload;
function ReadGridFromXMP(const sFilename : string) : Boolean; overload;

Description

Fill a TStringGrid with XMP properties of the current image, or one loaded from file.
Two columns will be added with the left one containing property descriptions and the right one containing XMP values (using GetString). If the grid has a fixed row it will be given a heading of "Name" and "Value".

Result is true if the file has XMP fields.

Note: Only common XMP fields are added

Demo

Demos\InputOutput\XMP\XMP.dpr

Examples

// Display the XMP properties of the current image
MyXMPGridView.ReadGridFromXMP( ImageEnView1.IO.Params );

// Display of XMP properties of a file
MyXMPGridView.ReadGridFromXMP( 'C:\MyImage.jpeg' );


TStringGridHelper.WriteGridToExif

TStringGridHelper.WriteGridToExif

Declaration

function WriteGridToExif(IOParams : TIOParams) : Boolean; overload;
function WriteGridToExif(const sFilename : string) : Boolean; overload;

Description

Write the changes made by a user to EXIF values in a TStringGrid (which was filled using NewGridForExif or ReadGridFromExif) to the current image or an image file.
Result is true if any changes were made to the EXIF properties (i.e. a result of false means the TStringGrid EXIF content matches the file).

Notes:
- For first overload, only the TIOParams is updated, the changes are not saved to file.
- For the second overload, the file must already exist! If no changes were made to the EXIF data then the file is not modified

Examples

// Write changes to EXIF properties of the current image, and ask if the user wants to save changes if any fields were modified
if MyExifStringGrid.WriteGridToExif( ImageEnView1.IO.Params ) then
PromptToSaveFile;

// write EXIF changes to a file
MyExifStringGrid.WriteGridToExif( 'D:\MyImage.jpeg' );


TStringGridHelper.WriteGridToIPTC

TStringGridHelper.WriteGridToIPTC

Declaration

function WriteGridToIPTC(IOParams : TIOParams) : Boolean; overload;
function WriteGridToIPTC(const sFilename : string) : Boolean; overload;

Description

Write the changes made by a user to IPTC values in a TStringGrid (which was filled using NewGridForIPTC or ReadGridFromIPTC) to the current image or an image file.
Result is true if any changes were made to the IPTC properties (i.e. a result of false means the TStringGrid IPTC content matches the file).

Notes:
- For first overload, only the TIOParams is updated, the changes are not saved to file.
- For the second overload, the file must already exist! If no changes were made to the IPTC data then the file is not modified

Examples

// Write changes to IPTC properties of the current image, and ask if the user wants to save changes if any fields were modified
if MyIPTCStringGrid.WriteGridToIPTC( ImageEnView1.IO.Params ) then
PromptToSaveFile;

// write IPTC changes to a file
MyIPTCStringGrid.WriteGridToIPTC( 'D:\MyImage.jpeg' );


TUnableToLoadImageEvent

TUnableToLoadImageEvent

Declaration

TUnableToLoadImageEvent = procedure(Sender: TObject; Field: TField) of object;


TViewChangeEvent

TViewChangeEvent

Declaration

TViewChangeEvent = procedure(Sender: TObject; Change: integer) of object;

Description

If Change = 0 the event is ViewX or ViewY modification.
If Change = 1 the event is Zoom modification.

Note: Zoom could also modify ViewX/Y.


TViewChangingEvent

TViewChangingEvent

Declaration

type TViewChangingEvent = procedure(Sender: TObject; Change: integer; newValue: Double) of object;

Description

Parameter | Description
Change = 0 | ViewX modification.
Change = 1 | ViewY modification.
Change = 2 | Zoom modification.

newValue contains the new value that will be set.

Note: Zoom could also modify ViewX/Y.


Twain country constants

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 ;


Twain language constants

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;


TWallpaperEffect

TWallpaperEffect

Declaration

TWallpaperEffect = (
wpSolid, // A color fill
wpLeftLine, // A single line on left
wpTopLine, // A single line along top
wpDoubleLeftLines, // Two lines on left
wpDoubleTopLines, // Two lines along top
wpDoubleVariedLeftLines, // Two lines of decreasing widths on left
wpDoubleVariedTopLines, // Two lines of decreasing widths along top
wpTripleLeftLines, // Three lines on left
wpTripleTopLines, // Three lines along top
wpTripleVariedLeftLines, // Three lines of decreasing widths on left
wpTripleVariedTopLines, // Three lines of decreasing widths along top
wpLeftDashes, // Short lines of a uniform sizes on left
wpTopDashes, // Short lines of a uniform sizes along top
wpDoubleLeftDashes, // Short lines of two sizes on left
wpDoubleTopDashes, // Short lines of two sizes along top
wpTripleLeftDashes, // Short lines of three sizes on left
wpTripleTopDashes, // Short lines of three sizes along top
wpLeftZigZag, // Shark tooth pattern on left
wpTopZigZag, // Shark tooth pattern along top
wpLeftGradient, // Color gradient on left
wpTopGradient, // Color gradient along top
wpHorzPinStripe, // Horizontal lines across image
wpVertPinStripe, // Vertical lines down image
wpDiagPinStripe, // Diagonal lines across image
wpDiagPinStripe2, // Diagonal lines across image (alternative direction)
wpCrossHatch, // Horizontal and vertical lines
wpDiagCrossHatch, // Diagonal lines in two directions
wpHorzStripes, // Horizontal stripes across image
wpVertStripes, // Vertical stripes down image
wpDiagStripes, // Diagonal stripes down image
wpDiagStripes2, // Diagonal stripes down image (alternative direction)
wpCheckers, // Alternativing blocks of color
wpDiagCheckers, // Alternativing diagonal blocks of color
wpRain, // Diagonal dashes
wpRain2, // Diagonal dashes (alternative direction)
wpRivets, // Circles over page
wpHearts, // Hearts over page
wpStars, // Stars over page
wpLightning, // Lightning over page
wpRuledPage); // Similar to standard ruled page (with red line along side)


TWatchActions

TWatchActions

Declaration

// the filters that control when the watch is triggered
// the actions that are the result of the watch being triggered
TWatchAction = (waAdded, waRemoved, waModified, waRenamedOld, waRenamedNew);
TWatchActions = set of TWatchAction;


TWatchOptions

TWatchOptions

Declaration

// the filters that control when the watch is triggered
TWatchOption = (woFileName, woFolderName, woAttributes, woSize, woLastWrite, woLastAccess, woCreation, woSecurity);
TWatchOptions = set of TWatchOption;


TWPDContentType

TWPDContentType

Declaration

TWPDContentType = (
_WPD_CONTENT_TYPE_ALL ,
_WPD_CONTENT_TYPE_APPOINTMENT ,
_WPD_CONTENT_TYPE_AUDIO ,
_WPD_CONTENT_TYPE_AUDIO_ALBUM ,
_WPD_CONTENT_TYPE_CALENDAR ,
_WPD_CONTENT_TYPE_CERTIFICATE ,
_WPD_CONTENT_TYPE_CONTACT ,
_WPD_CONTENT_TYPE_CONTACT_GROUP ,
_WPD_CONTENT_TYPE_DOCUMENT ,
_WPD_CONTENT_TYPE_EMAIL ,
_WPD_CONTENT_TYPE_FUNCTIONAL_OBJECT ,
_WPD_CONTENT_TYPE_GENERIC_FILE ,
_WPD_CONTENT_TYPE_GENERIC_MESSAGE ,
_WPD_CONTENT_TYPE_IMAGE ,
_WPD_CONTENT_TYPE_IMAGE_ALBUM ,
_WPD_CONTENT_TYPE_MEDIA_CAST ,
_WPD_CONTENT_TYPE_MEMO ,
_WPD_CONTENT_TYPE_MIXED_CONTENT_ALBUM ,
_WPD_CONTENT_TYPE_NETWORK_ASSOCIATION ,
_WPD_CONTENT_TYPE_PLAYLIST ,
_WPD_CONTENT_TYPE_PROGRAM ,
_WPD_CONTENT_TYPE_SECTION ,
_WPD_CONTENT_TYPE_TASK ,
_WPD_CONTENT_TYPE_TELEVISION ,
_WPD_CONTENT_TYPE_UNSPECIFIED ,
_WPD_CONTENT_TYPE_VIDEO ,
_WPD_CONTENT_TYPE_VIDEO_ALBUM ,
_WPD_CONTENT_TYPE_WIRELESS_PROFILE ,
_WPD_CONTENT_TYPE_FOLDER ,
_WPD_CONTENT_TYPE_UNKNOWN );


TWPDObjectFormat

TWPDObjectFormat

Declaration

TWPDObjectFormat = (
_WPD_OBJECT_FORMAT_3GP ,
_WPD_OBJECT_FORMAT_AAC ,
_WPD_OBJECT_FORMAT_ABSTRACT_CONTACT ,
_WPD_OBJECT_FORMAT_ABSTRACT_CONTACT_GROUP ,
_WPD_OBJECT_FORMAT_ABSTRACT_MEDIA_CAST ,
_WPD_OBJECT_FORMAT_AIFF ,
_WPD_OBJECT_FORMAT_ALL ,
_WPD_OBJECT_FORMAT_ASF ,
_WPD_OBJECT_FORMAT_ASXPLAYLIST ,
_WPD_OBJECT_FORMAT_AUDIBLE ,
_WPD_OBJECT_FORMAT_AVI ,
_WPD_OBJECT_FORMAT_BMP ,
_WPD_OBJECT_FORMAT_CIFF ,
_WPD_OBJECT_FORMAT_DPOF ,
_WPD_OBJECT_FORMAT_EXECUTABLE ,
_WPD_OBJECT_FORMAT_EXIF ,
_WPD_OBJECT_FORMAT_FLAC ,
_WPD_OBJECT_FORMAT_FLASHPIX ,
_WPD_OBJECT_FORMAT_GIF ,
_WPD_OBJECT_FORMAT_HTML ,
_WPD_OBJECT_FORMAT_ICALENDAR ,
_WPD_OBJECT_FORMAT_ICON ,
_WPD_OBJECT_FORMAT_JFIF ,
_WPD_OBJECT_FORMAT_JP2 ,
_WPD_OBJECT_FORMAT_JPX ,
_WPD_OBJECT_FORMAT_M3UPLAYLIST ,
_WPD_OBJECT_FORMAT_M4A ,
_WPD_OBJECT_FORMAT_MHT_COMPILED_HTML ,
_WPD_OBJECT_FORMAT_MICROSOFT_EXCEL ,
_WPD_OBJECT_FORMAT_MICROSOFT_POWERPOINT ,
_WPD_OBJECT_FORMAT_MICROSOFT_WFC ,
_WPD_OBJECT_FORMAT_MICROSOFT_WORD ,
_WPD_OBJECT_FORMAT_MP2 ,
_WPD_OBJECT_FORMAT_MP3 ,
_WPD_OBJECT_FORMAT_MP4 ,
_WPD_OBJECT_FORMAT_MPEG ,
_WPD_OBJECT_FORMAT_MPLPLAYLIST ,
_WPD_OBJECT_FORMAT_NETWORK_ASSOCIATION ,
_WPD_OBJECT_FORMAT_OGG ,
_WPD_OBJECT_FORMAT_PCD ,
_WPD_OBJECT_FORMAT_PICT ,
_WPD_OBJECT_FORMAT_PLSPLAYLIST ,
_WPD_OBJECT_FORMAT_PNG ,
_WPD_OBJECT_FORMAT_PROPERTIES_ONLY ,
_WPD_OBJECT_FORMAT_SCRIPT ,
_WPD_OBJECT_FORMAT_TEXT ,
_WPD_OBJECT_FORMAT_TIFF ,
_WPD_OBJECT_FORMAT_TIFFEP ,
_WPD_OBJECT_FORMAT_TIFFIT ,
_WPD_OBJECT_FORMAT_UNSPECIFIED ,
_WPD_OBJECT_FORMAT_VCALENDAR1 ,
_WPD_OBJECT_FORMAT_VCARD2 ,
_WPD_OBJECT_FORMAT_VCARD3 ,
_WPD_OBJECT_FORMAT_WAVE ,
_WPD_OBJECT_FORMAT_WINDOWSIMAGEFORMAT ,
_WPD_OBJECT_FORMAT_WMA ,
_WPD_OBJECT_FORMAT_WMV ,
_WPD_OBJECT_FORMAT_WPLPLAYLIST ,
_WPD_OBJECT_FORMAT_X509V3CERTIFICATE ,
_WPD_OBJECT_FORMAT_XML ,
_WPD_OBJECT_FORMAT_UNKNOWN );


TYCbCr

TYCbCr

Declaration

TYCbCr = packed record
y: byte;
Cb: byte;
Cr: byte;
end;


Undo Operation Consts

Undo Operation Consts

Declaration

const
IEOP_CUSTOM = 0 ;
IEOP_ADDINNERSHADOW = 1 ;
IEOP_ADDSOFTSHADOW = 2 ;
IEOP_ADJUSTBRIGHTNESSCONTRASTSATURATION = 3 ;
IEOP_ADJUSTGAINOFFSET = 4 ;
IEOP_ADJUSTLUMSATHISTOGRAM = 5 ;
IEOP_ADJUSTSATURATION = 6 ;
IEOP_ADJUSTTEMPERATURE = 7 ;
IEOP_ADJUSTTINT = 8 ;
IEOP_APPLYFILTER = 9 ;
IEOP_AUTOIMAGEENHANCE1 = 10;
IEOP_AUTOIMAGEENHANCE2 = 11;
IEOP_AUTOIMAGEENHANCE3 = 12;
IEOP_AUTOSHARP = 13;
IEOP_BLUR = 14;
IEOP_BUMPMAPPING = 15;
IEOP_CASTALPHA = 16;
IEOP_CASTCOLOR = 17;
IEOP_CASTCOLORRANGE = 18;
IEOP_CLEAR = 19;
IEOP_CLEARSEL = 20;
IEOP_CLOSING = 21;
IEOP_COLORIZE = 22;
IEOP_CONTRAST = 23;
IEOP_CONTRAST2 = 24;
IEOP_CONTRAST3 = 25;
IEOP_CONVERTTO = 26;
IEOP_CONVERTTO2 = 27;
IEOP_CONVERTTO24BIT = 28;
IEOP_CONVERTTO3 = 29;
IEOP_CONVERTTOBW_FLOYDSTEINBERG = 30;
IEOP_CONVERTTOBWLOCALTHRESHOLD = 31;
IEOP_CONVERTTOBWORDERED = 32;
IEOP_CONVERTTOBWTHRESHOLD = 33;
IEOP_CONVERTTOGRAY = 34;
IEOP_CONVERTTOPALETTE = 35;
IEOP_CONVERTTOSEPIA = 36;
IEOP_CONVOLVE = 37;
IEOP_CROP = 38;
IEOP_CROPSEL = 39;
IEOP_DECRYPT = 40;
IEOP_DEINTERLACE = 41;
IEOP_DISPOSECHANNELS = 42;
IEOP_EDGEDETECT = 43;
IEOP_EDGEDETECT_SOBEL = 44;
IEOP_ENCRYPT = 45;
IEOP_FEATHERALPHAEDGES = 46;
IEOP_FILL = 47;
IEOP_FLIPHORZ = 48;
IEOP_FLIPVERT = 49;
IEOP_FTCLEARZONE = 50;
IEOP_GAMMACORRECT = 51;
IEOP_HISTAUTOEQUALIZE = 52;
IEOP_HISTEQUALIZE = 53;
IEOP_HSLVAR = 54;
IEOP_HSVVAR = 55;
IEOP_INTENSITY = 56;
IEOP_INTENSITYRGBALL = 57;
IEOP_LENS = 58;
IEOP_MAKETILE = 59;
IEOP_MAPGRAYTOCOLOR = 60;
IEOP_MATCHHSVRANGE = 61;
IEOP_MAXIMUM = 62;
IEOP_MEDIANFILTER = 63;
IEOP_MERGE = 64;
IEOP_MERGEWITHMASK = 65;
IEOP_MINIMUM = 66;
IEOP_MOTIONBLUR = 67;
IEOP_NEGATIVE = 68;
IEOP_OPENING = 69;
IEOP_PAINTMARK = 70;
IEOP_PASTEFROMCLIPBOARD = 71;
IEOP_PERSPECTIVEDRAW = 72;
IEOP_POINTPASTEFROMCLIP = 73;
IEOP_PROJECTDRAW = 74;
IEOP_RADIALSTRETCH = 75;
IEOP_RANDOM = 76;
IEOP_REFLECTION = 77;
IEOP_REMOVECHROMAKEY = 78;
IEOP_REMOVEISOLATEDPIXELS = 79;
IEOP_REMOVENOISE = 80;
IEOP_REMOVEREDEYES = 81;
IEOP_RESAMPLE = 82;
IEOP_RESIZE = 83;
IEOP_ROTATE = 84;
IEOP_ROTATEANDCROP = 85;
IEOP_ROUNDIMAGE = 86;
IEOP_SELCUTTOCLIP = 87;
IEOP_SELPASTEFROMCLIP = 88;
IEOP_SELPASTEFROMCLIPSTRETCH = 89;
IEOP_SETTRANSPARENTCOLORS = 90;
IEOP_SHARPEN = 91;
IEOP_SHIFTCHANNEL = 92;
IEOP_TEXTOUT = 93;
IEOP_THRESHOLD = 94;
IEOP_THRESHOLD2 = 95;
IEOP_UNSHARPMASK = 100;
IEOP_WALLISFILTER = 101;
IEOP_WAVE = 102;
IEOP_WHITEBALANCE_AUTOWHITE = 103;
IEOP_WHITEBALANCE_COEF = 104;
IEOP_WHITEBALANCE_GRAYWORLD = 105;
IEOP_WHITEBALANCE_WHITEAT = 106;
IEOP_WRITEHIDDENDATA = 107;
IEOP_SYMMETRICNEARESTNEIGHBOUR = 108;
IEOP_PIXELIZE = 109;
IEOP_PENCILSKETCH = 110;
IEOP_CUTTOCLIPBOARD = 111;
IEOP_CUTLAYERTOCLIPBOARD = 112;
IEOP_PASTELAYERFROMCLIPBOARD = 113;
IEOP_ADDIMAGELAYER = 114;
IEOP_ADDSHAPELAYER = 115;
IEOP_ADDLINELAYER = 116;
IEOP_ADDPOLYLINELAYER = 117;
IEOP_ADDTEXTLAYER = 118;
IEOP_MOVELAYER = 119;
IEOP_RESIZELAYER = 120;
IEOP_ROTATELAYER = 121;
IEOP_REMOVELAYER = 122;
IEOP_MERGELAYERS = 123;
IEOP_ARRANGELAYERS = 124;
IEOP_LAYERPROPS = 125;

IEOP_OTHER = 999;


WIA Camera device properties

WIA Camera device properties

WIA_DPC_PICTURES_TAKEN
WIA_DPC_PICTURES_REMAINING
WIA_DPC_EXPOSURE_MODE
WIA_DPC_EXPOSURE_COMP
WIA_DPC_EXPOSURE_TIME
WIA_DPC_FNUMBER
WIA_DPC_FLASH_MODE
WIA_DPC_FOCUS_MODE
WIA_DPC_FOCUS_MANUAL_DIST
WIA_DPC_ZOOM_POSITION
WIA_DPC_PAN_POSITION
WIA_DPC_TILT_POSITION
WIA_DPC_TIMER_MODE
WIA_DPC_TIMER_VALUE
WIA_DPC_POWER_MODE
WIA_DPC_BATTERY_STATUS
WIA_DPC_THUMB_WIDTH
WIA_DPC_THUMB_HEIGHT
WIA_DPC_PICT_WIDTH
WIA_DPC_PICT_HEIGHT
WIA_DPC_DIMENSION
WIA_DPC_COMPRESSION_SETTING
WIA_DPC_FOCUS_METERING
WIA_DPC_TIMELAPSE_INTERVAL
WIA_DPC_TIMELAPSE_NUMBER
WIA_DPC_BURST_INTERVAL
WIA_DPC_BURST_NUMBER
WIA_DPC_EFFECT_MODE
WIA_DPC_DIGITAL_ZOOM
WIA_DPC_SHARPNESS
WIA_DPC_CONTRAST
WIA_DPC_CAPTURE_MODE
WIA_DPC_CAPTURE_DELAY
WIA_DPC_EXPOSURE_INDEX
WIA_DPC_EXPOSURE_METERING_MODE
WIA_DPC_FOCUS_METERING_MODE
WIA_DPC_FOCUS_DISTANCE
WIA_DPC_FOCAL_LENGTH
WIA_DPC_RGB_GAIN
WIA_DPC_WHITE_BALANCE
WIA_DPC_UPLOAD_URL
WIA_DPC_ARTIST
WIA_DPC_COPYRIGHT_INFO

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


WIA device properties

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

© ImageEn 2017. All rights reserved. Terms of Use. Last updated: April 2017


WIA item properties

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.


WindowsAddToRecentDocs

WindowsAddToRecentDocs

Declaration

procedure WindowsAddToRecentDocs(Const Filename: string);

Description

Adds a file to Windows' list of recent documents (displayed under the Start menu)

Example

WindowsAddToRecentDocs('C:\My File.jpg');


WindowsCopy

WindowsCopy

Declaration

function WindowsCopy(Handle : HWnd; sFromFilename, sDestFolder: String; bRenameOnCollision, bShowConfirmation, bShowProgress: boolean; bVerboseErrors : boolean = True): Boolean;
function WindowsCopy(Handle : HWnd; ssFiles : TStrings; const sDestFolder : String; bRenameOnCollision, bShowConfirmation, bShowProgress: boolean; bVerboseErrors : boolean = True): Boolean; overload;

Description

Uses PerformSHFileOperation to copy files to a folder.

Parameter | Description
sFromFilename/ssFiles | The file(s) to copy. If using sFromFilename the multiple files can be delimited using #0
sDestFolder | The folder to copy files to
bRenameOnCollision | Give the file being operated on a new name if a file with the target name already exists at the destination (pertains to FOF_RENAMEONCOLLISION
bShowConfirmation | If not specified then will automatically respond with "Yes to All" for any dialog box that is displayed (undefines FOF_NOCONFIRMATION
bShowProgress | Displays a progress dialog box (undefines FOF_SILENT
bVerboseErrors | Displays a dialog to the user if an error occurs (undefines FOF_NOERRORUI

Result is true unless the operation fails or is aborted.

Example

WindowsCopy(Form1.Handle, 'C:\My Image.jpg', 'C:\My Files', True, True, True);


WindowsDesktopFolder

WindowsDesktopFolder

Declaration

function WindowsDesktopFolder: string;

Description

Returns the full path to the "Desktop" (using CSIDL_DESKTOP)

Example

IEFolderMView1.Folder := WindowsDesktopFolder;


WindowsErase

WindowsErase

Declaration

function WindowsErase(Handle : HWnd; sFilename: String; bSendToRecycleBin, bShowConfirmation, bShowProgress: Boolean; bVerboseErrors : boolean = True): Boolean;
function WindowsErase(Handle : HWnd; ssFiles : TStrings; bSendToRecycleBin, bShowConfirmation, bShowProgress: Boolean; bVerboseErrors : boolean = True): Boolean; overload;

Description

Uses PerformSHFileOperation to delete files from a folder.

Parameter | Description
sFilename/ssFiles | The file(s) to delete. If using sFromFilename the multiple files can be delimited using #0
bSendToRecycleBin | Moves the file to the Recycle Bin rather than permanently deleting it (pertains to FOF_ALLOWUNDO
bShowConfirmation | If not specified then will automatically respond with "Yes to All" for any dialog box that is displayed (undefines FOF_NOCONFIRMATION
bShowProgress | Displays a progress dialog box (undefines FOF_SILENT
bVerboseErrors | Displays a dialog to the user if an error occurs (undefines FOF_NOERRORUI

Result is true unless the operation fails or is aborted.

Example

WindowsErase(Form1.Handle, 'C:\My Image.jpg', True, True, True);


WindowsLaunchFile

WindowsLaunchFile

Declaration

procedure WindowsLaunchFile(Handle: THandle; const sFilename: string);

Description

Calls ShellExecute to launch the specified file in the default application. Can also be used to launch a web page.

Example

WindowsLaunchFile(Form1.Handle, IEFolderMView1.SelectedFilename);

WindowsLaunchFile(Form1.Handle, 'http://www.ImageEn.com');


WindowsLocalAppDataFolder

WindowsLocalAppDataFolder

Declaration

function WindowsLocalAppDataFolder : string;

Description

Returns the full path to the "Local Apps" folder (using CSIDL_LOCAL_APPDATA)

Example

IEFolderMView1.Folder := WindowsLocalAppDataFolder;


WindowsMove

WindowsMove

Declaration

function WindowsMove(Handle : HWnd; sFromFilename, sDestFolder: String; bRenameOnCollision, bShowConfirmation, bShowProgress: boolean; bVerboseErrors : boolean = True): Boolean;
function WindowsMove(Handle : HWnd; ssFiles : TStrings; const sDestFolder : String; bRenameOnCollision, bShowConfirmation, bShowProgress: boolean; bVerboseErrors : boolean = True): Boolean; overload;

Description

Uses PerformSHFileOperation to move files to a folder.

Parameter | Description
sFromFilename/ssFiles | The file(s) to move. If using sFromFilename the multiple files can be delimited using #0
sDestFolder | The folder to move files to
bRenameOnCollision | Give the file being operated on a new name if a file with the target name already exists at the destination (pertains to FOF_RENAMEONCOLLISION
bShowConfirmation | If not specified then will automatically respond with "Yes to All" for any dialog box that is displayed (undefines FOF_NOCONFIRMATION
bShowProgress | Displays a progress dialog box (undefines FOF_SILENT
bVerboseErrors | Displays a dialog to the user if an error occurs (undefines FOF_NOERRORUI

Result is true unless the operation fails or is aborted.

Example

WindowsMove(Form1.Handle, 'C:\My Image.jpg', 'C:\My Files', True, True, True);


WindowsMyDocumentsFolder

WindowsMyDocumentsFolder

Declaration

function WindowsMyDocumentsFolder: string;

Description

Returns the full path to the "My Documents" folder (using CSIDL_PERSONAL)

Example

IEFolderMView1.Folder := WindowsMyDocumentsFolder;


WindowsMyMusicFolder

WindowsMyMusicFolder

Declaration

function WindowsMyMusicFolder: string;

Description

Returns the full path to the "My Music" folder (using CSIDL_MYMUSIC)

Example

IEFolderMView1.Folder := WindowsMyMusicFolder;


WindowsMyPicturesFolder

WindowsMyPicturesFolder

Declaration

function WindowsMyPicturesFolder: string;

Description

Returns the full path to the "My Pictures" folder (using CSIDL_MYPICTURES)

Example

IEFolderMView1.Folder := WindowsMyPicturesFolder;


WindowsMyVideosFolder

WindowsMyVideosFolder

Declaration

function WindowsMyVideosFolder: string;

Description

Returns the full path to the "My Videos" folder (using CSIDL_MYVIDEO)

Example

IEFolderMView1.Folder := WindowsMyVideosFolder;


WindowsProgramFilesFolder

WindowsProgramFilesFolder

Declaration

function WindowsProgramFilesFolder : String;

Description

Returns the full path to "Program Files" (using CSIDL_PROGRAM_FILES)

Example

IEFolderMView1.Folder := WindowsProgramFilesFolder;


WindowsRename

WindowsRename

Declaration

function WindowsRename(Handle : HWnd; const sFilename, sNewName: String; bRenameOnCollision, bShowConfirmation : Boolean; bVerboseErrors : boolean = True; bCheckForOverwrite : Boolean = True): Boolean; overload;

Description

Uses PerformSHFileOperation to delete files from a folder.

Parameter | Description
sFilename/ssFiles | The file(s) to rename (only one can be specified
sNewName | The new filename for the file (do not include path)
bRenameOnCollision | Give the file being operated on a new name if a file with the target name already exists at the destination (pertains to FOF_RENAMEONCOLLISION
bShowConfirmation | If not specified then will automatically respond with "Yes to All" for any dialog box that is displayed (undefines FOF_NOCONFIRMATION
bVerboseErrors | Displays a dialog to the user if an error occurs (undefines FOF_NOERRORUI

Result is true unless the operation fails or is aborted.

Example

WindowsRename(Form1.Handle, 'C:\My Image.jpg', 'My New Name.jpg', True, True);


WindowsSelectDirectory

WindowsSelectDirectory

Declaration

function WindowsSelectDirectory(const Caption: string; var Directory: string;
Parent: TWinControl = nil; bAllowNewFolder : Boolean = True): Boolean;

Description

Displays a dialog to the user which allows the to select a folder.

Note: Similar to FileCtrl.SelectDirectory

Example

sFolder := IEFolderMView1.Folder;
WindowsSelectDirectory('Specify Folder', sFolder);
IEFolderMView1.Folder := sFolder;


wlimit

wlimit

Declaration

function wlimit(vv: Integer): word;

Description

Ensures vv is in the range of 0 to 65535.


WriteIPTCDescriptionAndKeywordsToFile

WriteIPTCDescriptionAndKeywordsToFile

Declaration

procedure WriteIPTCDescriptionAndKeywordsToFile(const sFilename: string;
sDescription: string;
ssKeywords: TStrings = nil);

Description

Saves a description and keywords to the IPTC data of a file. The following records are used:
- PhotoShop_IPTC_Records/IPTC_PS_Caption
- PhotoShop_IPTC_Records/IPTC_PS_Keywords

Notes:
- Specify the SKIP_DESCRIPTION const to avoid updating the description
- Pass ssKeywords as nil to avoid updating the keywords

Examples

// Save description and keywords to a file
WriteIPTCDescriptionAndKeywordsToFile( 'D:\MyImage.jpeg', edtDescription.Text, lbxKeywords.Items );

// Save description to a file
WriteIPTCDescriptionAndKeywordsToFile( 'D:\MyImage.jpeg', edtDescription.Text, nil );

// Save keywords to a file
WriteIPTCDescriptionAndKeywordsToFile( 'D:\MyImage.jpeg', SKIP_DESCRIPTION, lbxKeywords.Items );


XMPCompatibleFile

XMPCompatibleFile

Declaration

function XMPCompatibleFile(const sFilename: string): boolean;

Description

Returns true if the specified filename has an extension of a file type that supports XMP meta-data (i.e. JPEG, TIFF or PSD).

Examples

// Enable button if the selected file may contain XMP meta-data
btnShowXMP.Enabled := XMPCompatibleFile( MyFileListBox.Filename );