問題タブ [writeablebitmap]
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# - C#はストライド/バッファ/幅/高さをビットマップに変換します
画像の幅/高さ/ストライドとバッファがあります。
この情報をSystem.Drawing.Bitmapに変換するにはどうすればよいですか?これらの4つがあれば、元の画像を取り戻すことはできますか?
c# - WriteableBitmap PixelBuffer ストリームの長さが小さすぎます
ある WriteableBitmap のピクセル バッファを別の WriteableBitmap にコピーしようとしているという問題が発生しており、本質的に WriteableBitmap オブジェクトのコピーが提供されています。ただし、これを実行しようとすると、2 番目の WriteableBitmap のストリーム長が短すぎて最初の WriteableBitmap のすべての値を保持できないという問題が発生します。以下にコードを投稿しました。ウェブカメラから元のデータをキャプチャしていることに注意してください。ただし、「ps」オブジェクトのストリーム サイズを wb1 および wb2 と比較すると、ps のサイズはそれらの両方よりもはるかに小さいです。私が混乱しているのは、wb2 ストリーム サイズが wb1 より小さい理由です。助けてくれてありがとう。
silverlight - Silverlight:byte []をBitmapImageに変換すると、「壊滅的な失敗」で終了します
SilverlightでBitmapImageを変更しようとしていますが、たまたま「壊滅的な障害」が発生しました。
まず、画像を読み込んでLayoutRootに追加します。
これは正常に機能し、画像は画面に正しく表示されます。
次に、画像を変更します(たとえば、ボタンをクリックした後)。
ボタンクリックメソッドでは、最初にLayoutRootから画像を取得し、次にWriteableBitmapクラスを使用して画像を変更します。
次に、指定された方法を使用してバイト配列バッファーに保存します。
これもよさそうだ。バッファにはすべてのARGB値が表示され、アルファ値でさえ通常の値の半分である127です。
次のステップでは、変更したデータをBitmapImageにロードし、最後にImageにロードして、LayoutRootに再度追加します。
私はここでこのコードピースを見つけました:byte[]からBitmapImageへのsilverlight
最後のステップとして、イメージを再度作成し、それをLayoutRootに追加します(最初に行ったのと同じように:
しかし、「壊滅的な障害」が発生するため、最後の部分に到達することはありません。
行、言って:
何が悪かったのかわかりません。ここでSilverlightの記事を見つけました :ストリームからのBitmapImageが例外をスローします(壊滅的な失敗(HRESULTからの例外:0x8000FFFF(E_UNEXPECTED)))、これはたまたま同じ例外がありますが、私が読んだところ、彼はこの問題を抱えているのは彼はたくさんの画像をアップロードしていました、そしてそれは彼にとって少量の画像のためにうまくいきました。それで、私はまだこの問題を解決する方法について無知ですか?
何かアドバイスはありますか?ありがとう!
c# - PhotoChooserTaskからビットマップに画像をコピーする方法
ユーザーがPhotoChooserTaskから選択した画像のコピーを作成し、これをアプリケーションのハブタイルの背景画像として使用しようとしていますが、これを実現するためのより適切な方法がわかりません。今のところ、ハビレ画像をPhotoChooserTask_Completed応答に設定できますが、アプリケーションを再起動または再アクティブ化したときにこの画像を保存できるように、ビットマップへのコピーアクションを実行する方法がわかりません。これまでのところ、私が持っているのは次のとおりです。
HubTilesのデータを管理するためのカスタムTileItemクラスを作成します
TileItem.cs
MainPage.xaml.cs
次に、タイルを作成し、カスタム設定クラスを使用してデータを永続化します(つまり、「ImageUri」(現在はビットマップ))
そして、私はPhotoChooserTaskハンドラーの世話をします
元々は設定されSettings.shareImage.Value
てSettings.linkImage.value
いますが、PhotoChooserTask_Completedイベントでそれに応じて変更または更新されません。
Settings.cs
したがって、画像はアプリが閉じられていないときにのみ更新され(PhotoChooserTask_Completedイベントで)、再起動またはアクティブ化すると元の画像に戻されます。それに応じてこれらの画像をコピーして、PhotoChooserTaskから選択した画像を各TileItemの新しいImageUri
(実際には私のファーストクラスによると実際にはビットマップ)として永続的に使用できるようにするにはどうすればよいですか?
windows-phone-7 - WP7 で WriteableBitmap と RotateTransform を使用してテキスト ブロックをレンダリングする
Windows Phone の Silverlight の WriteableBitmap には、本当に厄介なバグがあるようです。次のコードと xaml があります。
xaml は次のとおりです。
下のボタンをクリックすると、複合変換を使用して書き込み可能なビットマップで上のボタンがレンダリングされます。各レンダリングの後、結果として得られるトップ ボタンの画像は前の画像よりも大きくなります。また、書き込み可能なビットマップの PixelWith および PixelHeight プロパティ値は、Image オブジェクトの RenderSize とは大きく異なります。何が起こっているのか誰にも分かりませんか?
c# - 画像をwriteablebitmapにロードします
したがって、画像をWriteableBitmapにロードしようとしていますが、NullReferenceExceptionが発生します。これは以前は機能していたと思うので、理由がわかりません
BitmapImage b = new BitmapImage(new Uri(@"images/Car.jpg", Urikind.Relative));
WriteableBitmap wb = new WriteableBitmap(b);
それでおしまい。プロジェクトのリソースとして車の画像があります。Imageコントロールを作成し、そのソースをBitmapImageに設定して表示できるため、正常に機能します。ありがとう
silverlight - Silverlight WriteableBitmap がカスタム フォントを正しく変換しない
カスタム フォントを使用して、グラフにプロットする道路標識と形状を表します。
最初はすべてをキャンバスにプロットしましたが、うまくいきましたが、水平方向のスクロールが遅かったです。
次に、次のように、WriteableBitmap を使用してキャンバスを画像に変換することで、スクロールの問題を修正しました。
この変換は、カスタム フォントを使用する TextBlocks を除いて、キャンバス上のほとんどの要素に対して正常に機能します。
したがって、適切な「カスタム フォント」画像 (文字) の代わりに、「p」、「q」などの通常の Arial 文字を取得します...
変換された画像の代わりにキャンバスを再度表示すると、カスタム フォントが機能し、テキストブロックが正しくレンダリングされることを確認できるため、読み込みの問題ではないようです...
私が調べることができるいくつかの指針を助けてください...
前もって感謝します
編集:
OK、ここで解決策を見つけました。これは、1.変換を行う前にフォントを使用する非表示のテキストブロックを作成するか、2.FontSource を作成することです。
今のところは最初の方が簡単だったので、最初のものを使用しました。
コントロール内に、次を追加しました。
c# - ピクセル描画メソッドで安全でないコードをクリアしない
最近、低レベルのグラフィックス プログラミングの仕事 (ラスター グラフィックス アルゴリズムの実装) が必要になりました。unsafe
そのため、低レベルの抽象化 (コードを使用しても) でプリミティブ (線、四角形、楕円など) を描画するのに役立つツール (クラス) を探し始めました。
アルゴリズムをWPF、WindowsForms、WinAPIまたはその他の環境で実装する必要があるかどうかを検討します。とりあえずWPFを試してみます。ビットマップにピクセルを描画する方法の例をいくつか見つけましたが、残念ながらこのコードを理解するのに問題があります( MSDNのソースコード):
- この
pBackBuffer += column * 4;
行は何のためですか?なぜ4
ですか? - それ
*((int*)pBackBuffer) = color_data;
はどういう意味ですか?私はC/C++からのポインターを知っていますが、C#には がIntPtr
あります。int*
この行は、int pBackBuffer = (int)writeableBitmap.BackBuffer;
同等に扱うことができることを示唆してint
おり、IntPtr
これも明確ではありません。 - どのプログラミング環境を使用すればよいですか?
WinAPI
、WPF
または他の?
誰かがこの安全でないコードを説明してくれたら、とてもありがたいです。
windows-runtime - WinRT: WriteableBitmap を localfolder に保存する方法
WinRT で C# を使用して WriteableBitmap を localfolder に保存する方法は?