假设我有一个方形宽高比为2048像素的位图。

为了通过Silverlight的 DeepZoomImageTileSource 创建一组需要的文件,我需要将这个位图缩放到1024然后再缩放到512然后再缩放到256等,直到1像素图像。

有两种,我怀疑天真,接近: -

  1. 对于每张图片,需要将原始全尺寸图像缩放到所需尺寸。然而,将整个图像缩放到非常小的尺寸似乎太过分了。
  2. 从一个级别缩放到下一级别丢弃原始图像并将每个过度缩放的图像缩放为下一个较小图像的源。但是我怀疑这会产生256-64范围内的图像,保真度低于使用选项1。
  3. 请注意,与Deep Zoom Composer不同,此工具有望以按需方式运行,因此需要在合理的时间范围内完成(最多30秒)。在这方面,我只创建一个单一的多尺度图像,而不是多层高分辨率图像的金字塔。

    我在这里的舒适区以外,任何图形专家都有任何建议吗?关于第2点我错了吗?第1点是否合理,我什么都不担心?选项3?

有帮助吗?

解决方案

关于1:这似乎是最好的方式。如果你不每次都重新加载源图像,那就不算多了。

关于2:是的,您可以通过逐步缩放来降低(某些)质量。

我认为30秒应足以缩放图片(几次)。任何优化都将在缓存结果的范围内。

其他提示

您基本上要做的是创建MipMaps(请参阅 http://en.wikipedia.org /维基/ MIPMAP )。如果您从2平方图像的功率开始,然后缩小图像大小的一半,然后使用缩小的图像再次将其大小减小2应该给出与获取原始图像并将其缩小的相同结果因子4。

半尺寸图像中的每个像素将是原始图像中4个像素的平均值。四分之一大小的图像中的每个像素将是16个像素的平均值。如果你取16个像素的平均值或平均4个像素的平均4个像素就无所谓了。

所以我会说你可以按照你在选项2中提到的那样连续缩小图像。如果你想确定然后尝试两种方式并比较图像。

我意识到这个问题已经过时了,也许有一个原因你没有这样做,但是如果你得到微软免费的Deep Zoom Composer,它会附带一个用于制作Deep Zooms的DLL,“DeepZoomTools.dll”。它将创建单个图像的深度缩放合成,或许多图像的合成。 (类 ImageCreator 完成了调整图像大小的重要工作。)

如果您正在开发商业应用程序,则应该调查许可影响,但重用代码总是比自己编写代码更好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top