复制一张图片并将其粘贴在终端上的另一张图片上

时间:2015-07-20 06:15:54

标签: terminal applescript automator

在这里,我发现了一块code找到并调整了带有applescript的文件夹中所有图像的大小

现在我需要逐个对这些图像应用图章。我已经有一个透明的jpg准备相同的大小,准备粘贴在所有这些。

我只是缺乏在终端上做的知识,所以我可以将它与applecript混合。

有没有人知道如何在不制作工作流程的情况下执行此操作?因为它需要花费大量时间并使笔记本电脑保持忙碌

2 个答案:

答案 0 :(得分:1)

再次更新: - )

您可以像这样获得图像的高度:

identify -format "%h" image.jpg
500

和这样的宽度:

identify -format "%w" image.jpg
800

如果您想要找到较小的高度和宽度,然后将其占据徽标尺寸的10%并使其成为整数,您可以这样做:

identify -format "%[fx:int(0.1*min(h,w))]" image.jpg
50

如果你想把它放在一个变量中,你可以这样做

logosize=$(identify -format "%[fx:int(0.1*min(h,w))]" image.jpg)

echo $logosize
50

然后您可以在下面的原始命令中使用它,如下所示:

convert image.jpg -gravity southeast                           \
      \( copyright.png -resize "${logosize}x${logosize} \)     \
      -composite result.jpg

我怀疑你打算用find命令运行它,不是吗? : - )

find . -iname \*.jpg -exec bash -c 'echo Processing {};logosize=$(identify -format "%[fx:int(0.1*min(h,w))]" "{}"); echo $logosize;convert "{}" -gravity southeast \( copyright.png -resize "$logosizex$logosize" \) -composite "{}"' \;

更新了答案

如果要在合并顶部未更改的徽标之前调整原始图像的大小,请使用如下命令:

convert image.jpg -resize 2000x1000 -gravity southeast copyright.png -composite result.jpg

如果要在未更改的原始图像顶部合成之前调整徽标大小,请使用以下命令:

convert image.jpg -gravity southeast \( copyright.png -resize 700x200! \) -composite result.jpg

原始答案

我会使用ImageMagick。如果您使用homebrew,它的功能非常强大且易于安装。问你是否不知道如何......

假设您有一个名为image.jpg的图片和一个名为copyright.png的透明徽标/版权。

<强> image.jpg的

enter image description here

<强> copyright.png

enter image description here

然后执行单个图像的命令是:

convert image.jpg copyright.png -composite result.jpg

enter image description here

如果您的徽标/版权和图片尺寸不同,并且您想强制将徽标强加到右下角,请按照以下方式相应地设置-gravity

convert image.jpg -gravity southeast copyright.png -composite result.jpg

enter image description here

如果您想要在文件夹中执行所有JPEG,则需要循环:

#!/bin/bash
shopt -s nullglob
shopt -s nocaseglob

for f in *.jpg; do
   convert "$f" copyright.png -composite "$f"
done

顺便说一句,你不能拥有透明的JPEG - 这种格式不支持透明度。

如果您真的打算使用Applescript - 我不知道为什么会有人 - 您可以使用do shell script调用上述内容 - 首先使文件可执行。询问是否不确定如何。

如果你想要从你当前所在的目录(文件夹)开始递归所有目录(文件夹)并为所有图片添加徽标/版权,​​我会首先在其他地方复制它们并进行试运行。命令是:

find . -iname "*.jpg" -exec convert "{}" copyright.png -composite "{}" \;

那说...... &#34;从当前目录(。)开始,忽略大/小写(-iname),所有文件以&#34; JPG&#34;结尾,并且将徽标/版权应用于他们,重新保存在原始文件的顶部&#34;

答案 1 :(得分:0)

我在几年前遇到了同样的问题,我发现的唯一方法是使用Photoshop的Applescript(包含照片和展平文件上的徽标的复制图层)。 脚本循环到文件夹的所有文件。

...但你需要Photoshop才能使用这个脚本! 如果有帮助,我可以分享该脚本