代码根据别人的进行改写,效果更好

直接拷贝使用

名称空间:

using System.Drawing;

代码:

/// <summary>
/// 裁剪图片(去掉百边)
/// </summary>
/// <param name="FilePath"></param>
public static Bitmap CutImageWhitePart(string FilePath)
{
Bitmap bmp = new Bitmap(FilePath);
//上左右下
int top = , left = , right = bmp.Width, bottom = bmp.Height; //寻找最上面的标线,从左(0)到右,从上(0)到下
for (int i = ; i < bmp.Height; i++)//行
{
bool find = false;
for (int j = ; j < bmp.Width; j++)//列
{
Color c = bmp.GetPixel(j, i);
if (!IsWhite(c))
{
top = i;
find = true;
break;
}
}
if (find)
break;
}
//寻找最左边的标线,从上(top位)到下,从左到右
for (int i = ; i < bmp.Width; i++)//列
{
bool find = false;
for (int j = top; j < bmp.Height; j++)//行
{
Color c = bmp.GetPixel(i, j);
if (!IsWhite(c))
{
left = i;
find = true;
break;
}
}
if (find)
break;
}
//寻找最下边标线,从下到上,从左到右
for (int i = bmp.Height - ; i >= ; i--)//行
{
bool find = false;
for (int j = left; j < bmp.Width; j++)//列
{
Color c = bmp.GetPixel(j, i);
if (!IsWhite(c))
{
bottom = i;
find = true;
break;
}
}
if (find)
break;
}
//寻找最右边的标线,从上到下,从右往左
for (int i = bmp.Width - ; i >= ; i--)//列
{
bool find = false;
for (int j = ; j <= bottom; j++)//行
{
Color c = bmp.GetPixel(i, j);
if (!IsWhite(c))
{
right = i;
find = true;
break;
}
}
if (find)
break;
} //克隆位图对象的一部分。
Rectangle cloneRect = new Rectangle(left, top, right - left, bottom - top);
Bitmap cloneBitmap = bmp.Clone(cloneRect, bmp.PixelFormat);
bmp.Dispose();
//cloneBitmap.Save(@"d:\123.png", ImageFormat.Png);
return cloneBitmap;
} /// <summary>
/// 判断是否白色和纯透明色(10点的容差)
/// </summary>
public static bool IsWhite(Color c)
{
//纯透明也是白色,RGB都为255为纯白
if (c.A < || (c.R > && c.G > && c.B > ))
return true; return false;
}

调用:

            Bitmap bitmap = CutImageWhitePart(@"C:\Users\Ping\Desktop\2.png");
bitmap.Save(@"d:\123.png", ImageFormat.Png);

有问题可联系我 971931543

