怎么去掉一个image的四周空白部分

木子十甫寸 2012-05-19 01:08:57

OpenFileDialog openfile = new OpenFileDialog();
openfile.Filter = "Bmp Picture(*.*)|*.bmp";
if (openfile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
IsPictureImported = true;

Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
Image img = new Bitmap(openfile.FileName);
img = DeleteBlankArea(img);
}


从文件读取了一张图片,请问DeleteBlankArea()怎么写呢,要去掉图片四周的空白部分。

初步想法是四个双重循环,用像素检测出上下左右最初有图像的未知a,b,c,d.可是不知道怎么把这一部分另存为图片。

或者有更好的处理办法?

...全文
1064 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
小龙问路中 2013-11-07
  • 打赏
  • 举报
回复
引用 8 楼 QQ297095637 的回复:
这样啊,真是遗憾 [Quote=引用 6 楼 的回复:] 我曾经写过这样的类,都是判断周围的颜色是否为白色或者接近白色,每一个像素都判断,直到检测到有非白色就停止,从而截取中间部分 可惜代码在以前公司没拿回来 [/Quote]
哇擦...这不等于没说吗~~我晕
木子十甫寸 2012-05-27
  • 打赏
  • 举报
回复
这个很有用,谢谢,之前写的判断代码全删掉了。

[Quote=引用 11 楼 的回复:]

试试 Bitmap.MakeTransparent(Color)
[/Quote]
APM60- 2012-05-26
  • 打赏
  • 举报
回复
试试 Bitmap.MakeTransparent(Color)
从开始到现在 2012-05-26
  • 打赏
  • 举报
回复
图片格式问题吧,用gif格式的应该能解决你说的问题
木子十甫寸 2012-05-25
  • 打赏
  • 举报
回复
是这样做的,但是还是代码有问题,我再调调看看


[Quote=引用 5 楼 的回复:]

扫描每一行,直到发现第一个不是全白的行。记录此时的白色行高。转90度,再记录,直至转了360度。这时候就能知道上下左右的白边宽度分别是多少了。DrawImage到一个新Bitmap即可,目标区域就是切掉白边后的长宽。
[/Quote]
木子十甫寸 2012-05-25
  • 打赏
  • 举报
回复
这样啊,真是遗憾

[Quote=引用 6 楼 的回复:]

我曾经写过这样的类,都是判断周围的颜色是否为白色或者接近白色,每一个像素都判断,直到检测到有非白色就停止,从而截取中间部分


可惜代码在以前公司没拿回来
[/Quote]
木子十甫寸 2012-05-25
  • 打赏
  • 举报
回复
没用啊,白色部分还是显示出来

[Quote=引用 4 楼 的回复:]

用picturebox显示吧
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//openFileDialog1.Filter = "*.bmp|*.gif|*.jpg|*.*";
string filename = openFileD……
[/Quote]
haoya1 2012-05-21
  • 打赏
  • 举报
回复
我曾经写过这样的类,都是判断周围的颜色是否为白色或者接近白色,每一个像素都判断,直到检测到有非白色就停止,从而截取中间部分


可惜代码在以前公司没拿回来
Ki1381 2012-05-21
  • 打赏
  • 举报
回复
扫描每一行,直到发现第一个不是全白的行。记录此时的白色行高。转90度,再记录,直至转了360度。这时候就能知道上下左右的白边宽度分别是多少了。DrawImage到一个新Bitmap即可,目标区域就是切掉白边后的长宽。
梦世界 2012-05-21
  • 打赏
  • 举报
回复
用picturebox显示吧
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//openFileDialog1.Filter = "*.bmp|*.gif|*.jpg|*.*";
string filename = openFileDialog1.FileName;
Image img = Image.FromFile(filename);
pictureBox1.Image = img;
}
这样就行了,调整picturebox的缩放模式属性为stretchimage啊
烟灰洒落键盘 2012-05-21
  • 打赏
  • 举报
回复
BitmapData
木子十甫寸 2012-05-19
  • 打赏
  • 举报
回复
没人看么

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