Add watermark tiling, rotation types, margin/scale controls

This commit is contained in:
2026-03-06 17:36:07 +02:00
parent 3e6a539749
commit 646a698ac1
5 changed files with 181 additions and 5 deletions

View File

@@ -68,6 +68,9 @@ pub struct JobConfig {
pub watermark_color: [u8; 4],
pub watermark_font_family: String,
pub watermark_use_image: bool,
pub watermark_tiled: bool,
pub watermark_margin: u32,
pub watermark_scale: f32,
// Rename
pub rename_enabled: bool,
pub rename_prefix: String,
@@ -363,6 +366,9 @@ fn build_ui(app: &adw::Application) {
watermark_color: [255, 255, 255, 255],
watermark_font_family: String::new(),
watermark_use_image: false,
watermark_tiled: false,
watermark_margin: 10,
watermark_scale: 20.0,
rename_enabled: if remember { sess_state.rename_enabled.unwrap_or(false) } else { false },
rename_prefix: String::new(),
rename_suffix: String::new(),
@@ -1683,7 +1689,10 @@ fn run_processing(_window: &adw::ApplicationWindow, ui: &WizardUi) {
path: path.clone(),
position,
opacity: cfg.watermark_opacity,
scale: 0.2,
scale: cfg.watermark_scale / 100.0,
rotation: None,
tiled: cfg.watermark_tiled,
margin: cfg.watermark_margin,
});
}
} else if !cfg.watermark_text.is_empty() {
@@ -1694,6 +1703,9 @@ fn run_processing(_window: &adw::ApplicationWindow, ui: &WizardUi) {
opacity: cfg.watermark_opacity,
color: cfg.watermark_color,
font_family: if cfg.watermark_font_family.is_empty() { None } else { Some(cfg.watermark_font_family.clone()) },
rotation: None,
tiled: cfg.watermark_tiled,
margin: cfg.watermark_margin,
});
}
}
@@ -2613,7 +2625,10 @@ fn build_preset_from_config(cfg: &JobConfig, name: &str) -> pixstrip_core::prese
path: path.clone(),
position,
opacity: cfg.watermark_opacity,
scale: 0.2,
scale: cfg.watermark_scale / 100.0,
rotation: None,
tiled: cfg.watermark_tiled,
margin: cfg.watermark_margin,
}
})
} else if !cfg.watermark_text.is_empty() {
@@ -2624,6 +2639,9 @@ fn build_preset_from_config(cfg: &JobConfig, name: &str) -> pixstrip_core::prese
opacity: cfg.watermark_opacity,
color: cfg.watermark_color,
font_family: if cfg.watermark_font_family.is_empty() { None } else { Some(cfg.watermark_font_family.clone()) },
rotation: None,
tiled: cfg.watermark_tiled,
margin: cfg.watermark_margin,
})
} else {
None