問題タブ [indexed-image]

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

c# - インデックス付きピクセル形式の画像を 32 ビット画像に変換する方法は?

取得した画像を Graphics.FromImage(image) を使用してグラフィックス オブジェクトにロードしようとしましたが、画像にインデックス付きのピクセル形式がある場合、例外がスローされます。

インデックス付きの画像を安全に変換する方法はありますか?

更新:古い画像を新しい画像の上に描画するだけのヒントをくれた Joe に感謝します。代わりに、変換しようとしていました。これは非常に理にかなっています。

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

c++ - インデックス付きモードのSDL_Surfaceに透明度があるかどうかを確認するにはどうすればよいですか?

をロードしてOpenGLテクスチャに変換するために使用しているコードがありますがSDL_Surface、RGB(A)サーフェスでのみ機能することに気付きました。インデックスモードの画像(透明度の有無にかかわらず)にサポートを拡張する必要があります。

最初は調べていましたが::SDL_SetColorKey()、SDLブリットでしか機能しないようです。、、を読みSDL_Surface、次のスケッチを始めました(//#は擬似コードです)。SDL_PixelFormatSDL_Color

したがって、問題は、このルーチンに渡すインデックス付きモードの画像に透明性があるかどうかをどのように判断できるかということです。

0 投票する
3 に答える
1190 参照

c# - インデックスカラーテーブルを使用してプログラムのスクリーンショットをキャプチャする

C#を使用してスクリーンショットをキャプチャして保存する方法については、Web上に多数のチュートリアルがあります。たとえば、私はこのWebサイトを使用してソリューションを入手しました。

ほとんどのプログラムで正常に動作しますが、キャプチャしたいプログラムは8ビットのインデックスカラーテーブルを使用します。このコードで撮ったそのプログラムのスクリーンショットは奇妙です。私の質問は、誰かがC#でインデックスカラーテーブルを使用してプログラムのスクリーンショットをキャプチャするための正しい方向に私を向けることができるかどうかです。

あなたが私を助けるのを助けるために、私は私の発見と試みられた解決策を以下に説明します。

8ビットのインデックスカラーテーブルを使用したフルスクリーンプログラムのこのコードでキャプチャされたスクリーンショットは、ほとんどが黒(〜88%)であり、他の色は17色しかありません。17色の模様は見当たりません。プログラム自体では、ほぼすべての256色が使用されています。黒のスクリーンショットでも256色を見つけたいと思っていました。これは、単純な1対1の関係を示している可能性がありますが、そうではありません。

また、手動で撮影したスクリーンショットは完璧です(たとえば、MSペイントに貼り付ける場合)。そのため、スクリーンショットを手動で撮った後、System.Windows.Forms.Clipboard.GetImage()から画像をフェッチしようとしましたが、COMオブジェクトが返され、それをどうすればよいかわかりません。確かに、MSペイントはそのCOMオブジェクトからスクリーンショットを抽出する方法を知っているので、有効なスクリーンショットの情報が含まれている必要があります。どうすればそれを自分で、できればC#で抽出できますか?

しかし、私の主な質問:誰かがC#でインデックスカラーテーブルを使用してプログラムのスクリーンショットをキャプチャするための正しい方向に私を向けることができますか?

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

python - Python PIL: 背景が透明なインデックス付きカラー イメージを作成する

ファイル サイズを最小化するために、透明な背景と 2 つのインデックス付きの色 (赤と青) のみで画像を作成するにはどうすればよいでしょうか?

より具体的には、変換したい 2 つの白黒画像があり、1 つは透明で青に、もう 1 つは透明と赤に変換します。次に、これら2つの画像をマージしたいと思います。通常の RGBA 画像でそれを行うこともできますが、ファイル サイズを最小限に抑えるために色にインデックスを付けたいと思っています。

理想的には PIL を使用しますが、他の Python ライブラリも機能する可能性があります。

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

opencv - C でインデックス付きイメージのカラー パレットにアクセスする

インデックス付きイメージをそのまま (3 チャネルの 24 ビット イメージではなく) 読みたいとします。インデックス付きイメージのカラー パレットを読み込んで変更したいとします。opencv では、画像のカラー パレットを抽出するような関数に遭遇したことはありません。また、パレットのデータ型を知りたいです。私はopencvを使用してcでコーディングしています

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

image - uint32 のインデックス付きイメージを double に変換する

のドキュメントで次のことを読みましたim2double

クラスのサポート:

強度イメージとトゥルーカラー イメージは、uint8、uint16、double、logical、single**、または int16 にすることができます。インデックス付きイメージは、uint8uint16doubleまたは logicalにすることができます。バイナリ入力イメージは論理的でなければなりません。出力画像は2倍です

私は 64 ビット マシンで作業しています (つまり、MATLAB はdouble 型の変数を表すために8 バイトを使用します)。タイプuint32のインデックス付きイメージがあり、それをタイプdoubleに変換できるはずim2doubleですが、サポートしていないようです。つまり、次のエラーが発生します。

im2double を使用する際のエラー入力番号 1 のイメージは、次のいずれかのタイプである必要があります。

double、logical、uint8、uint16、int16、single

代わりに、そのタイプは uint32 でした。

では、どのようにタイプのマトリックス (インデックス付きイメージ) を に変換できuint32ますdoubleか?

これはすべてMATLAB 2012a上にあります

0 投票する
4 に答える
36121 参照

c# - インデックス付き画像のグラフィック

エラーが発生しています:

「インデックス付きピクセル形式の画像から Graphics オブジェクトを作成することはできません。」

関数内:

お聞きしたいのですが、どうしたら治りますか?

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

android - Android のグラフィックス API を使用したインデックス カラー

私は Android 用の描画プログラムを作成しています。サポートしたい機能の 1 つは、色を調整し、描画でリアルタイムに色が変化するのを確認する機能です。

図面を表現するために、プログラムは、限られたカラー パレット配列を参照するインデックスの 2D int 配列 (「カラー インデックス配列」) を内部的に格納します。描画の一部が調整されると、実際に画面に描画されるビットマップ (「画面ビットマップ」) と共にカラー インデックス配列が調整されます。

このメソッドを使用すると、色が調整されるときに、カラー インデックス配列全体をループして、ビットマップ全体を再レンダリングする必要があります。配列全体をループする必要はありません。

私が試したことの 1 つは、パレットの色ごとに個別のALPHA_8ビットマップを保持することです。各ビットマップには、ピクセルがその色で設定されている場合は 0xff が含まれ、設定されていない場合は 0x00 が含まれます。色が変更されると、新しい色のペイントを使用して、画面のビットマップの上に変化する色の ALPHA_8 ビットマップを描画します。

このソリューションは機能し、単純なループ ソリューションよりも効率的ですが、私が抱えている問題は、setPixelが ALPHA_8 ビットマップで機能しないことです。静かに失敗します。代わりに、ALPHA_8 ビットマップごと に個別のByteBufferを維持し、 copyPixelsFromBufferを使用して実際のビットマップを更新する必要があります。O(1) 操作が O(n) 操作に変わり、ALPHA_8 ビットマップに必要なストレージが 2 倍になるため、これは望ましくありません。

明確な解決策が見えていないように感じます。見逃したものはありますか?

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

matlab - コマンドによってインデックス付きカラー図が異なる理由

を使用してインデックス マップとカラーマップを取得し、[index_map,colormap] = imread('indexed_color_image.tif'); 2 つの異なるコマンドを使用して結果を表示します。それらの結果は非常に異なって見えます。

説明していただけますか?ありがとう !これが元画像(インデックス画像)です。

ここに画像の説明を入力

ケース1の結果は元の画像の通りです。しかし、ケース 2 の結果はおかしなものです。これを見る

ここに画像の説明を入力