Wednesday, November 27, 2013

Справочник по IOS4 Изображения http://www.darkraha.com/rus/mobile/ios/gui/res/image.php

http://www.darkraha.com/rus/mobile/ios/gui/res/image.php

Справочник по IOS4

Изображения

Изображение описывается классом UIImage.

Разрешение экрана для iPhone до четвертой версии: 480×320 пикселей. После четвертой версии: 960×640 пикселей. Таким образом, приложение может иметь два набора иконок для разных разрешений (подробней см. альтернативные ресурсы).

Система автоматически уничтожает данные изображения при нехватки памяти, и загружает заново когда приложение пытается его отрисовать. Также не рекомендуется создавать изображения больше 1024x1024, кроме памяти могут возникнуть проблемы с OpenGL ES. Ограничение не касается манипуляций с изображением в коде.

  // загрузка изображения из ресурса приложения  UIImage *image = [UIImage imageNamed:@"chk_yes.png"];    // загрузка изображения по url  UIImage *image = [UIImage imageWithData:   		[NSData dataWithContentsOfURL:[NSURL URLWithString:url] ]]; 	      // сохранить изображение в фотоальбом    UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);    //--------------------------------------------------------  // сохранить изображение в jpg файл  //вначале делаем путь к файлу (пример из программы)  NSString *jpgPath = [NSString stringWithFormat: @"%@/%@.jpg", [              NSHomeDirectory() stringByAppendingPathComponent:@"Documents"],              [NSString stringWithFormat: @"%d",idCompany]] ;    // сохраняем  [UIImageJPEGRepresentation(image, 1.0) writeToFile:jpgPath atomically:YES];  
  • + imageNamed: - загрузить изображение из ресурса;
  • + imageWithContentsOfFile: - загрузить из файла;
  • – initWithContentsOfFile: - загрузить из файла;
  • + imageWithData: - создать из байтовых данных;
  • – initWithData: - создать из байтовых данных;
  • + imageWithCGImage: - создать из изображения в формате библиотеки Quartz;
  • – initWithCGImage: - создать из изображения в формате библиотеки Quartz;
  • + imageWithCGImage:scale:orientation: - предыдущее с добавлением масштабирования и смены ориентации;
  • – initWithCGImage:scale:orientation:
  • + imageWithCIImage: - создать из изображения в формате библиотеки Core Image;
  • – initWithCIImage: - создать из изображения в формате библиотеки Core Image;
  • – resizableImageWithCapInsets:
  • – stretchableImageWithLeftCapWidth:topCapHeight: (устарело с пятой версии);
  • imageOrientation - ориентация изображения, может принимать одно из следующих значений:
    • UIImageOrientationUp - нормальная ориентация по умолчанию;
    • UIImageOrientationDown - перевернутое изображение на 180 градусов;
    • UIImageOrientationLeft - повернутое изображение на 90 градусов против часовой стрелки;
    • UIImageOrientationRight - повернутое изображение на 90 градусов по часовой стрелке;
    • UIImageOrientationUpMirrored - с зеркальным отображением по оси X;
    • UIImageOrientationDownMirrored - перевернутое с зеркальным отображением по оси X;
    • UIImageOrientationLeftMirrored - повернутое с зеркальным отображеним по оси Y;
    • UIImageOrientationRightMirrored - повернутое с зеркальным отображеним по оси Y;
  • size - размер изображения с учетом ориентации;
  • scale - коэфф. масштабирования,
  • CGImage - ссылка на изображение в формате библиотеки Quartz;
  • CIImage - ссылка на изображение в формате библиотеки Core Image;

заклепки

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

До пятой версии использовались поля leftCapWidth и topCapHeight, противоположные заклепки вычислялись автоматически по формулам:

rightCapWidth = image.size.width - (image.leftCapWidth + 1);  bottomCapHeight = image.size.height - (image.topCapHeight + 1);  

С пятой версии рекомендуется использовать свойство capInsets типа UIEdgeInsets.

  // зазгружаем изображение например скругленная рамка,   // указываем какие части изображения не масштабировать      imgView.image = [[UIImage imageNamed:@"bg_text.png"]        resizableImageWithCapInsets:UIEdgeInsetsMake(12, 12, 12, 12)];  

по кадравая анимация

Есть поддержка по кадровой анимации. Кадры должны быть в одного размера и масштаба. Имена файлов содержащие отдельные кадры различаются цифровым суффиксом: image0, ..., image1024

  • + animatedImageNamed:duration: - загрузка анимации из ресурса;
  • + animatedResizableImageNamed:capInsets:duration: - предыдущее с возможностью указать заклепки;
  • + animatedImageWithImages:duration: - создание анимации из массива изображений;
  • images - массив изображений кадров, или nil;
  • duration - интервал между сменой кадров, или 0.0;

графический вывод

  • – drawAtPoint: - нарисовать изображение в указанной точке, определяющей левый верхний угол;
  • – drawAtPoint:blendMode:alpha: - предыдущее с возможностью указать прозрачность и режим смешивания цветов:
  • – drawInRect: - нарисовать изображение в указанной области;
  • – drawInRect:blendMode:alpha: - предыдущее с возможностью указать прозрачность и режим смешивания цветов:
  • – drawAsPatternInRect: - закрасить область указанным изображением, в системе координат по умолчанию слева направо, сверху вниз;

вспомогательные функции

В UIkit определены дополнительные функции для работы с изображением:

  • UIImageJPEGRepresentation(UIImage *image,CGFloat compressionQuality) - сохранить изображение в jpg файл;
  • UIImagePNGRepresentation(UIImage *image) - сохранить изображение в png файл;
  • UIImageWriteToSavedPhotosAlbum(UIImage *image, id completionTarget, SEL completionSelector, void *contextInfo) - сохранить изображение в альбом;

дополнительно

Полезное расширение класса UIImage, позволяет масштабировать, скруглять углы, работать с прозрачностью. При масштабировании ориентация изображения приводится в нормальное (UIImageOrientationUp).

No comments:

Post a Comment