- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Python 上的 Wand 中编写一个自动化脚本,通过一次一个字母地编写图像标题来构建文本动画的框架。
问题是,当我使用标题命令(此处的文档 http://docs.wand-py.org/en/0.4.4/wand/image.html )写一个字母时,它会写一个巨大的字母,而当我写整个文本时,它会很好地适合图像。
我想到了一个可能的解决方案:将第一个字母写成彩色,其余字母透明,然后循环执行,但是据我所知,标题命令无法执行彩色文本。
如果有人可以建议我另一种选择,我将不胜感激。我可以使用draw.text,但是据我所知,它不会自动计算何时进入下一行...
我的代码如下所示:
imgname = random.choice(os.listdir('/home/gionny/Downloads/HighResImg'))
text = 'Hello, world! This is a slightly longer sentence.'
fontname = random.choice(os.listdir('/home/gionny/Downloads/font'))
with Image(filename='HighResImg/'+imgname) as i:
font = Font(path = 'font/'+fontname, color = Color('#fff'))
textWidth = i.width*2/3
textHeight = i.height*2/3
offsetLeft = (i.width - textWidth)/2
offsetTop = (i.height - textHeight)/2
with Image(filename='logo.gif') as l:
l.resize(80,80)
l.transparentize(0.7)
with Drawing() as draw:
draw.composite(operator='atop', left=i.width-90, top=i.height-90, width=l.width, height=l.height, image=l)
for c in range(0, len(text)):
caption = i.caption(text = text[c], left = offsetLeft, top = offsetTop, width=textWidth, height=textHeight, font = font, gravity = 'center')
print(caption)
cl = i.clone()
cl.format = 'jpeg'
cl.save(filename='Text/text'+str(c)+'.jpg')
cl.destroy()
最佳答案
If someone could suggest me another option I would be grateful. I could use draw.text, however that doesn't automatically calculate when to go on the next line as far as I know...
没有快速解决方法,您负责计算每次迭代的 x,y 坐标。 尤其当使用随机提取的混合字体时。
已经为此类事情提供了方法wand.drawing.Drawing.get_font_metrics
。只需保留一个累加器并在每次迭代时更新即可。
from wand.image import Image
from wand.color import Color
from wand.drawing import Drawing
with Image(width=400, height=250, background=Color("skyblue")) as background:
leftOffset = 35 # <= Starting position.
topOffset = background.height/2;
for letter in "Hello World":
with Drawing() as ctx:
ctx.font = "TimesNewRoman"
ctx.font_size = 64.0
metrics = ctx.get_font_metrics(background, letter)
ctx.text(leftOffset, int(topOffset+metrics.text_height/4), letter)
with Image(width=background.width,
height=background.height,
background=Color("transparent")) as frame:
ctx.draw(frame)
background.sequence.append(frame)
leftOffset += int(metrics.text_width) # <= Adjust for next iteration.
background.save(filename="output.gif")
现在,为了重复下一行过程,如果 leftOffset
大于 Canvas 宽度,只需将 topOffset
增加字体规范 text_height
即可。
关于python - 在 Wand 中为文本动画构建框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48010090/
我想将 pdf 的第一页转换为图像。我的以下代码在我的本地环境中运行良好:Ubuntu 18。但是当我在 docker 环境中运行时,它失败并引发: wand.exceptions.WandRunti
我正在尝试运行一个脚本,该脚本将遍历特定文件夹并使用 Wand 为其在该文件夹中找到的每个 .pdf 文件创建一个 .png 文件。 from wand.image import Image impo
我正在尝试使用 python Wand 调整图像大小,保留纵横比并使用透明度填充剩余位置。例如,我想在保持纵横比的同时将一个大矩形缩小以适应 100x100 图像,但我希望返回一个 100x100 的
所以,我正在使用 Wand Python Library弄乱一些图像。 我只是希望它逐个像素地查看图像,对于特定颜色的每个像素,例如“4d4d4d”,将该像素颜色替换为其他颜色,例如“#00ff00”
我想打开一个 pdf 文件,只获取第一页并将其另存为图像。我用过 this solution它工作完美。它在我的本地环境中仍然有效,但最近在 Travis 中无法正常工作。 是的,这段代码来 self
我们使用Celery下的Python Wand来处理很多图片。在我们的一些服务器上,我们的处理有时会留下很多临时文件,例如: $ ls -lh/tmp/ -rw------- 1 ubuntu ubu
我正在编写一个 django/python 应用程序,我需要将用户上传的 PDF 文件转换为 JPEG(文件是扫描文件) 我正在尝试使用带有 ImageMagick 后端(在 OSX 上)和 我不断收
如果我执行以下操作 for root, dirs, files in os.walk(myDir): for myFile in files: with Image(filename=my
如何在 wand (python) 中并排堆叠两个图像?复合方法是可用的,但它将一个图像放在另一图像之上。我想要像 numpy.vstack 这样的东西。 最佳答案 您还可以使用 smush() 并在
我正在尝试使用Wand创建一个多尺寸的 ico,但我没有找到任何关于此的内容,只有正常的转换,到 ico...我找到了“序列”: https://wand.readthedocs.org/en/lat
我正在尝试在 Python 上的 Wand 中编写一个自动化脚本,通过一次一个字母地编写图像标题来构建文本动画的框架。 问题是,当我使用标题命令(此处的文档 http://docs.wand-py.o
我在 Tesseract OCR 中使用了下面的图片: 我处理图片的代码是: # HOCR with image[450:6200, 840:3550] as cropped: imgPage
您好,我正在尝试在图像上写文字。但是文字溢出来了。有什么方法可以将此类文本内容包裹起来以适合图像? from wand.image import Image from wand.drawing imp
Imagemagick是用于显示、转换和编辑光栅图像文件的开源软件套件。 Wand是 ctypes用于 Python 的基于 ImageMagick 的绑定(bind)。 我如何获得图像文件列表,这是
我有一张图片(例如:mask)和两个整数,代表最终图片的宽度和高度。根据 Wand 的文档 Open empty image : with Image(width=200, height=100) a
我正在构建一个应用程序,它使用棒调整系统中照片的大小并生成缩略图。我想生成移动的 gif 缩略图,它在下面的代码中工作。但是我不想获得巨大的缩略图文件大小。如果缩略图超过 5mb,我希望它生成 jpe
这是我的代码: class ToPng(APIView): def post(self, request, *args, **kwargs): revision = reque
我的小脚本有问题。我想使用 wand 来将 PDF 文件转换成 jpeg 文件,我想只保存一个特定的帧。 我的脚本做了两件事: 如果 PDF 文档只有一页:将其转换并保存为 jpeg 文件(有效) 如
我想在使用 dplyr 编写现有代码的同时使用 plyrmr 包,因此我想使用“magic.wand”函数。为简单起见,我使用“mtcars”数据集,它的路径是 HDFS(Hadoop 分布式文件系统
我有这段代码,以 pdf 文件作为参数并将其转换为 JPG。我的问题是,当 pdf 有多于一页时,创建像这样的图像:test-0.jpg、test-1.jpg 等。 with Img(filenam
我是一名优秀的程序员,十分优秀!