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)]
。
この答えは上のスポットです。 :) –
私もそれを試みました。 "CGBitmapContextCreate:サポートされていないパラメータの組み合わせ:8整数ビット/コンポーネント、32ビット/ピクセル、3コンポーネントカラースペース、kCGImageAlphaLast、448バイト/行"という同じエラーが表示されます。 –
私はまだkCGImageAlphaLastでエラーが発生していることを示すために質問を更新しました。 –