問題タブ [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 に答える
247 参照

xamarin.ios - 描画のための CGBitmapContext のオプション

CGBitmapContext または Quartz 2D のオプションはありますか? モノタッチで UIImage に描画するために使用したい。

ありがとうアレックス。

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

ios - CGBitmapContext の特定の色を置き換える

CGBitmapContextすでに描画されている特定の色(RGB値)を置き換えるにはどうすればよいですか?

簡単な方法はありますか?

前もって感謝します。

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

c# - MonoTouch の CGBitmapContext が無効なハンドル例外をスローする

私は MonoTouch を初めて使用し、最近、コードを標準 C# から MonoTouch 準拠のコードに変換して、iPhone アプリケーション内で使用できるようにしました。コードを変換することはできましたが、ビットマップ コンテキストを返すために使用するこのメソッドで問題が発生しました。

スタック トレースは次のとおりです。

エラーは次の行で発生します。

私はMonoTouchに非常に慣れていないので、明らかに明らかな場合は我慢してみてください。しかし、何が起こっているのか誰か説明できますか?

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

ios - CGBitmapContextCreateメモリリリースの責任

これが私が作成する方法UIImageです。piOutDatacallocで割り当てました。最後に電話CGImageReleaseすると、自動的に解放されますpiOutDataか、それとも無料で手動で行う必要がありますか。

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

xamarin.ios - サンプル バッファからの画像の取得

カメラがオンになっているときにiPadでスクリーンショットをキャプチャしようとしています。私のコードは、Xamarin MonoTouch サンプルの AVCaptureFrames とまったく同じように見えます。

ここに画像の説明を入力

ただし、何らかの理由で、無効なハンドラー例外が発生し続けます。私は、次のような私のものに似た他の質問を見てきました。

MonoTouch の CGBitmapContext が無効なハンドル例外「無効なハンドル」をスローする

しかし、彼らの解決策は私の同様の問題を解決していません。私の問題は、null の送信やメモリが大きすぎることが原因ではありません。null 値を送信しておらず、xcode 割り当てツールを使用してメモリ使用量を確認しましたが、メモリ使用量は爆発しません。最大で 400KB しか追加されません。

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

c# - CGBitmapContext のピクセル操作はビューのスーパービューに依存しますか?

CGBitmapContext を使用してピクセルを操作しているときに、本当に奇妙なことに遭遇しました。基本的に、PNG のアルファ値を変更しています。ImageView のスーパービューが画像を含む ImageView である場合を除いて、PNG ピクセルのアルファ値を正常にゼロにできる例があります。これはなぜですか? それがバグなのか、コンテキスト内の何かが正しく設定されていないのかはわかりません。

以下は例です。アルファ値を正常にゼロにしますが、スーパービューの UIImageView に画像を指定すると、正しく機能しません。ゼロのアルファを持つ必要があるピクセルがわずかに表示されます。しかし、スーパービューの UIImageView から画像を削除すると、アルファ値が正しくゼロになり、その背後にある白い背景が完全に表示されます。いくつかの異なる CGBlendMode を使用してみましたが、うまくいかないようです。

この奇妙なイベントを示すサンプル プロジェクトへのドロップボックス リンクを次に示します: https://www.dropbox.com/s/e93hzxl5ru5wnss/TestAlpha.zip

そして、ここにコードのコピー/貼り付けがあります:

更新 回避策を見つけました (ただし、そのパフォーマンスは私が行っていることに対してはかなり受け入れられません) 回避策は、上記のコードから結果の画像を取得し、それを NSData に変換してから、NSData を UIIMage に変換することです。 . 魔法のように画像は正しく見えます! この回避策; ただし、私の画像でこれを行うには文字通り 2 秒かかり、それは私のアプリには長すぎるため、私がやっていることには受け入れられません. 数百ミリ秒は楽しいでしょう. 、しかし、私には 2 秒は長すぎます.これがバグである場合は、解決されることを願っています!

回避策 (パフォーマンスの低下) のコードを次に示します。このコードを上記のコードの最後に追加するだけです (または、私の Dropbox プロジェクトをダウンロードし、このコードを最後に追加して実行します)。

前後の写真がこちら。Before は回避策なし、After は回避策あり。

ここに画像の説明を入力 グレーが完全に表示されないことに注意してください。アルファ値が完全にゼロになっていないかのように、明るい茶色で覆われています。

ここに画像の説明を入力 回避策を使用すると、灰色が完全かつ明確に表示され、その上に薄い茶色がまったく表示されないことに注意してください。私がした唯一のことは、画像をNSDataに変換してから、再びUIImageに戻すことでした! 非常に奇妙な...

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

calayer - renderInContext の使用方法: CGBitmapContextCreate と Retina で?

CGBitmapContext を手動で作成しました。

それにレイヤーを描画します:

ただし、Retina では、私のレイヤーは元のサイズの半分でしかレンダリングされません。

contentScaleFactorでプロパティを設定してUIViewも何も変わりません。

これを行う正しい方法は何ですか?

0 投票する
3 に答える
7693 参照

ios - iOS で大きな画像を処理する

ユーザーがサイズを制限せずに写真を選択して編集できるようにしたい。

大きな写真のサムネイルを画面と同じサイズで編集用に作成し、編集が終了したら大きな写真を使用して、サムネイルに対して行ったのと同じ編集を行うという考えです。

UIGraphicsBeginImageContextサムネイル画像の作成に使用すると、メモリの問題が発生します。

ハードウェアの制限により、大きな画像全体を直接編集するのは難しいことを知っているので、大きな画像をメモリの問題なしで 2048*2048 未満にダウンサンプリングする方法があるかどうか知りたいですか?

Androidプラットフォームで写真をダウンサンプリングできるオプションをBitmapFactory持つクラスがあることがわかりました。inSampleSizeiOSでこれを行うにはどうすればよいですか?

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

avplayer - ムービーから CGBitmapContext へのフレームの描画

ビデオ/ムービーのフレームを、任意の CGAffineTransform を使用して CGBitmapContext にレンダリングする必要があるアプリがあります。少なくとも 20fps のような、まともなフレーム レートが必要です。

AVURLAsset と [AVAssetImageGenerator copyCGImageAtTime:] を使用してみましたが、このメソッドのドキュメントに明確に記載されているように、非常に遅く、5 fps に落ちることもあります。

これを行うためのより良い方法は何ですか? AVPlayerLayer を使用して AVPlayer をセットアップし、変換で [CGLayer renderInContext:] を使用できると考えています。これは機能しますか?それとも、AVPlayerLayer が画面に表示されていないことに気付いたときに、AVPlayerLayer が実行されないのでしょうか?

他に提案する方法はありますか?