ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / Windows functions / EXIF functions
  • Correspondence between tags and constants
  • Handling errors
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
ImageInfoModify (Function)
In french: ImageInfoModifie
Modifies the value of an Exif tag for the image used.
This modification is performed in memory. To save this modification, use ImageInfoSave or dSaveImageJPEG.
Remarks:
  • The Exif (EXchangeable Image File) information is included in the image file. This standard defines a set of tags used to store information about the image: date, width, orientation, camera model, shutter speed, distance, exposure time, ...
  • If the specified Exif tag does not exist for the image used, this tag is added to the image.
  • Some specific tags (the "Offsets" for instance) cannot be modified. In this case, the modification is ignored (<Result> = False).
  • To handle the Exif tags of an image, use the Exif property of Image variables. This property can be used on Android applications.
Example
ImgPath is string = "C:\My Images\MyImage.JPG"
// Modify the copyright
// This tag exists. The current type of this tag will be used  
ImageInfoModify(ImgPath, imgCopyright, "PC Soft " + Today())
// Save the modification
ImageInfoSave(ImgPath)
// Close the image file
ImageInfoClose(ImgPath)
// Modify the comments of the JPEG image
// displayed in the "IMG_MyImageControl" control
// The "imgComment" tag will be added if it does not exist.
// The "ExifString" type will be automatically deduced
// from the string containing the comments
ImageInfoModify(IMG_MyImageControl, imgComment, "Coral Reef")
// Save the modification
ImageInfoSave(IMG_MyImageControl, "C:\Diving\Coral1.JPG")
ImgPath is string = "C:\My Images\Dog1.JPG"
// Modify the focal
// If this tag does not exist, the value of the focal
// will be saved as a signed rational
// If this tag exists, the current type of this
// tag will be used
ImageInfoModify(ImgPath, imgFAperture, 2.8, ExifRational)
// Save the modification
ImageInfoSave(ImgPath)
// Close the image file
ImageInfoClose(ImgPath)
Syntax
<Result> = ImageInfoModify(<Image> , <Tag> , <New value> [, <Type of Tag>])
<Result>: Boolean
  • True if the modification was performed,
  • False otherwise.
<Image>: Character string
Image to use. This image can correspond to:
  • an image file (JPEG format): specify the name and the full (or relative) path of the file. A UNC path can be used.
    In this case, the file must be closed by ImageInfoClose.
  • an image displayed in an Image control: specify the name of the Image control. If this image is not in JPEG format, this image will be automatically converted to this format during its backup (ImageInfoSave or dSaveImageJPEG).
  • an image (JPEG format) found in an image memo: specify this image memo.
  • an image (JPEG format) found in a binary string: specify this binary string.
<Tag>: Constant or integer
Tag whose value must be modified. This tag can correspond to:
  • an integer given by ImageInfoList.
  • a WLanguage constant. See "Correspondence between tags and constants" for more details.
<New value>: Type of the value of the tag to modify
New value for the specified tag.
<Type of Tag>: Optional integer constant
Type in which the value of the tag will be saved:
ExifBinaryBinary string
ExifInteger4Signed 4-byte integer
ExifRationalSigned rational
ExifStringASCII character string
ExifUInteger1Unsigned 1-byte integer
ExifUInteger2Unsigned 2-byte integer
ExifUInteger4Unsigned 4-byte integer
ExifURationalUnsigned rational

If the modified tag already exists for the image used, this parameter will be ignored and the current type of the modified tag will be used.
If the modified tag does not exist for the image used, we advise you to specify the tag type. Otherwise, the default type will be automatically deduced from <New Value>.
Remarks

Correspondence between tags and constants

The table below presents the correspondence between tags and WLanguage constants.
TagWLanguage constant Value
37510imgCommentCharacter string
Comments about the image
37122imgCompressionReal
Compression of the image in bits/pixel
33432imgCopyrightCharacter string
Image Copyright
306imgDateDate
Date and time of the image in YYYY:MM:DD HH:MM:SS format
270imgDescriptionCharacter string
Image description
37382imgSubjectDistanceReal
Distance from the subject in meters
37380imgExposureBiasReal
Exposure bias in APEX
37385imgFlashInteger
Status of the flash during the shot:
  • 0: Flash off.
  • 1: Flash on.
  • 5: Flash on and light not detected.
  • 7: Flash on and light detected.
928imgHeightInteger
Image height in pixels
672imgWidthInteger
Image width in pixels
305imgRecordingSoftwareCharacter string
Name of the software that was used to record the image.
37386imgFocalLengthReal
Focal length in millimeters.
37379imgBrightnessReal
Brightness of the image in APEX.
271imgDeviceMarkCharacter string
Mark of the camera that took the photo.
272imgDeviceModelCharacter string
Model of camera that took the photo.
37383imgMeteringModeInteger
Metering mode:
  • 0: unknown.
  • 1: average.
  • 2: average centered.
  • 3: point.
  • 4: multipoint.
  • 5: pattern.
  • 6: partial.
  • 7 to 254: reserved.
  • 255: other.
37500imgManufacturerNoteCharacter string
Name of the camera manufacturer
274imgOrientationInteger
Orientation of the image:
  • 1 to 4: landscape.
  • 5 to 8: portrait.
37378imgApertureReal
Aperture in APEX.
33437imgFApertureReal
Focal
37381imgMaxApertureReal
Maximum aperture in APEX
34850imgExposureProgramInteger
Exposure mode used during the shot:
  • 0: undefined.
  • 1: manual.
  • 2: normal.
  • 3: priority to aperture.
  • 4: priority to speed.
  • 5: creation.
  • 6: action.
  • 7: close-up portrait without background.
  • 8: landscape.
  • 9 to 255: others.
282imgXResolutionReal
Horizontal resolution of the image
283imgYResolutionReal
Vertical resolution of the image
37384imgLightSourceInteger
Light source for the image:
  • 0: unknown.
  • 1: daylight.
  • 2: fluorescent.
  • 3: tungsten.
  • 17: standard light A.
  • 18: standard light B.
  • 19: standard light C.
  • 20: D55.
  • 21: D65.
  • 22: D75.
  • 23 to 254: reserved.
  • 255: other.
33434imgExposureTimeReal
Exposure time
296imgResolutionUnitInteger
Unit for the horizontal and vertical resolution of the image:
  • 2: inches.
  • 3: centimeters.
36864imgEXIFVersionCharacter string
Version of Exif information
65536imgThumbnailBinary string
Thumbnail corresponding to the image
37377imgShutterSpeedReal
Shutter speed in APEX

Other tags are also available. These unlisted tags are specific to some types of cameras or correspond to custom tags.

Handling errors

ImageInfoModify returns no error code. To determine if this function generated an error, use the ErrorOccurred variable. If an error occurs, you can get more details on the error with ErrorInfo.
Component: wd290img.dll
See also
Minimum version required
  • Version 10
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 05/26/2022

Send a report | Local help