using (Graphics g = Graphics.FromImage(bmp)) { //Graphics g = Graphics.FromImage(bmp); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; g.DrawImage(image, 0, 0, image.Width, image.Height); //} //下面的水印操作,就直接对 bmp 进行了 //...... addWatermarkText(g, addText, "WM_TOP_LEFT", 130, 200); resultImage.Image = bmp; g.Dispose(); MessageBox.Show("水印添加成功!"); } 这种使用using的方式,在使用完成之后,自动回收,释放资源 如果手动的用g.dispose();可能会造成释放不完全,出现内存不足的错误