Esempio n. 1
0
 static PointF Offset(PointF point, SizeF direction, float distance)
 {
     return(new PointF()
     {
         X = point.X + direction.Width * distance,
         Y = point.Y + direction.Height * distance,
     });
 }
Esempio n. 2
0
 static SizeF Flip(SizeF point)
 {
     return(new SizeF()
     {
         Width = -point.Height,
         Height = point.Width
     });
 }
Esempio n. 3
0
        public SizeF MeasureString(String text, Font font, int width, StringFormat format)
        {
            SixLabors.Fonts.FontFamily family = SixLabors.Fonts.SystemFonts.Find(font.Name);
            //font.Bold
            //font.Italic
            //font.Underline
            //font.Strikeout

            SixLabors.Fonts.Font            fo = new SixLabors.Fonts.Font(family, font.Size);
            SixLabors.Fonts.RendererOptions ro = new SixLabors.Fonts.RendererOptions(fo);

            SixLabors.Primitives.SizeF result = SixLabors.Fonts.TextMeasurer.Measure(text, ro);

            return(new System.Drawing.SizeF(result.Width, result.Height));
        }
Esempio n. 4
0
        } // End Function Crop

        public override System.IO.Stream ResizeImage(
            System.IO.Stream inputStream,
            System.IO.Stream outputStream,
            SaveFormat saveFormat,
            float ratio,
            System.Drawing.Size?maxSize)
        {
            SixLabors.ImageSharp.Image <SixLabors.ImageSharp.Rgba32> img =
                SixLabors.ImageSharp.Image.Load(inputStream);
            SixLabors.Primitives.SizeF oldSizeSize = img.Size();

            if (maxSize.HasValue)
            {
                float ratioX = (float)maxSize.Value.Width / (float)img.Width;
                float ratioY = (float)maxSize.Value.Height / (float)img.Width;

                ratio = ratioX < ratioY ? ratioX : ratioY;
            } // End if (maxSize.HasValue)

            SixLabors.Primitives.SizeF newSize = oldSizeSize * ratio;

            if (outputStream == null)
            {
                outputStream = new System.IO.MemoryStream();
            }


            // Compand: whether to compress or expand individual pixel color values
            img.Mutate(x => x.Resize((SixLabors.Primitives.Size)newSize, KnownResamplers.Bicubic, false));

            img.Save(outputStream, GetEncoder(saveFormat));


            // NO, no seek, if we're respone.OutputStream
            if (outputStream.CanSeek)
            {
                outputStream.Seek(0, System.IO.SeekOrigin.Begin);
            }

            return(outputStream);
        } // End Function ResizeImage