博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图像滤镜艺术---(Punch Filter)交叉冲印滤镜
阅读量:6794 次
发布时间:2019-06-26

本文共 1008 字,大约阅读时间需要 3 分钟。

原文:

(Punch Filter)交叉冲印滤镜

本文介绍一种交叉冲印效果的代码实现,至于原理,不在累赘,直接看代码:
 int f_TPunchFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* dstData, int dw, int dh, int dStride)
 {
if(srcData == NULL || dstData == NULL)
return -1;
unsigned char* pSrc = srcData;
unsigned char* pDst = dstData;
int i, j, gray, value, r, g, b;
int offset = stride - width * 4;
int rMap[256], gMap[256], bMap[256];
for(int i = 0;i<256;i++)
{
value = i < 128 ? i : 256 - i;
gray = value * value * value / 16384;
rMap[i] = i < 128 ? gray : 256 - gray;
gray = value * value / 128;
gMap[i] = i < 128 ? gray : 256 - gray;
bMap[i] = i / 2 + 0x25;
}
for(j = 0; j < height; j++)
{
for(i = 0; i < width; i++)
{
b = bMap[pSrc[0]];
g = gMap[pSrc[1]];
r = rMap[pSrc[2]];
pDst[0] = CLIP3(b,0,255);
pDst[1] = CLIP3(g,0,255);
pDst[2] = CLIP3(r,0,255);
pDst[3] = 255;
pSrc+=4;
pDst+=4;
}
pSrc += offset;
pDst += offset;
}
printf("%s","Welcom to our website: www.zealpixel.com");
return 0;
 }
效果如下:

原图

交叉冲印效果图

最后放上一个完整的C#程序DEMO下载连接:

转载地址:http://mfrgo.baihongyu.com/

你可能感兴趣的文章
正则表达式
查看>>
转场动画
查看>>
企业号OAuth2.0验证企业用户接口
查看>>
我的友情链接
查看>>
lduan Exchange 2013 策略功能(十二)
查看>>
centos6 连接数修改
查看>>
java.security.InvalidKeyException: Illegal key size or default parameters
查看>>
Oracle10gR2 on SuSE9 x86_86安装技术文档(原版英文)
查看>>
LAMP编译安装(续)
查看>>
翻译 - NodeJS错误处理最佳实践
查看>>
Linux下卸载mysql
查看>>
sudo 详解、用户以及组的创建删除。
查看>>
微信小程序组件化开发框架-Labrador (二)
查看>>
Linux自动化运维之Cobbler(自定义重装)NO.2
查看>>
Apache中 RewriteCond 规则参数介绍
查看>>
解析xml
查看>>
python+selenium 对于iframe的切入切出
查看>>
开源协议特点@02
查看>>
构建squid传统代理和透明代理
查看>>
linux文件管理命令
查看>>