hcq0618 / Unity-ImageLoader

用于Unity中的图片异步显示加载库 async load and display image in unity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

图片多时会卡,最大的瓶颈就在那一行

ni-ken opened this issue · comments

Texture2D texture = new Texture2D(width, height, TextureFormat.ARGB32, false);
texture.LoadImage(data);

纹理创建和纹理数据载入不能在子线程中做,只能在主线程。一旦下载的图片是png、jpg等格式,LoadImage内部会解码元数据格式到ARGB32,这个是比较花费CPU的,所以图片多一些的时候,卡顿会很明显。好一点的做法考虑在收到http下载的图片数据后。自己写一个解码图片的函数在线程中计算解码。然后在主线程中把解码后的数据直接通过SetPixels或LoadRawTextureData。这样会减少卡顿。

commented

你可以提交一个pr 然后进来 因为毕竟我已经几年没维护了

纹理 2D 纹理 = 新纹理 2D (宽度、 高度、纹理形式. ARGB32, 错误);
纹理。负载图像(数据);

纹理创建和纹理数据载入不能在子线程中做,只能在主线程。 一旦下载的图片是png、jpg等格式,LoadImage内部会解码元数据格式到ARGB32,这个是比较花费CPU的,所以图片多一些的时候,卡顿会很明显。 好一点的做法考虑在收到http下载的图片数据后。 自己写一个解码图片的函数在线程中计算解码。 然后在主线程中把解码后的数据直接通过SetPixels或LoadRawTextureData。 这样会减少卡顿。

你好这个问题拟解决了嘛,有好的解决方案嘛