2012-01-29 8 views
2

IOSでは、CGBitmapContextCreateで作成したコンテキストに描画することでイメージを作成しようとしています。以下は私が使用しているコードです(これは私が見つけたいくつかの例に似ていますが)私はそれを呼び出すと何も描画されません。この例の「コンテキスト」はUIGraphicsGetCurrentContextの呼び出しを介して取得され、このコンテキストに他のものを正常にペイントできます。私が紛失しているものがありますか?私は問題を発見した多くの実験の後CGBitmapContextCreateを使用して作成したイメージをペイントできません。

おかげ

CGContextRef bmContext; 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 

    bmContext = CGBitmapContextCreate(nil, 200, 200, 8, 0, colorSpace, kCGImageAlphaPremultipliedLast); 

    CGFloat Color[4] = {  
     (CGFloat) 1, 
     (CGFloat) 0, 
     (CGFloat) 0, 
     (CGFloat) 1 }; 
    CGRect Rect = { { 0, 0 }, { 200, 200 } }; 

    CGContextSetFillColor(bmContext, Color); 
    CGContextFillRect (bmContext, Rect); 

    CGImageRef image = CGBitmapContextCreateImage(bmContext); 

    CGContextDrawImage(context, CGRectMake(100, 100, 200, 200), image); 

    CGImageRelease(image); 
    CGContextRelease(bmContext); 
    CFRelease(colorSpace); 
+0

「コンテキスト」はどのように取得されますか? – Till

+0

このコードはどこに表示されますか? drawRectで?どこでもsetNeedsDisplayはありますか?ええ、「コンテキスト」はどこから来たのですか?あなたは "bmContext"を意味しましたか? –

+0

はい、これはdrawRectから呼び出され、私が述べたように、 'コンテキスト'はUIGraphicsGetCurrentContextの呼び出しから来て、他のものを描画するのにうまく使うことができます。 –

答えて

1

。私が呼び出す必要が表示されます。

CGContextSetFillColorSpace(bmContext, colorSpace); 

それ以外の場合は、グレースケールのコンテキストのように見えると私は塗りつぶしの色、強度およびアルファを設定する場合にのみ2つの値を期待しています。これは、上の私の例では、アルファは常にゼロであるため、何も描画されていないことを意味しています。コンテキストをRGB色空間に設定すると、問題が解決されます。

私の問題を見る時間をとったすべての人に感謝します。

関連する問題