【问题标题】:WeChat Sharing Music - Get rid of background pixelated edges微信分享音乐 - 去除背景像素化边缘
【发布时间】:2018-07-17 07:46:03
【问题描述】:

我已经实现了微信分享音乐功能。

iOS 上的分享效果很好。但是在 Android 上分享时,背景边缘是白色和像素化的。我在想它是由图像的低像素引起的吗?我正在寻找一种解决方案来消除这些像素化边缘。

Android 代码:

WXMusicObject musicObj = new WXMusicObject();
musicObj.MusicUrl = link;              // URL to open when the song is clicked
musicObj.MusicDataUrl = userAudioURL;  // URL of actual music data

WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = musicObj; 

int imgId = (int)typeof(Resource.Drawable).GetField("icon").GetValue(null);
Bitmap thumbBitmap = BitmapFactory.DecodeResource(Forms.Context.Resources, imgId);
Bitmap thBitmap = Bitmap.CreateScaledBitmap(thumbBitmap, 150, 150, true);
thumbBitmap.Recycle();
using (System.IO.MemoryStream outStream = new System.IO.MemoryStream())
{
   thBitmap.Compress(Bitmap.CompressFormat.Png, 150, outStream);
   msg.ThumbData = outStream.ToArray();
}

SendMessageToWX.Req req = new SendMessageToWX.Req();
req.Transaction = buildTransaction("music");
req.Message = msg;
req.Scene = SendMessageToWX.Req.WXSceneSession;  //chat 
mWxApi.SendReq(req);

【问题讨论】:

  • 原始源图像/drawable 是什么样的?原来的分辨率是多少?
  • @SushiHangover 在我看来,背景图像是图标的拉伸和模糊版本。所以我想解决这个问题是在原始图标中没有圆形边缘,而只使用一个带有右角边缘的正方形。它在 iOS 上看起来不错的原因是因为没有透明度;图标的角是白色的,如果你仔细观察,你可以看到背景图像的左上角和右上角也稍微变亮了,因为白色与图像的其余部分一起模糊。微信(至少在 Android 上)无论如何都使用方形头像,所以这就是我推荐的。

标签: xamarin xamarin.ios xamarin.android sharing wechat


【解决方案1】:

终于找到了根本原因。在微信上分享音乐,背景将设置为缩略图。

我通过使用更高像素的图像解决了这个问题,因此背景图像不会被拉伸并且可以在没有像素化的情况下显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 2017-03-27
    相关资源
    最近更新 更多