問題タブ [wic]

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 に答える
1786 参照

render - IWicBitmap の wic ビットマップ レンダー ターゲットを作成する

を使用して、メモリに存在するデータを使用して IWicBitmap を作成しました

今、ビットマップに描画したかったので、bitmaprendertarget を作成しています

しかし、それはターゲットを形成しません - エラーを返します:

私はそれを解決する方法を理解していません。プロパティも設定しました

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

c++ - Windows Imaging Component を使用して EMF を BMP (メタファイルからビットマップ) に変換する

レガシ VC++ 6.0 コードのビットマップに変換したい .emf ファイルがあります。

私は WIC のドキュメントを調べてきましたが、これを行う方法が見当たらないことに驚いています。

何か不足していますか?

WIC がこれをサポートしない場合、.emf ファイルを CBitmap オブジェクトにプログラムで読み込む方法はありますか?

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

windows - ID2D1Bitmap と IWicBitmap の違い

ID2D1Bitmap と IWicBitmap の違いは何ですか? 生のメモリ データがあり、ビットマップを作成したかったのです。

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

windows - WIC ビットマップ処理に最も効果的なピクセル形式は何ですか?

Direct2D と WIC Bitmap を使用して、単純なビデオ プレーヤーのようなプログラムを作成しようとしています。
YUV ピクセル形式のフレーム データの高速で CPU 経済的な描画 (ストレッチあり) が必要です。

私はすでにGDIでテストしました。Direct2D に切り替えることで、少なくとも 10 倍のパフォーマンス向上 (CPU オーバーヘッドの減少) が得られることを願っています。

私がやることは基本的に以下のようなものです:

  1. 空の WIC ビットマップ A を作成します (キャンバスを描画するため)。
  2. YUVフレームデータで別のWICビットマップBを作成(フォーマット変換)
  3. ビットマップ B を A に描画し、次に A を D2D レンダー ターゲットに描画します

1、2 ステップの場合、ピクセル形式を選択する必要があります。
WIC ネイティブ ピクセル形式

MSDN の推奨ページがありますWICPixelFormat32bppPBGRA
http://msdn.microsoft.com/en-us/library/windows/desktop/hh780393(v=vs.85).aspx

WICPixelFormat32bppPBGRAとの違いは何WICPixelFormat32bppBGRAですか? (前者は追加Pあり)

行くべき道ならWICPixelFormat32bppPBGRA、それは常にそうですか?ハードウェアや構成に関係なく?

実際にWICビットマップ処理に最も効果的なピクセル形式は何ですか?

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

windows - WIC 'Copy Pixels' 呼び出し後にピクセルを事前に乗算する

PARGB32 ビットマップの作成を検討しています。これは、XP 以降のメニュー項目で完全に機能するイメージを生成するために必要なようです。

この例 http://msdn.microsoft.com/en-us/library/bb757020.aspx?s=6 は非常に興味深いものですが、これまで OLE インターフェイスを使用したことがほとんどないため、かなり複雑です。しかし、WIC と OLE を使用するコードを注意深く調べたところ、その仕組みが理解できたと思います。私を混乱させているのは、ユーザー「David Hellerman」によるコメントです。要約すると、彼はこのサンプル関数は完全ではないと述べています。ソース アイコンの潜在的なアルファ情報は考慮されません。アルファ データが存在する場合は、ppvBuffer 変数をスキャンしながら、ピクセルごとに事前に乗算する必要があります。

私の質問には 2 つの部分があります。GDI の代わりに WIC を使用しているときにアイコン内のアルファ データの存在を検出するにはどうすればよいですか? また、アルファ データが存在する場合は、それをピクセルに事前に乗算するにはどうすればよいですか?

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

windows - IWICBitmapScaler は 96bppRGBFloat 形式では機能しませんか?

WIC ライブラリを使用しているときに問題が発生しました。そして、IWICBitmapScaler を使用して R32G32B32 画像をスケーリングできないことがわかりました... コード例を以下に示します。

そして、dstImg バッファーに -1.#QNAN000 を取得するだけです :( 何か間違ったことをしたのか、それとも IWICBitmapScaler がそのような形式をサポートしていないのかわかりませんか?

もう 1 つの問題は、IWICFormatConverter を使用して R32G32B32A32 (つまり 128bppRGBFloat) 画像を R32Gray (つまり 32bppGrayFloat) 形式に変換すると、値が常に [0, 1] にクランプされることです。これは望ましい動作ですか? (どうして???)

(私のプラットフォーム: Win 8.1 64bit + VS2013)

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

c++ - IWICBitmapLock::GetStride メソッドは常に同じ値を返す

実行時に数回実行される次のコードがあります。

uiWidthuiHeight常に異なります。初期値は 3264 と 2448 です。2 回目は、たとえば 778 と 246 になる可能性があります。ただし、メソッドはpLock->GetStride(&cbStride)常に同じストライド値を返します (私の場合は 13056)。CreateBitmapFromMemory()メソッドが破損したビットマップを作成する原因となります。ビットマップの寸法に応じて、他の変数が正しく変化しています。pLockどこかにストライド値がキャッシュさ れているようです。

MSDN の記述では、ストライド値はビットマップではなく、IWICBitmapLock に固有のものです。ただし、毎回 pLock をリリースしました。では、そのような行動の原因は何でしょうか?

同じことを行うために使用できる 2 番目の方法は次のようなものですが、上記のコードの何が問題なのかを理解したいと思います。