コード例 #1
0
        /// <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));
        }
コード例 #2
0
ファイル: Tile.cs プロジェクト: danlanph/adventofcode2020
        public void Flip(FlipOrientation orientation)
        {
            Action <bool[, ], bool[, ], int, int> FlipHorizontal = (dest, src, y, x) => dest[x, 9 - y] = src[x, y];
            Action <bool[, ], bool[, ], int, int> FlipVertical   = (dest, src, x, y) => dest[9 - x, y] = src[x, y];

            Action <bool[, ], bool[, ], int, int> FlipAction = orientation == FlipOrientation.Vertical ? FlipVertical : FlipHorizontal;

            var newBitmap = new bool[10, 10];

            for (var a = 0; a < 10; a++)
            {
                for (var b = 0; b < 10; b++)
                {
                    FlipAction(newBitmap, _bitmap, a, b);
                }
            }

            _bitmap = newBitmap;

            if (orientation == FlipOrientation.Vertical)
            {
                var tmp = LeftBoundary;
                LeftBoundary  = RightBoundary;
                RightBoundary = tmp;
            }
            else
            {
                var tmp = TopBoundary;
                TopBoundary    = BottomBoundary;
                BottomBoundary = tmp;
            }
        }
コード例 #3
0
        private FlipOrientation NextFlip(FlipOrientation current)
        {
            var flip = (int)current + 1;

            flip %= Enum.GetValues(typeof(FlipOrientation)).Length;
            return((FlipOrientation)flip);
        }
コード例 #4
0
 /// <summary>
 /// Returns a bitmap for the specified font and icon
 /// </summary>
 /// <typeparam name="TEnum">icon enum type (for custom fonts)</typeparam>
 /// <param name="fontFamily">The icon font</param>
 /// <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 <TEnum>(this FontFamily fontFamily, TEnum icon,
                                       int size        = DefaultSize, Color?color  = null,
                                       double rotation = 0.0, FlipOrientation flip = FlipOrientation.Normal)
     where TEnum : struct, IConvertible, IComparable, IFormattable
 {
     return(ToBitmap(fontFamily, icon, size, size, color, rotation, flip));
 }
コード例 #5
0
    internal void method_33(FlipOrientation A_0)
    {
        int num = 14;

        switch (A_0)
        {
        case FlipOrientation.None:
            this.method_19(false);
            this.method_21(false);
            return;

        case FlipOrientation.Horizontal:
            this.method_19(true);
            this.method_21(false);
            return;

        case FlipOrientation.Vertical:
            this.method_19(false);
            this.method_21(true);
            return;

        case FlipOrientation.Both:
            this.method_19(true);
            this.method_21(true);
            return;
        }
        throw new InvalidOperationException(BookmarkStart.b("愳堵匷吹医䤽⸿扁≃⩅ⅇ㩉汋㩍⥏≑ㅓ硕", num));
    }
コード例 #6
0
        /// <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));
        }
