您好,
我从url异步加载图片,问题是图片只加载一半我不知道为什么会发生这种情况,经过一些网上搜索我得到两个三个原因,
1可能因为严重的问题而发生。
2它可能因为图像形成而发生(但它发生在合成器(png& jpg)中,所以我认为这不是问题)。
3可能因为图像尺寸太大(图像尺寸在200kb到700kb之间)而发生
它也会在浏览器中发生,但有时会发生。
如果您对此问题有任何解决方案或建议而不是重播。
答案 0 :(得分:1)
使用此代码..它可能对您有用
NSString *htmlString = [NSString stringWithFormat:
@"<html>"
"<head>"
"<script type=\"text/javascript\" >"
"function display(img){"
"var imgOrigH = document.getElementById('image').offsetHeight;"
"var imgOrigW = document.getElementById('image').offsetWidth;"
"var bodyH = window.innerHeight;"
"var bodyW = window.innerWidth;"
"if((imgOrigW/imgOrigH) > (bodyW/bodyH))"
"{"
"document.getElementById('image').style.width = bodyW + 'px';"
"document.getElementById('image').style.top = (bodyH - document.getElementById('image').offsetHeight)/2 + 'px';"
"}"
"else"
"{"
"document.getElementById('image').style.height = bodyH + 'px';"
"document.getElementById('image').style.marginLeft = (bodyW - document.getElementById('image').offsetWidth)/2 + 'px';"
"}"
"}"
"</script>"
"</head>"
"<body style=\"margin:0;width:100%;height:100%;\" >"
"<img id=\"image\" src=\"%@\" onload=\"display()\" style=\"position:relative\" />"
"</body>"
"</html>",pass your url string here];
答案 1 :(得分:0)
注意:此检查仅适用于PNG图像,要检查JPEG,只需替换“if”条件中的第一个和最后两个字节。
- (BOOL)isImageValid:(NSData *)data
{
BOOL val = YES;
if ([data length] < 4)
val = NO;
const unsigned char * bytes = (const unsigned char *)[data bytes];
if (bytes[0] != 0x89 || bytes[1] != 0x50)
val = NO;
if (bytes[[data length] - 2] != 0x60 ||
bytes[[data length] - 1] != 0x82)
val = NO;
return val; //return YES if valid
}
不要忘记接受答案。