设置图层的透明度,大概是 GMT5 新增的绘图功能中最大的一个亮点。

-t 选项

-t 是一个 GMT5 通用选项,用于设置图层透明度,其用法很简单。 -t<trans> ,其中 <trans> 可以取 0-100 的值,0 代表完全不透明,100 代表完全透明。需要注意的是 PS 是不支持透明特性的,透明的效果只能在 PDF 中看到。

一个例子

这个脚本严格遵循 GMT5 的语法。

#!/bin/bash
R=g
J=H20c
PS=trans.ps

# 打开 GMT5
gmt psxy -R$R -J$J -T -K -UBL/0/0 > $PS

# 绘制海岸线
gmt pscoast -J$J -R$R -Bpx60 -W1/0.2p -N1 -K -O >> $PS

# 绘制第一个不透明矩形框
gmt psxy -J$J -R$R -W1p -L -Gred -K -O <<EOF>> $PS
100 -20
100 20
140 20
140 -20
EOF

# 绘制第二个透明矩形框
gmt psxy -J$J -R$R -W1p -L -Gred -t60 -K -O <<EOF>> $PS
280 -20
280 20
320 20
320 -20
EOF

# 关闭 GMT
gmt psxy -R$R -J$J -T -O >> $PS

转换为其他格式

PS 格式不支持透明,所以在 PS 文件中看不到任何透明效果。

psconvert 可以将 PS 文件转换为 bmp、eps、pdf、png、jpeg、ppm、tif 格式,但是只有 PDF 格式中可以看到透明效果。

gmt psconvert -A -P -Tf trans.ps

如果想要其他格式怎么办?再用 convert 将 PDF 转换为其他格式即可:

convert -density 300 trans.pdf trans.jpg

注意:

  • 是两步走,先用 psconvert 将 PS 转换为 PDF,再用 convert 将 PDF 转换为其他格式。
  • 直接用 convert 将 PS 转换为其他任何格式(包括 PDF),都没有透明效果。

效果图