/// <summary> /// Renders an icon to a bitmap image using GDI+ API - positioning of icon isn't perfect, but aliasing is good. Good for small icons. /// </summary> /// <param name="icon">The icon</param> /// <param name="size">Size of destination bitmap in pixels</param> /// <param name="color">Icon color</param> /// <param name="rotation">Icon rotation in degrees</param> /// <param name="flip">Icon flip</param> /// <returns>The rendered bitmap</returns> public static Bitmap ToBitmap(this IconChar icon, Color?color = null, int size = DefaultSize, double rotation = 0.0, FlipOrientation flip = FlipOrientation.Normal) { var fontFamily = FontFamilyFor(icon); return(fontFamily.ToBitmap(icon, size, size, color, rotation, flip)); }
internal static Typeface TypefaceFor(IconChar iconChar, IconFont iconFont) { if (iconFont == IconFont.Auto) { return(TypefaceFor(iconChar)); } var key = (int)iconFont; if (TypefaceForStyle.TryGetValue(key, out var typeFace)) { return(typeFace); } if (!FontTitles.TryGetValue(key, out var name)) { return(Throw($"No font loaded for style: {iconFont}")); } typeFace = Typefaces.FirstOrDefault(t => t.FontFamily.Source.EndsWith(name)); if (typeFace == null) { return(Throw($"No font loaded for '{name}'")); } TypefaceForStyle.Add(key, typeFace); return(typeFace); }
public static ImageSource ToImageSource(this IconChar iconChar, Brush foregroundBrush = null, double size = DefaultSize) { var text = char.ConvertFromUtf32((int)iconChar); return(ToImageSource(text, foregroundBrush ?? DefaultBrush, size)); }
public void Display_Icons(IconChar icon) { using (var pictureBox = new IconPictureBox { IconChar = icon }) pictureBox.Image.Should().NotBeNull(); }
/// <summary> /// Renders an image for the specified font and icon /// </summary> /// <param name="iconChar">The icon to render</param> /// <param name="brush">The icon brush / color</param> /// <param name="size">The icon size in pixels</param> /// <returns>The rendered image</returns> public static ImageSource ToImageSource(this IconChar iconChar, Brush brush = null, double size = DefaultSize) { var typeFace = Typefaces.Find(iconChar, out var gt, out var glyphIndex); return(typeFace == null ? null : ToImageSource(brush, size, gt, glyphIndex)); }
public Icon(IconChar icon) { _iconBlock = new IconBlock { Icon = icon }; }
/// <summary> /// Convert icon to bitmap image with GDI+ API - positioning of icon isn't perfect, but aliasing is good. Good for /// small icons. /// </summary> public static Bitmap ToBitmap(this IconChar icon, int width, int height, Color color, double rotation = 0.0, FlipOrientation flip = FlipOrientation.Normal) { var fontFamily = FontFamilyFor(icon); return(fontFamily.ToBitmap(icon, width, height, color, rotation, flip)); }
public static ImageSource ToImageSource(this IconChar iconChar, Brush foregroundBrush = null, double size = DefaultSize) { var typeFace = TypefaceFor(iconChar.ToChar(), out var gt, out var glyphIndex); return(typeFace == null ? null : ToImageSource(foregroundBrush, size, gt, glyphIndex)); }
public static Icon Get(IconChar iconChar, Color color, int size = 16) { var myBitmap = GetImage(iconChar, color, size); IntPtr Hicon = myBitmap.GetHicon(); return(Icon.FromHandle(Hicon)); }
public void Be_Creatable(IconChar icon) { var pictureBox = new IconPictureBox { IconChar = icon }; pictureBox.Should().NotBeNull(); }
public void Support_Font_Styles() { // see issue #54 const IconChar brandIcon = IconChar.GoogleDrive; var bitmap = brandIcon.ToBitmap(IconFont.Brands); bitmap.Should().BeOfType <Bitmap>($"an image should be generated for '{brandIcon}'"); }
public void Be_Creatable(IconChar icon) { var menuItem = new IconMenuItem { IconChar = icon }; menuItem.Should().NotBeNull(); menuItem.IconChar.Should().Be(icon); }
public void Be_Creatable(IconChar iconChar) { var iconImage = new IconImage { Icon = iconChar }; iconImage.Should().NotBeNull(); iconImage.Icon.Should().Be(iconChar); }
public void Support_Font_Styles(IconChar icon) { var bitmap = icon.ToImageSource(IconFont.Auto, IconHelper.DefaultBrush, 48); bitmap.Should().NotBeEmpty(); bitmap = icon.ToImageSource(IconFont.Regular, IconHelper.DefaultBrush, 48); bitmap.Should().NotBeEmpty(); }
public void Be_Creatable(IconChar icon) { var button = new IconSplitButton { IconChar = icon }; button.Should().NotBeNull(); button.IconChar.Should().Be(icon); }
public void Be_Creatable(IconChar iconChar) { var iconBlock = new IconBlock { Icon = iconChar }; iconBlock.Should().NotBeNull(); iconBlock.Icon.Should().Be(iconChar); }
internal static FontFamily FontFamilyFor(IconChar iconChar) { var name = IconHelper.FontFor(iconChar)?.Source; if (name == null) { return(FallbackFont); } return(Fonts.Families.FirstOrDefault(f => name.EndsWith(f.Name)) ?? FallbackFont); }
public void Be_Creatable(IconChar iconChar) { var iconSource = new IconSource(iconChar); iconSource.Should().NotBeNull(); var serviceProvider = Substitute.For <IServiceProvider>(); var imageSource = (ImageSource)iconSource.ProvideValue(serviceProvider); imageSource.Should().NotBeNull(); }
public void Be_Creatable(IconChar icon) { using var formsIcon = new T(); formsIcon.Should().NotBeNull(); formsIcon.IconChar = icon; formsIcon.IconChar.Should().Be(icon); formsIcon.Image.Should().NotBeNull(); formsIcon.ShouldSerializeImage().Should() .BeFalse("Image should not be serialized in .resx since generated"); }
public void Cache_equally_generated_bitmaps() { using var sut = new IconCache <IconChar>(); const IconChar iconChar = IconChar.AddressBook; var font = iconChar.FontFamilyFor(); var bitmap1 = sut.Get(font, iconChar, 32, Color.Black, Color.Transparent); var bitmap2 = sut.Get(font, iconChar, 32, Color.Black, Color.Transparent); bitmap2.Should().BeSameAs(bitmap1, "bitmaps with equal keys should not be recreated"); }
internal static FontFamily FontFamilyFor(IconChar iconChar) { var name = IconHelper.FontFor(iconChar)?.FamilyNames.Values.Single(); if (name == null) { return(Fonts.Families[0]); } return(Fonts.Families.FirstOrDefault(f => name.StartsWith(f.Name)) ?? Fonts.Families[0]); }
public AccountConfig() { InitializeComponent(); IconChar icon = IconChar.UserEdit; //this.Icon = ConvertBitmapToBitmapImage.Convert(icon.ToBitmap(16, System.Drawing.Color.DarkGray)); //this.Icon = ImageHelper.ImageSourceForBitmap(icon.ToBitmap(16, System.Drawing.Color.DarkGray)); System.Windows.Media.Color indigo = Util.ConvertStringToColor("#FF4B0082"); this.Icon = Util.mdIcons.ToImageSource <MaterialIcons>(MaterialIcons.Cogs, new SolidColorBrush(indigo), 18); }
public void Be_Creatable(IconChar iconChar) { var converter = new IconToImageConverter(); converter.Should().NotBeNull(); var image = (IconImage)converter.Convert(iconChar, null, null, null); image.Should().NotBeNull(); image.Icon.Should().Be(iconChar); }
public void Be_Creatable(IconChar iconChar) { var markupExtension = new ToText(iconChar); markupExtension.Should().NotBeNull(); var serviceProvider = Substitute.For <IServiceProvider>(); var text = markupExtension.ProvideValue(serviceProvider) as string; text.Single().Should().Be(iconChar.ToChar()); }
internal static FontFamily FontFor(IconChar iconChar) { if (Orphans.Contains(iconChar)) { return(null); } var typeFace = TypefaceFor(iconChar.ToChar(), out _, out _); return(typeFace?.FontFamily); }
/// <summary> /// Renders an image for the specified font, style and icon /// </summary> /// <param name="iconChar">The icon to render</param> /// <param name="iconFont">The icon font style</param> /// <param name="brush">The icon brush / color</param> /// <param name="size">The icon size in pixels</param> /// <returns>The rendered image</returns> public static ImageSource ToImageSource(this IconChar iconChar, IconFont iconFont, Brush brush = null, double size = DefaultSize) { var typeface = TypefaceFor(iconChar, iconFont); if (typeface == null) { return(null); } return(typeface.TryFind(iconChar.UniCode(), out var gt, out var glyphIndex) ? ToImageSource(brush, size, gt, glyphIndex) : null); }
public void Be_Creatable(IconChar iconChar) { var iconSource = new IconSource(iconChar); iconSource.Should().NotBeNull(); iconSource.Should().BeAssignableTo <IHaveIconFont>(); iconSource.IconFont.Should().Be(IconFont.Auto); var serviceProvider = Substitute.For <IServiceProvider>(); var imageSource = (ImageSource)iconSource.ProvideValue(serviceProvider); imageSource.Should().NotBeNull(); }
/// <summary> /// Get or create icon. /// </summary> /// <param name="icon">Icon to generate</param> /// <param name="size">Bitmap size in pixels</param> /// <param name="fore">Foreground color</param> /// <param name="back">Background color</param> /// <returns></returns> public Bitmap Get(IconChar icon, int size, Color fore, Color back) { var key = new IconKey(icon, size, fore, back); if (_cache.TryGetValue(key, out var bitmap)) { return(bitmap); } bitmap = icon.ToBitmapGdi(size, fore, back); _cache[key] = bitmap; return(bitmap); }
public static Bitmap ToBitmap(this IconChar icon, int size, Color color) { var bitmap = new Bitmap(size, size); using (var graphics = Graphics.FromImage(bitmap)) { var text = char.ConvertFromUtf32((int)icon); var font = GetAdjustedIconFont(graphics, text, size, size); var brush = new SolidBrush(color); DrawIcon(graphics, font, text, size, size, brush); } return(bitmap); }
public void Be_Creatable(IconChar iconChar) { var markupExtension = new Icon(iconChar); markupExtension.Should().NotBeNull(); // icon.Foreground.ToString().Should().Be("foo"); var serviceProvider = Substitute.For <IServiceProvider>(); var iconBlock = markupExtension.ProvideValue(serviceProvider) as IconBlock; iconBlock.Should().NotBeNull(); iconBlock.Icon.Should().Be(iconChar); }