Files
Pilz/Pilz.UI.WinForms/Symbols/SymbolFactory.cs
Pilzinsel64 9a0f645e01 symbol proxy
2025-08-21 07:56:29 +02:00

38 lines
951 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 image, SymbolSize size)
{
return GetImage(image, ResolveCommonSize(size));
}
public virtual Image? GetImage(TSymbols image, Size size)
{
using var stream = GetImageRessourceStream(image);
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;
}
public ISymbolProxy GetImage(TSymbols image)
{
return new SymbolProxy<TSymbols>(this, image);
}
}