C#使用BitMap修改图片尺寸,修改图片大小,不改变原有图片比例
修改后图片
代码
public static void image()
{
System.Drawing.Image img = System.Drawing.Image.FromFile("图片路径");
Bitmap bt = new Bitmap(img);
//获取图片位置颜色
Color cl = bt.GetPixel(10, 10);
int Width = img.Width;
int Height = img.Height;
int marginx = Height / 2;
float dpiX = img.HorizontalResolution;
float dpiY = img.VerticalResolution;
//设置新图的大小
Bitmap bitmap= new Bitmap(Width, Width, PixelFormat.Format24bppRgb);
//设置位图文件的水平和垂直分辨率,与Img一致
bitmap.SetResolution(dpiX, dpiY);
//在位图文件上填充一个新图
Graphics graphics = Graphics.FromImage(bitmap);
System.Drawing.Rectangle Rec = new System.Drawing.Rectangle(0, 0, Width, Width);
//定义颜色
SolidBrush mySolidBrush = new SolidBrush(cl);
//将新图填充为获取原图位置的颜色
graphics.FillRectangle(mySolidBrush, Rec);
//向新图中填充Img
graphics.DrawImage(img, 0, marginx, Rec, GraphicsUnit.Pixel);
graphics.Dispose();
GC.Collect();
bitmap.Save("保存图片路径", System.Drawing.Imaging.ImageFormat.Jpeg);
}