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); }
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"); }
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); }