Skip to content

piexif.dump() cannot handle tuple for Exif tag code 37121 (ComponentsConfiguration) #83

@ghost

Description

Minimal example:

import piexif
exif = piexif.load("picture.jpg")

cc = exif['Exif'].get(37121)  # ComponentsConfiguration
print(type(cc), cc)           # <class 'tuple'> (1, 2, 3, 0)

exif_bytes = piexif.dump(exif)

Raises:

ValueError: "dump" got wrong type of exif value.
37121 in Exif IFD. Got as <class 'tuple'>.

Link to ComponentsConfiguration definition

Workaround:

import piexif
exif = piexif.load("picture.jpg")

cc = exif['Exif'].get(37121)
if isinstance(cc, tuple):
    exif['Exif'][37121] = ",".join([str(v) for v in cc]).encode("ASCII")

exif_bytes = piexif.dump(exif)

Picture (taken with Samsung Galaxy S III mini):
picture

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions