Linux gtk 路由,在linux下使用gtk的gdk
aishen944-163.com
转贴请注明出处,谢谢!!
其实透明贴图的原理就是进行xor运算,
基本公式:A xor A = 0 A xor 0 = A A xor A xor B = B
假如现在有两张图片,一张是我们要对其进行贴图的图片A, 另外一张是要被贴图的图片B
1, 复制图片B的一份拷贝为C
2, 将C中指定的背景色变为全白(0xffffff),其他颜色变为全黑(0x00)
3, 依次执行如下运算:
A xor B
A and C
A xor B
对于C中的白色执行运算后的结果如下:
((A xor B) and 0xfffffff) xor B = A xor B xor B = A
对于C中的黑色执行运算后的结果如下:
((A xor B) and 0x0000) xor B = 0 xor B = B
以下是代码实例,例子中用到的两张图片在这里:
#include
#include
#include
static GdkPixbuf *bkpixbuf;
static GdkPixbuf *footballpixbuf;
static gboolean
on_expose_event (GtkWidget * widget,
GdkEventExpose * event, gpointer data)
{
cairo_t *cr;
cr = gdk_cairo_create (widget->window);
gdk_cairo_set_source_pixbuf(cr, bkpixbuf, 0, 0);
cairo_paint(cr);
cairo_destroy (cr);
return FALSE;
}
gboolean blttransparent(GdkPixbuf *dest, const GdkPixbuf *src, gint destx, gint desty, guint transcolor) {
GdkPixbuf *maskpixbuf = NULL;/* 蒙板 */
guchar *p = NULL, *dp = NULL, *sp = NULL;
gint x = 0, y = 0, i = 0;
/* 检查目的区域 */
if(destx + gdk_pixbuf_get_width(src) >= gdk_pixbuf_get_width(dest) ||
desty + gdk_pixbuf_get_height(src) >= gdk_pixbuf_get_height(dest)) { /* 超出目的大小, 什么也不做 */
return TRUE;
}
/* 检查颜色采样数 */
if(gdk_pixbuf_get_bits_per_sample(dest) != 8 ||
gdk_pixbuf_get_bits_per_sample(src) != 8) { // 只
Linux gtk 路由,在linux下使用gtk的gdk相关推荐
- linux+ip+路由设置,Linux下IP巧设置-网管专栏,防火墙和路由
如何实现ip伪装?假设你现在有一台linux主机通过ddn专线连接到internet上,有自己的ip和域名,同时还与20台win95工作站通过hub连接,你现在完全可以通过ip伪装来实现这20台win ...
- Linux黑洞路由命令,Linux | 防火墙什么场景下需要配置黑洞路由
回答 当NAT地址池地址与公网接口地址不在同一网段时,必须配置黑洞路由. 当公网用户主动访问NAT地址池中的地址时,FW收到此报文后,无法匹配到会话表,根据缺省路由转发给路由器,路由器收到报文后,查找 ...
- linux 软路由 中文,Linux 软路由性能测试及分析-Go语言中文社区
本文介绍了 Linux 软路由的工作原理,并使用普通 PC 计算机作为硬件设备,在实际网络环境中测试和讨论了 Linux 软路由的性能.实验证明,在百兆以太网络环境中, Linux 软路由的数据报转发 ...
- linux 多播路由查看,Linux下多播路由的实现Windows系统 -电脑资料
前言(只是一些废话,不想看的可以略过) ===================================== 多播路由是一个很好的技术,在Internet上实现了对数据的"广播&quo ...
- linux mtr路由追踪,CentOS下网络路由追踪软件mtr及besttrace
1.MTR MTR是linux平台上一款非常好用的网络诊断工具,或者说网络连通性判断工具,集成了traceroute.ping.nslookup的功能,用于诊断网络状态,可以实时显示经过的每一跳路由 ...
- linux主机路由命令,linux下路由设置详解
路由表信息解释 ##名词解释: Active Routes:活动的路由 Network destination :目的网段 Netmask:子网掩码 Gateway:网关,又称下一跳路由器.在发送IP ...
- Linux黑洞路由命令,linux – Blackhole路由私有内部网流量
ip route add blackhole 10.0.0.0/8 ip route add blackhole 172.16.0.0/12 ip route add blackhole 192.16 ...
- linux 删除路由条目,linux添加删除路由条目笔记!
简单操作笔记: 1. 查看 route -n 2. 添加 route add -net x.x.x.x netmask x.x.x.x gw x.x.x.x route add -net x.x.x. ...
- Linux下基于GTK人脸识别界面设计
Linux下基于GTK人脸识别界面设计 1.人脸识别简介 人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术.用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸, ...
- mac 配置c语言环境,C语言学习笔记————–MAC下配置GTK+环境
一.GTK+是什么 GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发.跨平台的图形工具包.最初是为GIMP写的,已成为一个功能强大.设计灵活的一个通用图形库,是GNU/Linux下 ...
最新文章
- 实现HttpHandlerFactory的方法
- 《ASP.NET MVC企业实战》(二) MVC开发前奏
- HTTP/2 协议入门
- Mean Shift算法(2)在OpenCV上的实现目标跟踪——直方图反向投影
- vue中前进刷新、后退缓存用户浏览数据和浏览位置的实践
- 注意力测试软件系统,注意力综合评估训练系统
- visio教程仓库流程图_教你使用visio 2013绘制产品流程图
- 【线性系统】五、稳定性
- 在Vue中使用video.js播放器组件(vue-video-player)
- 移动端网页字体过多时,字体被自动放大问题
- Tegra X2 系统上安装 openpose
- Oracle LiveLabs实验:DB Security - Unified Auditing
- python求1到100偶数和_python 求1-100之间的奇数或者偶数之和的实例
- 用html语言设计李白的一首诗,李白诗《赠汪伦》教学设计
- matlab fpga 移植,使用MATLAB,Simulink以及基于模型的设计实现把电机控制算法移植到Zynq平台...
- 四分树(UVa297紫书p160)
- 鸭子-策略模式(Strategy)[原]
- 【2022新书】有趣的数据结构
- arm poky linux,交叉编译iMX6 contex-A9 arm-poky 一些坑
- 服务战略,是否微软的霸业宏图