問題タブ [pixelformat]

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 に答える
2990 参照

c++ - 不明なピクセル フォーマット エラー SDL2

私は SDL のプロジェクトに取り組んできましたが、NULL であるサーフェスに問題を絞り込みました。サーフェスは次のように初期化されます。

「SURFACE ERROR Unknown pixel format」と表示されます。SDL_CreateRGBSurface 関数の最後の 4 つの引数を参照していると思いますが、何が原因なのかわかりません。グーグルは..役に立たなかった。そして、私はあなたに目を向けます。

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

ffmpeg - ffmpeg libavcodec AVPixelFormat for png

*.png (PNG-24 および PNG-8) 画像にはどのAvPixelFormatを使用すればよいですか? sws_scale を使用して png から PIX_FMT_YUV420P に変換しようとしています

編集、コード:

jpegのピクセルフォーマットはAV_PIX_FMT_YUVJ420Pですが、PNGは何のフォーマットですか?

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

c# - foreachループで無効なPixelFormatを持つファイルをスキップする方法は?

画像のリストを反復処理し、画像の幅と高さをチェックし、結果に応じて指定されたフォルダーに移動する簡単なプログラムがあります。画像を確認するために使用Image.FromFile(path)していますが、特定の画像にヒットするとOutOfMemoryException.

このエラーの潜在的な原因については、ここで既に説明されています

エラーの原因は確かにわかっています。ヒットしている TIFF 画像の一部は (ばかげた理由で!) ビット深度が 40 であり、有効な GDI+ ピクセル形式ではありませ

この問題は try-catch ( OutOfMemoryException) で回避できますが、他の理由で例外が発生しないことを願うよりも、画像が有効なピクセル形式であることを確認することをお勧めします。

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

c++ - 一部のマシンでの OpenGL の黒い画面 (PIXELFORMATDESCRIPTOR/SwapBuffer?)

一部のマシンでクラッシュする OpenGL アプリケーションを作成しました (自分のテスト マシンでは実行されます: Windows 8、Windows 7、Windows Vista (x86) - しかし、Windows Vista (x86) の一部のクライアント マシンではクラッシュします) - 私は正確な理由はまだわかりませんが、アプリケーションを空のスケルトンにダウングレードしましたglClear()。その後、アプリケーションは少なくともクラッシュすることなく実行されます (OpenGL コンテキストが作成され、glew が読み込まれる可能性があります) が、画面は指定されたglClearColor色でクリアされません。私は、PIXELFORMATDESCRIPTORまたはSwapBufferそこで期待どおりに機能しない問題があると思われます。

私のコード(main()簡単にするために、ウィンドウの作成を省略しました):

このコードは次を出力します: "Status: Using GLEW 1.10.0" 私のメインループは次のとおりです:

自分のマシンでは(予想どおり)灰色の画面が表示されますが、元のプログラムがクラッシュしたマシンでは画面が真っ黒です(ただし、メッセージボックスは表示されず、出力も次のようになります:「ステータス:GLEW 1.10.0を使用しています」)。したがって、エラーの証拠はわかりませんが、出力は異なり、glClearColor()無視されているようです。

この問題をさらに追い詰める方法についてのアイデアはありますか?

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

android - Android ディスプレイ ビュー バッファ

アプリケーション ビュー バッファを Android (ネイティブ) C ファイルに送信する必要がある Android アプリケーションに取り組んでいます。現在、表示ビューのビットマップを作成し、そのバッファを作成してネイティブ(.c)ファイルに渡します。重要なことの 1 つは、このビュー バッファーを RGBA_4444 形式で必要とすることです。表示ビューをピクセル形式の RGBA_4444 に変換し、ビットマップを使用せずにバッファを作成することで、それを行うのを手伝ってください。

私の現在のコード

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

c# - RGB 平面ピクセル形式にパックされた BGR のより高速な変換

SDK から、ピクセル形式の BGR がパックされた画像を取得しますBGRBGRBGR。別のアプリケーションでは、この形式を RGB 平面 に変換する必要がありますRRRGGGBBB

私は C# .NET 4.5 32 ビットを使用しており、データは同じサイズのバイト配列になっています。

