Ошибка представления UIImageJPEG в iOS: не файл JPEG: начинается с 0xff 0xd9

Я пишу файл .jpg в каталог Documents моего приложения следующим образом:

NSData *img = UIImageJPEGRepresentation(myUIImage, 1.0);
BOOL retValue = [img writeToFile:myFilePath atomically:YES];

Позже я загружаю это изображение обратно в UIImage, используя:

UIImage *myImage = [UIImage imageWithContentsOfFile:path];

Я знаю, что это работает, потому что я могу рисовать изображение в ячейке таблицы и это нормально. Теперь, если я попытаюсь использовать UIImageJPEGRepresentation (myImage, 1.0), отладчик распечатает следующие строки:

<Error>: Not a JPEG file: starts with 0xff 0xd9
<Error>: Application transferred too few scanlines

И функция вернет nil. Кто-нибудь знает, почему это могло произойти? Я ничего не делал для манипулирования данными UIImage после их загрузки. Я просто предоставил UIImage для просмотра изображения в ячейке. Я установил свойства представления изображения таким образом, чтобы все изображения в ячейках были выстроены в одну линию и имели одинаковый размер, но я не думаю, что это должно иметь какое-либо отношение к возможности преобразования UIImage в NSData. Назовем их Property HugeString и Property Metadata. У меня есть этот класс U, который имеет ...

У меня есть Lazy > , где T - это класс с огромной строкой и метаданные о файлах. Назовем их Свойство HugeString и Свойство Метаданные

У меня есть этот класс U, который, помимо прочего, имеет такое же свойство HugeString . Мне нужно преобразовать Lazy > в Lazy > без загрузки всего материала.

Возможно ли это?

Здесь я создаю свой список, и внутри этого метода я получаю информацию о файле и самом файле:

entity.VersionedItems =
    new Lazy<List<VersionedItemEntity>>(
        () => VersionedItemEntity.GetFromTFSChanges(entity,chng.Changes));

Это то, что я хочу делать (комментарий)

ChangesetList.Add(
    new HistoryLogEntryModel()
    {
        Revision = changeset.Changeset.ToString(),
        Author = changeset.User,
        Date = changeset.Date.ToString("dd/MM/yyyy"),
        Message = changeset.Comment,
        //VersionedItems = changeset.VersionedItems
    }

Но HistoryLogEntryModel имеет другую версию VersionedItems . И мне нужно преобразовать некоторые переменные. Если бы я преобразовал одно в другое, это загрузило бы все, и это было бы ненужным и медленным.

Это правильный подход? Как еще я мог этого добиться?

спасибо в нареч.

~

5
задан Conrad Clark 22 February 2011 в 17:03
поделиться