8

我正在使用工具Microsoft Visual Studio Express for Windows 8开发 Windows 8 应用程序 当我创建要上传到应用程序商店的应用程序包时,它无法通过 WAC 工具测试并给出以下错误。

Image reference "images\badge_24.png": The image "C:\Program Files\WindowsApps
\myproject\images\badge_24.png" has an ABGR value "0x1D5E50E9" at position (9, 0) 
that is not valid. The pixel must be white (##FFFFFF) or transparent (00######).

我在网上搜索,发现链接Badge Issue in VS update 1

我没有使用 34x34 图像作为徽章徽标。我使用的是 24x24 图像,但我仍然收到 wac 工具的错误,因为我无法将其提交到 App Store。

我尝试使用 34x34 图像,但它不起作用,谁能帮我解决这个问题?

4

4 回答 4

12

我非常了解这个问题。它与图像大小无关,而与图像内容有关。错误消息实际上非常精确 - 并非徽章徽标中的所有像素都满足它们是全白##FFFFFF 或透明 00###### 的要求。

我建议您的第一步是确认我的回答是正确的。为此,只需创建一个完全白色的临时 24x24 图像。如果您使用此临时白色徽标,则 WAC 应该通过。

下一步是获取正确的徽标图像。我使用 GIMP 图形工具 ( http://www.gimp.org/downloads/ ) 执行了以下操作:

  1. 识别徽标的背景颜色,导航到颜色 > 颜色到 alpha 并选择识别的颜色。这使您的背景透明。
  2. 现在是时候通过 Colors > Desaturate 对整个图片进行去饱和处理了
  3. 仅将位限制为 ##FFFFFF 和 00######:导航到颜色 > 亮度 - 对比度并将亮度和对比度都设置为最大值。

可以肯定的是,我是对的,您可能希望将您当前的徽章徽标附加到您的原始问题。

于 2013-01-30T10:02:52.343 回答
1

解决方案真的很简单!只需将您的徽章徽标导入 Adode Photoshop 并按 [Control + L] 或转到菜单 [图像> 调整> 色阶] 并将值设置为:

通道:RGB Input Levels up 字段:253;1,00; 255 Input Levels down 字段:255;255

保存您的图像!

之后,只需重做在 Visual Studio 上创建应用程序包的过程。现在享受您的应用程序批准!

于 2015-05-24T22:14:13.890 回答
0

自动化该过程的一种方法是编写一个“修复”图像的小型 C# 控制台应用程序:

添加对包 Magick.NET.Core-Q8 的 nuget 引用
执行以下代码以删除 < 255 个颜色通道:

foreach( string ThisFile in Directory.GetFiles( @"C:\YourUwpApplication\Assets", "LockScreenLogo.*.png" ) )
{
    using( ImageMagick.MagickImage TheImage = new ImageMagick.MagickImage( ThisFile ) )
    {
        ImageMagick.PixelCollection Pixels = TheImage.GetPixels();

        for( int IX = 0; IX < TheImage.Width; IX++ )
        {
            for( int IY = 0; IY < TheImage.Height; IY++ )
            {
                Pixels[ IX, IY ].SetChannel( 0, 255 );
                Pixels[ IX, IY ].SetChannel( 1, 255 );
                Pixels[ IX, IY ].SetChannel( 2, 255 );
            }
        }

        TheImage.Write( ThisFile );
    }
}

享受
- 西蒙

于 2016-09-23T00:25:26.647 回答
0

可能的选项(为我工作)删除:

<uap:LockScreen Notification="badgeAndTileText" BadgeLogo="" />

来自 Package.appxmanifest 文件(作为 xml)

如果应用程序与 LockScreen 通知无关,这似乎是一个选项。

于 2019-10-30T21:11:22.560 回答