开源是程序员的基本美德
Image imgPhoto = Image.FromFile(@"big.jpg"); int Width = imgPhoto.Width; int Height = imgPhoto.Height;//以上三句代码是为了获取图片长和宽 int si = 0;//声明裁剪尺寸由于是需要正方形 所以只需要一个变量 if (Width > Height)//下面判断长和宽哪个值小就用哪个值 因为要裁剪一个正方形 { si = Height; } else { si = Width; } Rectangle theRectangle = new Rectangle(new Point(0, 0), new Size(si, si));//裁剪位置 后面是裁剪尺寸 Bitmap bmp = new Bitmap(imgPhoto);//转换到可操作的内存中 Bitmap cloneBitmap = bmp.Clone(theRectangle, PixelFormat.DontCare); // 计算圆形区域 for (int y = 0; y < si; y++) { for (int x = 0; x < si; x++) { if ((x - si / 2) * (x - si / 2) + (y - si / 2) * (y - si / 2) > (si / 2) * (si / 2)) { //符合以上条件的为圆以外的区域 // 将这些区域设为指定颜色 cloneBitmap.SetPixel(x, y, Color.FromArgb(0, 32, 152, 213));//后面三个参数是rgb颜色 三个0表示黑色 } } } // 绑定到图片显示控件 cloneBitmap.Save("Big1.jpg",ImageFormat.Jpeg);
效果如下:
留下您的脚步
最近评论