开源是程序员的基本美德
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);效果如下:

川公网安备 51010702003150号
留下您的脚步
最近评论