問題タブ [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.
python - インデックス付きの pygame.Surfaces のパレットをマージする方法はありますか?
インデックス付きのカラー パレットを持つ Surfaceがあり、それに別のインデックス付きの色の Surface を追加BaseSurf
したいblit
(それを と呼びましょうNewSurf
)。ただし、BaseSurf のパレットは NewSurf のパレットとは異なり、pygame は不足している色を BaseSurf のパレットに自動的に追加しません。したがって、NewSurf の色を BaseSurf のパレットにマングリングせずに追加する方法が必要です (Surface のピクセルで実際に使用されるパレット インデックスを上書きします)。
このコードを実行すると:
...これが私が見るものです...
--編集:組み合わせたグラフィックは、シーケンスがオフであっても、NewSurf の色を BaseSurf が使用しているものに近づけることに注意してください。右下のブロブは、実際には null 値 (0,0,0,255) を使用して、最も近い色に一致します!
明らかに、NewSurf (右側) のインデックスは BaseSurf に転送されています。これは正確に間違っているわけではありませんが、私が望んでいるものでもありません。NewSurf を BaseSurf にブリットして、修正した画像の正確なカラー データを保持するにはどうすればよいですか (ただし、インデックス付きのカラー画像は保持します)。
python - インデックス付きのサーフェスは、アルファ値 (255 以外) を持つパレットをサポートしていますか?
を呼び出すとmyIndexedSurface.get_palette()
、32 ビット RGBA 値のリストが返されます。アルファ値が含まれているため、透明効果を伴うパレット インデックスを設定して使用することもできるのではないかと考えました。これらのサーフェスは、フル深度 (32 ビット) のピクセル データを持つサーフェスよりも効率的にオーバーレイまたはマスクとしてブリットできます。
ただし、これまでのところ、パレット要素のアルファ値はロックされているようで255
、私が試した方法では変更されません。
.set_palette_at(idx, (r,g,b,A))
r
、g
、および を正しく設定しますが、 の値b
に関係なく、アルファ値を 255 のままにしA
ます。.set_palette(somePalette)
RGBAタプル要素に 255 以外のアルファ値があるValueError: takes an alpha value of 255
場合に発生します。somePalette
私がやろうとしていることは可能ですか?各パレットリスト要素のアルファ値は純粋に装飾的なもので、24 (RGB) ではなく 32 ビット (RGBA) ピクセルデータを期待する他のプロセスでより簡単に使用できるのでしょうか?
Pygame のインデックス付きサーフェスは、そもそもこの程度の複雑さを処理する機能を備えていない可能性があるように感じますが、そうすべきではない理由を考えたり見つけたりすることもできません。おそらく、Pygame にはspecial_flags
この目的のために神秘的なものが 1 つありますか?
Surface 自体を初期化しようmyIndexedSurface = pygame.Surface(surfSize).convert(8)
とmyIndexedSurface = pygame.Surface(surfSize, flags=pygame.SRCALPHA).convert(8)
しましたが、効果がありませんでした。
私はまだPILまたはPygame のPixelArray
解決策を見ていません。
image - インデックス付きイメージを MATLAB に保存する
ポイントカースで表示されるこの画像があります
X、Y インデックス RGB
インデックス値は私にとって重要であり、この画像を保存して後で使用したいと考えています。しかし、私が使用しているとき
作成されたイメージにはインデックス値がありません。結果として保存された画像は次のとおりです (png 形式)。
以下のように im を生成します
ループでデータを追加します。
imagemagick - カラーマップを維持しながらImageMagickでインデックス付きPNG画像のサイズを変更する
カスタム バッチ スクリプトを使用して、フォルダー内のすべての PNG 画像のサイズ変更されたコピー (33% と 66%) を作成しています。これが私のコードです:
元の画像がインデックス化されている場合を除いて、正常に機能します。この場合、画像の小さいバージョンは RGB です (そのため、元の画像よりもファイル サイズが大きくなります)。
いくつかのバージョンを試しましたが、うまくいきませんでした。これを整理するはずだったのは、次のようなものでした。
しかし、うまくいきません。
編集:
これは共同で更新されましたが、まだ想定どおりに動作しません (添付の画像を参照してください。左がオリジナルで、右がサイズ変更されています)。