Menu

EXIF Photo Create Date

2014-11-11
2025-08-13
  • Michael Lee

    Michael Lee - 2014-11-11

    Mark -

    Very nice app, and I can tell you have put a lot of effort into it. Using it with a Galaxy Note 8 I have noticed that it does not record EXIF:CreateDate or EXIF:DateTimeOriginal tags. This is vital metadata which is typically recorded by every digital camera manufactured today, but (unfortunately) not by Open Camera. Might you investigate why this information isn't being recorded? Galaxies record this metadata natively, so I would think it should be available to you.

    Thanks,
    Mike

     
    • Mark

      Mark - 2014-12-14

      Do you have any of the options Auto-stabilise, "Stamp photos" or "Store location data" set? A known issue with any of these options is that some Exif data will be used. For the first two options, it's because I have to edit and resave the image - I can transfer some Exif data, but the Android API for handling Exif tags can't read these. For the third, it's because there seems to be a bug in the Android Exif API which results in some existing Exif tags being lost when I write the tags for direction. To fix these probably requires me to write my own Exif handling routines. In the meantime, I'll update the documentation, and make it so that storing GPS direction is a separate option to location.

      If none of those options is set, I'm not sure - the Exif tags in that case aren't added or modified by Open Camera, they should be set automatically by the camera driver.

       
  • Anonymous

    Anonymous - 2014-12-08

    I also noticed this on a OnePlus One. No EXIF info seems to be saved (apperture, ISO, etc)

     
  • Anonymous

    Anonymous - 2015-11-02

    The same on a OnePlus Two, which makes this app basically useless (for me), because I use this data to categorize my pictures (and most gallery apps do).

     
  • Mark

    Mark - 2015-11-03

    Do either of you have answers to my questions in the reply above?

     
    • Anonymous

      Anonymous - 2016-01-26

      Hi Mark & others:

      I am having another metadata issue. In windows, it turns out that the .MP4 file does not contain the metadata framerate, frame height, and frame width. I need this metadata in the "windows" metadata fields for import into various video editing software. I did make certain "Auto-stabilise, "Stamp photos" or "Store location data" were all turned off based on your comments above. I cannot find any other way to update these fields, so if it could come directly with the video file shot with Open Camera, that would be great. I am attaching a pic in hopes of communicating my issue more clearly.

      Thanks, and I do really like other features of the program so thank you for a well thought out App.

      Chris

       
  • hector

    hector - 2016-03-01

    I have the same problem, for example if a picture is opened with "exifviewer" (android app) a bunch of "unkonwn tag" appear. Acdsee confirms this by not reconising nor showing any metadata.. :-(

     
    • Mark

      Mark - 2016-03-23

      What happens if you try with another third party camera app - are there ones which record the exif tags you're after?

       
  • Chris

    Chris - 2016-03-28

    Mark, I dont get exif data when using Camera2 api. If i disable, exif data is there correctly. I am running on a nexus 6p. Let me know if i can help troubleshoot

     
  • Anonymous

    Anonymous - 2016-09-11

    My exif data was saving until I reinstalled OpenCamera yesterday. Now, the created date is not saved. The GPS data is saved. Is there a bug? If I disable "Store location data (Geotagging)" nd "Use Camera2 API", the created date is saved.

     

    Last edit: Anonymous 2016-09-11
  • Anonymous

    Anonymous - 2018-04-04

    Hi,

    I have the opposite question: is it possibile to prevent Open Camera saving any EXIF data, e.g. Phone model, Phone brand, software, etc...?

    Thanks

     
    • Mark

      Mark - 2018-05-19

      This isn't supported I'm afraid. (I suppose there could be an option strip all the tags, but note it would slow down saving of photos.)

       
  • Anonymous

    Anonymous - 2019-01-08

    @Mark
    Is it difficult to implement an option to disable saving EXIF metadata?
    I don't know a lot about Android development but it sounds simple enough to me.
    Is there a specific reason why you choose not to add such a feature?

     
    • Kroko

      Kroko - 2019-01-11

      Hi,
      If you need to remove EXIF metada, you still can do it afterwards (on your PC) with ExifTool.
      For instance to remove all EXIF metada in a picture called "filename.jpg", you simply need to write the following command line:
      exiftool -all= filename.jpg
      ExifTool is really powerfull and you can do much (much) more to match any need you might have. Next step being to perform this recursively for all the pictures in one folder, etc.

       
      • Anonymous

        Anonymous - 2019-01-12

        I know we can use other tools to remove EXIF metadata. But sometimes you want to snap a picture real quick and send it to someone. There are other Camera apps with the option to disable EXIF metadata which saves a lot of time.
        None of those apps hold a candle to Open Camera though, which is why I was hoping we might see this feature implemented in the future.

         
    • Mark

      Mark - 2019-01-12

      It's on my todo, so hopefully in future. (Also see https://sourceforge.net/p/opencamera/tickets/315 .)

       
      • Anonymous

        Anonymous - 2019-01-12

        Oh, I wasn't aware of that. Thanks for the reply.
        The app is amazing btw. Keep up the good work!

         
  • Anonymous

    Anonymous - 2019-07-29

    Subject: Missing EXIF info in OpenCamera DNG files

    I found that taking RAW photos using OpenCamera on my Android phone appeared to yield DNG photos with missing EXIF data. The data is not really missing. However, many photo editing programs can’t read the “missing EXIF data”. The only EXIF data I see from OpenCamera original RAW files is GPS data. The solution for me on my Mac is to use the free Adobe DNG Converter app to convert the original RAW photos to Adobe’s standard DNG. After that, photo editing programs and the Mac’s Preview app will show you the aperture, shutter speed, focal length and ISO speed. This data then carries through to edited files such as tif or jpg.

     
  • Anonymous

    Anonymous - 2019-09-13

    Hello, hoping someone can provide some info on missing exif data for the focal length when using Open Camera. Please see attached.

    When I view exif for an image that was captured with the OnePlus 7 Pro native camera app, I am able to tell that the user zoomed in on the image by reviewing the focal length data.

    When I view exif for an image that was captured with the Open Camera app, I am unable to tell that the user zoomed in on the image by reviewing the focal length data. The focal length info shows that the image was not zoomed and the focal length data reports the data at the default zoom level - even though zoom was used.

    Screenshot will help explain. Thank you.

     
  • Anonymous

    Anonymous - 2019-09-13

    Forgot to ask my question for the above post [https://sourceforge.net/p/opencamera/discussion/general/thread/fe0ff616/#97ce]

    Are there any settings in Open Camera to make this better?
    Can this feature be added to future updates?

     
  • Anonymous

    Anonymous - 2022-04-11

    Marvelous app!
    But i am missing exif data in dng. Any chance to fix this sooner or later?
    Especially as my device has three cameras. (Within the DNG files there are all named as device 2)
    Asked by a thankful user.

    AtB
    M.

     
  • Anonymous

    Anonymous - 2023-11-04

    Hi,

    I use OC in the latest Release on my Pixel 7 Pro With Camera2-API. In DNG no create date will be written.

     
  • Glenn 'devalias' Grant

    To mildly necromance this thread, a friend who uses this app sent my some raw .dng photos recently, and when I imported them into my iPhone gallery, they didn't seem to have appropriate metadata for the time the photo was taken, camera exposure/lens settings, etc.

    Digging into this further with exiftool, it seems that a lot of that information is actually there, it's just written incorrectly. eg. A lot of the tags were written into IFD0, rather than ExifIFD. I suspect this is likely the root cause as to why a lot of apps fail to read/parse the data that people have been mentioning in this thread; and why others have been able to fix it by using a conversion tool/similar (that likely uses smarter parsers, and/or has built in fixes for correcting invalid metadata tags)

    I ended up deep diving on it a bit for my specific use case, and found the following exiftool warning / validate command useful for seeing what was wrong:

     exiftool -G1 -a -s -warning -validate myimage.dng
    
    [ExifTool]      Warning                         : Wrong IFD for 0x829a ExposureTime (should be ExifIFD not IFD0)
    [ExifTool]      Warning                         : Wrong IFD for 0x829d FNumber (should be ExifIFD not IFD0)
    [ExifTool]      Warning                         : Wrong IFD for 0x8827 ISO (should be ExifIFD not IFD0)
    [ExifTool]      Warning                         : Wrong IFD for 0x9003 DateTimeOriginal (should be ExifIFD not IFD0)
    [ExifTool]      Warning                         : Wrong IFD for 0x920a FocalLength (should be ExifIFD not IFD0)
    [ExifTool]      Warning                         : [minor] Non-standard IFD0 tag 0x9216 TIFF-EPStandardID
    [ExifTool]      Validate                        : 6 Warnings (1 minor)
    

    I also used exiftool to inspect what DateTime/etc tags my iPhone seemed to set for photos it took, and worked out that the main tag it seemed to care about/use was ExifIFD:DateTimeOriginal.

    Using what I learned from all of this, I ended up hacking together a little exiftool command to copy the tags I cared about from IFD0 to ExifIFD to fix the images my friend sent me; which basically ends up being:

    # exiftool flag reference:
    #   -G1                      → Show tag group names at the top level
    #   -a                       → Allow duplicate tags to be displayed (don’t suppress repeats)
    #   -s                       → Use short tag names instead of long descriptive names
    #
    #   -v2                      → Verbose mode, level 2 (extra processing details)
    #   -wm c                    → Write mode “create only” (add tag if missing, don’t overwrite)
    #
    #   -time:all                → Display all date/time tags from all groups
    #   -ExposureTime            → Display shutter speed
    #   -FNumber                 → Display aperture value (f-stop)
    #   -ISO                     → Display ISO sensitivity
    #   -FocalLength             → Display focal length
    #
    #   -execute                 → End the current set of arguments and start a new exiftool operation in the same process (used to chain multiple steps without restarting exiftool)
    #   -if 'expr'               → Only execute command if expression evaluates to true
    #   -Group:Tag=VALUE         → Set a tag to a fixed value (e.g., -ExifIFD:OffsetTime=${OFFSET})
    #   -Group:Tag* = VALUE      → Set the same value for all tags in the group that match the prefix
    #   -Group1:Tag1<Group2:Tag2 → Copy a tag’s value from another tag/group
    #   -common_args             → Arguments applied to all -execute segments in the run
    
    OFFSET="+10:00"
    FILE="example.jpg"
    
    exiftool \
      -echo "===== FULL METADATA: ORIGINAL =====" \
        -G1 -a -s \
      -execute -echo '' -echo '' -echo '===== SELECTED TAGS: BEFORE CHANGES =====' \
        -G1 -a -s \
        -time:all -ExposureTime -FNumber -ISO -FocalLength \
      \
      -execute -echo '' -echo ''  -echo '===== COPY MISSING EXIF TAGS FROM IFD0 =====' \
        -v2 \
        -if 'not $ExifIFD:DateTimeOriginal and $IFD0:DateTimeOriginal' "-ExifIFD:DateTimeOriginal<IFD0:DateTimeOriginal" \
        -if 'not $ExifIFD:ExposureTime     and $IFD0:ExposureTime'     "-ExifIFD:ExposureTime<IFD0:ExposureTime" \
        -if 'not $ExifIFD:FNumber          and $IFD0:FNumber'          "-ExifIFD:FNumber<IFD0:FNumber" \
        -if 'not $ExifIFD:ISO              and $IFD0:ISO'              "-ExifIFD:ISO<IFD0:ISO" \
        -if 'not $ExifIFD:FocalLength      and $IFD0:FocalLength'      "-ExifIFD:FocalLength<IFD0:FocalLength" \
      \
      -execute -echo '' -echo '' -echo '===== ADD IPHONE-STYLE TAGS FOR COMPATIBILITY =====' \
        -wm c -v2 \
        "-ExifIFD:CreateDate<EXIF:DateTimeOriginal" \
        "-ExifIFD:OffsetTime=${OFFSET}" \
        "-ExifIFD:OffsetTimeOriginal=${OFFSET}" \
        "-ExifIFD:OffsetTimeDigitized=${OFFSET}" \
        "-XMP-xmp:CreateDate<EXIF:DateTimeOriginal" \
        "-XMP-xmp:ModifyDate<EXIF:DateTimeOriginal" \
        "-XMP-photoshop:DateCreated<EXIF:DateTimeOriginal" \
        "-IFD0:ModifyDate<EXIF:DateTimeOriginal" \
      \
      -execute -echo '' -echo '' -echo '===== SELECTED TAGS: AFTER CHANGES =====' \
        -G1 -a -s \
        -time:all -ExposureTime -FNumber -ISO -FocalLength \
      -common_args "$FILE"
    

    I also wrapped this up as a zsh helper script, which I committed to my dotfiles, which is open-source and can be found here:

    Hopefully this helps someone in future; and maybe gives some idea of where might be needed to be tweaked to fix this properly within the opencamera app itself.

     
  • Glenn 'devalias' Grant

    I was mildly curious, so I downloaded a snapshot of the source code and had OpenAI Codex look over it to see where metadata stuff is set with this prompt:

    What parts of the source code relate to writing metadata into raw (eg .dng) image files? Specifically DateTimeOriginal or similar

    Which resulted in this summary of notes:

    codex
    Here’s where RAW/DNG metadata is handled and what’s set.

    • DNG creation: CameraController2.processImage
    • Path: app/src/main/java/net/sourceforge/opencamera/cameracontroller/CameraCo
      ntroller2.java
    • Key calls: creates DngCreator(characteristics, capture_result), then sets
      setOrientation(...) and, if available, setLocation(...). Example: around lin
      es ~1911–1916.
    • No code here sets any date/time tags (e.g., DateTimeOriginal).

    • DNG writing: RawImage.writeImage

    • Path: app/src/main/java/net/sourceforge/opencamera/cameracontroller/RawImage
      .java
    • Writes the file via dngCreator.writeImage(output, image). All metadata com
      es from DngCreator and the CaptureResult. No explicit EXIF/date handling is
      done here.

    • RAW save flow: ImageSaver.saveImageNowRaw

    • Path: app/src/main/java/net/sourceforge/opencamera/ImageSaver.java
    • Handles file/URI creation and invokes raw_image.writeImage(output). It doe
      s not modify or inject EXIF for DNG.

    • EXIF date/time handling (JPEG only): ImageSaver

    • Paths: app/src/main/java/net/sourceforge/opencamera/ImageSaver.java
    • Relevant methods:
      • transferDeviceExifDateTime(...): copies TAG_DATETIME, TAG_DATETIME_ORIGI
        NAL, TAG_DATETIME_DIGITIZED, subsec/offset tags.
      • addDateTimeExif(...): adds TAG_DATETIME, TAG_DATETIME_ORIGINAL, TAG_DATE
        TIME_DIGITIZED (and offset-time tags on API 24+) if missing (used for vendor ext
        ensions).
      • modifyExif(...), setExifFromData(...), updateExif(...): all operate
        via androidx.exifinterface.media.ExifInterface and are only used for JPEG path
        s.
    • None of these are invoked for DNG.

    Summary
    - For RAW/DNG, metadata is limited to what DngCreator writes; the code sets or
    ientation and GPS (if present) but does not set DateTime/DateTimeOriginal.
    - Date/time tags are explicitly added/fixed only for JPEGs via ExifInterface in
    ImageSaver. If you need DateTimeOriginal in DNG, the current codebase doesn’t ad
    d it; you’d need to extend DNG metadata writing (Android’s DngCreator API does n
    ot expose date/time setters, so this likely requires post-processing or a differ
    ent approach).

    This isn't something I'm personally planning on looking any deeper into, but figured this might give someone else a bit of a starting point idea of where they might be able to look to solve this further.

    Some links related to the above:

    And to some of the mentioned Android APIs:

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.