2016-09-23 23 views
-2

私は、プログラムでPNGの色を変更する方法を探しています。 これまでのところ、私が見たすべての解決策は、getpixelを使ってピクセル単位で行っています。 実際には、透明な背景の画像の前景色を変更したいだけです。これは可能ですか?特定の色のすべてのピクセルで簡単に変更を行うことができるパレットがありますか?png画像の色を変更する

答えて

1

パレットが存在するかどうかは、PNGのcolortypeに依存します。 ColorTypeですが3である場合がありPLTEチャンクに含まれるパレットがあり、そしてあなたは、プログラムの手順実行して、それを変更することができます。PLTEチャンク

  • 変更新しい背景に前景色のエントリ

    1. エキスをカラー
    2. PLTEチャンクを再挿入PLTEチャンク
    3. のためのCRCチェックサムを再計算し、画像ファイル内
    4. はその色を透明にするtRNS塊を追加します。

    colortypeが0または2の場合、tRNSチャンクを追加してフォアグラウンドカラーを透明にすることはできますが、それらのピクセルの基本色を新しい背景色に変更するには、あなたが既に観察したように、それはピクセルごとに表示されます。

    フォアグラウンドカラーを変更する必要はありません。透明にすると、RGBコンポーネントの内容は実際には問題にならないためです。

  • 関連する問題