搜索
查看
编辑修改
首页
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
线上故障快速排查分析【转】_too many pid
2
获取Activity的最外层布局_activity的布局文件最外层控件
3
马哥架构第1周课程作业
4
上海亚商投顾 财经早餐FM/0830
5
两个实体相同属性快速映射_C# 数据操作系列 - 6 EF Core 配置映射关系
6
【一文清晰】单元测试到底是什么?应该怎么做?_一张图看懂单元测试
7
线性代数在卷积神经网络(CNN)中的体现
8
django 实战(9): 自定义Student模型(与User模型一对一关系)_django 模型中关联user
9
java jdbc mysql 8驱动,连接数据库 mysql serverTimezone 问题,时间少了8小时_jdbc驱动包8.x 日期格式化问题,多了一个t
10
鸿蒙系统几年不卡,华为手机别乱选,这四款机型基本三年不卡,并且可以升级鸿蒙系统...
当前位置:
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
Vue3 写了
hook
三天,治好了我的组件
封装
强迫症_
vue3
hook
s
封装
fetch
...
我以前很喜欢
封装
组件,什么东西不喜欢别人的,总喜欢自己搞搞,这让人很有成就感,虽然是重复造轮子,但是能从无聊的crud业...
赞
踩
article
在
vue
中如何
使用
vue
x_
vue
项目
引入
vue
x...
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相...
赞
踩
article
matlab
simulink
工业现场漆
包机
烘炉模糊
PID
控制算法
...
1、内容简介略70-可以交流、咨询、答疑2、内容说明
matlab
simulink
工业现场漆
包机
烘炉模糊
PID
控制算法
...
赞
踩
article
docker
容器不能访问宿主机端口_
host
.
docker
.
internal
:
host
-gatewa...
对于linux系统,您可以-从
docker
引擎的主要版本。,则必须手动添加它(至少目前是这样)。_
host
.
docker
...
赞
踩
article
用
应
用
宝
安装
自己打包的
apk
的时候
,
提示
包损坏_腾讯
应
用
宝电脑版
安装
本地
apk
提示
存在风险...
提前声明一下
,
我的AS是3.2版本的
,
gradle版本是4.1的
,
前面自己写了demo
,
签名打包之后
用
应
用
宝
安装
,
提示
包...
赞
踩
article
浮点数
的
规格化
_1.1111111111111111111111
规格化
...
(我对这里其实还是搞不懂,像255,减去偏移量的话是128,可是原码的表示范围是-127-127,补码的表示范围是-12...
赞
踩
article
Leetcode
-
矩阵
置
零_
leetcode
矩阵
置
零...
67.
矩阵
置
零题目内容:代码及思路:1)判断第0行和第0列是否存在0元素;2)判断除第0行和第0列之外各
矩阵
位
置
处是否存...
赞
踩
article
考研
数据结构
名词解释
大全_
数据结构
名词解释
考研题
...
这篇文章介绍了
数据结构
、逻辑结构和存储结构的定义,以及归并排序和基数排序的解释。
数据结构
名词解释
考研题
...
赞
踩
article
微信
小
程序
中如何
实现
微信
支付
_
微信
小
程序
支付
功能怎么
实现
...
通过以上几个步骤,我们就可以在
微信
小
程序
中
实现
微信
支付
了。为了提高用户体验和商业价值,需要注意数据的安全性和正确性,以及...
赞
踩
article
RocketMQ
(06)——消息的批量
发送
和消费_mq
body
size
over
max
valu...
这可以通过调用send()时传递一个消息集合。比如下面这样。批量
发送
的消息必须拥有相同的Topic,且一次
发送
的消息的b...
赞
踩
article
Android
Theme
.
AppCompat
.
Light
报错_安卓5.0以后
style
样式par...
每次为换个环境在eclipse中新建android工程,就会报错;
style
s.xml中提示如下错误error: Err...
赞
踩
article
[华为matepad
pro
12.6]平板实现编程(
Gnome
篇)
Termux
+ Ubuntu ...
这个文主要针对
gnome
安装后连接
vnc
灰屏的问题,看过很多网上的说法改xstartup的文件,但是没用作用,后来经过一...
赞
踩
article
什么
是
vuex
?
vuex
如何
使用
?...
Vuex
是
一个专为 Vue.js 应用程序开发的状态管理模式, 采用集中式存储管理应用的所有组件的状态,解决多组件数据...
赞
踩
article
Flutter
中
GetX
系列六
--
GetxController
/
GetView
使用
详情...
GetxController
使用
详情,
GetxController
的数据赋值、数据更新、事件监听、生命周期、Unique...
赞
踩
article
RocketMQ
—苹果
mac
电脑
os
系统
单节点
安装
下载
RocketMQ
步骤...
mac
os
系统
安装
rocketmq步骤
RocketMQ
—苹果
mac
电脑
os
系统
单节点
安装
下载
RocketMQ
步骤 ...
赞
踩
article
Vuex
介绍...
一、
Vuex
简介二、了解vuex中的各个js文件的用途三、利用vuex同步存值四、利用vuex取值五、
Vuex
的异步加载...
赞
踩
article
设计
random
pool结构_
random
内部结构
...
哈希表是get每一个key的value,而本题没有value,只有key我们准备两张哈希表,以及一个变量 :size。一...
赞
踩
article
云
计算技术
基础
【2】_目前
,
选择
开源的
虚拟化
产品组建
虚拟化
平台
,
构建...
1. 在Bigtable中,()主要用来存储子表数据以及一些日志文件A. ChubbyB. SSTableC. MapR...
赞
踩
article
charles
的
map
remote
和
map
local
的
功能和使用方法_
map
local
功能
的
...
charles
深入学习
charles
的
map
remote
和
map
local
的
功能和使用方法Charles
的
Ma...
赞
踩
article
vue
x详解一:彻底弄懂
state
、
mapState
、mapGetters、
mapMutations
...
vue
x的使用_
vue
map
state
vue
map
state
一 、
state
先看一下标...
赞
踩
相关标签
vue.js
javascript
ecmascript
前端
前端框架
matlab
开发语言
docker
容器
运维
c#
数据结构
微信小程序
微信
小程序
RocketMQ
批量
发送
消费
ubuntu
linux