即使世界毁灭这张图片也显示不了,远程图片无法显示啊

使用以下代码显示网络图片时提示错误
var self = this;
var urlcon = {id:“http://61.36.72.42/phoneDdService/Image/DownLoadImage.ashx",type:"png”};
cc.loader.load(urlcon, function (err, texture) {
if (err) {
cc.log(err);
}
self.img.spriteFrame = new cc.SpriteFrame(texture);
});

错误信息为
Simulator: Error: Load image failed: http://61.36.72.42/phoneDdService/Image/DownLoadImage.ashx

请问为什么在ie里能显示的图片cocos无法显示,这个图片服务是我写的,有添加支持跨域,也有指定文件类型为 jpg 如果有图片可以显示的麻烦你们发个可以显示的链接给我,或者开发者回复下具体错误为什么下载信息失败

没人回复吗,来人啊~~

你是什么版本啊?var urlcon = {id: 改成 var urlcon = {url:

var urlcon = {url:“http://61.36.72.42/phoneDdService/Image/DownLoadImage.ashx",type:"png”};
这样写了也不行啊,同志们 怎么办

你试试其他图片地址可以显示吗

其他地址有的行有的也不行,反正这个地址为什么在ie能显示,在cocos不能显示 我要知道

这个我也不清楚,一般来说是跨域的问题

我下午没事一直试了试你这个东西,问题应该出在你图片的格式上,我说说我这边的情况,因为要测试是否能下载你的图片,所以我用模拟器试的

后缀名为jpg的情况下

1.代码里下载你的图片到本地,然后直接加载到sprite,加载失败
2.代码里下载你的图片到本地,另存为jpg文件,加载失败
3.代码里下载你的图片到本地,修改大小并且另存为jpg文件,加载成功
4.代码里下载你的图片到本地,另存为png文件,加载失败
5.代码里下载你的图片到本地,修改大小并且另存为png文件,加载成功

后缀名为png的情况下和上面差不多,反正直接另存为还是有问题,除非随便改个大小,然后加载就没问题了

修改大小的操作是下载到本地,然后用看图软件(我这里是2345看图王)打开修改尺寸然后另存为,而且你的图片在浏览器里直接保存的话,后缀名是jpg,但是我看图软件里的图片类型却是png

所以我觉得应该是哪个格式有问题,虽然不管什么格式都能正常打开并显示

顺便我也想请教一下 @jare@zilong 两位大大,这个问题有可能是什么原因造成的呢?

产生这样的问题原因是什么?我一直认为只要ie能显示的图片,我们用代码应该也能显示的

应该是你的 IIS 服务器问题

服务器返回的 content-type 是 image/jpeg,但是 Response content 里面是 png,同时你这样加载的话,downloader 不知道该把你的文件保存为什么格式,需要 url 本身带有后缀才可以。

那这样要怎么改呢?把content-type 改成 image/png ?

可以试试,服务端说实话我也不是很熟悉,弱弱的客户端程序猿,不是全栈:joy:

图片格式有时会有错,但有些引擎会纠错一次,类似格式化。

其实很想问一句,这个图片是每次都需要下载,还是cocos做了本地缓存?

用 loader.load 每次都会重新下载的,所以建议用 downloader,既可以选择你下载的路径,也方便之后检查下载文件是否已经存在

1赞

那个弱弱的问一句怎么下载到本地病修改图片的格式改为ong