ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Standard functions / Windows functions / EXIF functions
  • Correspondence between tags and constants
  • Handling errors
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
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 markers for storing a wide range of image-related information: date, width, orientation, camera model, shutter speed, subject distance, exposure time, etc.
  • 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
CheminImg is string = "C:\Mes Images\MonImage.JPG" 
// Modification du copyright
// Ce marqueur existe. Le type actuel de ce marqueur sera utilisé  
ImageInfoModify(CheminImg, imgCopyright, "PC Soft " + Today()) 
// Enregistrement de la modification
ImageInfoSave(CheminImg)
// Fermeture du fichier image
ImageInfoClose(CheminImg)
// Modification des commentaires de l'image JPEG
// affichée dans le champ Image "IMG_MonChampImage"
// Le marqueur "imgCommentaire" n'existe pas, il sera rajouté. 
// Le type "ExifChaîne" sera automatiquement déduit
// à partir de la chaîne contenant les commentaires
ImageInfoModify(IMG_MonChampImage, imgComment, "Belles gorgones") 
// Enregistrement de la modification
ImageInfoSave(IMG_MonChampImage, "C:\Plongees\Gorgone1.JPG")
CheminImg is string = "C:\Mes Images\Chien1.JPG" 
// Modification de la focale
// Si ce marqueur n'existe pas, la valeur de la focale
// sera enregistrée sous forme de rationnel signé
// Si ce marqueur existe, le type actuel de ce
// marqueur sera utilisé
ImageInfoModify(CheminImg, imgFAperture, 2.8, ExifRational) 
// Enregistrement de la modification
ImageInfoSave(CheminImg)
// Fermeture du fichier image
ImageInfoClose(CheminImg)
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 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) contained in a picture memo: specify the picture memo.
  • an image (JPEG format) contained 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. For more details, see "Correspondence between tags and constants".
<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
ExifInteger44-byte signed integer
ExifRationalSigned rational
ExifStringASCII character string
ExifUInteger11-byte unsigned integer
ExifUInteger22-byte unsigned integer
ExifUInteger44-byte unsigned 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 not fired.
  • 1: Flash off.
  • 5: Flash triggered and return light not detected.
  • 7: Flash triggered and return 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: centered average.
  • 3: point.
  • 4: multipoint.
  • 5: motif.
  • 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: aperture priority.
  • 4: speed priority.
  • 5: creative.
  • 6: action.
  • 7: meadow portrait without background.
  • 8: landscape.
  • 9 to 255: other.
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: centimetres.
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: wd300img.dll
See also
Minimum version required
  • Version 10
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 03/27/2025

Send a report | Local help