Рисовать на CGContext от CGImage - PullRequest
       23

Рисовать на CGContext от CGImage

1 голос
/ 16 октября 2011

Я хотел бы нарисовать CGContext, используя плитки из CGImage, которые я хотел бы нарисовать в указанном порядке.

Согласно документации здесь кажется, что единственный способ нарисовать изображение в графическом контексте - это

void CGContextDrawImage (
   CGContextRef c,
   CGRect rect,
   CGImageRef image
);

Но это не учитывает случай, в котором я хочу нарисовать только CGRect исходного изображения. Нужно ли делать какие-то трюки, чтобы сделать эту работу?

Ответы [ 2 ]

3 голосов
/ 16 октября 2011

Это список 11-1 из руководства по программированию Apple Quartz 2D :

myImageArea = CGRectMake (rooster_head_x_origin, rooster_head_y_origin,
                            myWidth, myHeight);
mySubimage = CGImageCreateWithImageInRect (myRoosterImage, myImageArea);
myRect = CGRectMake(0, 0, myWidth*2, myHeight*2);
CGContextDrawImage(context, myRect, mySubimage);

Обратите внимание, что CGImageCreateWithImageInRect возвращает ссылку, за которую вы несете ответственностьвыпуская, так что вам нужно будет сделать это, когда вы закончите с mySubimage:

CGImageRelease(mySubimage);
3 голосов
/ 16 октября 2011

Если я правильно понимаю ваш вопрос, то вы просите обрезать изображение на определенном CGRect, если да, то вам нужно взглянуть на этот метод.

CGImageCreateWithImageInRect(CGImage image, CGRect rect)

Это вернет вам CGImageRef и в соответствии с вашими потребностями, я думаю, это то, что вы ищете.

...