コード例 #1
0
        /// ? AutoScale ? Multiplies against largest source size: ( ( source.X | source.Y ) * ( dest / source.X | source.Y ) )<br/>?
        /// ScaleWidth ( dest * source.X )
        static public UPointD Fit(UPointD dest, UPointD source, scaleFlags sf)
        {
            UPointD HX = dest / source;

            if (sf == scaleFlags.autoScale)
            {
                return((HX.Y > HX.X) ? source * HX.X : source *HX.Y);
            }
            else
            {
                return((sf == scaleFlags.sWidth) ? source * HX.X : source *HX.Y);
            }
        }
コード例 #2
0
        static public FPoint Fit(FPoint dest, FPoint source, scaleFlags f)
        {
            FPoint HX = dest / source;

            if (f == scaleFlags.autoScale)
            {
                return((HX.Y > HX.X) ? source * HX.X : source *HX.Y);
            }
            else
            {
                return((f == scaleFlags.sWidth) ? source * HX.X : source *HX.Y);
            }
        }
コード例 #3
0
        /// ? AutoScale ? Multiplies against largest source size: ( ( source.X | source.Y ) * ( dest / source.X | source.Y ) )<br/>?
        /// ScaleWidth ( dest * source.X )
        static public DoublePoint Fit(DoublePoint dest, DoublePoint source, scaleFlags sf)
        {
            DoublePoint HX = dest / source;

            if (sf == scaleFlags.autoScale)
            {
                return((HX.Y > HX.X) ? source * HX.X : source *HX.Y);
            }
            else
            {
                return((sf == scaleFlags.sWidth) ? source * HX.X : source *HX.Y);
            }
        }
コード例 #4
0
 OldImgThumb(secImg ig, Point sz)
 {
     siz     = SizeFlags.scaledSize;
     imgSize = sz;
     imgRef  = ig;
     sf      = scaleFlags.autoScale;
     p       = new Pen(Color.White);
     b       = new SolidBrush(Color.Navy);
     if (imgRef.Attributes.ContainsKey("rotation"))
     {
         this.Rotate = imgRef;
     }
     else
     {
         imgpath = imgRef.Path;
     }
     update();
 }
コード例 #5
0
 public ImgThumb(secImg ig, Point sz, SizeFlags sizef, SmoothingMode smode, InterpolationMode imode, Color Matte)
 {
     siz        = sizef;
     SM         = smode;
     IP         = imode;
     mattecolor = Matte;
     imgSize    = sz;
     imgRef     = ig;
     sf         = scaleFlags.autoScale;
     p          = new Pen(Color.White); b = new SolidBrush(Color.Navy);
     if (imgRef.Attributes.ContainsKey("rotation"))
     {
         this.Rotate = imgRef;
     }
     else
     {
         imgpath = imgRef.Path;
     }
     update();
 }
コード例 #6
0
        OldImgThumb(secImg ig, Point sz, SizeFlags sizef, SmoothingMode smode, InterpolationMode imode, Color Matte)
        {
            siz = sizef;

            SM         = smode;
            IP         = imode;
            mattecolor = Matte;
            imgSize    = sz;
            imgRef     = ig;
            sf         = scaleFlags.autoScale;
            p          = new Pen(Color.White); b = new SolidBrush(Color.Navy);
            //		if (imgRef.Attributes.ContainsKey("thumbMatte")) this.cmat = Color.FromArgb(Int32.Parse(attx["thumbMatte"],System.Globalization.NumberStyles.HexNumber));
            if (imgRef.Attributes.ContainsKey("rotation"))
            {
                this.Rotate = imgRef;
            }
            else
            {
                imgpath = imgRef.Path;
            }
            update();
        }
コード例 #7
0
        public ImgThumb(secImg ig, Point sz, ImageSettings settings)
        {
            siz        = settings.sizing;
            SM         = settings.smoothing;
            IP         = settings.interpolation;
            mattecolor = settings.matte;
            imgSize    = sz;
            imgRef     = ig;
            sf         = scaleFlags.autoScale;

            p = new Pen(Color.White); b = new SolidBrush(Color.Navy);
            if (imgRef.Attributes.ContainsKey("rotation"))
            {
                this.Rotate = imgRef;
            }
            else
            {
                imgpath = imgRef.Path;
            }

            update();
        }
