Fixed cutting off of background in images

This commit is contained in:
p11 2025-04-18 21:32:44 +02:00
parent 8d9da220d5
commit 504f397a9a

View File

@ -13,22 +13,22 @@ use crate::dialog::parse_map;
fn render_scene(settings: &PlayerSettings, name: &str, output: &mut Vec<u8>) { fn render_scene(settings: &PlayerSettings, name: &str, output: &mut Vec<u8>) {
for object in &settings.objects.objects { for object in &settings.objects.objects {
let Some(image_set) = object.image.get(name) else { if let Some(image_set) = object.image.get(name) {
continue;
};
for image in &settings.images.images[image_set] { for image in &settings.images.images[image_set] {
let Some(image) = image.get_ref(name) else { let Some(image) = image.get_ref(name) else {
continue; continue;
}; };
let _ = writeln!( let _ = write!(
output, output,
"<img src={image:?} style='max-height: 100%; max-width: 100%; object-fit: cover'/>" r#"<div style="position:relative; height:100%; width:100%; overflow:hidden">
<img src={image:?} style="height:100%; width:auto; object-fit:contain; position:absolute; left:50%; transform:translateX(-50%)">
</div>"#,
); );
} }
} }
} }
}
pub fn render_novel( pub fn render_novel(
mut config_map: IndexMap<Box<str>, Box<str>>, mut config_map: IndexMap<Box<str>, Box<str>>,
@ -236,6 +236,7 @@ pub fn render_novel(
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative; position: relative;
overflow: hidden;
} }
.scene-section { .scene-section {
@ -245,6 +246,7 @@ pub fn render_novel(
width: 100%; width: 100%;
height: 100%; height: 100%;
display: none; display: none;
aspect-ratio: 16/9;
} }
.scene-section[style*='block'] { .scene-section[style*='block'] {
@ -254,12 +256,13 @@ pub fn render_novel(
} }
.scene-section img { .scene-section img {
width: 100%;
height: 100%; height: 100%;
object-fit: cover; width: auto;
object-fit: contain;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 50%;
transform: translateX(-50%);
} }
.textbox-content { .textbox-content {