winform工具1-图片去除水印
效果图:
思路:
1.获取图片
2.处理水印
3.保存处理的图片
代码:
获取图片:
private void button1_Click(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Multiselect = true;//文件格式openFileDialog.Filter = "所有文件|*.*";//还原当前目录openFileDialog.RestoreDirectory = true;if (openFileDialog.ShowDialog() == DialogResult.OK){string oldImgPath = openFileDialog.FileName;this.textBox1.Text = oldImgPath;this.textBox2.Text = this.textBox2.Text += "\r\n" + "图片路径:" + oldImgPath;}}
处理水印并保存:
private void button2_Click(object sender, EventArgs e){Image oldImg = Image.FromFile(this.textBox1.Text);this.textBox2.Text = this.textBox2.Text += "\r\n" + "去除水印...";if (this.textBox3.Text == "255,255,255" || this.textBox3.Text == string.Empty){this.textBox2.Text += "\r\n" + "请设置水印的rgb值";return;}string[] rgbItem = this.textBox3.Text.Split(',');Image newImg = imgHelper.SetImageColorAll(oldImg, Color.FromArgb(Convert.ToInt32(rgbItem[0]),Convert.ToInt32(rgbItem[1]),Convert.ToInt32(rgbItem[2])), Color.White, 20);this.textBox2.Text = this.textBox2.Text += "\r\n" + "去除水印成功,正在保存...";string savPath = this.textBox1.Text.Substring(0, this.textBox1.Text.LastIndexOf('\\'));if (this.textBox4.Text == "格式:文件名+.png/.jpg" || this.textBox4.Text == string.Empty){this.textBox2.Text += "\r\n" + "未设置保存的文件名,自动保存的文件名为:cs.png";return;}savPath = Path.Combine(savPath,this.textBox4.Text);//合成路径newImg.Save(savPath);this.textBox2.Text = this.textBox2.Text += "\r\n" + "保存成功!";}//处理水印类
public class imgHelper
{
public static Image SetImageColorAll(Image p_Image, Color p_OdlColor, Color p_NewColor, int p_Float)
{
int _Width = p_Image.Width;
int _Height = p_Image.Height;
Bitmap _NewBmp = new Bitmap(_Width, _Height, PixelFormat.Format32bppArgb);
Graphics _Graphics = Graphics.FromImage(_NewBmp);
_Graphics.DrawImage(p_Image, new Rectangle(0, 0, _Width, _Height));
_Graphics.Dispose();
//图片背景处理的操作
BitmapData _Data = _NewBmp.LockBits(new Rectangle(0, 0, _Width, _Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
_Data.PixelFormat = PixelFormat.Format32bppArgb;
int _ByteSize = _Data.Stride * _Height;
byte[] _DataBytes = new byte[_ByteSize];
Marshal.Copy(_Data.Scan0, _DataBytes, 0, _ByteSize);
int _WhileCount = _Width * _Height;
int _Index = 0;
for (int i = 0; i != _WhileCount; i++)
{
Color _Color = Color.FromArgb(_DataBytes[_Index + 3], _DataBytes[_Index + 2], _DataBytes[_Index + 1], _DataBytes[_Index]);
if (ScanColor(_Color, p_OdlColor, p_Float))
{
_DataBytes[_Index + 3] = (byte)p_NewColor.A;
_DataBytes[_Index + 2] = (byte)p_NewColor.R;
_DataBytes[_Index + 1] = (byte)p_NewColor.G;
_DataBytes[_Index] = (byte)p_NewColor.B;
}
_Index += 4;
}
Marshal.Copy(_DataBytes, 0, _Data.Scan0, _ByteSize);
_NewBmp.UnlockBits(_Data);
return _NewBmp;
}
private static bool ScanColor(Color p_CurrentlyColor, Color p_CompareColor, int p_Float)
{
int _R = p_CurrentlyColor.R;
int _G = p_CurrentlyColor.G;
int _B = p_CurrentlyColor.B;
return (_R <= p_CompareColor.R + p_Float && _R >= p_CompareColor.R - p_Float) && (_G <= p_CompareColor.G + p_Float && _G >= p_CompareColor.G - p_Float) && (_B <= p_CompareColor.B + p_Float && _B >= p_CompareColor.B - p_Float);
}
}
转载于:https://www.cnblogs.com/newrohlzy/p/10126700.html
winform工具1-图片去除水印相关推荐
- 超好用的视频图片去除水印软件免费下载
在别的地方看到的破解国外一款 超好用的视频图片去除水印 的工具. 废话不多说直接开始说使用说明: 安装我就不说了 文件夹名字有提示. 直接开始说使用方法. 打开软件后 提示"add Imag ...
- Cython 图片去除水印
图片去除水印,此方法只支持去除那些水印色彩较为单一或者重复区域较多的图片. 思路: 计算并统计水印的颜色值,水印重复区域颜色出现较多 设置阈值,将重复较多的颜色值用图片最多的颜色值(图片主色彩)替换. ...
- 图片在线去水印-一键图片去除水印工具
我们经常会看到喜欢的图片带了水印,这让很多人很无奈,不得不舍弃喜欢的图片.今天小编教大家两个方法,即便是有水印的图片也可以用软件处理掉.那么怎么去水印呢?接下来详细为大家介绍去水印的详细方法. 一.水 ...
- 分享图片去水印几个工具-图片去除水印最好用的工具
日常生活中,我们说的水印是指:是来着平台.作者出于强调平台出处.创作者目的,对图片.视频加的水印.不过,水印的存在会影响整体的观感.如果你想将这些素材用于个人收藏.二次创作,这就需要进行去水印的处理. ...
- SEO文章图片添加水印,批量SEO文章图片去除水印
SEO文章图片该怎么搭配,SEO文章该怎么写,对我们SEOER来说,SEO文章图片是我们比较重要的一环,不管是我们网站内容的优化,还是我们外部advertorial的书写,都跟SEO文章和SEO文章图 ...
- PHP 图片去除水印 去除logo
使用插件 ffmpeg 点这里 不使用插件 也可以 <?phpfunction CLEAR_ICO($filename,$savename,$Clear_W,$Clear_H,$Clear_X, ...
- 解决CSDN markdown编辑器插入图片去除水印
简介 最近有小伙伴们使用新版markdown编辑器插入图片后还有博客字样的水印.今天就是要去除水印,谁来都不好使,就是要去除水印.如果该文章能够解决小伙伴的问题记得收藏关注一波 . 1. 问题描述 上 ...
- 破解Foxit PDF SDK(DLL) 3.1, PDF转换到图片, 去除水印
将PDF转换到图片, 使用Foxit PDF Foxit PDF SDK(DLL) 3.1最新版本发布了, 使用它的免费版本Render PDF页面到图像的话,会有一个水印. 摸了几个小时,终于将这个 ...
- 图片去除水印,Python代码
如果您想要在 Python 中去除图像的水印,可以使用以下代码.请注意,这只是一个示例,因为去除水印的方法因图像而异. from PIL import Image# 打开带水印的图像 image = ...
最新文章
- UML序列图总结(Loop、Opt、Par和Alt)
- 基于ServletJsp的网上书店设计(一)
- elasticsearch5安装和elasticsearch-analysis-ik中文分词插件安装
- CSS-10-内边距
- VMware虚拟机12安装linux系统
- 运行单个源文件_使用一个命令执行单个Java源文件
- 河北软件职业技术学院计算机专业分数线,河北软件职业技术学院历年分数线 2021河北软件职业技术学院录取分数线...
- CV《物体识别与检测4 - 人脸验证》
- 95-40-120-java.util.concurrent-线程-AbstractEventExecutor
- 高并发大容量 NoSQL 解决方案探索
- 我的 HTTP/1.1 好慢啊!
- Apache Shiro框架
- python实现规则引擎_几种开源规则引擎(BRE)的比较 转
- Web 服务器性能与站点访问性能的优化思路
- mongodb常用方法
- 攻击 xxs_“吃鸡”玩家被xxs故意炸倒,举报时出现提示,光子站在xxs一边!
- CESI: Canonicalizing Open Knowledge Bases using Embeddings and Side Information
- sublime3生成html头部按tab键没反应
- 【obs】OBS Library D3D11 OpenGL wrapper
- 深圳 IT 男打人后疯狂凡尔赛,还教育民警,这回把 IT 人的脸都丢尽了……
热门文章
- raft 有关竞选超时 vs 心跳超时的疑惑
- CentOS7搭建私有化Docker仓库Harbor
- ZJUT online OJ c++通关模拟题(problem1335-problem1516) 题解
- sklearn和libsvm吗_机器学习笔记(3)-sklearn支持向量机SVM
- java 检测表情符号_检测字符串中的字符是否为表情符号(使用Android)
- 移动终端软件测试基础知识,移动终端软件测试基础知识 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- oracle SQL update一次性修改多个字段,数据来源于另一张表
- Android12(S)授权弹窗被悬浮窗遮挡导致无法点击问题分析
- linux ida和idr分配机制
- 15. Linux系统中的磁盘管理