feat: threshold presets (standard, outdoor, night, portrait, nature, studio)

This commit is contained in:
Ferdinand
2026-04-08 14:18:04 +02:00
parent 3057538642
commit 2ee0d055fa

View File

@@ -101,6 +101,18 @@
<details style="margin-top: 1rem;"> <details style="margin-top: 1rem;">
<summary style="cursor: pointer; color: #aaa; font-size: 0.9rem; user-select: none;">Schwellenwerte anpassen</summary> <summary style="cursor: pointer; color: #aaa; font-size: 0.9rem; user-select: none;">Schwellenwerte anpassen</summary>
<div style="margin-top: 1rem;"> <div style="margin-top: 1rem;">
<div class="slider-row">
<div class="slider-label"><span>Preset</span></div>
<select id="preset-select" style="width:100%; padding:0.4rem 0.6rem; border-radius:8px; border:1px solid #333; background:#0f3460; color:#fff; font-size:0.9rem; cursor:pointer;">
<option value="">— Preset wählen —</option>
<option value="standard">Standard</option>
<option value="outdoor">Draußen</option>
<option value="night">Nacht</option>
<option value="portrait">Portrait</option>
<option value="nature">Natur</option>
<option value="studio">Studio</option>
</select>
</div>
<div class="slider-row"> <div class="slider-row">
<div class="slider-label"><span>Unschaerfe-Grenze</span><span id="blur-val">100</span></div> <div class="slider-label"><span>Unschaerfe-Grenze</span><span id="blur-val">100</span></div>
<input type="range" id="blur-threshold" min="10" max="500" value="100"> <input type="range" id="blur-threshold" min="10" max="500" value="100">
@@ -183,6 +195,26 @@
input.addEventListener("input", () => { label.textContent = input.value; }); input.addEventListener("input", () => { label.textContent = input.value; });
}); });
// --- Presets ---
const PRESETS = {
standard: { blur: 100, over: 240, under: 30, dup: 8 },
outdoor: { blur: 80, over: 235, under: 15, dup: 8 },
night: { blur: 40, over: 210, under: 5, dup: 10 },
portrait: { blur: 150, over: 245, under: 30, dup: 5 },
nature: { blur: 60, over: 238, under: 12, dup: 10 },
studio: { blur: 160, over: 248, under: 40, dup: 4 },
};
el("preset-select").addEventListener("change", () => {
const preset = PRESETS[el("preset-select").value];
if (!preset) return;
["blur", "over", "under", "dup"].forEach(key => {
const input = el(key + "-threshold");
input.value = preset[key];
el(key + "-val").textContent = preset[key];
});
});
// --- Folder picker --- // --- Folder picker ---
el("pick-btn").addEventListener("click", async () => { el("pick-btn").addEventListener("click", async () => {
try { try {