public Bitmap ChangeImgSize(string imgPath, Size newSize, string text)
{
Bitmap bmp = Bitmap.FromFile(imgPath) as Bitmap;
var newBmp = ChangeImgSize(bmp, newSize, text);
bmp.Dispose();
return newBmp;
}
public Bitmap ChangeImgSize(Bitmap img, Size newSize, string text)
{
try
{
Bitmap newImg = new Bitmap(newSize.Width, newSize.Height, PixelFormat.Format24bppRgb);
Graphics gDraw = Graphics.FromImage(newImg);
// 插值算法的质量
gDraw.InterpolationMode = InterpolationMode.HighQualityBicubic;
gDraw.DrawImage(img, new Rectangle(0, 0, newSize.Width, newSize.Height), new Rectangle(0, 0, img.Width, img.Height), GraphicsUnit.Pixel);
Font font = new Font("宋体", 20, FontStyle.Bold);//设置字体,大小,粗细
SolidBrush semiTransBrush = new SolidBrush(Color.White);//设置颜色
int yPixlesFromBottom = (int)(newSize.Height * .01);
float yPosFromBottom = ((newSize.Width -
yPixlesFromBottom) - (newSize.Height / 2));
float xCenterOfImg = (newSize.Width / 2);
StringFormat StrFormat = new StringFormat();
StrFormat.Alignment = StringAlignment.Center;
gDraw.DrawString(text,
font,
semiTransBrush,
new PointF(xCenterOfImg, yPosFromBottom),
StrFormat);
gDraw.Dispose();
return newImg;
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 压缩
/// </summary>
/// <param name="iSource"></param>
/// <param name="outPath"></param>
/// <param name="flag"></param>
public void YaSuo(Image iSource, string outPath, int flag)
{
ImageFormat tFormat = iSource.RawFormat;
EncoderParameters ep = new EncoderParameters();
long[] qy = new long[1];
qy[0] = flag;
EncoderParameter eParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qy);
ep.Param[0] = eParam;
try
{
ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageDecoders();
ImageCodecInfo jpegICIinfo = null;
for (int x = 0; x < arrayICI.Length; x++)
{
if (arrayICI[x].FormatDescription.Equals("JPEG"))
{
jpegICIinfo = arrayICI[x];
break;
}
}
if (jpegICIinfo != null)
iSource.Save(outPath, jpegICIinfo, ep);
else
iSource.Save(outPath, tFormat);
//return true;
}
catch
{
//return false;
}
iSource.Dispose();
}
调用:
string FileName = @"C:\Users\Administrator\Desktop\Imgs\6.jpg";
string text = "系统v1088888";
ChangeImgSize(FileName, new Size(1024, 768), text);
YaSuo(bitmap, FileName, 70);