問題タブ [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 投票する
2 に答える
1012 参照

c++ - WICBitmap をウィンドウに描画しますか?

WICBitmapMFC プログラムにイメージを含む があります。このビットマップをデバイス コンテキストに描画する方法はありますか?

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

visual-c++ - ビジュアルスタジオ2012のパス全体なしでファイルをロードする

Visual Studio 2012でプログラムを書いています。私は Windows Imaging コンポーネントを使用しています。プログラムで使用するイメージ ファイルをリソースにせずに配置したいと考えています。誰かがプログラムをダウンロードしたときに、プログラムと一緒にダウンロードさせたいです。

したがって、プログラムで直接パスを指定すると、次のように言うことが問題になります。

を指定せずにどうすればよいでしょうかUsers\Billy\Documents。他のコンピューターでは異なるためです。

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

visual-c++ - リソース win32 に LoadImage を使用する

OpenFileName と GetOpenFileName を使用してファイルを取得し、Windows Imaging Component を使用して DIBSection に変換し、BitBlt を使用してウィンドウに描画するプログラムがあります。

リソース ファイルで同じことをしたいので、LoadImage を使用しますが、Windows Imaging Component を使用して変換しようとすると、アクセス違反が発生し、文字列の文字の読み取りエラーが表示されます。

これが私がLoadImageを使用する方法です

ここで私の問題は何ですか?

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

bitmap - HRESULT -2003292276 をどのように解釈すればよいですか?

どう解釈すればいいHRESULT -2003292276ですか?

これは、次の呼び出しによって返されIWICFactory factory->CreateBitmapFromMemory()ます。

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

c++ - IWICBitmapSource を HBITMAP に変換する方法は?

CreateBitmapFromHBITMAPファクトリ メソッドを使用して、HBITMAP から IWICBitmap を簡単に生成できます。しかし、IWICBitmapSource から単純な GDI ビットマップを取得するにはどうすればよいでしょうか。

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

c++ - WIC イメージ c++ から RGB を取得する

WIC を使用して画像を読み込み、各ピクセルの RGB 値を取得できるようにしたいと考えています。getDataPointer()を使用してバイトバッファー ( COLORREF配列にキャスト)を作成するところまで行きましたが、この後はおかしくなりました。

テスト中の10x10 24ビットpngがあります。サイズの値を見ると、getDataPointer()300 と表示されます。これは 10 * 10 * 3 (ピクセルあたり 3 バイトの場合) = 300 であるため、意味があります。検出。

そこで、反復子を使用してCOLORREFを通過するループを作成します。配列内に 100 ピクセルしかないことがわかっているため、条件はi < size/3です。次に、マクロGetRValue()GetGValue()、およびGetBValue()を使用して RGB 値を取得します。

これは、物事が奇妙になるときです-私の小さな画像は、赤、緑、青、黒のピクセルが入った単なるテスト画像ですが、RGB値が出てきます (255, 0, 0), (0, 255, 0), ( 27, 255, 36)、(0, 0, 0) など、一部の値が正しく出力されず、何らかの形で壊れているようです。また、画像の最後の 20/30 ピクセルは、大量のクレイジーな色であるか、すべて黒であり、何らかの破損があると思われます。

また、より大きな実際の写真でテストしましたが、これはすべてグレースケールで同じパターンを繰り返しているため、ストライドの問題だと思いますが、 getPixelFormat()を呼び出すと、WIC が 24bppBGR または 24bppRGB であると言うため、方法がわかりません。画像。

誰かが私が間違っていることを知っていますか? COLORREF やマクロなどを使用するべきではありませんか?

御時間ありがとうございます。

編集

うーん、まだ問題があります。PixelFormat() が 24bppBGR として報告している別の 24 ビット PNG を試してみましたが、歪んで描画されているため、ストライドがずれているか何かのようです (必須のニャンキャット テスト):

にゃん猫で WIC の負荷をテストするが、歩幅がずれている

編集2

さて、うまくいくものとそうでないものがあるようです。24bpp BGR が機能していると報告するものもあれば、上の画像のように見えるものもあります。ストライドを計算すると、本来あるべきものと比較して、それらは異なり、バッファのサイズも異なります。また、いくつかの 32bpp BGR イメージがありますが、それらのいくつかは機能し、他のものは機能しません。ここで何か不足していますか?バッファ内の余分なバイトを構成するものは何ですか?

画像の例を次に示します。

24bppBGR JPEG:

これを計算すると:

これまでに機能した画像に対してこれらの計算を行うと、計算とコードが提供する値に違いはありません...

ここで何が間違っているのか理解していますか? これらの計算は、私が考えたように機能するはずですか?

再度、感謝します

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

c++ - IWICBitmapFrameEncode::SetPixelFormat が要求されたものとは異なる形式を返す原因は何ですか?

WIC を使用して、複数の画像を JPEGXR 形式にエンコードしています。ときどき、私のプログラムは、次の Encode 関数のスニペットの最後の LogAssert のエラーをログに記録します。

ダンプ ファイルを確認したところ、返された formatGUID は GUID_WICPixelFormat24bpp RGBのようです。

次の質問があります。

  1. SetPixel フォーマットが別のバージョンを返すのはいつですか? 別の GUID を返す要因は何ですか?

  2. 私は常に JPEGXR にエンコードし、常に同じプロパティを適用しています。SetPixelFormat の動作が非決定論的であるのはなぜですか? 常に成功するか、常に GUID_WICPixelFormat24bppRGB を返す必要がありますか?

  3. RGB フォーマットがサポートされているのに、BGR がサポートされていないのはなぜですか? 順番が変わるだけです。

私のコードは、ここの例の助けを借りて書かれました:

http://msdn.microsoft.com/en-us/library/windows/desktop/ee719871(v=vs.85).aspx

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

c++11 - CreateBitmapFromDxgiSurface によって作成されたビットマップが描画操作と一致しないのはなぜですか?

ご存知のように、WriteFrame を使用してビットマップを wic のファイルに保存できます。

ここでメソッドWriteFrameに、パラメーター ID2D1Bitmap オブジェクトが表示されます。

次に、myBitmap を WriteFrame に渡します。ビットマップを取得できません。黒い画像が表示されます。しかし、私が使用するとき

m_Bitmap を WriteFrame に渡すと、画像ファイルで正しいビットマップを取得できます。なぜこれが起こるのですか?

誰でも助けることができます。ありがとうございました。