新しいビットマップを作成し、SetPixel() 関数を使用してパラメーター Black color を設定すると、指定したピクセルに色を設定せずにビットマップを Jpeg 形式で保存した場合と同じ結果になります。画像を保存し、後で JPEG 画像ファイルを読み込んだ後、ピクセルが実際の黒色であるか、設定されていないかをどのように確認すればよいですか?
3 に答える
JPEG ファイルは透明度をサポートしていないため、明示的に設定するかどうかに関係なく、すべてのピクセルに何らかの色があります。そのため、特定のピクセルの色を設定しなくても問題ありません。ビットマップを JPEG として保存すると、すべてのピクセルが特定の色で保存されます。設定しなかったものは、デフォルトの黒で保存されます。
透明度をサポートする PNG などの画像形式を使用する場合は、別の「色」を使用できます (これがデフォルトです): 透明色です。これは、明示的に設定されていないピクセルにデフォルトで使用される色です。
透明色は実際には個別の色ではないことに注意してください。各ピクセルには透明度バイト (ピクセル形式が ARGB であると仮定) があり、デフォルトでは透明度バイトは各ピクセルに対して 255 (完全な透明度) に設定されています。したがって、各ピクセルの透明度は、他のピクセルとは独立して制御できます。
PNG を使用する必要があります。圧縮された画像形式です。JPEG に対する主な利点は、ロスレスで透過性をサポートすることです。数色しかない単純な画像では、PNG を使用すると画像サイズがさらに小さくなります。
何らかの理由でJPEGを使用する必要がある場合は、特定の色を使用して「ピクセルなし」を表現します。このカラー キーとして黒 (0, 0, 0) を使用する場合は、真の黒のピクセルに別の色を使用する必要があります。これは、たとえば 0x000001 (0, 0, 1) などです。目ではそれを真の黒と区別することはできませんが、コンピュータ プログラムでは区別できます。したがって、画像に 0x000000 (0, 0, 0) 色のピクセルがある場合は、それを 0x000001 (0, 0, 1) に置き換えます。ただし、この手法を使用すると、JPEG の非可逆圧縮が問題を引き起こす可能性があることに注意してください。より高い品質を使用すると、この問題が解決するはずです。
「未設定」と「黒」はJPEGでは同じです。デフォルトでは、黒です。32 ビット PNG のような透過性のある形式では、違いを見分けることができます。