【问题标题】:How to use image magick to generically convert images如何使用图像魔法对图像进行通用转换
【发布时间】:2020-03-11 01:45:15
【问题描述】:

我想用通用扩展转换图像,我有这个:

cat "$1" | convert 'jpeg:-' -resize '64x64' - | gsutil cp - "gs://images.xxx.com/${sha_sum}-64x64-${file_without_folder}"

以上工作。但是,如果我省略 'jpeg:-' 它将不起作用。有没有办法通用转换任何文件类型?也许我需要'jpeg:-'以便图像魔术师知道文件编码类型是什么?有没有办法让图像魔术师自动检测编码?

我希望这样做:

cat "$1" | convert -resize '64x64' - | gsutil cp - "gs://images.xxx.com/${sha_sum}-64x64-${file_without_folder}"

这样无论文件类型(编码类型)如何,我都可以通用地上传图像。

【问题讨论】:

  • 为什么需要猫“$1”?你就不能convert "$1" -resize '64x64' - | gsutil cp - "gs://images.xxx.com/${sha_sum}-64x64-${file_without_folder}"吗?
  • 对我有用,如果“省略”是指“替换为 -”:您需要指定输入文件。如果您从标准输入,请使用-

标签: image imagemagick jpeg image-conversion


【解决方案1】:

可以,但还是要指定输入流:

cat "$1" | convert - -resize '64x64' - | gsutil cp - "gs://images.xxx.com/${sha_sum}-64x64-${file_without_folder}"

我认为这是一个最小的示例,您确实需要从标准输入中读取图像;如果没有,直接指定图片即可:

convert "$1" -resize '64x64' - | gsutil cp - "gs://images.xxx.com/${sha_sum}-64x64-${file_without_folder}"

请注意,并非所有格式都可以从流数据中检测到。使用

identify -list format

查看可以读取的类型。

【讨论】:

  • 就个人而言,我喜欢使用/dev/stdout .. 有没有办法以某种方式指定/dev/stdin
  • 你试过/dev/stdin 吗?你也可以试试/proc/self/fd/0 看看unix.stackexchange.com/questions/36403/…
  • 必须支持macos,所以/proc/pid/fd/0不行,不过我会试试的
  • 希望它有效,而且,IMO,- 是一种明确的标准输入方式。它只是不冗长或非常易于阅读。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 2023-03-12
  • 1970-01-01
  • 2016-11-14
  • 1970-01-01
相关资源
最近更新 更多