Chinaunix首页 | 论坛 | 博客
  • 博客访问: 148732
  • 博文数量: 54
  • 博客积分: 1732
  • 博客等级: 上尉
  • 技术积分: 520
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-23 23:29
文章分类

全部博文(54)

文章存档

2011年(3)

2010年(26)

2009年(25)

分类: LINUX

2010-02-01 13:21:00

看到水木上有人把eps格式的日历嵌到桌面图片上,但是没贴方法,心里痒痒,自己折腾了一个,并且对其中不满意的地方作了相应的修改。
首先下载eps文件,可以到下载。
我这里编辑的是没有预览的版本,透露一下,即使是没有预览的版本,在ubuntu系统下照样可以预览,嘿嘿。
将文件下下来后,可以用Gwenview查看,我觉得默认的字体太小,格子太大,于是尝试着直接修改eps文件,经过一晚上的努力,基本达到目标,现记录于下。

用gvim打开eps文件,以2010年2月的日历文件为例,搜索如下部分:
% Days
17 1 SF
/fsc 7.5 def
650 2095 m ( 1) S
gsave 8 0 SF 825 2151 m (12.18) S grestore
820 2093 m gsave ptc n0a n02 m04 n0a n08
grestore
1250 2095 m ( 2) S
gsave 8 0 SF 1425 2151 m (19) S grestore
1420 2093 m gsave ptc n0a n09
grestore
1850 2095 m ( 3) S
gsave 8 0 SF 2025 2151 m (20) S grestore
2020 2093 m gsave ptc n02 n0a
grestore
2450 2095 m ( 4) S
gsave 8 0 SF 2625 2151 m (21) S grestore
2620 2093 m gsave ptc j00 j01
grestore
3050 2095 m ( 5) S
gsave 8 0 SF 3225 2151 m (22) S grestore
3220 2093 m gsave ptc m01 n02
grestore
gsave 0 0.8 0 K
3650 2095 m ( 6) S
gsave 8 0 SF 3825 2151 m (23) S grestore
3820 2093 m gsave ptc m01 n03
grestore
grestore
gsave 1 0 0 K
50 1645 m ( 7) S
gsave 8 0 SF 225 1701 m (24) S grestore
220 1643 m gsave ptc m01 n04
grestore
grestore
650 1645 m ( 8) S
gsave 8 0 SF 825 1701 m (25) S grestore
820 1643 m gsave ptc m01 n05
grestore
......

在上面的数据中, 第三行(/fsc 7.5 def)就是用于控制字体大小的,我将7.5改为13.5后几本能满足我的要求。
接下来就是用于描述每一天的数据了,如:
650 2095 m ( 1) S
gsave 8 0 SF 825 2151 m (12.18) S grestore
820 2093 m gsave ptc n0a n02 m04 n0a n08
grestore
就是指2月1日,这里,第一行指公历的数字,第二行为农历的数字,第三行为农历的汉字部分,我觉得第二行没用,于是删之,但是这么多行要删的,一个个删肯定不合适,效率最高的应该是动用awk了,无奈我不会弄那东东。好在vim也不是吃素的,用宏纪录就可以解决这个问题。 按照以下动作操作即可:
不管用什么方法,首先使光标移动到要删除的第一行数据之前(上述两个片段的第一行均可)
qa                        "开始纪录宏,存到寄存器a
/^gsave.*grestore$        "定为到第一个待删除行
dd                        "执行删除操作
q                         "宏纪录结束
27+2a              "播放宏
上述操作的作用是纪录一个删除动作,并重复27遍(2月只有28天),最后一行的+2是一个操作,对应@。

继续看下面的数据(如2月6日)
gsave 0 0.8 0 K
3650 2095 m ( 6) S
gsave 8 0 SF 3825 2151 m (23) S grestore
3820 2093 m gsave ptc m01 n03
grestore
第一行代表颜色,三个数字代表红绿蓝,0~1。
第二行代表公历的数字,前面两个数字代表位置,第一个为左右(向右数字增大),第二个为上下(向上数字增大)
第三行刚才已经删掉了
第四行代表汉字的农历,前面两个数字同样代表位置,这些位置都是可以手工调整的。

现在,结合强大的vim就可以基本达到我的目的了。

最后,需要把编辑好的eps文件嵌到桌面图片中,这个简单,从来没用过Gimp的我都很快就搞定了:
(1)用Gimp打开待编辑的桌面图片
(2)【文件】->【作为图层打开】,打开刚才编辑好的eps文件,注意选择“自动“,文字反锯齿:强, 图像平滑“强“
(3)选择刚才的图层,然后【图层】->【透明】->【颜色到alpha】,搞定
(4)作一些其他调整,比如位置阿,大小阿什么的,最后保存为jpg即可

最后,看一下我的效果:



阅读(917) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~