From 6b88ed97fa03ba9e446b59bda223529c4bf5a9de Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Thu, 24 Apr 2025 12:20:18 +0200 Subject: [PATCH 1/2] Implement `Display for ImageFormat` --- .../src/datatypes/image_format_ext.rs | 17 ++++++++++++++++ .../re_component_ui/src/image_format.rs | 20 ++++--------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/crates/store/re_types/src/datatypes/image_format_ext.rs b/crates/store/re_types/src/datatypes/image_format_ext.rs index b637d00d1075..23c7c76f380a 100644 --- a/crates/store/re_types/src/datatypes/image_format_ext.rs +++ b/crates/store/re_types/src/datatypes/image_format_ext.rs @@ -130,3 +130,20 @@ impl ImageFormat { } } } + +impl std::fmt::Display for ImageFormat { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + if let Some(pixel_format) = self.pixel_format { + write!(f, "{} {}×{}", pixel_format, self.width, self.height) + } else { + write!( + f, + "{} {} {}×{}", + self.color_model(), + self.datatype(), + self.width, + self.height + ) + } + } +} diff --git a/crates/viewer/re_component_ui/src/image_format.rs b/crates/viewer/re_component_ui/src/image_format.rs index 46a2b36f2768..bf7f13a45d0a 100644 --- a/crates/viewer/re_component_ui/src/image_format.rs +++ b/crates/viewer/re_component_ui/src/image_format.rs @@ -1,23 +1,11 @@ -use re_types::components::ImageFormat; -use re_viewer_context::{MaybeMutRef, UiLayout, ViewerContext}; +use re_ui::UiLayout; +use re_viewer_context::{MaybeMutRef, ViewerContext}; pub fn edit_or_view_image_format( _ctx: &ViewerContext<'_>, ui: &mut egui::Ui, - value: &mut MaybeMutRef<'_, ImageFormat>, + format: &mut MaybeMutRef<'_, re_types::components::ImageFormat>, ) -> egui::Response { // TODO(#7100): need a ui for editing this! - let value = value.as_ref(); - let label = if let Some(pixel_format) = value.pixel_format { - format!("{} {}×{}", pixel_format, value.width, value.height) - } else { - format!( - "{} {} {}×{}", - value.color_model(), - value.datatype(), - value.width, - value.height - ) - }; - UiLayout::List.data_label(ui, label) + UiLayout::List.data_label(ui, format.as_ref().to_string()) } From 31d48ca984219b5d62d56007f54945719bb97ff4 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Thu, 24 Apr 2025 12:20:52 +0200 Subject: [PATCH 2/2] Show image format (resolution etc) of image blobs --- crates/viewer/re_data_ui/src/blob.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/viewer/re_data_ui/src/blob.rs b/crates/viewer/re_data_ui/src/blob.rs index b2f7b549bf79..5b907635ce67 100644 --- a/crates/viewer/re_data_ui/src/blob.rs +++ b/crates/viewer/re_data_ui/src/blob.rs @@ -129,6 +129,12 @@ pub fn blob_preview_and_save_ui( .ok(); if let Some(image) = &image { + if !ui_layout.is_single_line() { + ui.list_item_flat_noninteractive( + PropertyContent::new("Image format").value_text(image.format.to_string()), + ); + } + let colormap = None; // TODO(andreas): Rely on default here for now. image_preview_ui(ctx, ui, ui_layout, query, entity_path, image, colormap); } else {