問題タブ [cgbitmapcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
950 参照

c++ - 白黒のグラフィック コンテキスト

私は Quartz/Core-graphics で働いています。白黒、1 ピクセルあたり 1b のグラフィックス コンテキストを作成しようとしています。

私は現在、グレースケール画像 (実際には白黒) を持つ CGImageRef を持っています。それを白黒の BitmapContext に描画して、ビットマップを取得し、CCITT グループ 4 で圧縮できるようにします (何らかの理由で、Quartz では LZW 以外の TIFF 形式で保存できません)。

したがって、1 ピクセルあたり 1 ビットのデータが必要です。1bpp コンテキストに描画すればそれができると思います。ただし、次のコンテキストを作成することはできません。

グレーよりも小さい色空間はありますか?

0 投票する
1 に答える
1547 参照

xamarin.ios - MonoTouch Core Graphics を使用するアプリが不可解にクラッシュする

私のアプリは、View Controller と、ボタンとサブビューで構成される単純なビューで起動します。ユーザーがボタンに触れると、サブビューには、スプレッドシートの列ヘッダー、行ヘッダー、およびセルを表示するスクロールビューが取り込まれます。セルを描画するには、CGBitmapContext を使用してセルを描画し、画像を生成してから、セルを表示する scrollview に含まれる imageview に画像を配置します。

iPad でアプリを実行すると、セルが問題なく表示され、スクロールビューにより、ユーザーは問題なくスプレッドシート内をスクロールできます。ユーザーが 2 回目にボタンに触れると、スプレッドシートは再描画され、引き続き完全に機能します。ただし、ユーザーが 3 回目にボタンに触れると、アプリはクラッシュします。アプリケーション出力ウィンドウに例外情報は表示されません。

最初に考えたのは、ボタンを連続して押すと、利用可能なメモリがすべて使い果たされているのではないかと考えたので、View Controller の DidReceiveMemoryWarning メソッドをオーバーライドし、ブレークポイントを使用して、このメソッドが呼び出されていないことを確認しました。私が次に考えたのは、CGBitmapContext が解放されていないということで、Objective C の CGContextRelease() 関数に相当する Monotouch を探しました。私が見つけた最も近いものは、問題を解決せずに呼び出した CGBitmapContext インスタンス メソッド Dispose() でした。

できるだけ多くのメモリを解放するために (何らかの理由で警告が表示されずにメモリが不足していた場合)、CGBitmapContext の使用を終了するたびにガベージ コレクションを強制しようとしました。これが問題を悪化させました。これで、スプレッドシートを初めて表示した直後にプログラムがクラッシュすることがありました。これは、ガベージ コレクターが何らかの形で画面上にグラフィックスを表示し続けるために必要なものを収集しているのではないかと考えさせられました。

これらのクラッシュの原因を調査するためのさらなる手段についての提案に感謝します. SpreadsheetView クラスのソース コードを含めました。関連するメソッドは、ボタンがタッチされたときに呼び出される DrawSpreadsheet() です。

この件についてご協力いただきありがとうございます。

スティーブン・アシュリー

0 投票する
1 に答える
643 参照

cocoa - Cocoa + Quartz初心者:NSImageのピクセルの色を取得して画面外に描画する

Cocoa(iOSではなくMac)アプリケーション用のカスタムカラーピッカーを作成しようとしていますが、問題が発生しています。私はコンピューターグラフィックスや描画のさまざまなパターンに精通していますが、Cocoaは初めてです。問題は、基本的に、多層グラフィックステクノロジーの中で迷子になることだと思います。

私が実装しようとしているのは、より大きなサイドバービューにドッキングされたカラーピッカーなので、標準のフローティングパネルを使用するよりも、自分で描画するのが最善だと思いました。(私には正当な理由があります。AppleのHIGからの逸脱に関する警告について言及する必要はありません。)NSImage(この場合はcolorWheel.PNG)をクリックしたピクセルの色を取得するための最良の方法を調査したところ、それが最良であることがわかりました。コアグラフィックスに移動し、画像を自分のビットマップコンテキストに描画します。

...そしてそれは私が成功した限りです。コンテキストは正常に作成されましたが、ここからどこに進むべきか、これがやり過ぎかどうかはわかりません。私が探しているのは、これらのクラスが相互にリンクしている階層の確かな説明であり、私が探している効果をどのように作成するのが最善かということだと思います。画面外に描画することは、このアプリケーションの多くの部分で役立ちます。私はそれをよりよく理解したいと思います。

前もって感謝します。

0 投票する
1 に答える
2959 参照

ios - iOS反転座標カオス

そのため、私はCGBitmapContextを使用してソフトウェアブリッターをiOSに適合させています。データをビットマップに書き込んでから、CoreGraphics関数を使用してCGBitmapContextにテキストを書き込みます。ソフトウェアブリッターは左上の原点を使用し、CoreGraphics関数は左下の原点を使用します。そのため、(0、0)のブリッターを使用して画像を描画すると、左上隅に表示されます。(0、0)でCGを使用してテキストを描画すると、左下隅に表示され、反転されません。はい、座標の反転に関する他のすべての質問を読みました。結果のCG画像に対してそれを実行して、ビューに正しく表示します。おそらくコード例が役立つでしょう...

座標系を組み合わせるにはどうすればよいですか?ULCオリジンを使用してテキストを右側を上にして描画するにはどうすればよいですか?

0 投票する
1 に答える
672 参照

core-graphics - CGContextDrawImage、float CGBitmapContext 使用時のポスタリゼーション効果

CGImage からピクセル値を取得するには、CGContextDrawImage を使用します (ここで説明したように: UIImage (Cocoa Touch) または CGImage (Core Graphics) からピクセル データを取得する方法は?)。唯一の違いは、通常の 32 bpp コンテキストではなく、128 bpp float コンポーネント コンテキストを作成することです。オプション kCGImageSourceShouldAllowFloat で作成された CGImageSource から取得されたソース CGImage。そうすれば、ビットマップ コンテキストの色空間と一致する float ピクセル値の色にアクセスし、それらをさらに画像処理に使用したいと考えていました。問題は、結果の画像データがダイナミック レンジを失っているように見えることです。影のある、真っ青な空の領域で見ることができます。それらは輪郭があり、細部が欠けています。一部の調査では、問題が CGContextDrawImage (ソース CGImage にはフル ダイナミック レンジが含まれており、CGImageDestination を介して保存することで証明されます) で発生し、CGContextDrawImage コンテキスト コンテンツがポスタライズされた後に発生することが示されました。

さらに調査した結果、次のこと がわかりました。 意図した動作。

私の質問は: コア グラフィックスを使用して画像から浮動小数点データを取得する正しい方法は何ですか?

0 投票する
1 に答える
1062 参照

xcode - iOS SDK、unsigned char 配列からイメージをレンダリング、CGBitmapContextCreate が NULL を返す

xcode でのデバッグ中に見られるように、次の値を持つunsigned char* データがあります。

\xc1\xc1\xc1\xc1\xc1\xc1\xc1\xc0\x84\x03\x03\x02\x03\x02\x03\x03\x03\x02\x02\x03\x02\x03\x02\x02\x03 \x02\x02\x02\x02\x03\x03\x03\x03\x03\x02\x02\x03\x03\x03\x02\x02\x03\x02\x02\x02\x02\x03\x03\x03\x02 \x02\x02\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x02\x02\x03\x03\x03\x03\x03\x02\x03\x02 \x03\x02\x03\x03\x02\x02\x03\x03\x03\x02\x02\x02\x02\x02\x03\x02\x02\x03\x02\x03\x02\x02\x03\x03\x03

これは、qr コードのデータ配列です。

シンボル データは、width*width uchars を含む配列として表されます。各 uchar はモジュール (ドット) を表します。uchar の下位ビットが 1 の場合、対応するモジュールは黒です。

上記の場合、幅は177です。

CGBitmapContextCreate でさまざまな組み合わせを試しましたが、常に NULL になるようです。

お知らせ下さい。

あなたの助けは大歓迎です。

0 投票する
0 に答える
2088 参照

iphone - CGBitmapContextCreate のエラー

私はsampleBufferDataからUIImageを作成しようとしていますが、ここではコンソールにあるものです

: CGBitmapContextCreate: 無効なデータ バイト/行: 8 整数ビット/コンポーネント、3 コンポーネント、kCGImageAlphaPremultipliedFirst の場合、少なくとも 1920 である必要があります。
: CGBitmapContextCreateImage: 無効なコンテキスト 0x0

ここに私のコードがあります

0 投票する
2 に答える
783 参照

iphone - iPhone: Retina ディスプレイ UIImage へのフォントの書き込み

Objective-C の回答は問題ありません。参照用に MonoTouch を使用しています。

UIImage の上にテキストを書いています。Retina ではフォントが途切れ途切れに表示されます。ピクセルが 2 倍になっているように見えますが、これが起こっていることだと思います。UIImageに鮮明なフォントを書き込むにはどうすればよいですか?

ここに画像の説明を入力

0 投票する
0 に答える
486 参照

iphone - iPhone - CGBitmapContextCreate で Opengl テクスチャとして作成された画像

CGBitmapContextCreatetexture->data を呼び出してCGContextRefを作成し、CGImageRefby CGBitmapContextCreateImage(コンテキスト) を作成します。

ただし、作成されたイメージは期待どおりではありません:(

から作成されたものCGBitmapContextCreateImage

ここに画像の説明を入力

実際のもの(別のカメラで撮影したため、わずかに異なります):

ここに画像の説明を入力

コード: ( texture.bytesPerPixel = 2)

完全なコード:

http://ihome.ust.hk/~tm_lksac/OpenGLSprite.m

アプリケーションは通常- (void)drawSelfIfNeeded:(BOOL)、アプリケーション内のテクスチャを更新するために必要な呼び出しを行います。UIImageしかし、テクスチャの「スクリーンショット」を撮り、それをさらなる画像処理として保存したいと思います。

0 投票する
2 に答える
1084 参照

xamarin.ios - 「無効なハンドル」CGBitmapContextを作成します

CGBitmapcontextに問題があります。「invalidHandle」というメッセージが表示されたCGBitmapContextの作成中にエラーが発生します。

これが私のコードです:

ありがとうございました;