問題タブ [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.
c# - ストリームから ID2D1Bitmap1 を作成するときに EXIF の向きを尊重する方法
ランダム アクセス ストリームからビットマップを作成するときに、EXIF の向きに従って自動的に回転させたいと考えています。次のコード スニペットを拡張してみましょう。
私が探している動作は、ExifOrientationMode を RespectExifOrientation に設定してBitmapDecoder.GetPixelDataAsyncを呼び出すことに似ています。ただし、ビットマップは Direct2D 効果への入力として機能するため、この関数を使用することはできません。したがって、CPU が生のピクセル データにアクセスする必要はありません。
windows-8.1 - Windows 8.1 64 ビットの Windows Imaging Component を確認します
問題: Windows 8.1 64 ビットに Ansys 15 64 ビットをインストールしようとしました。前提条件チェックで、WIC がインストール済みとして検出されませんでした。インストーラーは、私の他のラップトップ (Windows 8.1 64 ビットも) で動作しました。
試した解決策 WIC がプリインストールされており、Windows 8.1 用のインストーラーがないことは知っていました。(XP のセットアップが利用可能でした...とにかくインストールしようとしましたが、失敗しました)。それで、SFC / SCANNOWなどを使用してWindowsを更新したり、システムをチェックしたりしました。
質問
1.Windows 8.1 に WIC がインストールされているかどうかを確認するにはどうすればよいですか? (XPについても同様の質問がありました。その解決策はここには当てはまりません)
2.Windows 8.1 に WIC をインストールする方法を教えてください。(Windows を再インストールしたくない)
c# - 最大解像度で C# .NET WIC WriteableBitmap を作成するにはどうすればよいですか?
画像の最大の高さと幅は、チャネルあたり 32 ビット * 4 チャネルで 2^16 ピクセルです。BitmapSource の最大サイズは 2^32 バイト (64 ギガバイト) で、最大画像サイズは 4 ギガピクセルです。最小画像サイズは 1x1 です。
最大サイズは (2^16)^2 = 4,294,967,296 ピクセルです
各ピクセルはチャネルごとに 4 バイトであり、4 つのチャネル (A/R/G/B) では 16 バイトです。
したがって、バイト単位の最大サイズは 16 * 4,294,967,296 = 68,719,476,736 バイト = 64 ギガバイトになります。
しかし、私はできるだけ高く行くことができます
System.Windows.Media.Imaging.WriteableBitmap wbit = new WriteableBitmap(32000, 32000, 97, 97, PixelFormats.Bgra32, null);
たとえば 33,000 x 33,000 にすると、コンストラクターは System.OverflowException: The image data generated an overload during processing. をスローします。---> System.ArithmeticException: 算術演算でオーバーフローまたはアンダーフローが発生しました。
私のコンピューターには 32 GB のメモリがあり、Windows 8.1、VS を実行しています。これは、64 ビット プラットフォームをターゲットとする .NET 4.5 コンソール アプリケーションであり、App.Config で gcAllowVeryLargeObjects が有効になっているため、これは .NET Maximum Object に関連する問題ではありません。 2GBのサイズ。このアプリケーションでは、最大 15 GB の整数の配列を作成できます。
さらに、WIC にアクセスするために、PresentationCore、PresentationFramework、および WindowsBase を参照しています。これらはすべて、C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\ 内にあり、最初は驚きました。 x86ディレクトリにあったためですが、私が理解しているように、これらはメタデータの取得にのみ使用され、実際に使用されている実際のアセンブリはGACにあるため、たとえばWindows 8.1 Proには32ビットと64ビットの両方のPresentationCoreがありますC:\Windows\assembly\NativeImages_v4.0.30319_32\PresentationCore\24f6c80242420a1cea5cc254bf420027 および C:\Windows\assembly\NativeImages_v4.0.30319_64\PresentationCore\7a22d69ccf672cec14abf04d9551b3a0 にあります。PresentationFramework と WindowsBase についても同様の取引が行われていますが、私はこれについて 100% ではありません。
65,536 x 65,536 である 2^16 の最大解像度で WriteableBitmap を作成する方法、または私が間違っていることを知っている人はいますか?
image - MFC ベースのアプリケーションでイメージをプログレッシブにレンダリングする
ブラウザーはプログレッシブ イメージをプログレッシブにレンダリングできます。また、画像がプログレッシブ エンコードされている場合にのみ、画像をプログレッシブ デコードできます。
たとえば、「インターレース」オプションで保存された GIF または PNG 画像、または「プログレッシブ」オプションで保存された JPEG 画像。
ブラウザーと同じように、MFC ベースのアプリケーションでプログレッシブ イメージをレンダリングしたいと考えています。
Windows Imaging Component は、イメージをプログレッシブにデコードするための IWICProgressiveLevelControl インターフェイスを提供します。
しかし、IWICProgressiveLevelControl を使用して同時に画像をストリーミングおよび表示する方法を示す例を見つけることができません。
アドバイスをいただければ幸いです。ありがとう。
c# - C# で新しく作成された JpegXR エンコード イメージの新しい BitmapMetadata を作成します。
ビットマップをファイルに作成 (エンコード) しようとしています。形式は JpegXR で、メタデータを関連付けたいと考えています。WIC とそれに対応する C# (.Net) は素晴らしい仕事をしますが、どのような種類のメタデータ オブジェクトも作成できません。
これは私がやろうとしていることです(wbは私の画像です;メタデータなしで動作します):
結果は次のとおりmeta0
== null
ですmeta1
。null
私が提供する文字列に関係なく、への呼び出しnew BitmapMetadata("")
は例外をスローします:ArgumentException
「プロパティが見つかりません」。
では、ゼロから作成された画像の画像メタデータをどのように提供/作成するのでしょうか?