Уверен ли, что UIGraphicsBeginImageContext использует CGBitmapContextCreate для создания графического контекста?

Есть ли UIGraphicsBeginImageContext использование CGBitmapContextCreate создать графический контекст [обновление: я не могу найти его в документации], так что графический контекст точно так же в любом случае? Я также пытался вступить в UIGraphicsBeginImageContext но отладчик не позволит мне войти в это.

1 ответ

На странице ссылок на функции UIKit документации iOS написано следующее о UIGraphicsBeginImageContext:

Создает растровый графический контекст и делает его текущим контекстом.

Акцент добавлен. После ссылки на страницу CGContextRef я нахожу это:

Графический контекст содержит параметры рисования и всю специфическую для устройства информацию, необходимую для визуализации краски на странице до места назначения, независимо от того, является ли место назначения окном в приложении, растровым изображением, документом PDF или принтером.

И снова акцент добавлен. Это говорит о том, что (на данный момент) существует 4 вида контекстов Core Graphics, каждый со своими инициализаторами. Единственный вид, который имеет отношение к растровым изображениям, - это CGContextRef на основе растровых изображений, и существует только один документированный способ их создания (ну, технически это происходит в двух версиях). Весьма вероятно, что эта функция используется. я полагаю, что UIGraphicsBeginImageContext это просто удобный метод. Он просто устанавливает набор параметров по умолчанию для CGBitmapContextCreate (он принимает много параметров) и помещает созданный контекст в графический стек.

Другие вопросы по тегам