- Allow users to select a transparent color for logo images (watermarks) via UI (checkbox, color picker, preview). - Apply color-key transparency in both System.Drawing and ImageSharp backends: specified color in logo is made fully transparent. - Persist transparency settings in PicSettings and SettingsDto; bind to DataModel and UI controls. - Update logo preview to reflect transparency in real time. - Add option to select image processing library (System.Drawing or ImageSharp) in UI and settings. - Fix bug in SettingsService parameter loading for int/double/DateTime. - Fully integrate color-key transparency into image processing and settings serialization.
87 lines
No EOL
3.5 KiB
C#
87 lines
No EOL
3.5 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Windows.Forms;
|
|
|
|
namespace MaddoShared;
|
|
|
|
public class PicSettings
|
|
{
|
|
public string DirectorySorgente { get; set; }
|
|
public string DirectoryDestinazione { get; set; }
|
|
public string TestoFirmaStart { get; set; }
|
|
public string TestoFirmaStartV { get; set; }
|
|
public DateTime DataPartenza { get; set; }
|
|
public string TestoOrario { get; set; }
|
|
public int DimStandard { get; set; }
|
|
public int DimStandardMiniatura { get; set; }
|
|
public bool NomeData { get; set; }
|
|
public bool TestoNome { get; set; }
|
|
public bool UsaOrarioMiniatura { get; set; }
|
|
public bool UsaOrarioTestoApplicare { get; set; }
|
|
public bool UsaTempoGaraTestoApplicare { get; set; }
|
|
public bool UsaRotazioneAutomatica { get; set; }
|
|
public bool UsaForzaJpg { get; set; }
|
|
public int LarghezzaSmall { get; set; }
|
|
public int AltezzaSmall { get; set; }
|
|
public bool CreaMiniature { get; set; }
|
|
public bool AggiungiScritteMiniature { get; set; }
|
|
public string Suffisso { get; set; }
|
|
public string Codice { get; set; }
|
|
public int Trasparenza { get; set; }
|
|
public string IlFont { get; set; }
|
|
public bool Grassetto { get; set; }
|
|
public string Posizione { get; set; }
|
|
public string Allineamento { get; set; }
|
|
public int Margine { get; set; }
|
|
public int LogoAltezza { get; set; }
|
|
public int LogoLarghezza { get; set; }
|
|
public Color FontColoreRGB { get; set; }
|
|
public bool LogoAggiungi { get; set; }
|
|
// Initialize logo-related strings to safe defaults to avoid null reference issues
|
|
public string LogoNomeFile { get; set; } = string.Empty;
|
|
public string LogoTrasparenza { get; set; } = "100";
|
|
public string LogoMargine { get; set; } = "0";
|
|
public string LogoPosizioneH { get; set; }
|
|
public string LogoPosizioneV { get; set; }
|
|
// Color key transparency: hex color string (e.g. #FFFFFF) and whether to use it for non-PNG logos
|
|
public string TransparentColorHex { get; set; } = "#FFFFFF";
|
|
public bool UseTransparentColorKey { get; set; } = false;
|
|
|
|
// Aliases to support automatic mapping from DataModel properties
|
|
public string TransparentColor
|
|
{
|
|
get => TransparentColorHex;
|
|
set => TransparentColorHex = value;
|
|
}
|
|
|
|
public bool UseTransparentColor
|
|
{
|
|
get => UseTransparentColorKey;
|
|
set => UseTransparentColorKey = value;
|
|
}
|
|
public bool FotoGrandeDimOrigina { get; set; }
|
|
public int AltezzaBig { get; set; }
|
|
public int LarghezzaBig { get; set; }
|
|
public DirectoryInfo DestDir { get; set; }
|
|
public int DimVert { get; set; }
|
|
public int MargVert { get; set; }
|
|
public bool TestoMin { get; set; }
|
|
public int DimMin { get; set; }
|
|
public bool SecretDefault { get; set; }
|
|
public bool SecretBig { get; set; }
|
|
public bool SecretSmall { get; set; }
|
|
public string SecretPathSmall { get; set; }
|
|
public string SecretPathBig { get; set; }
|
|
public bool AggTempoGaraMin { get; set; }
|
|
public bool AggNumTempMin { get; set; }
|
|
public long JpegQuality { get; set; }
|
|
public long JpegQualityMin { get; set; }
|
|
|
|
public bool FotoRuotaADestra { get; set; } = false;
|
|
public bool FotoRuotaASinistra { get; set; } = false;
|
|
public string TempMinText { get; set; } = string.Empty;
|
|
public bool OverwriteFiles { get; set; } = false;
|
|
// Which image creator to use: "Sharp" for current implementation, "Alternate" for alternate library
|
|
public string ImageCreatorProvider { get; set; } = "Sharp";
|
|
} |