1

我有一个包含数千个带有关联 ID 号的文本字符串的文件。我想获取每个不同的文本字符串并使其成为文本的 JPG 图像,并使用关联的 ID 号命名文件。

所有字符串最多为 75 个字符,因此我无需担心图像的动态大小以补偿较长的字符串。我只想设置一个图像大小。

我使用 Irfanview 来满足我的大部分批量成像需求,鉴于它的灵活性,我认为有办法做到这一点。有谁知道如何做到这一点?

4

1 回答 1

6

我不相信 Irfanview 可以做到这一点——尽管我没有太多使用该程序。这里有一个 Irfanview 的命令行选项列表,没有提到我可以看到的label,textannotate.

我只能推荐 ImageMagick,它是免费的,可用于 Linux、OSX 和 Windows。

如果您的输入文件被调用IdAndText.txt并且看起来像这样:

id123456:Some text
id987654:Some different text, and a comma
id111222:Yet more stuff

然后你可以运行这样的东西

#!/bin/bash
while IFS=":" read id text; do
   convert -size 1000x250 xc:black -fill yellow -pointsize 36 -gravity center -draw "text 0,0 '$text'" $id.png
done < IdAndText.txt

你会得到这个

id123456.png

在此处输入图像描述

id987654.png 在此处输入图像描述

id111222.png

在此处输入图像描述

有一种疯狂的 Windows 方式来读取文本文件,我可以尝试并报告回来,但 ImageMagick 部分在 Windows 中或多或少是相同的。

在 Windows 中,它类似于:

FOR /F "delims=: tokens=1,*" %%A IN (IdAndText.txt) DO convert -size 1000x250 xc:black -fill yellow -pointsize 36 -gravity center -draw "text 0,0 '%%B'" %%A.png
于 2015-04-09T11:50:17.437 回答