Files
Pilz/Pilz.UI.WinForms/Symbols/SymbolFactory.cs
2025-06-16 12:19:28 +02:00

33 lines
846 B
C#

using Pilz.UI.Symbols;
namespace Pilz.UI.WinForms.Symbols;
public abstract class SymbolFactory<TSymbols> : BaseSymbolFactory<TSymbols>, ISymbolFactory<TSymbols>
{
public virtual Image? GetImage(TSymbols svgImage, SymbolSize size)
{
return GetImage(svgImage, ResolveCommonSize(size));
}
public virtual Image? GetImage(TSymbols svgImage, Size size)
{
using var stream = GetImageRessourceStream(svgImage);
if (stream is null)
return null;
var img = Image.FromStream(stream);
if (!size.IsEmpty)
{
var img2 = new Bitmap(size.Width, size.Height);
using var g = Graphics.FromImage(img2);
g.DrawImage(img2, 0, 0, size.Width, size.Height);
img.Dispose();
img = img2;
}
return img;
}
}