Mediary 2022-09-30 11:59 采纳率: 0%
浏览 14

unity 从本地读取图片边缘颜色错误

问题遇到的现象和发生背景

我有一张图是先下载到streamingassets下的,然后本地读取赋值给Image

img

然后现在出现了这么一个问题

img


本来应该是白色区域的边缘,结果出现了蓝色,放大看是这样的

img


这张图的本地资源没有问题,我把streamingassets下的那张原图直接放unity里当texture用也没有问题,不知道为什么会出现这种现象

用代码块功能插入代码,请勿粘贴截图
    //本地读取图片的方法
    IEnumerator GetLocalTexture(string url, long size, Action<Texture2D> actionResult)
    {
        UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
        yield return www.SendWebRequest();
        Texture2D myTexture = null;
        if (www.isNetworkError || www.isHttpError)
        {
            // ...
        }
        else
        {
            // ...
            myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture;
            // 加载的图片进行压缩
            myTexture.Compress(true);
            www.downloadHandler.Dispose();
            StartCoroutine(tools.ToDestoryThis());
        }

        www.Dispose();
        if (actionResult != null)
        {
            if (myTexture != null)
            {
                actionResult(myTexture);
            }
        }
    }

      // 调用加载的方法
     HttpRequest.Instance.GetLocalTexture2D(path, size, (texture) =>
        {
            Sprite spriteFromWeb = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0, 0));
            image.sprite = spriteFromWeb;
        });    
运行结果及报错内容

图片边缘颜色不正确

我想要达到的结果

在不改变先下载到streamingassets再加载到image的这个流程的前提下,让图片正常显示

  • 写回答

1条回答 默认 最新

  • 带酒书生 2022-09-30 14:36
    关注

    你这样,你先加载texture2d,加载完成后,再进行sprite的转换,而不是现在的直接加载并转换。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月30日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