現在、配列ソースを反復処理して、BGR値をターゲット配列の適切な場所に割り当てていますが、時間がかかりすぎます (1.3 メガピクセルの画像で 180 ミリ秒)。コードが実行されるプロセッサは、MMX、SSE、SSE2、SSE3、SSSE3 にアクセスできます。

変換を高速化する方法はありますか?

編集:これが私が使用している変換です:

編集:ソース配列へのアクセスを、チャネルごとに 1 つずつ、3 つのループに分割しようとしましたが、実際には役に立ちませんでした。だから私は提案にオープンです。

質問がまだ回答されていないため、バンプします。どんなアドバイスでも大歓迎です!

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

wpf - ハードウェアを使用してDeckLinkでYUVをRGBに変換

現在、DeckLink 4K Extreme の HDMI 入力を介してビデオカメラから 59.94 FPS で HD1080p ビデオを取り込んでいます。

私の目標は、受信画像を WPF UI 要素に複製することです。これを実現するために、C# WPF アプリケーションで DeckLink SDK を使用しています。

このプログラムでは、VideoInputFrameArrived コールバックを実装しました。このコールバックでは、各フレームからイメージのソースとして設定した WriteableBitmap にバイトをコピーしています。

これはすべて正常に機能し、プログラムを実行すると、フレームが到着すると Image が実際にリアルタイムで更新されます。

私の問題は、ビデオ入力でサポートされているピクセル形式が 8BitYUV と 10BitYUV の 2 つだけであり、どちらもコンピューターのモニターにネイティブに表示できないことです。

WriteableBitmap は、さまざまな RGB、白黒、および CMYK 形式のみを受け入れることができます。

これが私がこれまでに試したことです。


IDeckLinkVideoConversion::ConvertFrame() を使用して各フレームを変換しようとしました

問題: ConvertFrame() は、IDeckLinkOutput::CreateVideoFrame() を使用して、DeckLink でレンダリングされる宛先フレームを必要とします。私が現在理解しているように、DeckLink は入力 (ビデオ フィードをキャプチャするため) と出力 (宛先フレームをレンダリングするため) の両方として機能することはできません。


入力ストリームを 8BitYUV に設定し、各フレームを BGR32 の形式で WriteableBitmap にコピーしました。

問題: 前述のとおり、画像は表示されますが、色が正しくなく、画像の幅が必要な半分しかありません。

この理由は、8BitYUV の着信ストリームが 16 ビット/ピクセルであるのに対し、ビットマップは 32 ビット/ピクセルを想定しているため、ビットマップは各着信 MacroPixel (4 バイト) を実際の 2 ピクセルではなく 1 ピクセルとして扱うためです。


現在、ピクセル シェーダーを使用して色を修正し、RenderTransform を使用して Image を水平方向に 2 倍に拡大し、アスペクト比を「修正」しています。問題は、元の解像度の半分になっていることです。

これはハードウェアの制限ではないと思います。別のモニターを DeckLink の HDMI 出力に接続すると、入力画像がフル 1080p で完全な色で表示されるからです。その送信ストリームをメモリのどこかにキャプチャすることは可能でしょうか?

TL;DR 4:2:2 YUV (UYVY) を RGB または CMYK ピクセル形式にリアルタイムで変換する最良の方法は何ですか? (1080p @ 59.94 FPS)

できれば、DeckLink や GPU などのハードウェア ソリューションを使用してください。

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

c# - 複数のピクセル形式のマルチページ tiff を単一のピクセル形式に保存する方法は?

マルチページ tiff のページ ピクセル フォーマットを検出し、そうでない場合は変更する必要がありPixelFormat.Format24bppRgbます。通常、それは私が行うのに十分簡単です。変換を行う必要があるのと同じ理由で、理想的な解決策を見つけるのに問題があるようです。

画像のアクティブなフレームが で、そのPixelFormat.Format1bppIndexedフレームに変更しようとするとPixelFormat.Format24bppRgbWorkingImage.SelectActiveFrame(FrameDimension.Page, i);例外がスローされます。

System.Drawing.dll で、タイプ 'System.Runtime.InteropServices.ExternalException' の未処理の例外が発生しました

追加情報: GDI+ で一般的なエラーが発生しました。

例外をキャッチして画像/画像ストリームを再度開いてチェックを続けることができると思いますが、これが私の唯一の選択肢ではないことを願っています.

どんな助けでも大歓迎です!