Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2013 在Windows Universal应用程序的可视资产文件中,scale-240表示什么?_Visual Studio 2013_Splash Screen_Win Universal App_Graphical Logo - Fatal编程技术网

Visual studio 2013 在Windows Universal应用程序的可视资产文件中,scale-240表示什么?

Visual studio 2013 在Windows Universal应用程序的可视资产文件中,scale-240表示什么?,visual-studio-2013,splash-screen,win-universal-app,graphical-logo,Visual Studio 2013,Splash Screen,Win Universal App,Graphical Logo,当我在Visual Studio 2013中制作一个新的通用应用程序时,我会在资产文件夹中获得大量徽标、闪屏等图形文件,例如Square71x71Logo.scale-240.png。然后,Package.appxmanifest将这些文件映射到各种必需的东西。例如,Square71x71Logo.scale-240.png在Package.appxmanifest中映射到square71x71徽标 实际文件的宽度为170像素,高度为170像素,Photoshop将其读取为每英寸72像素,颜色深

当我在Visual Studio 2013中制作一个新的通用应用程序时,我会在
资产
文件夹中获得大量徽标、闪屏等图形文件,例如
Square71x71Logo.scale-240.png
。然后,
Package.appxmanifest
将这些文件映射到各种必需的东西。例如,
Square71x71Logo.scale-240.png
Package.appxmanifest
中映射到
square71x71徽标

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

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


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

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

在您的情况下:170px/2.40=~71px


另请参见相应的MSDN。(链接的文章是德语的,我将把它留给感兴趣的读者来查找匹配的英语文章;-)

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

桌面/板岩应用程序支持的缩放百分比为80%、100%、140%或180%。对于一部手机来说,它是100%、140%或240%

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

因此,清单编辑器的VisualAssets选项卡允许您选择多个图像,每个图像适合特定的缩放百分比。您在手机项目的资产目录中找到了
-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)引用图像,并将自动使用与当前比例、对比度、语言等最匹配的版本

默认手机模板提供缩放240图像,因为高DPI手机非常常见,通常从较大的图像缩放要比放大较小的图像要好。最好是在你用自己的图像替换库存图像时提供多个分辨率,特别是当你的图像很复杂并且默认情况下缩放效果不好时


请参见

这是有意义的,但与所提供的图形不符,即它们都似乎都说scale-240(我将向问题添加截图)。也许它们都是从240x240开始缩放的-但是为什么要在文件名中记录呢?看看上面的MSDN快速入门,它们似乎不应该全部命名为scale-240。邓布利多:因为我没有应用程序编程的经验,所以我在这里只是猜测一下:但大概操作系统会根据需要重新缩放。另一方面,如果SVG图像能够完美地与基于像素的图像配合使用,则可能会出现模糊。因此,操作系统将选择匹配的预缩放图像(如果存在),而不是重新缩放。如果我正确理解MSDN文档,根据设备的不同,只会使用一组预定义的缩放级别。明白了-谢谢大家。彼得:关于71 x 71的缩放比例,你是对的。有了汉斯的回答,这一切现在都有意义了。