問題タブ [bitmapframe]
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.
wpf - WPF ComboBox の BitmapFrame
ユーザーがカスタム アイコンを選択できるダイアログがあります。読み込まれたアイコンは、ユーザーが選択するコンボボックスに表示されます。コンボボックスの XAML コードは次のとおりです。
- Iconsは、BitmapFrameの配列を返すプロパティです。
- アイコンは、現在選択されているのプロパティです。
現在機能していないのは、コード ビハインドを使用して Icon プロパティを設定すると (たとえば、前回ダイアログが表示されたときにユーザーが選択したアイコンを表示する場合)、コンボボックスの選択が空白になることです。OnPropertyChanged を呼び出す前にプロパティを null に設定したかのように。
私の現在の理論では、WPF は BitmapFrames を比較できないため、リストをたどると、そこにあるアイコンのいずれかが「等しい」と判断できず、null と見なされます。
要するに; コード ビハインドを使用して、現在選択されているアイテム (BitmapFrame) をコンボ ボックスに設定する最良の方法は何ですか?
wpf - 別のスレッドのBitmapFrame
WPFBackgroundWorkerを使用してサムネイルを作成しています。私のワーカー関数は次のようになります。
この関数が終了し、BackgroundWorkerの「完了」関数が開始される前に、Vs2008の出力ウィンドウで例外が生成されていることがわかります。次のようになります。
生成される例外の数は、生成されるサムネイルの数と同じです。
「試行錯誤」の方法を使用して、問題を次のように分離しました:BitmapFrame.Create(bi)
その行を削除すると(私の関数が役に立たなくなります)、例外も削除されます。
これについての説明や、バックグラウンドスレッドでサムネイルを作成するためのより良い方法は見つかりませんでした。
wpf - WPF BitmapSource をウィンドウのアイコンに変換する
ImageSource (BitmapSource) としてロードした 16x16 の .png ファイルがあり、タブコントロール ヘッダーの画像で使用すると正常に動作します。
ユーザーがドキュメント タブをドラッグしたときに、(WPF Window クラスから継承された) フローティング ウィンドウで同じ画像を使用したいと考えています。(これは、タブ ヘッダーに画像を表示できるように調整した AvalonDock です)
Web で多くの検索を行った結果、Window.Icon には BitmapFrame が必要であることがわかりましたが、すべてのサンプル コードは .ico ファイルが利用可能であると想定しているようですが、私の場合はそうではありません。
次のコードを試しました(さらに、クローン作成、凍結などのバリアントも):
ただし、Show() メソッドが呼び出されると、「'System.ExecutionEngineException' 型の例外がスローされました」という例外がスローされます。
ウィンドウがアイコンを表示できるように、互換性のあるビットマップをオンザフライで作成するにはどうすればよいですか?
c# - C# での BitmapFrame レンダリング (バイト配列から作成) の問題
状況は次のとおりです。
ビットマップ ヘッダーとビットマップ データを含むバイト配列を取得しました。データのオフセットがわかっているので、後でレンダリングするために BitmapFrame を生成する必要があります。配列セルのコピーを避けたかったので、配列の一部のラッパーを作成しました (
ArraySegment
)。
次に、このビットマップをプリミティブと共に RenderTargetBitmap にレンダリングします。これは、CopyPixels を使用して (データの代わりに) 同じ配列に保存されます。
配列ラッパーを使用して元のデータを操作すると、間違った最終イメージが得られることに気付きました。ただし、同じデータを別の配列にコピーして、BitmapFrame クラスの静的 Create メソッドに渡すと、結果は正しくなります。
何が起こるか考えはありますか?
返信ありがとうございます!
乾杯
c# - BitmapMetadata: 一部のプロパティがクリアされていますか?
私はこのコードを扱っています: メソッド呼び出し内で、メタデータ プロパティはすべて入力されています。しかし、ユーザー コードでは、それらのほとんどが null になっています。なぜこの振る舞いをするのですか?
メソッド内のメタデータ プロパティは次のとおりです。
ユーザーコード:
ご覧のとおり、すべてのプロパティがありますが、件名:
c# - byte[] を BitmapFrame c# に変換する方法
私はこれを試しましたが、例外があります - オブジェクトの現在の状態のため、操作は有効ではありません
しようとするとエラーが発生します
他の関数で (バフ - 準備完了!)
c# - WPF - イメージの URI ソースを取得するには?
XAMLで作成した画像のURI Sourceを取得したい。画像のソースは BitmapFrame です。BitmapImages には BitmapImage.UriSource を使用できることはわかっていますが、BitmapFrames についてはどうでしょうか。
私が使用する BitmapFrame を取得するには:
c# - Windows.Media.Drawing を BmpBitmapEncoder の黒い画像で保存する - アルファを削除するには?
SVG# ( http://sharpvectors.codeplex.com/ ) を使用して、SVG ファイルを他の形式にバッチ変換しています。変換される SVG 画像は、背景のない黒い線画です。私は WPF または System.Windows.Media 名前空間の経験がほとんどないため、これが基本的な質問である場合はご容赦ください。
私は SVG# の ImageSvgConverter の修正版を使用してい System.Windows.Media.Drawing
ます。これはオブジェクトを受け入れ、エンコーダー ( など) を使用して変換されSystem.Windows.Media
、目的のファイル形式にエクスポートされます。BmpBitmapEncoder
PngBitmapEncoder
を使用してエクスポートするとTiffBitmapEncoderor
、PngBitmapEncoder
またはGifBitmap
画像が期待どおりに生成されます。生成された画像はすべて透明な背景を持っています。
ただし、JpegBitmapEncoder
またはを使用してエクスポートするとBmpBitmapEncoder
、すべての画像が黒くなります。tif、png、gif はすべて透明な背景を持っているため、jpg / bmp 画像は正しく描画されていると思いますが、これらのファイル形式ではアルファがサポートされていないため、透明度が解釈されるため、出力を黒にすることは理にかなっています。何もない/黒として。
これは、これらの SO 投稿で説明されているとおりだと思います。BitmapSource からの奇妙な bmp 黒出力 - アイデアはありますか? 、透明な PNG を黒以外の背景色の JPG に変換し、ビットマップを保存すると背景が黒くなります - C# .
ただし、これらの投稿が私の問題に解決策を適用する方法がわかりません。誰かが私を正しい方向に向けることができますか?
DrawingContext の PushOpacityMask メソッドに白い SolidColorBrush を適用しようとしましたが、違いはありません。
本当にありがとうございました。
c# - BitmapFrame.Create はこのオブジェクトにアクセスできません
BitmapSource
複数の画像を png ファイルにエクスポートしようとしています。これが私のコードです:
スレッド呼び出し:
関数:
そうするとき、私はAdditional information: The calling thread cannot access this object because a different thread owns it.
オンラインで受け取っています:var bitmapFrame = BitmapFrame.Create((BitmapSource) currentImage);
私は何が欠けていますか?