GS-Base 19.1.1 has been released.

New features in this release:

  • You can create tables with all images/files loaded from folders:

The “Add New Table” dialog box:
https://citadel5.com/help/gsbase/add_table.png

The above two new options automatically create a table with records with one loaded image/file per field.
Note: by default the “image/file” field is created for loaded objects, but if these are text, html files or any files containing textual contents, you can later use the “Field Setup” dialog box to change the type “Long Text” and display the text.
(To load/save a group of images/files to/from a single binary field, right click the binary field view.)

  • The 19.1.1 update extends the functionality of the objectStats() function to let you manage your picture/photo collections.

objectStats(field, type)
objectStats(field, imageName, propertyType)

Returns the Images/Files field statistics or the metadata encoded
in JPG/TIFF/EXIF/PNG images (e.g. by digital cameras).

  • objectStats(field, type)
    type = 0 - returns the number of objects
    type = 1 - returns the size in bytes of the biggest object in a field
    type = 2 - returns the size in bytes of the smallest object in a field
    type = 3 - returns 1 if a field contains images (in format supported by GS-Base) or 0 otherwise.
    To obtain the total physical size of the Images/Files fields,
    use the len() function.
    • objectStats(field, imageName, propertyType)

NOTE: this functions should be used in calculated Text fields.
imageName - if there are multiple images in a field, you can specify
a name of given image; if you specify an empty string,
the first image from a field will be used
propertyType - a numeric property code; to generate a list of all
possible codes for a given image, specify -1.
=objectStats(files, 0)
=objectStats(images, 1)
=objectStats(images, “”, hex2dec(“132”)) returns the 0x132 property value - a date,
=objectStats(images, “some_image.jpg”, hex2dec(“2”)) returns the GPS Latitude coordinate of the place where a given picture was taken,
=objectStats(images, “”, -1) returns the list of all properties encoded in a given image.

Property values can be read for JPG/TIFF/EXIF/PNG images. A picture taken by a digital camera can contain for example the following tags:

ImageWidth(0x100), ImageHeight(0x101), EquipMake(0x10f),
EquipModel(0x110) Orientation(0x112), XResolution(0x11a),
YResolution(0x11b), ResolutionUnit(0x128), SoftwareUsed(0x131),
DateTime(0x132), YCbCrPositioning(0x213), ExifExposureTime(0x829a),
ExifFNumber(0x829d), ExifExposureProg(0x8822), ExifISOSpeed(0x8827),
ExifVer(0x9000), ExifDTOrig(0x9003), ExifDTDigitized(0x9004),
ExifCompConfig(0x9101), ExifShutterSpeed(0x9201), ExifAperture(0x9202),
ExifBrightness(0x9203), ExifExposureBias(0x9204), ExifMaxAperture(0x9205),
ExifSubjectDist(0x9206), ExifMeteringMode(0x9207), ExifFlash(0x9209),
ExifFocalLength(0x920a), ExifMakerNote(0x927c), ExifDTSubsec(0x9290),
ExifDTOrigSS(0x9291), ExifDTDigSS(0x9292), ExifFPXVer(0xa000),
ExifColorSpace(0xa001), ExifPixXDim(0xa002), ExifPixYDim(0xa003),
ExifSensingMethod(0xa217), ExifSceneType(0xa301), GpsVer(0x0),
GpsLatitudeRef(0x1), GpsLatitude(0x2), GpsLongitudeRef(0x3),
GpsLongitude(0x4), GpsAltitudeRef(0x5), GpsAltitude(0x6), GpsGpsTime(0x7),
GpsGpsDop(0xb), ThumbnailData(0x501b), ThumbnailImageWidth(0x5020),
ThumbnailImageHeight(0x5021), ThumbnailCompression(0x5023)
ThumbnailOrientation(0x5029), ThumbnailResolutionX(0x502d)
ThumbnailResolutionY(0x502e), ThumbnailResolutionUnit(0x5030)
JPEGInterFormat(0x201), JPEGInterLength(0x202), ChrominanceTable(0x5091),
LuminanceTable(0x5090), ICCProfile(0x8773)

For the full list of the possible tags please use any i-net search engine and search for the official specification the image / picture metadata tags.