манипуляция изображениями iPhone Objective-C - PullRequest
1 голос
/ 13 декабря 2010

Я ищу способ, в Objective-C, создать PNG из нескольких меньших PNG, основываясь на том, как пользователь их настраивает.Возможно ли это с помощью существующих классов Apple, или мне нужно использовать стороннюю библиотеку?Если нужен сторонний код, может кто-нибудь порекомендовать хорошую библиотеку?Чем проще, тем лучше - простые фильтры (такие как затемнение / осветление изображения) были бы хороши, но не обязательны.

Вот некоторый псевдокод, чтобы дать вам лучшее представление о том, что я ищу:

image = [myImageLibrary imageWithHeight:1024 width:768];
[image addImage:@"background.png" atX:0 andY:0 withRotation:0];
[image addImage:@"image2.png" atX:100 andY:200 withRotation:90];
[image saveAtLocation:@"output.png"];

В output.png мы видим image2.png, помещенный поверх background.png и повернутый на 90 градусов

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

Ответы [ 2 ]

3 голосов
/ 13 декабря 2010

Читали ли вы раздел «Создание и рисование изображений» Руководства по рисованию и печати для iOS и Справочник по классам UIImage ?

То, что вам нужно, вполне возможно - с хорошо построенным классом вы можете в значительной степени использовать этот псевдокод как есть.

Как стартер на десять, вы могли бы:

  1. Создайте свой собственный графический контекст с помощью UIGraphicsBeginImageContext.
  2. Используйте это с помощью drawAtPoint: метода UIImage класса
  3. Сохранить данные результирующего изображения с помощью UIGraphicsGetImageFromCurrentImageContext.

Что касается шагов 1 и 3, см. Справочник функций UIKit для получения дополнительной информации. Кроме того, метод imageWithCGImage:scale:orientation: класса UIImage может оказаться полезным для выполнения преобразований и т. Д. Как часть шага 2.

1 голос
/ 13 декабря 2010

Вы захотите посмотреть на CGContextDrawImage, чтобы нарисовать ваши изображения, используя пользовательский растровый контекст, а затем сохраните его, используя UIGraphicsGetImageFromCurrentImageContext (). Поворот можно сделать, применив CGAffineTransforms к вашему CGContext.

Больше информации о Core Graphics здесь: http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html

...