Мой вопрос связан с этим ссылка
Я хотел бы знать, как мы можем сохранять изображения, превышающие разрешение устройства, используя CGBitmapContextCreate
.
Любой пример кода для руководства будет высоко оценен.
Благодарность!
Мой вопрос связан с этим ссылка
Я хотел бы знать, как мы можем сохранять изображения, превышающие разрешение устройства, используя CGBitmapContextCreate
.
Любой пример кода для руководства будет высоко оценен.
Благодарность!
Не используйте CGBitmapContextCreate, используйте UIGraphicsBeginImageContextWithOptions, это намного проще. Используйте это так:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(width, height), YES, 1.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
//do your drawing
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEdnImageContext();
//your resultant UIImage is now stored in image variable
Три параметра UIGraphicsBeginImageContext:
Размер изображения - это может быть что угодно
Имеет ли изображение прозрачность или нет
Масштаб пикселей в изображении. По умолчанию используется 0.0, поэтому на iPhone 3GS это будет 1.0, а на iPhone 4 с дисплеем Retina — 2.0. Однако вы можете передать любой масштаб, какой хотите, поэтому, если вы передадите 5.0, каждая единица пикселя в вашем изображении будет фактически 5x5 пикселей в растровом изображении, точно так же, как 1 пиксель на дисплее Retina на самом деле 2x2 пикселя на экране.
Редактировать: оказывается, вопрос о том, является ли UIGraphicsBeginImageContext() потокобезопасным, кажется немного спорным. Если вам нужно сделать это одновременно в фоновом потоке, есть альтернативный (довольно более сложный подход) с использованием CGBitMapContextCreate() здесь: UIGraphicsBeginImageContext vs CGBitmapContextCreate