C# Net 去除图片白边的更多相关文章

  1. 如何去除图片上的文字(PS使用教程)

    很多时候由于工作的需要,需要对我们的图片进行修改,修改的同时还想要保存我们的图片背景,所以很多人就不知道怎么弄了,小编跟大家分享一下使用PS如何简单的去掉图片上的文字,希望对大家有所帮助! 方法/步骤 ...

  2. CorelDRAW快速去除图片背景颜色

    当我们需要从网上借助一些素材图片在CorelDRAW中运用时,往往需要去掉图片的背景颜色.本文小编分享CDR中如何快速去除图片背景颜色的方法,通过此方法可以做简单的照片抠图.合成. 1. 打开Core ...

  3. WordPress 去除图片img标签的高度与宽度

    要求 如,在桌面设备上,图片使用的是以下的HTML代码:  代码如下 复制代码 1  <img src="abc.png" alt="abc" width ...

  4. C# 生成缩略图 去除图片旋转角度

    图片生成缩略图会有旋转角度 /// <summary> /// 测试JRE图片压缩后图片会旋转问题 /// </summary> public void Uploadimg1( ...

  5. iOS裁剪,缩放图片白边问题解决办法

    几年没来了,感觉还是要写点啥,以后碰见问题 解决就写这吧,当是一个随时的笔记也好. iOS裁剪,缩放图片的代码网上也很多了,但是笔者出现了右边和下边出现白边的情况.出现白边的原因是给的size中的CG ...

  6. 推荐一个去除图片人物背景的工具Removebg

    可以在线使用,url:https://www.remove.bg/users/sign_in 用邮箱免注册一个免费账号: 注册的邮箱会收到一封激活账号的邮件: 点击Activate account后激 ...

  7. CSS属性去除图片链接时的虚线框

    CSS 之outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用.outline 属性是一个简写属性,用于设置元素周围的轮廓线.注释:轮廓线不会占据空间,也不一定是 ...

  8. python 利用opencv去除图片水印

    python 去除水印"人工"智能去除水印 这两天公司来了一个新的需求--去除水印,对于我一个从未接触过的这种事情的人来说,当时我是蒙的.不过首先我就去搜索了一下是否有该种合适的功 ...

  9. JD . 简单的网站构成、引入图标、去除 图片间距/加粗/倾斜/下划线/蓝色外边框 禁止文本拖拽、文字居中、做logo、模拟鼠标 、不使用hover外部css样式实现hover鼠标悬停改变样式

    模拟京东案例准备: 截图(效果图PSD文件) 搭建项目环境     (结构样式行为分离)   HTML 核心文件     index.html CSS       控制样式 base.css(基础样式 ...

随机推荐

  1. Selenium获取页面指定元素个数

    测试需求: 获取页面中下拉框个数,并验证是否与预期个数一致 方法1:因下拉框的tagname属性值为select,可通过获取标签为select的元素来获取下拉框个数   List<WebElem ...

  2. Provider和Consumer的搭建(六)

    创建三个Maven Project: dubbo-service:公共模块,包括服务接口(packaging:jar) dubbo-service-impl:服务提供方,提供服务接口的具体实现,需要依 ...

  3. 每天一道Rust-LeetCode(2019-06-11)

    每天一道Rust-LeetCode(2019-06-02) Z 字形变换 坚持每天一道题,刷题学习Rust. 题目描述 全排列 II 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输 ...

  4. 洛谷p3384【模板】树链剖分题解

    洛谷p3384 [模板]树链剖分错误记录 首先感谢\(lfd\)在课上调了出来\(Orz\) \(1\).以后少写全局变量 \(2\).线段树递归的时候最好把左右区间一起传 \(3\).写\(dfs\ ...

  5. MySQL实战45讲学习笔记:第七讲

    一.上节回顾今日计划 在上一篇文章中,我跟你介绍了 MySQL 的全局锁和表级锁,今天我们就来讲讲 MySQL的行锁. MySQL 的行锁是在引擎层由各个引擎自己实现的.但并不是所有的引擎都支持行锁, ...

  6. [LeetCode] 683. K Empty Slots K个空槽

    There is a garden with N slots. In each slot, there is a flower. The N flowers will bloom one by one ...

  7. 【线上问题系列】DB字段类型变更导致核心服务不可用

    背景 业务说明 接到一个业务需求,往DB表中某个字段里新增一些数据,该字段本来是text类型,发现根据业务需求来说,新增数据超过text类型的最大长度,因此需要对数据库表的该字段类型做变更,变更为了M ...

  8. NetCore 开发时中文编码转换出现异常

    在C#编程的时候难免会遇到需要转换编码的场合. 在Framwork中可以用System.Text.Encoding解决,但是到了core会发现,虽然也有这个东西,但几个关键的中文编码(比如GB2312 ...

  9. 表单只有一项 input 时按回车键会提交表单

    在 Vue 中 使用 Element UI,使用表单  el-form 只有一个  el-input  项,使用  @keyup.enter.native 来处理回车事件. 结果发现按下回车时页面总会 ...

  10. long 在不同操作系统下所占用的字节数

    不同平台下C\C++数值数据类型长度如下: 类型 win32 win64 linux32 linux64 其中long类型和指针类型需要特别注意,编写跨平台的软件时尽量不要使用long类型,或者需要对 ...