调色板图像

geoserver能够输出高质量的256色图像。本教程将向您介绍调色板概念、各种图像生成选项,并在不同情况下提供它们的质量/资源比较。

什么是调色板图像?

一些图像格式,如GIF或PNG,可以使用调色板,这是一个(通常)256色的表,以允许更好的压缩。基本上,它们使用8位索引来表示调色板中的位置,从而表示颜色,而不是用它的全色三元组来表示每个像素,后者需要24位(加上最后8位的透明度)。

这允许图像比标准图像小3-4倍,但限制图像本身只能显示256种不同的颜色。根据实际贴图的不同,这可能是一个非常严格的限制,会明显降低图像质量,或者可能无法将输出与全色图像区分开来。对于许多地图,人们可以很容易地找到256种代表性的颜色。

在后一种情况下,调色板图像的较小占地面积通常在性能和成本上都是一个巨大的收益,因为在相同的互联网连接下可以提供更多的数据,客户机将更快地获得响应。

格式和抗锯齿

互联网标准提供了多种图像格式,都有不同的优缺点。三种最常见的格式是:

  • JPEG :压缩可调的有损格式。JPEG最适合于图像层,其中像素颜色从一个像素到下一个像素连续变化,并允许最佳压缩输出。相反,它不适合大多数矢量层,因为即使是轻微的压缩也会在均匀的颜色区域产生可见的伪影。

  • PNG :一种无损耗格式,允许全色和调色板。在全色图像中,每个像素都被编码为24位整数,并具有完整的透明度信息(因此PNG图像可以是半透明的),在调色板模式中,每个像素都是一个8位索引,以形成256色表(调色板)。这种格式最适合向量层,特别是在调色板版本中。全彩版本有时被称为PNG24,调色板版本被称为PNG8。

  • GIF :具有256色调色板的无损耗格式,最适合矢量层。不支持半透明,但允许完全透明的像素。

因此,事实证明,无论是使用PNG8还是GIF格式,调色板图像都可以在矢量数据集上获得利润。

抗锯齿也起作用。让我们以一个道路层为例,其中每条道路都由一条2像素厚的灰色实线表示。人们可能认为这一层只需要两种颜色:背景色(最终是透明的)和灰色。事实上,只有在没有启用抗锯齿的情况下,这才是正确的。反锯齿将使线条的边界平滑,从而产生更柔和、更美观的形状,它将通过添加具有中间颜色的像素来实现,从而增加完全显示图像所需的颜色数量。

以下图像缩放显示反锯齿操作:

../../_images/antialiasing.png

抗锯齿

如果没有提供其他参数,这些输出格式会实时计算最佳调色板。正如您将看到的,这是一个昂贵的进程(CPU限制),但是正如您将看到的,根据连接服务器和客户机的网络速度,额外的成本可以忽略(特别是如果可以在网络中找到瓶颈而不是服务器CPU)。

不管怎样,最佳调色板计算是可以预先完成的重复工作:用户可以计算一次最佳调色板,并告诉geoserver使用它。有三种方法可以做到:

  1. 使用 internet safe palette ,通过附加 palette=safeGetMap 请求。

  2. 通过示例提供调色板。在这种情况下,用户将使用外部程序(如Photoshop)生成256色图像,然后将其保存到 $GEOSERVER_DATA_DIR/palettes 目录。示例文件可以是GIF或PNG格式。如果文件名为mypalete.gif或mypalete.png,则用户将能够引用附加的 palette=mypalette 到GetMap请求。GeoServer将从文件加载调色板并使用它。

  3. 提供调色板文件。调色板文件必须是JASC-PAL格式,并且 .pal 分机。此文件类型可以由诸如Paint Shop Pro和IrfanView之类的应用程序生成,也可以在文本编辑器中手动生成。这个过程和以前一样,但是这次只有调色板文件将被存储到 $GEOSERVER_DATA_DIR/palettes .

    备注

    GeoServer不支持Microsoft调色板格式的调色板文件,尽管具有相同的 .pal 文件扩展名。

向量数据示例

足够的理论,让我们看看如何在实践中处理苍白的图像。我们将使用 tiger-ny basemap以收集一些数字,特别是以下映射请求:

