問題タブ [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.
.net - .NET Framework 2.0 で Windows Imaging Component を再配布するにはどうすればよいですか?
.NET Framework 2.0 アプリがあり、Windows Imaging Component を使用したいと考えています。私のアプリケーションは WinForms アプリであり、MSI インストーラーを介してユーザーに再配布されるため、これを行う最善の方法を見つけようとしています。
いくつかのオプションが表示されます: 1) .NET 2.0 をスキップして、Windows Imaging Component を含む .NET 3.0 でビルドする 2) インストーラーに WIC コンポーネントを含める方法を考え出す
考え?
graphics - WIC と GDI+ の関係は?
Windows Imaging Component (WIC) と GDI+ の関係がよくわかりません。たとえば、WIC が視覚的に優れた GIF エンコーディングを生成することを示す研究を過去に行ったことがありますが、GDI+ と比べて画像処理に WIC を使用する人が増えていないことに驚いています。GDI+ の描画操作がないことはわかっていますが、エンコード/デコードに関しては優れているようです。では、なぜ移行が見られないのでしょうか?
wpf - Windows 7: TIFF CCITT Group4 として保存が変更されましたか?
複数ページの TIFF を PDF に変換する私のプログラムは、Windows 7 では動作しなくなりました。プログラムには、TIFF のページをウォークスルーし、CCITT Group4 圧縮を使用して各ページを TIFF として変換し、結果の PDF にビットマップ データを挿入するコードが含まれています。ファイル。
変換は次の方法で行われます (c#):
Windows 7 では GDI+ の動作が変更されたようです。結果の CCITT ビットマップ データは、単一のストリップにエンコードされなくなりました。このため、PDF ファイルでこのビットマップ データを使用できません。
質問: ビットマップ データを 1 つのストリップにエンコードするように GDI+ に指示する方法を知っている人はいますか?
.net - .NET Framework と GIF の透過性
Windows 7 (および新しい画像コーデック: WIC) の前に、次の (非常に高速ですが汚い) メソッドを使用して、透明色として白の GIF エンコードされた画像を作成しました。
.NET は、インデックス 255 が白色である標準パレットを使用して Gif をエンコードしていたため、この方法が機能しました。
ただし、Windows 7 では、この方法は機能しなくなりました。標準パレットが変更され、インデックス 251 が白になったようです。しかし、よくわかりません。おそらく、新しい Gif エンコーダーは、使用されている色に基づいてパレットを動的に生成していますか?
私の質問: Windows 7 の新しい Gif エンコーダーについて洞察を持っている人はいますか?また、白を透明にするための適切で迅速な方法は何ですか?
wpf - 画像メタデータキーワードがWindowsXPで認識されない
WPFアプリケーションでWIC(Windows Imaging Component)を使用して、画像メタデータの読み取り/書き込みを行っています。[概要のプロパティ]タブでWindowsXPによって認識されないキーワードを除いて、すべてが完全に機能します。
Vista&7は、Tagsプロパティで正しく認識します。
ポインタをいただければ幸いです。
ムルゲシュ。
c# - WPF で大きな画像を含む画像ソースを使用する
ユーザーが ItemsControl を使用して複数の画像を操作できるようにするアプリケーションに取り組んでいます。いくつかのテストの実行を開始したところ、アプリに大きな画像の表示に問題があることがわかりました。http://earthobservatory.nasa.gov/Features/BlueMarble/BlueMarble_monthlies.phpからの高解像度 (21600x10800)、20MB の画像では機能しませんでしたが 、 http:// zebu からの 6200x6200、60MB のハッブル望遠鏡の画像を表示します。 uoregon.edu/hudf/hudf.jpg大丈夫です。
元のソリューションでは、(バインドを介して) ディスク上のファイルを指す Source プロパティを使用して Image コントロールを指定しただけです。Blue Marble ファイルでは、画像が表示されません。これは、ファンキーな MVVM + XAML 実装の奥深くに隠された単なるバグである可能性があります。Snoop によって表示されるビジュアル ツリーは次のようになります。
Window/Border/AdornerDecorator/ContentPresenter/Grid/Canvas/UserControl/Border/ContentPresenter/Grid/Grid/Grid/Grid/Border/Grid/ContentPresenter/UserControl/UserControl/Border/ContentPresenter/Grid/Grid/Grid/Grid/Viewbox/ ContainerVisual/UserControl/Border/ContentPresenter/Grid/Grid/ItemsControl/Border/ItemsPresenter/Canvas/ContentPresenter/Grid/Grid/ContentPresenter/Image...
これをデバッグしてください!WPFはそのようにクレイジーになる可能性があります...
とにかく、単純な WPF アプリケーションを作成すると、画像が問題なく読み込まれることがわかりました。根本的な原因を見つけようとしましたが、何週間も費やしたくありません。コンバーターを使用して画像を縮小するのが正しいことかもしれないと考えました-これが私がやったことです:
と
と
これで、1 つの「小さな」問題を除いて、問題なく動作します。Image.Source でファイル パスを指定するだけで、BitmapImage.DecodePixelWidth を使用する場合よりも、アプリケーションが実際に使用するメモリが少なくなり、高速に動作します。さらに、同じ画像を指す複数の Image コントロールがある場合は、Image.Source を使用します。それらは、1 つの画像のみが読み込まれた場合と同じだけのメモリを使用します。BitmapImage.DecodePixelWidth ソリューションでは、Image コントロールを追加するたびに、Image.Source を指定した場合よりも多くのメモリが使用されます。おそらく、WPF は何らかの形でこれらの画像を圧縮形式でキャッシュしますが、デコードされたサイズを指定すると、圧縮されていない画像をメモリに取得するように感じられ、さらに 6 倍の時間がかかります (おそらくそれがなければスケーリングは GPU で行われますか?)。
画像を縮小して一時ファイルに保存し、 Image.Source を使用してファイルを指定すると、おそらく動作しますが、かなり遅くなり、一時ファイルのクリーンアップを処理する必要があります。適切にロードされていない画像を検出できた場合、必要に応じて縮小することしかできなかったかもしれませんが、Image.ImageFailed がトリガーされることはありません。多分それはビデオ メモリと関係があり、このアプリは深いビジュアル ツリー、不透明度マスクなどでそれをさらに使用しているだけです。
実際の質問: 元の画像よりも低い特定の解像度でのみ必要な場合に、追加のコピーにメモリを追加したり、縮小された画像に追加のメモリを使用したりせずに、Image.Source オプションと同じくらい速く大きな画像を読み込むにはどうすればよいですか? また、Image コントロールがそれらを使用しなくなった場合、それらをメモリに保持したくありません。
c++ - Windowsプログラミング:ID2D1Bitmapインターフェイス-ビットマップデータの取得
私は、いくつかの新しいDirect2DWindowsライブラリにアクセスするための独自の関数ライブラリを作成してきました。特に、私はID2D1Bitmapインターフェースに取り組んできました。ビットマップデータの先頭へのポインタを返す関数を作成したかった(特定のピクセルの編集、カスタムエンコーディング、または将来必要になる可能性のあるその他の機能)。残念ながら...先の問題...
ID2D1Bitmapインターフェイスから生のピクセルデータにアクセスする方法が見つからないようです。
誰かがこれにアクセスする方法を知っていますか?私の友人の1人は、ビットマップをサーフェスに描画し、そこからビットマップデータを抽出することを提案しました。これがうまくいくかどうかはわかりません。それは間違いなく非効率的で、どの種類の表面を使用すればよいかわかりません。
どんな助けでも大歓迎です。(特にC ++ですが、コードは言語間でそれほど変わらないと思います)
(ファイルから直接データを読み取ることができることはわかっていますが、WICデコーダーを使用しているため、判読できない形式がいくつもある可能性があります)
c# - WICの画像ヘッダー名前空間内のすべてのクエリパスを反復する方法は?
Windows Imaging Componentを使用して、WPFアプリケーションで画像メタデータの読み取り/書き込みを行っています。名前空間内にパスが存在するかどうかを知る効率的な方法があるかどうかを知りたいです。たとえば、IPTC名前空間内にパスが存在するかどうかを知りたいのですが、存在しない場合は、画像ヘッダーから名前空間を削除したいと思います。
任意のポインタをいただければ幸いです。
ありがとう、
ムルゲシュ。
delphi - WIC イメージのピクセルを読み取る方法
以下のコード (このスレッドから: How to use Delphi 2010's new WIC capability on Canon files? ) は、WIC イメージを BitMap に開きます。
ただし、WIC ピクセル値のダイナミック レンジが大きい場合、このコードは多くの情報を失います。これは、広いダイナミック レンジを、ビットマップ ピクセルが対応できる低い範囲にスケーリングする必要があるためです。
情報を失うことなく画像データにアクセスできるように、TWICImage から直接ピクセル値を読み取れるようにするサンプル コードを誰かに教えてもらえますか? 直接利用できない場合、おそらく RGB 値から計算できる各ピクセルの強度 (グレースケール) 値が必要ですか?
何かのようなもの:
visual-c++ - JPEG 抽出 DCT テーブル
VS2008、MFC、および WIC を使用して画像ビューアー/エディターを開発しています。画像処理後に、jpeg を元の画像にできるだけ近づけて (品質面で) 再圧縮したいと考えています。http://msdn.microsoft.com/en-us/library/gg430026%28v=vs.85%29.aspx追加の大きなライブラリを使用することなく
(
libjpeg)?