Platforms to show: All Mac Windows Linux Cross-Platform
/GraphicsMagick/GraphicsMagick/GM Exif
Required plugins for this example: MBS GraphicsMagick Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /GraphicsMagick/GraphicsMagick/GM Exif
This example is the version from Thu, 6th Apr 2016.
Project "GM Exif.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
EventHandler Sub Open()
'dim f as FolderItem = GetOpenFolderItem("")
dim f as FolderItem = FindFile("test.jpg")
if f = nil then quit
dim g as new GMImageMBS(f)
Title = f.DisplayName
dim ExifTags() as string = array("GPSLatitudeRef", "GPSLatitude", "GPSLongitudeRef", "GPSLongitude", "GPSAltitudeRef", "GPSAltitude", _
"GPSTimeStamp", "GPSSatellites", "GPSStatus", "GPSMeasureMode", "GPSDOP", "GPSSpeedRef", "GPSSpeed", "GPSTrackRef", "GPSTrack", _
"GPSImgDirectionRef", "GPSImgDirection", "GPSMapDatum", "GPSDestLatitudeRef", "GPSDestLatitude", "GPSDestLongitudeRef", "GPSDestLongitude", _
"GPSDestBearingRef", "GPSDestBearing", "GPSDestDistanceRef", "GPSDestDistance", "GPSDateStamp", "ImageWidth", "ImageLength", "BitsPerSample", _
"Compression", "PhotometricInterpretation", "FillOrder", "DocumentName", "ImageDescription", "Make", "Model", "StripOffsets", "Orientation", _
"SamplesPerPixel", "RowsPerStrip", "StripByteCounts", "MinSampleValue", "MaxSampleValue", "XResolution", "YResolution", "PlanarConfiguration", _
"PageName", "XPosition", "YPosition", "FreeOffsets", "FreeByteCounts", "GrayResponseUnit", "GrayResponseCurve", "T4Options", "T6Options", _
"ResolutionUnit", "TransferFunction", "Software", "DateTime", "Artist", "HostComputer", "Predictor", "WhitePoint", "PrimaryChromaticities", _
"ColorMap", "HalfToneHints", "TileWidth", "TileLength", "TileOffsets", "TileByteCounts", "SubIFD", "InkSet", "InkNames", "NumberOfInks", "DotRange", _
"TargetPrinter", "ExtraSample", "SampleFormat", "SMinSampleValue", "SMaxSampleValue", "TransferRange", "ClipPath", "XClipPathUnits", _
"YClipPathUnits", "Indexed", "JPEGTables", "OPIProxy", "JPEGProc", "JPEGInterchangeFormat", "JPEGInterchangeFormatLength", "JPEGRestartInterval", _
"JPEGLosslessPredictors", "JPEGPointTransforms", "JPEGQTables", "JPEGDCTables", "JPEGACTables", "YCbCrCoefficients", "YCbCrSubSampling", _
"YCbCrPositioning", "ReferenceBlackWhite", "ExtensibleMetadataPlatform", "Gamma", "ICCProfileDescriptor", "SRGBRenderingIntent", "ImageTitle", _
"ResolutionXUnit", "ResolutionYUnit", "ResolutionXLengthUnit", "ResolutionYLengthUnit", "PrintFlags", "PrintFlagsVersion", "PrintFlagsCrop", _
"PrintFlagsBleedWidth", "PrintFlagsBleedWidthScale", "HalftoneLPI", "HalftoneLPIUnit", "HalftoneDegree", "HalftoneShape", "HalftoneMisc", _
"HalftoneScreen", "JPEGQuality", "GridSize", "ThumbnailFormat", "ThumbnailWidth", "ThumbnailHeight", "ThumbnailColorDepth", "ThumbnailPlanes", _
"ThumbnailRawBytes", "ThumbnailSize", "ThumbnailCompressedSize", "ColorTransferFunction", "ThumbnailData", "ThumbnailImageWidth", _
"ThumbnailImageHeight", "ThumbnailBitsPerSample", "ThumbnailCompression", "ThumbnailPhotometricInterp", "ThumbnailImageDescription", _
"ThumbnailEquipMake", "ThumbnailEquipModel", "ThumbnailStripOffsets", "ThumbnailOrientation", "ThumbnailSamplesPerPixel", "ThumbnailRowsPerStrip", _
"ThumbnailStripBytesCount", "ThumbnailResolutionX", "ThumbnailResolutionY", "ThumbnailPlanarConfig", "ThumbnailResolutionUnit", _
"ThumbnailTransferFunction", "ThumbnailSoftwareUsed", "ThumbnailDateTime", "ThumbnailArtist", "ThumbnailWhitePoint", _
"ThumbnailPrimaryChromaticities", "ThumbnailYCbCrCoefficients", "ThumbnailYCbCrSubsampling", "ThumbnailYCbCrPositioning", "ThumbnailRefBlackWhite", _
"ThumbnailCopyRight", "LuminanceTable", "ChrominanceTable", "FrameDelay", "LoopCount", "PixelUnit", "PixelPerUnitX", "PixelPerUnitY", _
"PaletteHistogram", "RelatedImageFileFormat", "ImageID", "Matteing", "DataType", "ImageDepth", "TileDepth", "CFARepeatPatternDim", "CFAPattern", _
"BatteryLevel", "Copyright", "ExposureTime", "FNumber", "IPTC/NAA", "IT8RasterPadding", "IT8ColorTable", "ImageResourceInformation", "ExifOffset", _
"InterColorProfile", "ExposureProgram", "SpectralSensitivity", "GPSInfo", "ISOSpeedRatings", "OECF", "ExifVersion", "DateTimeOriginal", _
"DateTimeDigitized", "ComponentsConfiguration", "CompressedBitsPerPixel", "ShutterSpeedValue", "ApertureValue", "BrightnessValue", _
"ExposureBiasValue", "MaxApertureValue", "SubjectDistance", "MeteringMode", "LightSource", "Flash", "FocalLength", "MakerNote", "UserComment", _
"SubSecTime", "SubSecTimeOriginal", "SubSecTimeDigitized", "FlashPixVersion", "ColorSpace", "ExifImageWidth", "ExifImageLength", _
"InteroperabilityOffset", "FlashEnergy", "SpatialFrequencyResponse", "Noise", "FocalPlaneXResolution", "FocalPlaneYResolution", _
"FocalPlaneResolutionUnit", "ImageNumber", "SecurityClassification", "ImageHistory", "SubjectLocation", "ExposureIndex", "TIFF_EPStandardID", _
"SensingMethod", "FileSource", "SceneType", "CFAPattern", "CustomRendered", "ExposureMode", "WhiteBalance", "DigitalZoomRatio", _
"FocalLengthIn35mmFilm", "SceneCaptureType", "GainControl", "Contrast", "Saturation", "Sharpness", "DeviceSettingDescription", _
"SubjectDistanceRange", "ImageUniqueID")
ShowTags g, "Exif", "EXIF:", ExifTags
End EventHandler
Function FindFile(name as string) As FolderItem
// Look for file in parent folders from executable on
dim parent as FolderItem = app.ExecutableFile.Parent
while parent<>Nil
dim file as FolderItem = parent.Child(name)
if file<>Nil and file.Exists then
Return file
end if
parent = parent.Parent
wend
End Function
Sub ShowTags(g as GMImageMBS, label as string, prefix as string, tags() as string)
for each t as string in tags
dim tag as string = prefix+t
dim value as string = g.attributeValue(tag)
if value <> "unknown" then
list.AddRow label, tag, value
end if
next
End Sub
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
End Project
See also:
The items on this page are in the following plugins: MBS GraphicsMagick Plugin.