OpenGL ES 2.0 텍스처로 사용할 텍스트에서 RGBA8 이미지를 생성하려고합니다.어떻게 Core Graphics에서 RGBA 이미지를 생성합니까?
+(UIImage *)imageFromText:(NSString *)text
{
UIFont *font = [UIFont systemFontOfSize:20.0];
CGSize size = [text sizeWithFont:font];
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef contextRef = CGBitmapContextCreate (NULL,
size.width, size.height,
8, 4*size.width,
colorSpace,
kCGImageAlphaLast
);
CGColorSpaceRelease(colorSpace);
UIGraphicsPushContext(contextRef);
[text drawAtPoint:CGPointMake(0.0, 0.0) withFont:font];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsPopContext();
return image;
}
불행히도 CGColorSpaceCreateDeviceRGBA
없다, 다음과 같은 오류 CGColorSpaceCreateDeviceRGB
결과 :
CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 32 bits/pixel; 3-component color space; kCGImageAlphaLast; 448 bytes/row.
내가 OpenGL을 여기에 원하는 적절한 RGBA8 형식을 만드는 실종 무엇?
업데이트 : 내가 오류가 시도한 몇 가지 변화 중 하나입니다 kCGImageAlphaLast
에 (그것이 내가 코드를 붙여 복사 할 때이었다) kCGImageAlphaNone
에서 CGBitmapContextCreate
의 마지막 매개 변수를 변경했습니다.
업데이트 2 : 컨텍스트가 UIGraphicsBeginImageContext()
로 생성되지 않은 경우 UIGraphicsGetImageFromCurrentImageContext()
은 nil을 반환, 그래서 다른 이미지를 추출 할 필요가있다 : [UIImage imageWithCGImage:CGBitmapContextCreateImage(contextRef)]
.
이 답변에 자리이며, 90 계산한다. :) –
나는 그것을 또한 시험해 보았다. "CGBitmapContextCreate : 지원되지 않는 매개 변수 조합 : 8 정수 비트/구성 요소, 32 비트/픽셀, 3 구성 요소 색상 공간, kCGImageAlphaLast, 448 바이트/행"같은 오류 메시지가 나타납니다. –
kCGImageAlphaLast에서 오류가 계속 발생했음을 보여주기 위해 질문을 업데이트했습니다. –