原理:根据选择的区域(区域的选择需要用到GraphicsPath),根据区域可以得到这部分区域的边境矩形,从而不需要循环整张图片,只需要循环边境矩形,将矩形中的选择区域复制到另一种图片,这样大大提高了效率。根据选择的区域,可以得到复制出位于GraphicsPath中的这部分图片,同时设置这部分图片为透明,同时还要设置另一种图片不在GraphicsPath内的区域为透明,这样看起来的效果就是从图片中扣出来的一样,意思和PhotoShop的套索工具差不多。
说得有点晕了,还是看效果图吧:(左边是剪裁出来的图)
下面说说关键的代码。
方法一:像素级的处理,循环整张图片,一个一个像素复制出来,效率比较低。
/// <summary>
/// 图片剪裁(像素级的处理,效率比较低)
/// </summary>
/// <param name="bitmap">原图</param>
/// <param name="path">选择的路径</param>
/// <param name="outputBitmap">输出的图片(即剪裁出来的图片)</param>
/// <returns>