c#利用Grahics进行图片裁剪

时间:2021-05-20

最开始用了
复制代码 代码如下:
/// <summary>
/// 裁剪图片
/// </summary>
/// <param name="imagePath"/>
/// <param name="savePath">"c:\images\"</param>
private List<string> DefClipImage(string imagePath, string savePath)
{

var fileInfo = new FileInfo(imagePath);
if (!fileInfo.Exists)
throw new Exception("图片" + imagePath + "不存在!");
var savePathList = new List<string>();
var spath = savePath + fileInfo.Name.Replace(fileInfo.Extension, string.Empty);
try
{
var bitmap = new Bitmap(imagePath);
var format = bitmap.PixelFormat;
Bitmap cloneBitmap = bitmap.Clone(_cloneRect1, format);
var tempPath = spath + "_1.jpg";
cloneBitmap.Save(tempPath);
savePathList.Add(tempPath);
cloneBitmap.Dispose();
cloneBitmap = bitmap.Clone(_cloneRect2, format);
tempPath = spath + "_2.jpg";
cloneBitmap.Save(tempPath);
savePathList.Add(tempPath);
cloneBitmap.Dispose();
cloneBitmap = bitmap.Clone(_cloneRect3, format);
tempPath = spath + "_3.jpg";
cloneBitmap.Save(tempPath);
savePathList.Add(tempPath);
cloneBitmap.Dispose();
cloneBitmap = bitmap.Clone(_cloneRect4, format);
tempPath = spath + "_4.jpg";
cloneBitmap.Save(tempPath);
savePathList.Add(tempPath);
cloneBitmap.Dispose();
bitmap.Dispose();
return savePathList;

}
catch
{
throw new Exception("图片" + imagePath + "处理失败!");

}

}


但是速度太慢。

后来发现用grahics 会快很多
复制代码 代码如下:
private void test()
{

Bitmap bitmap = new Bitmap(Application.StartupPath + @"\Image\1.jpg");
var bt = new Bitmap(7500, 3750);

var grahics = Graphics.FromImage(bt);
grahics.DrawImage(bitmap, _cloneRect1, _cloneRect1,GraphicsUnit.Pixel);
bt.Save(Application.StartupPath + "1.jpg");

grahics.DrawImage(bitmap, _cloneRect1, _cloneRect2, GraphicsUnit.Pixel);
bt.Save(Application.StartupPath + "2.jpg");

grahics.DrawImage(bitmap, _cloneRect1, _cloneRect3, GraphicsUnit.Pixel);
bt.Save(Application.StartupPath + "3.jpg");

grahics.DrawImage(bitmap, _cloneRect1, _cloneRect4, GraphicsUnit.Pixel);
bt.Save(Application.StartupPath + "4.jpg");

grahics.Dispose();
bt.Dispose();
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章