Пример #1
0
        public static BitMap2d CreateSampleCircle2(int width)
        {
            if (width % 2 != 1)
            {
                width += 1;
            }
            BitMap2d bmp = new BitMap2d(width, width, 0);
            int      r   = (width - 1) / 2;
            int      mx  = r;
            int      my  = r;

            for (int i = 0; i < width; i++)
            {
                for (int j = 0; j < width; j++)
                {
                    if (j < r)
                    {
                        continue;
                    }
                    double dis2 = (i - mx) * (i - mx) + (j - my) * (j - my);
                    if (dis2 < r * r)
                    {
                        bmp.SetPixel(i, j, 255);
                    }
                }
            }
            return(bmp);
        }
Пример #2
0
        static void Main(string[] args)
        {
            BitMap2d bmp  = BitMap2d.CreateSampleCircle(201);
            BitMap2d bmp2 = Zoom.ZoomOut(bmp, 0.7f);

            bmp2.OutputBitMap("1.bmp");
            BitMap2d bmp3 = Zoom.ZoomOut2(bmp, 0.7f);

            bmp3.OutputBitMap("2.bmp");
        }
Пример #3
0
        public static BitMap2d ZoomOut(BitMap2d image, float rate)
        {
            int w = (int)(image.width * rate) + 1;
            int h = (int)(image.height * rate) + 1;

            BitMap2d bmp = new BitMap2d(w, h, 0);

            for (int i = 0; i < image.width; i++)
            {
                for (int j = 0; j < image.height; j++)
                {
                    if (image.GetPixel(i, j) == 255)
                    {
                        int ni = (int)(i * rate);
                        int nj = (int)(j * rate);
                        bmp.SetPixel(ni, nj, 255);
                    }
                }
            }
            return(bmp);
        }