EXIF editor you could recommend

Tagged: , , ,

Viewing 6 reply threads
  • Author
    Posts
  • April 27, 2021 at 11:54 AM #44249

    Terence Dodge
    Participant

    Hello Group
    Is there a or a couple of EXIF editors that would be compatible with Tap Forms? Looking for something that will run on the iPad, the Mac version also would be good if there was iPad/Mac compatibility. My thought was to use Tap Forms as a DAM database but I need the EXIF data for better informing me of various images “shot” characteristics. Is there way to run a separate program or app as an extension from within TF?

    Thanks for your time reading and thoughts on this.

    Terence

    April 27, 2021 at 11:33 PM #44253

    Brendan
    Keymaster

    Hello Terence,

    I’m not really sure what EXIF app would be compatible as Tap Forms doesn’t really deal with EXIF data. Whatever data is in the image should just be there. But Tap Forms doesn’t have a facility to extract out the EXIF data to display it to the user. You can always export the photo and open it with Preview to see the EXIF data though.

    Thanks,

    Brendan

    April 28, 2021 at 8:58 AM #44260

    Daniel Leu
    Participant

    It would be cool if TapForms would provide access to the exif data. This could be done by using Phil Harvey’x ExifTool.

    April 28, 2021 at 8:30 PM #44262

    Sam Moffatt
    Participant

    If there isn’t a need to do write access, read only access via the scripting API might make sense. Potentially something wrapping NSImageEXIFData might be interesting: https://developer.apple.com/documentation/appkit/nsimageexifdata?language=objc

    I tried last night to see if I could use a native JS implementation to do something with the data but couldn’t figure out a way to get to the image attachment from JS. I then tried to download via Utils.getDataFromUrl() but couldn’t bridge the gap with the JS EXIF library I picked up.

    April 28, 2021 at 11:13 PM #44265

    Brendan
    Keymaster

    It looks like NSImageEXIFData is only available on macOS.

    I actually already have code to fetch the EXIF data from an image at a URL:

    + (NSDictionary *)getExifDataFromImageUrl:(NSURL *)url {
    	
    	NSDictionary *exifData = nil;
    	
    	CGImageSourceRef mySourceRef = CGImageSourceCreateWithURL((__bridge CFURLRef)url, NULL);
    	if (mySourceRef != NULL) {
    		NSDictionary *myMetadata = (__bridge NSDictionary *)CGImageSourceCopyPropertiesAtIndex(mySourceRef,0,NULL);
    		exifData = [myMetadata objectForKey:(NSString *)kCGImagePropertyExifDictionary];
    	}
    	
    	return exifData;
    }

    Perhaps I could expose it to the scripting engine.

    I use this method to get the photo’s timestamp so when you export the photos, Tap Forms can set the file’s creation date to the photo’s original date/time value.

    May 12, 2021 at 12:10 PM #44369

    T.L. Ford
    Participant

    Sam, how to get the image from the data: http://cattail.nu/tap_forms/tapforms_photo_extract/index.html – This doesn’t solve the above issue, but I point it out for “dealing with images” trivia. Brendan putting in code is the best solution to the actual problem.

    Something could theoretically be done that goes from “extract photos”, “grab exif data to csv”, “import csv”, “link to original record”. In a very cludgy, ewww! type workflow.

    May 13, 2021 at 1:06 AM #44377

    Sam Moffatt
    Participant

    That’s an interesting approach, I didn’t think of a full export cycle, I was trying to get at it via scripting. That gets me thinking about leveraging something outside the ecosystem.

    I’d probably lean on CouchDB and use that to watch it’s change log and then each time a record with an image is added, process it in something I’m comfortable in (generally PHP) and then just have that rewrite the entry in CouchDB. If I needed it to be responsive, I’d probably set a smaller timeout and try to wait for a quiet period on the record (older than five minutes?) before triggering the update so as to not be too disruptive and create conflicts. It could be an overnight thing so that it minimises the risk of conflicts as well but that experience wise isn’t great. Now I’m riffing maybe even have a script trigger to extract the record, process the data and hand it back to Tap Forms then have TF handle updating the record so at least the users TF document is consistent and the writes are generally going in one direction.

    Fun problem to solve :)

Viewing 6 reply threads

You must be logged in to reply to this topic.