2

テキストが透明な単色の上にテキストマスクをプログラムで作成する必要があります。

例えば。

切る

これは、Imagemagick または Python イメージング ライブラリのいずれかで実行できますか?

これは私が望むものとは逆に機能するので、透明な背景の上にしっかりしたテキストが表示されます。

convert -size 720x405 xc:transparent -fill pink -gravity center -pointsize 150 -font font.ttf -draw "text 0,0 CUT" output.png

可能であれば、PIL/Pillow を使用したいと思います。

更新しました:

これは私がこれまでに持っているものです...

font = ImageFont.truetype('font.ttf', 200, encoding='unic')
bg = Image.new('RGBA', (720, 404), '#0099ff')
mask = Image.new('1', (720, 404))

draw = ImageDraw.Draw(mask)
draw.text((0, 0), '#HELLO', font=font, fill='#ffffff')

bg.paste('#00000000', (0, 0), text)
bg.save('text.png', 'PNG')

ただし、これはエラーをスローします。

ValueError: unknown color specifier: '#00000000'

有効な色に設定すると、期待どおりに機能するので、近いことがわかりますが、透明度を参照できません。

更新しました:

最後に、別の空白の画像を作成し、色を定義するのではなく、それを使用しました. そう:

trans = Image.new('RGBA', (720, 404))
bg.paste(trans, (0, 0), mask)
4

1 に答える 1

3

これは、PIL では比較的単純です。

これはかなり良いPIL リファレンスです。

それを行うには多くの方法があります-ここにその1つがあります:

  1. RGBA モードで、必要なサイズと背景色の画像を作成します。
  2. モード「1」で同じサイズの空白の画像を作成し、マスクとして使用します
  3. ImageDraw モジュールを使用して、マスク イメージにテキストを書き込みます。
  4. Image.paste(colour, box, mask) を使用して、マスク内のテキストが存在するすべての場所に色 (0, 0, 0, 0) を貼り付けます。
于 2013-08-08T14:02:58.400 に答える