изменить границы CGBitmapContext? - PullRequest
0 голосов
/ 14 марта 2012

Ниже приведен обычный способ создания CGBitmapContext, и при его создании мы устанавливаем границы контекста.

CGContextRef contextbitmap = CGBitmapContextCreate(NULL, width, height,8, 
4 * width,
devicecolorspace,                  
kCGImageAlphaPremultipliedFirst);

Я ищу способ обновить границы контекста?

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Вы не можете. Создайте новый растровый контекст. Вы можете перенести содержимое старого в новое, создав из него изображение (CGBitmapContextCreateImage) и затем нарисовав это изображение в новом контексте.

1 голос
/ 14 марта 2012

Контекст Core Graphics не имеет «границ».У него есть система координат, по существу бесконечная протяженность.Например, вы можете сделать CGContextFillRect(gc, CGRectInfinite).

Контекст растрового изображения имеет базовое растровое изображение, и каждый пиксель в растровом изображении сопоставляется с четко определенной областью в системе координат контекста.(Область всегда является параллелограммом.)

Первоначальное отображение при создании растрового контекста сопоставляет пиксели (вместе) с прямоугольником CGRectMake(0, 0, width, height).

Если вы хотите изменитьэто отображение, изменить текущую матрицу преобразования контекста (CTM).Например, если вы хотите отобразить пиксели на прямоугольник CGRectMake(-50, -50, 100, 100), сделайте следующее:

CGContextScaleCTM(gc, width / 100.0f, height / 100.0f);
CGContextTranslateCTM(gc, -50, -50);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...