fix: art actually looks good now
art was rendering poorly. turns out that after some research, this was due to nearest neighbor downsampling (was not originally aware this could cause this issue). i resolved it and am now using catmull-rom for downsampling, despite it adding some latency to the covers showing. looks much nicer. closes 69b50fc
diff --git a/src/ui.rs b/src/ui.rs
@@ -7,7 +7,7 @@ use ratatui::{
text::{Line, Span},
widgets::{Block, Borders, Clear, Gauge, List, ListItem, Paragraph, Row, Table, Tabs, Wrap},
};
-use ratatui_image::StatefulImage;
+use ratatui_image::{FilterType, Resize, StatefulImage};
use crate::app::{AppMode, AppState};
@@ -213,7 +213,11 @@ fn draw_player(
if hide_art {
f.render_widget(Clear, left_col[0]);
} else if let Some(ref mut protocol) = state.art_protocol {
- f.render_stateful_widget(StatefulImage::new(), left_col[0], protocol);
+ f.render_stateful_widget(
+ StatefulImage::default().resize(Resize::Fit(Some(FilterType::CatmullRom))),
+ left_col[0],
+ protocol,
+ );
} else {
f.render_widget(Paragraph::new("Loading Art...").alignment(Alignment::Center), left_col[0]);
}
@@ -346,7 +350,11 @@ fn draw_library(f: &mut Frame, state: &mut AppState, content: Rc<[Rect]>, bottom
if hide_art {
f.render_widget(Clear, left_col[0]);
} else if let Some(ref mut protocol) = state.selected_art {
- f.render_stateful_widget(StatefulImage::new(), left_col[0], protocol);
+ f.render_stateful_widget(
+ StatefulImage::default().resize(Resize::Fit(Some(FilterType::CatmullRom))),
+ left_col[0],
+ protocol,
+ );
} else if has_art {
f.render_widget(Paragraph::new("Loading Art...").alignment(Alignment::Center), left_col[0]);
} else {
@@ -415,7 +423,11 @@ fn draw_history(f: &mut Frame, state: &mut AppState, content: Rc<[Rect]>, bottom
if hide_art {
f.render_widget(Clear, left_col[0]);
} else if let Some(ref mut protocol) = state.selected_history_art {
- f.render_stateful_widget(StatefulImage::new(), left_col[0], protocol);
+ f.render_stateful_widget(
+ StatefulImage::default().resize(Resize::Fit(Some(FilterType::CatmullRom))),
+ left_col[0],
+ protocol,
+ );
} else if has_art {
f.render_widget(Paragraph::new("Loading Art...").alignment(Alignment::Center), left_col[0]);
} else {