小编ako*_*o25的帖子

使用PIL在其中绘制矩形和文本

我想在其中绘制一个矩形和一个文本,这是我的代码的一部分,它有点混淆:

from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
from PIL import ImageEnhance

  source_img = Image.open(file_name).convert("RGB")

  img1 = Image.new("RGBA", img.size, (0,0,0,0))
  draw1 = ImageDraw.Draw(watermark, "RGBA")
  draw1.rectangle(((0, 00), (100, 100)), fill="black")
  img_rectangle = Image.composite(img1, source_img, img1)

  draw2 = ImageDraw.Draw(img1, "RGBA")
  draw2.text((20, 70), "something123", font=ImageFont.truetype("font_path123"))

  Image.composite(img1, source_img, img1).save(out_file, "JPEG")
Run Code Online (Sandbox Code Playgroud)

这将它们两者绘制,但它们是分开的:文本在矩形下面.而我希望在矩形内绘制文本.我怎样才能做到这一点?如果我一定撰写他们还是什么?

python image-processing python-imaging-library python-3.x

31
推荐指数
1
解决办法
5万
查看次数

标签、函数的命名约定

我有点困惑,仍然没有找到明确的答案:我应该将标签命名为“label1”还是下划线“_label1”?什么是最流行和最知名的方式?如果我没记错的话,我什至见过一个带有点“.label1”的。

同样的问题也适用于函数:“function1”还是“_function1”?

assembly nasm

2
推荐指数
1
解决办法
2011
查看次数

PIL - 无法更改 JPEG 图像的透明度级别

我正在尝试创建一个图像并用半透明的黑色填充它:

  from PIL import Image
  from PIL import ImageFont
  from PIL import ImageDraw
  from PIL import ImageEnhance


  fnt = create_font()

  # my background rectangle
  img1 = Image.new("RGBA", 100, 100, color=(0, 0, 0, 230)) #RGBA
  dr1 = ImageDraw.Draw(img1)
  dr1.text((5, 5), "some text", font=fnt)

  # my source image
  my_img.paste(dr1, (10, 10))
  my_img.save(out_file, "JPEG")
Run Code Online (Sandbox Code Playgroud)

但它忽略了透明度级别“230”。如果我将其更改为“0”或任何其他数字,“dr1”矩形的透明度级别保持不变 - 它是全黑的。

更新:

我有 jpeg 来源my_img。我想在其带有文本的部分放置一个半透明矩形img1。我怎样才能做到这一点?我怎样才能变得img1更加透明?

python image-processing python-imaging-library python-3.x

1
推荐指数
1
解决办法
1707
查看次数