GdkPixbuf如何用多个图片创建一个大图片
来源:互联网 发布:docker网络查询 编辑:程序博客网 时间:2024/04/28 23:13
今天遇到一个问题,就是背景图片要使用一个圆角矩形,而GUI没有提供现成的,只是提供了圆角矩形的两边和中间填充的图片,需要自己来建立这个图片(这样建立背景图片可以更灵活,一个GUI可以用在多个应用中,我想这是他们没有直接提供的原因)。
具体来说,我要做到的事情是这样的,圆角矩形大小要为79*75,最左边圆角部分的图片给出,尺寸7*75,最右边圆角部分的图片也给出,尺寸5*75,中间部分要用一种1*75的图片连续帖这样填充出来,这样之后就得到我要的背景图片了。
因为我不懂GDK_PIXBUF,请教了我们组的一个亲切的哥哥后,终于知道怎么做了,帖出来给大家分享下:
思路如下:
首先建立目标pixbuf:
GdkPixbuf *bg_pixbuf = gdk_pixbuf_new(GDK_CLORSPACE_RGB,TRUE,8,79,75);
(这个时候这个图片还是空的,我们之后会来填充)
接着建立左边及右边圆角部分的那个pixbuf:
GdkPixbuf *left_pixbuf = gdk_pixbuf_new_from_file();
GdkPixbuf *right_pixbuf = gdk_pixbuf_new_from_file();
再建立中间填充部分那个1像素宽的pixbuf并将之拉伸到67像素宽:
GdkPixbuf *center_pixbuf = gdk_pixbuf_new_from_file();
GdkPixbuf *tianchong = gdk_pixbuf_scale_simple(center_pixbuf,67,75,GDK_INTERP_BILINEAR);
此时,再将left_pixbuf, tianchong, right_pixbuf依次填充到bg_pixbuf就能得到我们要的目标图片了:
gdk_pixbuf_copy_area(left_pixbuf,0,0,7,75,bg_pixbuf,0,0);
gdk_pixbuf_copy_area(tianchong,0,0,67,75,bg_pixbuf,7,0);
gdk_pixbuf_copy_area(right_pixbuf,0,0,5,75,bg_pixbuf,74,0);
这样我们就可以使用bg_pixbuf了。
- GdkPixbuf如何用多个图片创建一个大图片
- 如何用一个makefile编译多个目标
- 如何用一个makefile编译多个目标
- 如何用一个makefile编译多个目标
- 如何用一个APP控制多个产品
- 如何用 PL/SQL 创建个JOB
- 如何用JAVA语句创建一个表
- 如何用汇编创建一个基础内核
- 如何用git创建一个项目
- 如何用YII创建一个REST API
- 如何用Cocoapods创建一个开源库
- 如何用maven创建一个web项目
- 如何用java创建一个文件
- 如何用JAVA语句创建一个表
- 如何用 JS 创建一个时钟呢
- 如何用UIimage剪切图片,让我从一张大图上获取图片的一部分!
- 如何用Ext来创建了个简单的ComboBox
- 如何用getElementById选择多个标签?
- [双语阅读]日本政坛刮“女性旋风”
- 【软件测试自动化-QTP系列讲座 8】==自定义COM组件的实现 (二)activex dll生成篇==
- Linux常用命令
- 几个DSP高手的经验介绍
- 身份证验证1
- GdkPixbuf如何用多个图片创建一个大图片
- 6000里面EDMA 的使用心得!!!
- 筛选课程 weeder course
- Kick oneself 追悔莫及
- DM642视频模块及有关介绍
- 国庆“禁飞” ban on flying activities
- JavaScript 实现双向选择列表框
- 英国人不能有“天伦之乐”吗?
- 好好规划自己的路