我们将更改各种参数,以便使用格式和调色板。取样器来了:

参数 :`` format=image/png```尺寸:257kb地图生成时间:0.3s

../../_images/tiger-ny-png24.png

标准PNG全色输出

参数``FORMAT=image/png8```大小:60kb`地图生成时间:0.6s

../../_images/tiger-ny-png8.png

PNG8输出

参数 :`` format=image/png```尺寸:257kb地图生成时间:0.3s

../../_images/tiger-ny-png-safe-palette.png

PNG+互联网安全调色板

参数格式=图像/png``& ``palette=nyp |大小:56KB |地图生成时间:0.3s

../../_images/tiger-ny-png-custom-palette.png

PNG + `custom palette <http://geoserver.org/download/attachments/1278244/nyp.pal?version=1>`_

附件还包括GIF输出,其大小、外观和生成时间与PNG输出没有显著差异。

正如我们所看到的,根据选择的不同,我们在图像质量、大小和生成时间上也会有所不同(这是使用FasterFox Firefox扩展计时器记录的,浏览器与服务器位于同一框上)。vbl.使用 palette=xxx 在速度和大小上提供最佳匹配,尽管使用内置的互联网安全调色板改变了颜色。同样,只有假设服务器和客户端之间有一定的连接速度,并增加将图像移动到客户端所需的时间,才能看到真正的收益。下表提供了一些结果:

Configuration

燃气轮机

文件大小(kb)

TT 256kbit/s

TT 1MBit/s

TT 4MBit/s

TT 20MBit/s

Tiger NY巴布亚新几内亚

0.36美元

257

8、39岁

2、42个

0.87美元

0.46美元

泰格-NY-PNG8

0.6倍

60

2,48个

2008年1月

0.72美元

0.62美元

Tiger NY PNG+安全调色板

0.3倍

56

2005年2月22日

0.75美元

0.41美元

0,32个

Tiger NY PNG+自定义调色板

0.3倍

59

2、14日

0.77美元

0,42个

0,32个

传说:

  • GT :同一方框上的地图生成时间

  • TT <speed> :假设给定速度的互联网连接,客户端显示图像所需的总时间。该时间是图像生成时间和传送时间之和,即, GT + sizeInKbytes * 8/ speedInKbits

如表所示,全彩色PNG图像通常比其他格式花费更多的时间,除非它是通过快速网络提供的(即使在这种情况下,也应该考虑网络拥塞)。如果连接速度较慢,则PNG8输出格式是一个不错的选择,而查找最佳调色板所做的额外工作总是在更快的地图交付中得到回报。

生成自定义调色板

这个 nyp.pal 文件已在Windows上使用Irfan View生成:

  • 打开图像的PNG 24位版本

  • 使用图像/降低颜色深度并设置256色

  • 使用图像/调色板/导出保存调色板

栅格数据示例

为了给您举一个例子,当调色板图像可能不适合帐单时,让我们考虑样本数据的sf:dem覆盖率,并重复之前的相同操作。

参数``FORMAT=image/png``大小:117 KB |地图生成时间:0.2s

../../_images/dem-png24.png

标准PNG全色输出。

参数``FORMAT=image/jpeg``大小:23KB |地图生成时间:0.12s

../../_images/dem-jpeg.jpg

JPEG输出

参数``FORMAT=image/png8``大小:60kb |地图生成时间:0.5s

../../_images/dem-png8.png

PNG8输出。

参数格式=图像/png``& ``palette=dem-png8 大小:48KB |地图生成时间:0.15s

../../_images/dem-png-custom-palette.png

PNG+自定义调色板(使用png8输出作为调色板)。

参数格式=图像/png``& ``palette=safe 大小:17KB |地图生成时间:0.15s

../../_images/dem-png-safe-palette.png

PNG+互联网安全调色板。

如示例所示,jpeg输出与全色图像具有相同的质量,生成速度更快,仅使用其大小的1/5。另一方面,使用Internet安全调色板的版本又快又小,但是输出完全被破坏了。考虑到所有的因素,jpeg显然是赢家,它具有良好的质量、快速的图像生成和我们所能得到的最佳PNG输出的一半大小。