Refactored image creation APIs to use byte[] for logo data instead of System.Drawing.Image, enabling cross-platform support. Wrapped all GDI+/Windows-specific code in #if WINDOWS and updated project files to conditionally include Windows-only dependencies. Defaulted to ImageSharp on non-Windows, and updated UI and settings to reflect platform capabilities. Application now builds and runs on Linux/macOS with Avalonia and ImageSharp, while retaining full Windows functionality.
86 lines
No EOL
3.5 KiB
C#
86 lines
No EOL
3.5 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
|
|
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";
|
|
} |