在 Windows 通用应用程序的视觉资产文件中,scale-240 表示什么?

In the visual asset files for a Windows Universal App what does scale-240 signify?

当我在 Visual Studio 2013 年制作一个新的通用应用程序时,我在 Assets 文件夹中获得了一些用于徽标、启动画面等的图形文件,例如 Square71x71Logo.scale-240.png. Package.appxmanifest 然后将这些文件映射到各种需要的东西。例如 Square71x71Logo.scale-240.pngPackage.appxmanifest 中映射到 Square 71x71 Logo.

实际文件宽 170 像素,高 170 像素,Photoshop 将其读取为每英寸 72 像素,颜色深度为 8 位。

文件名的 .scale-240 部分表示什么?

我正在替换文件,但我不确定如何缩放 240 化新图像。

.scale-xxx 似乎是指预缩放的图像资源。 如果您使用的图像 logo.png 大小为 100x100px,那么 logo.scale-240.png 应该是大小为 240x240px 的图像,即按 240% 的比例缩放。这个概念背后的想法显然是通过以定义的比例提供多个预缩放图像来避免显示设备进行潜在的昂贵和不准确的重新缩放。

你的情况:170px / 2.40 = ~71px

另请参阅相应的 MSDN article。 (链接的文章是德文的,我会留给感兴趣的 reader 去寻找匹配的英文文章 ;-)

通用应用需要能够 运行 在非常不同的屏幕上。您无法预先预测用户可能拥有哪种设备。如果他有一份便宜的合同 phone、昂贵的平板电脑或台式机,那就大不一样了。 WinRT 通过自动缩放您的应用程序以匹配屏幕分辨率来提供帮助。

desktop/slate 应用支持的缩放百分比为 80%、100%、140% 或 180%。对于 phone,它是 100、140 或 240%。

文本可以轻松自动缩放,但图像不能。它们在重新缩放时变得模糊,图像中的单个像素不再与单个屏幕像素重合。当图像包含精美的线条艺术或文本时非常明显。缩小必然会丢失像素,细节可能会消失。

因此,清单编辑器的视觉资产选项卡允许您 select 多个图像,每个图像适合特定的缩放比例。您在 phone 项目的 Assets 目录中找到了 -240 版本,这是在您创建项目时自动生成的 240% 缩放版本。桌面版默认有 -100 个资源,100% 缩放。

您可能想要添加自己的。你不必。

文件名的 scale-240 部分是一个资源限定符,表示该文件用于 240% DPI 系统。

资源限定符允许应用为不同场景提供同一资源的不同版本,并通过基本名称在内部引用它们:

  • 不同 DPI 系统的缩放:.scale-100、.scale-140、.scale-180、.scale-240
  • 语言(如果图像中有文字):.lang-de-DE、.lang-en-us
  • 对比度(为高对比度模式简化):.contrast-high、.contrast-standard
  • 布局方向(如果图像在 LTR 和 RTL 语言设置中应该不同):.layoutdir-RTL、.layoutdir-LTR
  • DirectX 功能级别:.DXFL-DX9、.DXFL-DX11

该应用程序可以通过其基本名称(例如 logo.png)引用图像,并且将自动使用与当前比例、对比度、语言等最匹配的版本。

默认 phone 模板提供比例为 240 的图像,因为高 DPI phone 相当普遍,通常从较大的图像缩小比放大小图像更好.当您用自己的图片替换库存图片时,最好提供多种分辨率,尤其是当您的图片很复杂且默认情况下缩放比例不佳时。

How to name resources using qualifiers (XAML)