포인터가 데이터 인 경우 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에서 copy-on-write를 지원하는 픽셀 형식으로 데이터를 미리 디코딩하고 CGBitmapContextCreate를 사용하는 것이 유일한 방법입니다. – rpetrich
사실 제대로 작동하지 않습니다 ... 어떻게해야합니까? UIImage에 형식 및 크기 정보를 전달합니까? 확실하게 뭔가가 빠져 있습니다. –