搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小小林熬夜学编程
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
三维点云分割综述(中)_pcs分割
2
RedisCluster的scan命令
3
系统目录归总_system frameworks文件夹
4
【嵌入式Linux学习笔记】QT在Linux嵌入式设备上的使用_qt连接linux
5
mysql datetime 默认值_MySQL datetime数据类型设置当前时间为默认值
6
linux 进程亲缘性,深入浅出iOS系统内核(2)— 进程调度
7
CHI论文阅读(1)EmoGlass: an End-to-End AI-Enabled Wearable Platform for Enhancing Self-Awareness of Emoti_chi最佳论文|人机交互+ai最新研究成果
8
3个ChatGPT插件自动写书爆火,更多躺着赚钱玩法可以问AI自己!
9
【LSTM回归预测】基于麻雀算法优化多头注意力机制的卷积神经网络结合长短记忆神经网络实现温度预测SSA-CNN-LSTM-Multihead-Attention附matlab代码_ssacnn lstm
10
从 Android 手机恢复删除的数据的10个有效工具_imyfone d-back 安卓数据恢复
当前位置:
article
> 正文
图像特效---Glow Filter发光滤镜_c#中怎么给一张图片加发光滤镜
作者:小小林熬夜学编程 | 2024-03-17 19:38:42
赞
踩
c#中怎么给一张图片加发光滤镜
Glow Filter发光滤镜
Glow Filter发光滤镜是一种让图像产生发光效果的滤镜,它的实现算法如下:
1,对原图P进行高斯模糊得到图像A;
2,将P和A进行“叠加”图层混合处理,公式如下:
Result(x,y) = ((basePixel(x,y) <= 128) ? (mixPixel
(x,y)
* basePixel
(x,y)
/ 128):(255 - (255 - mixPixel
(x,y)
) * (255 - basePixel
(x,y)
) / 128));
注意:Result(x,y)属于[0-255];
以上就是发光滤镜的原理。
核心代码如下:
private Bitmap GlowFilterProcess(Bitmap src)
{
Bitmap gaussBitmap = gf.Apply(src, 15);
Bitmap dst = new Bitmap(src);
int w = dst.Width;
int h = dst.Height;
BitmapData dstData = dst.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
BitmapData gaussData = gaussBitmap.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
byte* pGauss = (byte*)gaussData.Scan0;
byte* pDst = (byte*)dstData.Scan0;
int offset = dstData.Stride - w * 4;
int gray;
for (int j = 0; j < h; j++)
{
for (int i = 0; i < w; i++)
{
gray = ((pDst[0] <= 128) ? (pGauss[0] * pDst[0] / 128) : (255 - (255 - pGauss[0]) * (255 - pDst[0]) / 128));
gray = Math.Min(255, Math.Max(0, gray));
pDst[0] = (byte)gray;
gray = ((pDst[1] <= 128) ? (pGauss[1] * pDst[1] / 128) : (255 - (255 - pGauss[1]) * (255 - pDst[1]) / 128));
gray = Math.Min(255, Math.Max(0, gray));
pDst[1] = (byte)gray;
gray = ((pDst[2] <= 128) ? (pGauss[2] * pDst[2] / 128) : (255 - (255 - pGauss[2]) * (255 - pDst[2]) / 128));
gray = Math.Min(255, Math.Max(0, gray));
pDst[2] = (byte)gray;
pDst[3] = (byte)255;
pGauss += 4;
pDst += 4;
}
pGauss += offset;
pDst += offset;
}
dst.UnlockBits(dstData);
gaussBitmap.UnlockBits(gaussData);
return dst;
}
效果图如下:
原图
Glow Filter效果图
程序demo:
点击打开链接
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/257675
推荐阅读
article
有三种方法可以实现
忽略
Git
中不想
提交
的
文件
:_
git
忽略
不
需要
提交
的
文件
...
.
git
ignore
文件
的配置说明_
git
忽略
不
需要
提交
的
文件
git
忽略
不
需要
提交
的
文件
...
赞
踩
article
有
向
无
环图
讲解及
模板
(
C++
代码)...
做you'xiangclass Solution {public: string compileSeq(string i...
赞
踩
article
场外
交易
的
期权
叫做什么名字?...
若合约到期时,标
的
资产价格上涨30%,在5.08元
的
价格平仓,投资者可以获得264069元
的
盈利,再减去5.91万元
的
成...
赞
踩
article
解决
ubuntu
22.04新内核6.5.0-
15
无法编译
NVIDIA
显卡驱动_/tmp/selfg...
这里的新内核应该包括6.5.*系列的。_/tmp/
selfgz17
15
/
nvidia
-
linux
/tmp/selfgz1...
赞
踩
article
VMware
虚拟机
(v17)
安装
macOS
Monterey图文教程(超详细)_
vmware17
安装
...
说起
虚拟机
安装
macOS
,其实也挺简单的,但对于大多数没接触过Mac系统的朋友来说,可能不知道从何入手,今天就给大家出一...
赞
踩
article
【原创】理解
ChatGPT
之
注意力
机制
和
Transformer
入门_
gpt
采用哪些
注意力
机制
...
本文了解一下
ChatGPT
中的核心
机制
Transformer
,了解
Transformer
的发展历史,以及其中最核心的注意...
赞
踩
article
什么
是
代码
审计
?怎么做?_
代码
审计
csdn
...
在提交完可编译源
代码
后,我方技术通过
代码
审查工具和人工发现排查
代码
潜在问题,提交问题和问题
代码
定位,提供整改建议,这里需...
赞
踩
article
大
预言
模型
——
ChatGPT
,
Claude3
、
Sora
、
等技术...
大
预言
模型
——
ChatGPT
,
Claude3
、
Sora
、
等技术
大
预言
模型
——
ChatGPT
,
Claude3
、
Sora
、
等...
赞
踩
article
矩阵
置零
_
1
0
*
1
0
矩阵
将某
一列
设置
为
0
...
描述: 给定一个 m x n 的
矩阵
,如果一个元素为
0
,则将其所在行和列的所有元素都设为
0
。请使用原地算法。示例 ...
赞
踩
article
四行代码实现C++/C
浮点
数
转换
为
IEEE754
十六进制
表示_mfc
c++
浮点
数
转换
为
十六进制
...
四行代码实现C++/C
浮点
数
转换
为
IEEE754
十六进制
表示_mfc
c++
浮点
数
转换
为
十六进制
数
原理mfc
c++
...
赞
踩
article
cefsharp
网页
另存为
图片
_如何免费将
网页
内容转成
Word
文档...
我们经常会在网上查找资料,而大多文档下载都需要付费,有哪些方法能免费将
网页
转换成
Word
文档呢?下面一起来看一看吧。1、...
赞
踩
article
IEEE754
详解(最
详细
简单
有
趣味
的
介绍
)...
IEEE754
IEEE754
标准: 一、浮点数在内存中
的
存储方式1、什么是
IEEE754
标准2、32位单精度浮点数在内存...
赞
踩
article
完整的
微信
小
程序
支付
开发
记录(亲测)
_
微信
小
程序
支付
功能
开发
...
小
程序
支付
开发
,这里只讲流程和操作,搭配API 可以很快完成业务,至于具体理解和讲解,不多做解释
_
微信
小
程序
支付
功能
开发
...
赞
踩
article
axios
在
vue
中的使用
_
axios
cdn
...
import Vue from '
vue
'import Vuex from '
vue
x'Vue.use(Vuex)con...
赞
踩
article
UDF
提权...
当MYSQL权限比较高的时候我们就可以利用
UDF
提权。
UDF
可以理解为MySQL的函数库,可以利用
UDF
定义创建函数(其...
赞
踩
article
【
WPF
嵌套
vue3
】5. .
netcore
6.0
WPF
使用
CefSharp
_
cefsharp
...
CEF ,全称Chromium Embedded Framework ,基于谷歌 Chromium项目的开源Web Br...
赞
踩
article
VMware
虚拟机
安装
黑苹果步骤与
常见问题
,
VMware
16
,
MacOS12.01(
Moterey
)...
VMware
虚拟机
安装
黑苹果
VMware
虚拟机
安装
黑苹果步骤与
常见问题
,
VMware
16
,
MacOS12.01(Mote...
赞
踩
article
华为
组网:核心
交换机
旁挂
防火墙
,基于
ACL
重定向
配置
实验_
华为
交换机
旁挂
...
如图所示,由于业务需要,用户有访问Internet的需求。用户通过接入层
交换机
SwitchB和核心层
交换机
SwitchA...
赞
踩
article
写给初学者的 HarmonyOS 教程
--
状态管理(@
State
/@
Prop
/@
Link
装饰器...
@
State
装饰的变量,或称为状态变量,一旦变量拥有了状态属性,就和自定义组件的渲染绑定起来。当状态改变时,UI 会发...
赞
踩
article
ieee754
双
精度
浮点数
转换
_消灭烦人
的
IEEE754
困惑
--
知识梳理...
引言最近被数值计算
的
问题困扰,索性做一个梳理,与君分享,温故而知新。在计算机
的
世界中,
浮点数
的
表示范围有限。存在无穷多个...
赞
踩
相关标签
git
elasticsearch
大数据
有向无环图
有向环图
DAG
C++
算法与数据结构
区块链
人工智能
ubuntu
GPU
NVIDIA
linux
macos
经验分享
学习方法
windows
chatgpt
transformer
ai
AIGC
安全
网络
压力测试