Tシャツプリントのデータを入稿する時の話。
印刷方法によっては、アルファチャンネルが含まれている画像を入稿する際に、半透明な部分(不透明度1%〜99%)があると希望通りの仕上がりにならない場合がある。GIMPとかだとアルファチャンネルを2階調化できるような機能があるようだが、Photoshopだとピンポイントでそういうのはなさげなので面倒。
Photoshopユーザなので、いちいちGIMPを入れるのも馬鹿らしい。そこで、Pythonとその画像処理ライブラリPIL/Pillowを使ってやる。
ソースは以下
getpixelすると、当該座標のRGBAがそれぞれ配列に格納される(Aなら4番目)。アルファ値が255未満ならRGBA全部ゼロのpixelに置き換える。それだけ。
単純に半透明なのを全部完全透明にしてるだけなので、アンチエイリアスを消す程度なら構わないが、例えば半透明で塗りつぶされたデザインだとガッツリ消えてマズい。閾値を変えるとかピクセル周辺の状況に合わせてアレするとかする必要がある。がめんどくさいのでその時が来たらやる。
あと、getpixel/putpixelはクソ時間がかかる。その点については高速で置換する方法を載せてる方がいる。
次回はこれを参考にやる。