diff --git a/Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp b/Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp index 6356d73738..2a81897245 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp +++ b/Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp @@ -523,9 +523,12 @@ private: return read_every_values.template operator()>(); case Type::SignedLong: return read_every_values.template operator()(); - ; case Type::SignedRational: return read_every_values.template operator()>(); + case Type::Float: + return read_every_values.template operator()(); + case Type::Double: + return read_every_values.template operator()(); default: VERIFY_NOT_REACHED(); } diff --git a/Userland/Libraries/LibGfx/TIFFGenerator.py b/Userland/Libraries/LibGfx/TIFFGenerator.py index c42b86f04e..32766f2540 100755 --- a/Userland/Libraries/LibGfx/TIFFGenerator.py +++ b/Userland/Libraries/LibGfx/TIFFGenerator.py @@ -214,6 +214,8 @@ def export_tag_related_enums(tags: List[Tag]) -> str: def promote_type(t: TIFFType) -> TIFFType: if t == TIFFType.UnsignedShort: return TIFFType.UnsignedLong + if t == TIFFType.Float: + return TIFFType.Double return t @@ -232,6 +234,10 @@ def tiff_type_to_cpp(t: TIFFType, with_promotion: bool = True) -> str: return 'u32' if t == TIFFType.UnsignedRational: return 'TIFF::Rational' + if t == TIFFType.Float: + return 'float' + if t == TIFFType.Double: + return 'double' raise RuntimeError(f'Type "{t}" not recognized, please update tiff_type_to_read_only_cpp()') @@ -397,7 +403,7 @@ struct Rational {{ {export_promoter()} // Note that u16 is not include on purpose -using Value = Variant, i32, Rational>; +using Value = Variant, i32, Rational, double>; {export_tag_related_enums(known_tags)} @@ -487,7 +493,6 @@ def generate_tag_handler(tag: Tag) -> str: def generate_tag_handler_file(tags: List[Tag]) -> str: - formatter_for_tag_with_enum = '\n'.join([fR""" case {tag.id}: return MUST(String::from_utf8( name_for_enum_tag_value(static_cast<{tag.associated_enum.export_name()}>(v.get()))));"""