указатель данные если указывать на какое-либо изображение, созданное приложением iphone. Кто-нибудь теперь, если использует CGBitmapContextCreate, копирует эти данные или использует изображение «на месте»?iphone: создание изображения без выделения новой памяти
В идеале, я хотел бы повторно использовать информацию в данных * и не создавать дополнительную копию этого изображения.
void* data = <my data>;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef imageContext = CGBitmapContextCreate(data, w, h, 8, w*8, colorSpace, kCGBitmapByteOrder32Big|kCGImageAlphaPremultipliedLast);
CGImageRef imageRef = CGBitmapContextCreateImage(imageContext);
UIImage* image =[[UIImage alloc] initWithCGImage:imageRef];
В целом, этот способ создания изображения кажется мне довольно запутанным. Кто-нибудь знает, что здесь происходит? Есть ли более простой способ создать UIImage?
Благодаря
- [UIImage initWithData] декодирует данные изображения и в процессе делает его копию. Чтобы по-настоящему создать изображение без выделения памяти, единственный способ состоит в том, чтобы данные были предварительно закодированы в формате пикселей, который поддерживает iPhone с помощью копирования-на-записи и использует CGBitmapContextCreate – rpetrich
На самом деле я не мог заставить это работать правильно ... Как сделать Я передаю информацию о формате и размере в UIImage? Наверняка чего-то там нет. – 2009-11-30 16:48:22