Вы спрашиваете, как создавать миниатюры из больших изображений или о том, как создать контроллер представления, который отображает их красиво?
Построение контроллера представления:
Вы можете использовать TTPhotoViewController
из проекта Three20 ( описание ), который действует аналогично встроенному в iPhone ролику камеры для просмотра изображений.
Вы можете посмотреть пример кода Scrolling
от apple, упомянутый в на этот вопрос об использовании его для миниатюр .
Если вы хотите создать его самостоятельно, вы можете рассмотреть возможность использования GridView
из библиотеки Мориарти , либо в виде большой сетки в UIScrollView
, либо в виде более эффективный ряд за строкой в UITableView
. В UIScrollView
.
есть предыдущий вопрос о
оптимизированной загрузке изображений.
Создание миниатюр из больших изображений:
Самый простой способ уменьшить изображение - просто отобразить его в UIImageView
с рамкой меньшего размера, который вам нужен - он масштабируется для вас.
Если вы хотите сохранить миниатюру или заботиться об использовании памяти, вы можете создать версию в жестком масштабе. Пример кода ниже взят из
этого сообщения в блоге и может быть добавлен к
UIImage
в качестве метода категории:
- (UIImage*) imageScaledToSize: (CGSize) newSize {
UIGraphicsBeginImageContext(newSize);
[self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Наконец, вот предыдущий вопрос о маскировании закругленных углов на изображении , аналогично значкам приложений, используемым на домашнем экране.
Добавлена
Использование встроенного эскиза изображения:
Есть замечательная функция CGImageSourceCreateThumbnailAtIndex
, которая понимает встроенные миниатюры в определенных форматах данных изображений. Вы можете увидеть некоторые полезные примеры кода для этого в Создание миниатюрного изображения из источника изображения в Руководстве по программированию ввода / вывода изображения от Apple.