none
在应用商店提交开发应用的未通过问题 RRS feed

  • 问题

  • 我想提交本公司自己开发的应用,但应用资源未通过,存在资源问题。

    有多个类似的报错提示,我抽出一两个写出来:

    影像“资产\BadgeLogo.scale-200.png”有ABGR值“0x36E3650”在位置(3,0)无效。像素必须是白色(##FFFFFF)或透明(00 ######)。

    图像具有位置的ABGR值“0xA563041”(1,0),它是无效的。像素必须是白色(##FFFFFF)或透明(00 ######)。

    请专家作答,谢谢!


    2016年4月13日 7:14

答案

  • Hi

    BadgeLogo指的是“徽章徽标”,它是出现在锁屏界面的,所以要求你的图片里只能包含白色和透明。

    建议现在本地通过 Windows应用认证工具包 做一下验证,确认没有问题后再提交商店审核。

    这里有一个类似的问题,以及答案:http://www.sadev.co.za/content/windows-store-app-development-snack-lock-screen-image-pain


    希望我的答案能帮助更多的人。

    2016年4月13日 7:35
    版主
  • 我写过一个小工具可以帮你传换BadgeLogo的,因为徽标必须是黑白色,但是我们又不希望是对比度非常高的,锐化的黑白图标,所以我的这个工具可以在透明度通道上帮你转换Logo图片文件成黑白,但是在透明度上保持和原来图像一样。

    你需要先准备一幅png 图,然后用下面代码处理下

                try
                {
                    this.Enabled = false;
                    using (OpenFileDialog of = new OpenFileDialog())
                    {
                        of.Filter = "PNG (*.png)|*.png";
                        if (of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            Bitmap bitmap = new Bitmap(of.OpenFile());
    
                            // set original image
                            using (Graphics g = Graphics.FromImage(originalBitmap))
                            {
                                g.Clear(Color.LightGray);
                                g.DrawImage(bitmap, 0, 0, width, height);
                            }
                            originalImage.Image = originalBitmap;
    
                            for (int x = 0; x < bitmap.Width; x++)
                            {
                                for (int y = 0; y < bitmap.Height; y++)
                                {
                                    Color c = bitmap.GetPixel(x, y);
                                    bitmap.SetPixel(x, y, Color.FromArgb((int)c.A, (int)0xff, (int)0xff, (int)0xff));
                                }
                            }
    
                            // set converted image
                            using (Graphics g = Graphics.FromImage(convertedBitmap))
                            {
                                g.Clear(Color.LightGray);
                                g.DrawImage(bitmap, 0, 0, width, height);
                            }
                            convertedImage.Image = convertedBitmap;
    
                            string convertedFileName = "Converted_" + System.IO.Path.GetFileName(of.FileName);
                            using (SaveFileDialog sf = new SaveFileDialog())
                            {
                                sf.FileName = convertedFileName;
                                sf.Filter = "PNG (*.png)|*.png";
                                if (sf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                                {
                                    bitmap.Save(sf.FileName);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    this.Enabled = true;
                }
    Winform的代码,很抱歉,我忘了开源这个工具了,下次开源了直接贴地址


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2016年4月13日 10:26
  • ?????

    2016年4月13日 10:48

全部回复

  • Hi

    BadgeLogo指的是“徽章徽标”,它是出现在锁屏界面的,所以要求你的图片里只能包含白色和透明。

    建议现在本地通过 Windows应用认证工具包 做一下验证,确认没有问题后再提交商店审核。

    这里有一个类似的问题,以及答案:http://www.sadev.co.za/content/windows-store-app-development-snack-lock-screen-image-pain


    希望我的答案能帮助更多的人。

    2016年4月13日 7:35
    版主
  • 我写过一个小工具可以帮你传换BadgeLogo的,因为徽标必须是黑白色,但是我们又不希望是对比度非常高的,锐化的黑白图标,所以我的这个工具可以在透明度通道上帮你转换Logo图片文件成黑白,但是在透明度上保持和原来图像一样。

    你需要先准备一幅png 图,然后用下面代码处理下

                try
                {
                    this.Enabled = false;
                    using (OpenFileDialog of = new OpenFileDialog())
                    {
                        of.Filter = "PNG (*.png)|*.png";
                        if (of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            Bitmap bitmap = new Bitmap(of.OpenFile());
    
                            // set original image
                            using (Graphics g = Graphics.FromImage(originalBitmap))
                            {
                                g.Clear(Color.LightGray);
                                g.DrawImage(bitmap, 0, 0, width, height);
                            }
                            originalImage.Image = originalBitmap;
    
                            for (int x = 0; x < bitmap.Width; x++)
                            {
                                for (int y = 0; y < bitmap.Height; y++)
                                {
                                    Color c = bitmap.GetPixel(x, y);
                                    bitmap.SetPixel(x, y, Color.FromArgb((int)c.A, (int)0xff, (int)0xff, (int)0xff));
                                }
                            }
    
                            // set converted image
                            using (Graphics g = Graphics.FromImage(convertedBitmap))
                            {
                                g.Clear(Color.LightGray);
                                g.DrawImage(bitmap, 0, 0, width, height);
                            }
                            convertedImage.Image = convertedBitmap;
    
                            string convertedFileName = "Converted_" + System.IO.Path.GetFileName(of.FileName);
                            using (SaveFileDialog sf = new SaveFileDialog())
                            {
                                sf.FileName = convertedFileName;
                                sf.Filter = "PNG (*.png)|*.png";
                                if (sf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                                {
                                    bitmap.Save(sf.FileName);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    this.Enabled = true;
                }
    Winform的代码,很抱歉,我忘了开源这个工具了,下次开源了直接贴地址


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2016年4月13日 10:26
  • ?????

    2016年4月13日 10:48