使用 Elixir Mogrify 向图像添加文本
Adding text to an image with Elixir Mogrify
我在使用 Elixir 中的 Mogrify 包时遇到问题。我有一张图片,我想在其中添加文字。由于某种原因,图像将打开并保存副本而没有任何问题,但我无法以任何方式更改副本。
img_url = to_string(:code.priv_dir(:jobs)) <> "/tristar.png"
save_url = to_string(:code.priv_dir(:jobs)) <> "/tristar_copy.png"
Mogrify.open(img_url)
|> Mogrify.custom("pointsize", 200)
|> Mogrify.custom("gravity", "North")
|> Mogrify.custom("annotate", "+0,+100 'Testing'")
|> IO.inspect(label: "\n===== Image Pre-Save =============================================")
|> Mogrify.save(path: save_url)
Iex 中的输出如下所示:
===== Image Pre-Save =============================================:
%Mogrify.Image{
animated: false,
buffer: nil,
dirty: %{},
ext: ".png",
format: nil,
frame_count: 1,
height: nil,
operations: [
{"pointsize", 200},
{"gravity", "North"},
{"annotate", "+0,+100 'Testing'"}
],
path: "/code/elixir/_build/dev/lib/jobs/priv/tristar.png",
width: nil
}
%Mogrify.Image{
animated: false,
buffer: nil,
dirty: %{},
ext: ".png",
format: nil,
frame_count: 1,
height: nil,
operations: [],
path: "/code/elixir/_build/dev/lib/jobs/priv/tristar_copy.png",
width: nil
}
我试过使用 custom
添加填充和描边。我试过使用 label
、draw text
和 annotate
。最后保存的图片只是原图的复制。
您距离可行的解决方案只差一个逗号:
将 "+0,+100 'Testing'"
更改为 "+0+100 'Testing'"
。
在花了很多时间解决这个问题后,我至少发现了我遇到的问题,我没有为 imagemagick 安装字体,
我通过替换此文件中的 <include file="type-ghostscript.xml" />
来修复它:usr/local/Cellar/imagemagick/7.0.10-7/etc/ImageMagick-7/type.xml
<include file="type-apple.xml" />
然后编辑 /usr/local/Cellar/imagemagick/7.0.10-7/etc/ImageMagick-7/type-apple.xml
在此文件中搜索并用 /System/Library/Fonts/Supplemental
替换所有字形路径
我在使用 Elixir 中的 Mogrify 包时遇到问题。我有一张图片,我想在其中添加文字。由于某种原因,图像将打开并保存副本而没有任何问题,但我无法以任何方式更改副本。
img_url = to_string(:code.priv_dir(:jobs)) <> "/tristar.png"
save_url = to_string(:code.priv_dir(:jobs)) <> "/tristar_copy.png"
Mogrify.open(img_url)
|> Mogrify.custom("pointsize", 200)
|> Mogrify.custom("gravity", "North")
|> Mogrify.custom("annotate", "+0,+100 'Testing'")
|> IO.inspect(label: "\n===== Image Pre-Save =============================================")
|> Mogrify.save(path: save_url)
Iex 中的输出如下所示:
===== Image Pre-Save =============================================:
%Mogrify.Image{
animated: false,
buffer: nil,
dirty: %{},
ext: ".png",
format: nil,
frame_count: 1,
height: nil,
operations: [
{"pointsize", 200},
{"gravity", "North"},
{"annotate", "+0,+100 'Testing'"}
],
path: "/code/elixir/_build/dev/lib/jobs/priv/tristar.png",
width: nil
}
%Mogrify.Image{
animated: false,
buffer: nil,
dirty: %{},
ext: ".png",
format: nil,
frame_count: 1,
height: nil,
operations: [],
path: "/code/elixir/_build/dev/lib/jobs/priv/tristar_copy.png",
width: nil
}
我试过使用 custom
添加填充和描边。我试过使用 label
、draw text
和 annotate
。最后保存的图片只是原图的复制。
您距离可行的解决方案只差一个逗号:
将 "+0,+100 'Testing'"
更改为 "+0+100 'Testing'"
。
在花了很多时间解决这个问题后,我至少发现了我遇到的问题,我没有为 imagemagick 安装字体,
我通过替换此文件中的 <include file="type-ghostscript.xml" />
来修复它:usr/local/Cellar/imagemagick/7.0.10-7/etc/ImageMagick-7/type.xml
<include file="type-apple.xml" />
然后编辑 /usr/local/Cellar/imagemagick/7.0.10-7/etc/ImageMagick-7/type-apple.xml
在此文件中搜索并用 /System/Library/Fonts/Supplemental