Как я могу проверить, повреждено ли загруженное изображение или нет в приложении iOS? - PullRequest
3 голосов
/ 25 марта 2012

У меня есть приложение для iPhone, которое загружает фотографии по мере необходимости, и это прекрасно работает, но время от времени файлы сохраняются в обрезанном виде, и отображается только часть изображения, а остальные отображаются серым цветом.Например, верхние 25% будут фактическим изображением, а нижние 75% будут серыми.

Вот мой код для загрузки изображений, я предположил, что код ответа 200 означает, что запрос был выполнен правильно.

   ASIHTTPRequest *requestl = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:URLLarge]];
        [requestl startSynchronous];
        if ([requestl responseStatusCode]==200) {
            NSData *responseData = [requestl responseData];
            NSError *writeError = nil;
            [responseData writeToFile:savePathLarge options:NSDataWritingFileProtectionNone error:&writeError];
            if (writeError !=nil) {
                NSLog(@"\n\n Write returned error: %@ \n\n", [writeError localizedDescription]);
            }
}

Из этого [https://stackoverflow.com/questions/5699645/can-i-check-if-downloaded-image-is-corrupt-or-not-before-saving] вопроса говорится, что если я попытаюсь загрузить это изображение в UIImageView, и оно не загружает это изображение, оно повреждено, но мои изображения будут загружены в это поврежденноеформат без проблем, так что решение не работает для меня.

1 Ответ

1 голос
/ 25 марта 2012

Если это происходит регулярно, возможно, у вас проблемы с загрузкой изображения или у сервера проблемы.Но все же

Один из способов - сгенерировать хеш-образ изображения MD5 на устройстве, а затем попытаться сравнить его с хеш-образом изображения, хранящегося на сервере.Если они не совпадают, то вы знаете, что что-то пошло не так.

Для этого вам, вероятно, понадобится собственный сервер, вы можете легко написать PHP-скрипт, который сделает это за вас (должны быть в Интернете),было бы еще лучше, если бы скрипт был на том же сервере, что и изображения (но вы не упомянули, является ли он вашим собственным сервером)

...