コード例 #8
0
        pRatio(Point c, Point o, scaleFlags sf)
        {
            Point  skaler = new Point();
            float  tr = 0;
            string omax, cmax;

            if (o.X >= o.Y)
            {
                omax = "width";
            }
            else
            {
                omax = "height";                                           //orig
            }
            if (c.X >= c.Y)
            {
                cmax = "width";
            }
            else
            {
                cmax = "height";                                           //canv
            }
            switch (cmax)
            {
            case "width": if (omax == cmax)
                {
                    sf = scaleFlags.sWidth;
                }
                else
                {
                    sf = scaleFlags.sHeight;
                } break;

            case "height": if (omax == cmax)
                {
                    sf = scaleFlags.sHeight;
                }
                else
                {
                    sf = scaleFlags.sWidth;
                } break;
            }

skale:
            switch (sf)
            {
            case scaleFlags.sHeight:
                if (o.Y > c.Y)
                {
                    skaler.Y = c.Y; tr = (float)((float)c.Y / (float)o.Y); skaler.X = (int)Math.Round(o.X * tr);
                }
                else
                {
                    skaler = o;
                } break;

            case scaleFlags.sWidth:
                if (o.X > c.X)
                {
                    skaler.X = c.X; tr = (float)((float)c.X / (float)o.X); skaler.Y = (int)Math.Round(o.Y * tr);
                }
                else
                {
                    skaler = o;
                } break;
            }

            if ((skaler.X > c.X) | (skaler.Y > c.Y))
            {
                switch (sf)
                {
                case scaleFlags.sWidth: sf = scaleFlags.sHeight; goto skale;

                case scaleFlags.sHeight: sf = scaleFlags.sWidth; goto skale;
                }
            }
            return(skaler);
        }
コード例 #9
0
ファイル: UDPoint.cs プロジェクト: tfwio/modest-smf-vstnet
 /// ? AutoScale ? Multiplies against largest source size: ( ( source.X | source.Y ) * ( dest / source.X | source.Y ) )<br/>?
 /// ScaleWidth ( dest * source.X )
 public static DoublePoint Fit(DoublePoint dest, DoublePoint source, scaleFlags sf)
 {
     DoublePoint HX = dest/source;
     if (sf== scaleFlags.autoScale) return (HX.Y > HX.X) ? source*HX.X : source * HX.Y;
     else return (sf== scaleFlags.sWidth) ? source*HX.X : source*HX.Y;
 }
コード例 #10
0
ファイル: UPointD.cs プロジェクト: tfwio/modest-smf-vstnet
 /// ? AutoScale ? Multiplies against largest source size: ( ( source.X | source.Y ) * ( dest / source.X | source.Y ) )<br/>?
 /// ScaleWidth ( dest * source.X )
 public static UPointD Fit(UPointD dest, UPointD source, scaleFlags sf)
 {
     UPointD HX = dest/source;
     if (sf== scaleFlags.autoScale) return (HX.Y > HX.X) ? source*HX.X : source * HX.Y;
     else return (sf== scaleFlags.sWidth) ? source*HX.X : source*HX.Y;
 }
コード例 #11
0
        private Point pRatio(Point dest, Point source, scaleFlags sf)
        {
            Point  skaler = new Point();
            float  tr = 0;
            string omax, cmax;

            if (source.X >= source.Y)
            {
                omax = "width";
            }
            else
            {
                omax = "height";
            }
            if (dest.X >= dest.Y)
            {
                cmax = "width";
            }
            else
            {
                cmax = "height";
            }
            switch (cmax)
            {
            case "width": if (omax == cmax)
                {
                    sf = scaleFlags.sWidth;
                }
                else
                {
                    sf = scaleFlags.sHeight;
                } break;

            case "height": if (omax == cmax)
                {
                    sf = scaleFlags.sHeight;
                }
                else
                {
                    sf = scaleFlags.sWidth;
                } break;
            }
skale:
            switch (sf)
            {
            case scaleFlags.sHeight:
                if (source.Y > dest.Y)
                {
                    skaler.Y = dest.Y; tr = (float)((float)dest.Y / (float)source.Y); skaler.X = (int)Math.Round(source.X * tr);
                }
                else
                {
                    skaler = source;
                } break;

            case scaleFlags.sWidth:
                if (source.X > dest.X)
                {
                    skaler.X = dest.X; tr = (float)((float)dest.X / (float)source.X); skaler.Y = (int)Math.Round(source.Y * tr);
                }
                else
                {
                    skaler = source;
                } break;
            }
            if ((skaler.X > dest.X) | (skaler.Y > dest.Y))
            {
                switch (sf)
                {
                case scaleFlags.sWidth: sf = scaleFlags.sHeight; goto skale;

                case scaleFlags.sHeight: sf = scaleFlags.sWidth; goto skale;
                }
            }
            return(skaler);
        }