コード例 #7
0
 private static RotateFlipType ToRotateFlip(this FlipOrientation flip)
 {
     return(flip switch
     {
         FlipOrientation.Horizontal => RotateFlipType.RotateNoneFlipX,
         FlipOrientation.Vertical => RotateFlipType.RotateNoneFlipY,
         _ => RotateFlipType.RotateNoneFlipNone
     });
コード例 #8
0
 public Struct37(float A_0, float A_1)
 {
     this.rectAlignment_0   = RectAlignment.TopLeft;
     this.flipOrientation_0 = FlipOrientation.None;
     this.float_0           = A_0;
     this.float_1           = A_1;
     this.float_2           = 0f;
     this.float_3           = 0f;
 }
コード例 #9
0
        public void Flip(FlipOrientation flipOrientation)
        {
            if (flipOrientation == FlipOrientation.Horizontal)
            {
                FlipHorizontal();
                return;
            }

            FlipVertical();
        }
コード例 #10
0
        public static void Flip(this Image image, FlipOrientation flip)
        {
            var rotateFlip = flip.ToRotateFlip();

            if (rotateFlip == RotateFlipType.RotateNoneFlipNone)
            {
                return;
            }
            image.RotateFlip(rotateFlip);
        }
コード例 #11
0
        private static RotateFlipType ToRotateFlip(this FlipOrientation flip)
        {
            switch (flip)
            {
            case FlipOrientation.Horizontal: return(RotateFlipType.RotateNoneFlipX);

            case FlipOrientation.Vertical: return(RotateFlipType.RotateNoneFlipY);

            default: return(RotateFlipType.RotateNoneFlipNone);
            }
        }
コード例 #12
0
        public static void Flip(this Graphics graphics, FlipOrientation flip, int width, int height)
        {
            switch (flip)
            {
            case FlipOrientation.Horizontal:
                graphics.ScaleTransform(-1f, 1f);
                graphics.TranslateTransform(-width, 0f);
                break;

            case FlipOrientation.Vertical:
                graphics.ScaleTransform(1f, -1f);
                graphics.TranslateTransform(0f, -height);
                break;
            }
        }
コード例 #13
0
        public static Bitmap ToBitmap <TEnum>(this FontFamily fontFamily, TEnum icon, int width, int height, Color color,
                                              double rotation = 0.0, FlipOrientation flip = FlipOrientation.Normal)
            where TEnum : struct, IConvertible, IComparable, IFormattable
        {
            var bitmap = new Bitmap(width, height);

            using (var graphics = Graphics.FromImage(bitmap))
            {
                var text = icon.ToChar();
                var font = GetAdjustedIconFont(graphics, fontFamily, text, width, height);
                graphics.Rotate(rotation, width, height);
                var brush = new SolidBrush(color);
                DrawIcon(graphics, font, text, width, height, brush);
            }

            bitmap.Flip(flip);
            return(bitmap);
        }
コード例 #14
0
        private static void SetFlipOrientation(UIElement control, FlipOrientation flipOrientation)
        {
            var transformGroup = control.RenderTransform as TransformGroup ?? new TransformGroup();
            var scaleX         = flipOrientation == FlipOrientation.Horizontal ? -1 : 1;
            var scaleY         = flipOrientation == FlipOrientation.Vertical ? -1 : 1;
            var scaleTransform = transformGroup.Children.OfType <ScaleTransform>().FirstOrDefault();

            if (scaleTransform != null)
            {
                scaleTransform.ScaleX = scaleX;
                scaleTransform.ScaleY = scaleY;
            }
            else
            {
                transformGroup.Children.Add(new ScaleTransform(scaleX, scaleY));
                control.RenderTransform       = transformGroup;
                control.RenderTransformOrigin = new Point(0.5, 0.5);
            }
        }
コード例 #15
0
        /// <summary>
        /// Flip a graphics
        /// </summary>
        /// <param name="graphics">The graphics to flip</param>
        /// <param name="flip">The flip value</param>
        /// <param name="width">The graphics width in pixels (for center calculation)</param>
        /// <param name="height">The graphics height in pixels (for center calculation)</param>
        public static void Flip(this Graphics graphics, FlipOrientation flip, int width, int height)
        {
            switch (flip)
            {
            case FlipOrientation.Horizontal:
                graphics.ScaleTransform(-1f, 1f);
                graphics.TranslateTransform(-width, 0f);
                break;

            case FlipOrientation.Vertical:
                graphics.ScaleTransform(1f, -1f);
                graphics.TranslateTransform(0f, -height);
                break;

            case FlipOrientation.Normal:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(flip), flip, null);
            }
        }
コード例 #16
0
 internal static string smethod_68(FlipOrientation A_0)
 {
     return((string)Class791.smethod_3(hashtable_57, A_0, ""));
 }
コード例 #17
0
 private void Flip(Tile tile, FlipOrientation flipOrientation)
 {
     tile.Flip(flipOrientation);
 }
コード例 #18
0
        /// <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 size, Color color, double rotation = 0.0, FlipOrientation flip = FlipOrientation.Normal)
        {
            var fontFamily = FontFamilyFor(icon);
            var bitmap     = new Bitmap(size, size);

            using (var graphics = Graphics.FromImage(bitmap))
            {
                var text = char.ConvertFromUtf32((int)icon);
                var font = GetAdjustedIconFont(graphics, fontFamily, text, size, size);
                graphics.Rotate(rotation, size, size);
                var brush = new SolidBrush(color);
                DrawIcon(graphics, font, text, size, size, brush);
            }

            bitmap.Flip(flip);
            return(bitmap);
        }
コード例 #19
0
 internal void method_3(FlipOrientation A_0)
 {
     this.flipOrientation_0 = A_0;
 }
コード例 #20
0
 public static void SetFlip(DependencyObject target, FlipOrientation value)
 {
     target.SetValue(FlipProperty, value);
 }