{ "id": "64059", "key": "TIMOB-3427", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "10000", "description": "", "name": "Done" }, "resolutiondate": "2017-08-26T19:07:37.000+0000", "created": "2011-04-15T03:45:04.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [], "versions": [], "issuelinks": [ { "id": "14036", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "64058", "key": "TIMOB-3426", "fields": { "summary": "Android: utilize exif data, by implementing ExifInterface", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Trivial", "id": "5" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "30154", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "116664", "key": "TIMOB-14559", "fields": { "summary": "Android: imageAsResized and imageAsThumbnail don't include EXIF data", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "52855", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "99639", "key": "TIMOB-10567", "fields": { "summary": "Ti API: Expose EXIF data of an image through Titanium API", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2018-10-30T07:36:55.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10224", "name": "TiAPI", "description": "This component is used for cross-platform API work. Specifications are most likely to use this component." } ], "description": "As Exif data is stored in photo files created using the device camera, it can be exploited to simplify apps as the information does not need to be implemented/duplicated using the DB. Hence, propose that access to the data be considered for inclusion in a future release.\r\n\r\nThis functionality is available for iOS from version 4.0, according to http://developer.appcelerator.com/helpdesk/view/63941.\r\n\r\nThis request also raised for Android.", "attachment": [], "flagged": false, "summary": "Ti API: Provide EXIF data interface", "creator": { "name": "hal", "key": "hal", "displayName": "hal", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "rpfeiffer", "key": "rpfeiffer", "displayName": "Ralf Pfeiffer", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 939, "state": "closed", "name": "2017 Sprint 17 SDK", "startDate": "2017-08-13T23:08:29.095Z", "endDate": "2017-08-27T23:08:00.000Z", "completeDate": "2017-08-27T21:10:54.125Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "130691", "author": { "name": "ken-ichiueda", "key": "ken-ichiueda", "displayName": "Ken-ichi Ueda", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I would love this functionality. I maintain an Appcelerator-based app for recording natural history observations (http://itunes.apple.com/us/app/inaturalist/id421397028?mt=8) and several people have asked me to add the ability to add observations from existing photos on their phone, and it would be enormously helpful if I could pull out the datetime and GPS info from the photos. I can't do it without access to EXIF data, though.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:45:05.000+0000", "updated": "2014-03-04T22:59:37.000+0000" }, { "id": "162614", "author": { "name": "tylerqueen", "key": "tylerqueen", "displayName": "Tyler Queen", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I would like to see this feature added as well.", "updateAuthor": { "name": "tylerqueen", "key": "tylerqueen", "displayName": "Tyler Queen", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-08-11T12:28:47.000+0000", "updated": "2011-08-11T12:28:47.000+0000" }, { "id": "162919", "author": { "name": "jayliu", "key": "jayliu", "displayName": "Jay Liu", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I filed the original HD ticket, which is now [here|http://support.appcelerator.com/tickets/NUL-37132-362] on the new helpdesk. Early this month I filed a follow up ticket [APP-955238|https://support.appcelerator.com/tickets/APP-955238] with a link to [implementation details|http://infinite-sushi.com/2011/02/iphone-and-exif-revisited/] for EXIF and location support. Support staff said they will discuss availability of this feature \"early next week\" so we should hear some news soon.", "updateAuthor": { "name": "jayliu", "key": "jayliu", "displayName": "Jay Liu", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-08-16T02:19:00.000+0000", "updated": "2011-08-16T02:19:00.000+0000" }, { "id": "174051", "author": { "name": "alfredchiesa", "key": "alfredchiesa", "displayName": "Alfred Chiesa", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Has this Object-C code been converted to a useable Ti.Module? The code looks solid and having access to *[representation metadata]* should give all the access one would need for Exif.\r\n\r\nWhile this does't solve the problem for Android, it should be out there for iOS.", "updateAuthor": { "name": "alfredchiesa", "key": "alfredchiesa", "displayName": "Alfred Chiesa", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-11-28T11:26:03.000+0000", "updated": "2011-11-28T11:26:03.000+0000" }, { "id": "174555", "author": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "body": "Reassigning this popular ticket, due to Reggie's absence.", "updateAuthor": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "created": "2011-12-02T05:51:59.000+0000", "updated": "2011-12-02T05:51:59.000+0000" }, { "id": "174584", "author": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I've converted this to a TiAPI feature request. Note: This will probably not be implemented in core platform, but may be moved to an external module. This is TBD.", "updateAuthor": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-12-02T10:15:18.000+0000", "updated": "2011-12-02T10:15:18.000+0000" }, { "id": "174614", "author": { "name": "alfredchiesa", "key": "alfredchiesa", "displayName": "Alfred Chiesa", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Don, serious cash of baked goods or beverages be the reward for this feature/module. Been needing this for a long time.", "updateAuthor": { "name": "alfredchiesa", "key": "alfredchiesa", "displayName": "Alfred Chiesa", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-12-02T11:35:53.000+0000", "updated": "2011-12-02T11:35:53.000+0000" }, { "id": "174616", "author": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Alfred, I'm working on a module for this now. Ping me on twitter at @benCoding in about two weeks.", "updateAuthor": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-12-02T11:39:58.000+0000", "updated": "2011-12-02T11:39:58.000+0000" }, { "id": "174619", "author": { "name": "alfredchiesa", "key": "alfredchiesa", "displayName": "Alfred Chiesa", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Ben, if goods delivered, same reward for you sir. ", "updateAuthor": { "name": "alfredchiesa", "key": "alfredchiesa", "displayName": "Alfred Chiesa", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-12-02T11:45:31.000+0000", "updated": "2011-12-02T11:45:31.000+0000" }, { "id": "195939", "author": { "name": "d4v1d", "key": "d4v1d", "displayName": "David Knell", "active": true, "timeZone": "America/New_York" }, "body": "What is the status of this? There appears to be a great deal of interest, yet not much progress. ETA???", "updateAuthor": { "name": "d4v1d", "key": "d4v1d", "displayName": "David Knell", "active": true, "timeZone": "America/New_York" }, "created": "2012-05-24T09:02:58.000+0000", "updated": "2012-05-24T09:02:58.000+0000" }, { "id": "202125", "author": { "name": "d4v1d", "key": "d4v1d", "displayName": "David Knell", "active": true, "timeZone": "America/New_York" }, "body": "Don, \r\nIt seems like it would make sense to implement this into the Titanium.Media.openPhotoGallery success callback (as opposed to a TiAPI function). You could pass the EXIF data back in the CameraMediaItemType object. Based on the comments, I think this would satisfy all of the requirements.\r\n\r\nThoughts?\r\n\r\nThanks,\r\nDave", "updateAuthor": { "name": "d4v1d", "key": "d4v1d", "displayName": "David Knell", "active": true, "timeZone": "America/New_York" }, "created": "2012-07-09T11:52:02.000+0000", "updated": "2012-07-09T11:52:02.000+0000" }, { "id": "245323", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Please provide a SWAG.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-04-02T23:16:06.000+0000", "updated": "2013-04-02T23:16:06.000+0000" }, { "id": "263930", "author": { "name": "qonstrukt", "key": "qonstrukt", "displayName": "Stefan Moonen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "While waiting for an official solution I've built a module which provides simple access to Androids ExifInterface class, and provides a simple utility method to automatically rotate an image, resize it to the appropriate size and compress it as a JPEG in one pass.\r\n\r\nNo solution for iOS yet, and I'm sure it won't help in everybody's situation, but it helps us for the time being.\r\n\r\nYou can find it here:\r\nhttps://github.com/freshheads/fh.imagefactory", "updateAuthor": { "name": "qonstrukt", "key": "qonstrukt", "displayName": "Stefan Moonen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-07-30T14:12:25.000+0000", "updated": "2013-07-30T14:13:14.000+0000" }, { "id": "266021", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "body": "Stefan, thank you for the module! Working fine. Now I know how and when to rotate an image taken in portrait mode on different Android phones.", "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-08-12T19:16:52.000+0000", "updated": "2013-08-12T19:16:52.000+0000" }, { "id": "285357", "author": { "name": "andrejlr", "key": "andrejlr", "displayName": "Dre Wingman", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Definitely would like to see this soon.\r\n\r\nWill this also cover, setting the exif data from you app with Titanium.Media.showCamera?\r\nAs for now, when you take a picture from your app and you even mirror it to the camera roll, there is either no exif data on the image.\r\n\r\nBelow is the native way for saving exif along with the camera picture on ios from a 3d party app\r\nhttp://stackoverflow.com/questions/10166575/photo-taken-with-camera-does-not-contain-any-alasset-metadata", "updateAuthor": { "name": "andrejlr", "key": "andrejlr", "displayName": "Dre Wingman", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-20T10:23:28.000+0000", "updated": "2013-12-20T10:52:56.000+0000" }, { "id": "295659", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "As a note, there is also this implementation of the functionality: https://github.com/gstreetmedia/Titanium-Mobile-ExifData. Has anyone encountered any limitations using this code?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-03-04T22:58:34.000+0000", "updated": "2014-03-04T23:00:20.000+0000" }, { "id": "300090", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Given limited feedback on my last comment, assuming that existing module works well enough, so downgrading priority.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-04-07T20:12:33.000+0000", "updated": "2014-04-07T20:12:33.000+0000" }, { "id": "338021", "author": { "name": "sophrinix", "key": "sophrinix", "displayName": "Andrew McElroy", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This is not a solved problem. Try it with titanium 4.2.1.GA. \r\n\r\nI'll have a more coherent write up sometime this week. \r\nBottom line, is right now there is no good EXIF solution in titanium at the moment that reliably works with 4.2.1.GA + shows the exif data + shows the gps data.\r\n\r\nIf you can produce an example that satisfies those three requirements, I am all ears.", "updateAuthor": { "name": "sophrinix", "key": "sophrinix", "displayName": "Andrew McElroy", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-01-06T20:10:17.000+0000", "updated": "2015-01-06T20:11:08.000+0000" }, { "id": "427284", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey there! I've made a quick module to get rid of this ticket, try it out [here|https://github.com/hansemannn/titanium-exif]. Example:\r\n{code:js}\r\n EXIF.scanEXIFDataFromImage({\r\n image: Ti.Filesystem.getFile('test.jpg').read(),\r\n tags: [271], // Array of tags, here: Manufacturer\r\n callback: function(e) {\r\n Ti.API.warn(e.exif);\r\n }\r\n });\r\n{code}\r\nSee [this page|http://www.awaresystems.be/imaging/tiff/tifftags/search.html?q=271&Submit=Find+Tags] for the example tag and all other tags to search.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-08-26T19:07:13.000+0000", "updated": "2017-08-26T19:07:13.000+0000" }, { "id": "439866", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closed as completed. If this is in error, please reopen.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-08-06T17:34:51.000+0000", "updated": "2018-08-06T17:34:51.000+0000" }, { "id": "440697", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "I have to admit receiving a notification on this post today made me chuckle! It only took 6 years and still doesn't have a fix version attached just some link to other people's modules :(", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2018-08-13T15:08:52.000+0000", "updated": "2018-08-13T15:08:52.000+0000" }, { "id": "440704", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~ndastur] It was closed because it is already available, but as a module and not inside the SDK. You can use EXIF without issues since a while, try it out with the above links.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-08-13T18:10:16.000+0000", "updated": "2018-08-13T18:10:16.000+0000" }, { "id": "443065", "author": { "name": "zozo4kin", "key": "zozo4kin", "displayName": "Zakhar Zhuravlev", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This module crashes an app with 7.4.1.GA SDK. Without any logs, even in trace mode.", "updateAuthor": { "name": "zozo4kin", "key": "zozo4kin", "displayName": "Zakhar Zhuravlev", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-10-30T07:36:55.000+0000", "updated": "2018-10-30T07:36:55.000+0000" } ], "maxResults": 23, "total": 23, "startAt": 0 } } }