From 5d5f9f52a0cd586fe9ff7ec96c3b5a04d155ae4d Mon Sep 17 00:00:00 2001 From: Nico Weber <thakis@chromium.org> Date: Sun, 26 Feb 2023 13:57:48 -0500 Subject: Utilities: Make `file` print more information for animated images --- Userland/Utilities/file.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Userland') diff --git a/Userland/Utilities/file.cpp b/Userland/Utilities/file.cpp index 7e189dcbf6..3901b004a7 100644 --- a/Userland/Utilities/file.cpp +++ b/Userland/Utilities/file.cpp @@ -37,7 +37,18 @@ static Optional<DeprecatedString> image_details(DeprecatedString const& descript if (!image_decoder) return {}; - return DeprecatedString::formatted("{}, {} x {}", description, image_decoder->width(), image_decoder->height()); + StringBuilder builder; + builder.appendff("{}, {} x {}", description, image_decoder->width(), image_decoder->height()); + if (image_decoder->is_animated()) { + builder.appendff(", animated with {} frames that loop", image_decoder->frame_count()); + int loop_count = image_decoder->loop_count(); + if (loop_count == 0) + builder.appendff(" indefinitely"); + else + builder.appendff(" {} {}", loop_count, loop_count == 1 ? "time" : "times"); + } + + return builder.to_deprecated_string(); } static Optional<DeprecatedString> gzip_details(DeprecatedString description, DeprecatedString const& path) -- cgit v1.2.3