9
Otrzymuję ten błąd, pobierając obraz przez HTTP. Spojrzałem na answer here, ale nawet prawidłowe obrazy nie zwracają YES
z funkcji.ImageIO: <ERROR> Uszkodzone dane JPEG w formacie JPEG: przedwczesny koniec segmentu danych iphone - jak to złapać?
Jakieś inne pomysły?
Kod potrzebny do uzyskania obrazu jest dość prosty. Dzieje się to w wątku tła.
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
UIImage *image = [UIImage imageWithData:data];
to funkcja z tej nici:
- (BOOL)isJPEGValid:(NSData *)jpeg {
if ([jpeg length] < 4) return NO;
const char * bytes = (const char *)[jpeg bytes];
if (bytes[0] != 0xFF || bytes[1] != 0xD8) return NO;
if (bytes[[jpeg length] - 2] != 0xFF ||
bytes[[jpeg length] - 1] != 0xD9) return NO;
return YES;
}
+1 dziękuję, Sigi! – Jean
Tak, to wydaje się działać. Dzięki! – jmosesman
Wciąż pokazuje błąd:: ImageIO: uszkodzone dane JPEG w formacie JPEG: przedwczesny koniec segmentu danych. :( –