失败
发现错误:应用资源验证测试检测到以下错误:
=> Image reference "Assets\BadgeLogo.png": The image "Assets\BadgeLogo.scale-240.png" has an ABGR value "0x41493F00" at position (5, 0) that is not valid. The pixel must be white (##FFFFFF) or transparent (00######).
=> Image reference "Assets\BadgeLogo.png": The image "C:\WINDOWS\temp\appcert_122C\429031395C6.AlarmSIM_1.1.0.0_neutral_split.scale-100_qw59qp28q1z3y\Assets\BadgeLogo.scale-100.png" has an ABGR value "0x28463900" at position (0, 0) that is not valid. The pixel must be white (##FFFFFF) or transparent (00######).
=> Image reference "Assets\BadgeLogo.png": The image "Assets\BadgeLogo.scale-240.png" has an ABGR value "0x41493F00" at position (5, 0) that is not valid. The pixel must be white (##FFFFFF) or transparent (00######).
影响(如果未修复):如果应用清单中声明的字符串或图片不正确,则可能无法安装该应用。如果应用安装时出现这些错误,则应用的徽标或应用使用的其他图片可能无法正确显示。
如何解决:修复错误消息指示的问题。有关详细信息,请参阅以下链接:AppX Resource Validation
我尝试使用不同的工具来生成不同的应用徽标大小,但“Windows应用程序启动工具包”会抛出相同的错误,其他验证成功通过。
是否有任何工具或技术可以帮助解决此问题?
答案 0 :(得分:1)
您是否检查了上述职位的ARGB
值?错误消息指示徽章徽标的边缘必须为白色(0xFFFFFFFF)或透明(0x00FFFFFF)。
使用Paint.NET等编辑工具编辑徽章徽标,它对透明度有很好的支持。
答案 1 :(得分:1)
我认为徽章需要基本上是白色或透明的。我知道我只是重复但是,它需要是WHITE ||透明。因此,如果您的应用徽标是黄色和蓝色,则需要将这些颜色指定为白色和透明。如果它使用多种颜色,您需要将其转换为双色方案或重新设计它。 基本上就像制作黑白图像一样。我相信这个徽章的唯一目的是锁定屏幕设置的菜单。有几个+ + + +符号可以选择快速状态。您选择应用程序,这是徽章实际显示的位置。 3种分辨率适用于不同的手机屏幕尺寸。对此并不积极,但这只是我可以找到使用这些徽章的地方。
public class MakeWite
{
public static void main(String args[]) throws IOException
{
BufferedImage img = new BufferedImage(58, 58,BufferedImage.TYPE_INT_ARGB);
File f = null;
try
{
f = new File("C:\\Users...location...BadgeLogo.scale- 100.png");
img = ImageIO.read(f);
}
catch(IOException e)
{
System.out.println(e);
}
int width = img.getWidth();
int Height = img.getHeight();
for(int y = 0; y < Height; y++)
{
for(int x = 0; x < width; x++)
{
int p = img.getRGB(x,y);
int A = (p>>24)&0xff;
int R = p&0xff;
int G = (p>>8)&0xff;
int B = (p>>16)&0xff;
if( R == 255 && G == 255 && B == 255)
{
A = 0;
R = 0;
G = 0;
B = 0;
}
else
{
R = 255;
G = 255;
B = 255;
}
p = (A<<24) | (B<<16) | (G<<8) | R;
img.setRGB(x, y, p);
}
}
try
{
f = new File ("C:\\Users\\...outputlocatin...\\BadgeLogo.scale- 100(2).png");
ImageIO.write(img, "png", f);
}
catch(IOException e)
{
System.out.println(e);
}
}
}
这是一个简单的应用程序,也许是穴居人的方式,但它在java中将图像转换为白色和透明。
答案 2 :(得分:0)