38 lines
951 B
C#
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);
|
|
}
|
|
}
|