【问题标题】:Mogrify subfolders and keep original directory structureMogrify子文件夹并保持原始目录结构
【发布时间】:2014-12-17 04:17:47
【问题描述】:

我有包含子目录和图像文件的文件结构。我想使用 GraphicsMagick 将图像文件转换为另一种格式(并使它们更小)。我可以用这样的简单命令来做到这一点:

mogrify -path ../img-converted -format jpg ../content/*.jpg

但是当我尝试保留子目录结构时,事情变得复杂了。 Mogrify 没有这个选项,所以我需要编写 shell 脚本来检查所有目录(并可能创建新目录)。

这应该怎么做?

【问题讨论】:

  • 我们大多数人都无法访问 GraphicsMagics,因此我们只能猜测您所指的文件夹结构。如果您可以提供“之前”结构和“之后”结果的示例,有人可能会提供帮助。
  • 我的意思是 GraphicsMagick,对不起。使用 GraphicsMagick 中的 mogrify 命令,您可以将一个文件夹中的文件转换为另一个文件夹。但我不能做类似的任务,保持子文件夹结构。
  • imagemagick.org/discourse-server/viewtopic.php?t=25862查看一些关于递归的链接

标签: batch-file graphicsmagick mogrify


【解决方案1】:

假设 Windows 操作系统的问题标记为 batch-file

首先,使用robocopy 将所有子文件夹结构从source 文件夹复制到destination 文件夹。然后,遍历 source 文件夹并递归它的子文件夹,获取完整的源和目标 (sub) 路径并回显它们。不确定在mogrify 中使用因此@echo mogrify ... 根据我的(mis)对它的理解...

@ECHO OFF >NUL
@SETLOCAL enableextensions enabledelayedexpansion
set "source=content"
set "target=img-converted"
robocopy %source% %target% nonexistingfilename /E
FOR /R "content" %%G in (.) DO (
  set "sourcefldr=%%~dpnxG"
  set "targetfldr=!sourcefldr:%source%=%target%!"
  @echo !sourcefldr!    !targetfldr!
  if EXIST "!sourcefldr!\*.jpg" (
    @echo mogrify -path !targetfldr! -format jpg !sourcefldr!\*.jpg
    rem surround pathnames with double quotes if necessary as follows
    rem mogrify -path "!targetfldr!" -format jpg "!sourcefldr!\*.jpg"
  )
)
@ENDLOCAL
@goto :eof

那个nonexistingfilename(可以用^Nul代替)在

robocopy %source% %target% nonexistingfilename /E

命令确保复制文件夹结构,不复制文件。使用*.jpg 也会复制所有*.jpg

robocopy %source% %target% *.jpg /E

【讨论】:

  • 我在 OSX 上,但你的想法看起来非常好!首先复制所有文件,然后使用 mogrify 更改大小。这对我有用,谢谢!
【解决方案2】:

这对我有用 - 它调整当前文件夹和所有子文件夹中所有 jpg 文件的大小,同时保留文件夹结构:

find -iname '*.jpg' -exec mogrify -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace sRGB -resize '2560x2560>' {} +

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 2016-09-04
    • 1970-01-01
    • 2023-02-26
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    相关资源
    最近更新 更多