导致原因
当一个在ArcIMS Server机器上设置一个8位色彩深度时,在这个服务器上输出的图片就会颗粒感比较明显。
ArcIMS ArcMap server的缺省行为是使用虚拟显示服务器(XVFB),这个虚拟显示服务器模仿一个与物理显示无关的框架缓冲区。这个虚拟显示服务器的象素深度开始的时候缺省设置位24位深度。当用这个XVFB输出影像时,影像质量应该是比较高的。
写这篇文章主要是针对ArcMap Server的缺省行为发生了变化,不能使用XVFB了,或者当前的色彩深度不是24位了。
解决办法
下面的步骤用来确认是否设置了24位色彩深度和在必要的时候如何修改色彩深度。
切换到root用户下。
得到图形卡的信息:
#/usr/sbin/prtconf -F
确定这个图形卡支持24位:
#/usr/sbin/m64config -prconf
检查写着“possible depths”的行。
另外,一些机器允许使用下面的命令:
#/usr/sbin/fbconfig -pfconf
如果没有设置到24位色彩深度,改变色彩深度和分辨率
#/usr/sbin/m64config -res 1152×900 -depth 24
确认分辨率设置为低于或等于1152×900,PGX+ 框架缓存在高于1152×900分辨率时不支持24位色彩
永久改变这些设置,这样当系统启动时将使用24位图形。
一些机器允许使用下面的命令来设置24位色彩深度:
fbconfig -dev pfb0 -depth 24
创建下面的目录,如果它不存在:
#mkdir /etc/dt/config
#cp /usr/dt/config/Xservers /etc/dt/config/Xservers
执行下面的命令:
#cd /etc/dt/config
#vi Xservers
观察文件最后一行。应该是这样的:
:0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner
将这行变为:
:0 Local local_uid@console root /usr/openwin/bin/X -dev /dev/fb0 defdepth 24
在这行通过指明defdepth 8,色彩深度能变为8位。
如果安装了双框架缓冲区,用下面的命令为每个缓冲区指明色彩深度:
:0 Local local_uid@console root /usr/openwin/bin/X -dev /dev/fb0 defdepth 24 -dev /dev/fb1 defdepth 24
保存文件,重新启动机器,重新启动Xserver 。通过下面的命令检查修改的结果:
#m64config -prconf
或
#fbconfig -prconf
这个将显示当前的深度: 24.
停止和启动ArcIMS进程:Tasker,Monitor和Application Server .然后这些变化就会生效。