Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当一方太大时,批处理调整图像大小(linux)

当一方太大时,批处理调整图像大小(linux)
EN

Stack Overflow用户
提问于 2018-01-29 06:22:25
回答 2查看 1.2K关注 0票数 1

我知道在命令行上调整图像大小是ImageMagick和类似的事情,不幸的是,我只有非常基本的bash脚本能力,所以我想知道这是否可能:

  • 检查所有作为图像的文件的目录和子目录。
  • 检查图像的宽度和高度
  • 如果两者中的任何一个都超过X像素量,则在保持高宽比的同时将其调整为X。
  • 用新文件替换旧文件(删除/删除旧文件)

谢谢您的意见。

EN

回答 2

Stack Overflow用户

发布于 2020-03-24 06:14:43

即使对高级用户来说,实现也不是那么简单。作为一条单线:

代码语言:javascript
运行
AI代码解释
复制
  find \                                         # 1
    ~/Downloads \                                # 2
    -type f \                                    # 3
    -exec file \{\} \; \                         # 4
| awk -F: '{if ($2 ~/image/) print $1}' \        # 5
| while IFS= read -r file_path; do \             # 6
    mogrify -resize 1024x1024\> "$file_path"; \  # 7
  done                                           # 8

第1-4行是对find命令的调用:

  1. 指定要扫描的目录。
  2. 指定您只需要文件。
  3. 根据找到的每个项运行file命令。每个文件的示例输出:
代码语言:javascript
运行
AI代码解释
复制
- `/Downloads/391A6 625.png: PNG image data, 1024 x 810, 8-bit/color RGB, interlaced`
- `/Downloads/STRUCTURED NODES IN UML 2.0 ACTIVITES.pdf: PDF document, version 1.4`

注意文件名是如何由:从其信息中分隔的,关于PNG的信息包含image单词。对于其他图像格式也是如此。

  1. 使用awk只过滤那些在其信息中包含image字的文件。这只给我们图像文件。在这里,-F:指定分隔符为:。这为我们提供了变量$1,它包含原始文件名和文件信息的$2。我们搜索image字文件信息和打印文件名,如果它是存在的。
  2. 这个有点棘手。第6-8行逐行读取awk的输出,并调用mogrify命令来调整图像大小。在这里,我们不使用管道和xargs,就好像文件路径包含必须转义的空格或其他字符一样,我们将得到xargs unterminated quote错误,这是一个痛苦的处理。
  3. 调用mogrify命令ImageMagic。与convert不同的是,mogrify在不创建新文件的情况下改变了文件。在这里,1024x1024\>告诉调整图像的大小,使其具有1024x1024的最大大小。\>部分告诉我们要保持高宽比,这样最终的图像就会有1024 of的最大一面。除非原始图像是方形的,否则另一边会比那个小。注意;,因为它需要内部循环。

注意,在同一个文件上运行几次mogrify是安全的:如果文件的大小已经与目标维度相对应,则不会再次调整大小。但是,它将改变文件的修改时间。

此外,您可能不仅需要调整图像的大小,而且还需要压缩它们。请参考我的要点看看如何做到这一点:https://gist.github.com/oblalex/79fa3f85f05924017d25004496493adb

如果您的目标只是缩小大图像的大小,例如大于300 K,您可以:

  • find /path/to/dir -type f -size +300k
  • 和以前一样,把它和mogrify -strip -interlace Plane -format jpg -quality 85 -define jpeg:extent=300KB "$FILE_PATH"结合起来

在这种情况下,将为非jpg原始文件创建新的jpg文件,并且需要删除原始文件。参考要点,看看如何做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2018-01-29 11:12:36

您可以通过在目录上循环bash脚本来做到这一点。您必须标识您想要的所有文件格式,如jpg和png等。然后,对于每个目录,循环遍历给定格式列表的每个文件。然后使用ImageMagick调整文件的大小。

代码语言:javascript
运行
AI代码解释
复制
cd
dirlist="path2/directory1 path2/directory2 ...."
for dir in $dirlist; do
cd "$dir"
imglist=`ls | grep -i ".jpg\|.png"`
for img in $imglist; do
convert $img -resize "200x200>" $img
done
done

请参阅https://www.imagemagick.org/script/command-line-processing.php#geometry

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48503428

复制
相关文章
在 Linux 终端调整图像的大小
ImageMagick 是一个方便的多用途命令行工具,它能满足你所有的图像需求。ImageMagick 支持各种图像类型,包括 JPG 照片和 PNG 图形。
用户4988085
2021/09/14
4.6K0
Linux调整Swap大小
关闭swap swapoff -a 1.创建交换分区的文件:增加2G大小的交换分区 dd if=/dev/zero of=/var/swapfile bs=1M count=2048 2.设置交换文件 mkswap /var/swapfile 3.启用交换分区文件 swapon /var/swapfile 4.在/etc/fstab添加 echo '/var/swapfile swap swap defaults 0 0'>>/etc/fstab 5.检查 free -m
苦咖啡
2018/04/28
8.8K0
Visio如何调整锁定图像大小
在Visio中,比如模板中的UML类图,是不可调整大小的,这可能给我们设计图片带来了一些不便之处,如下图: 可以看到其边框是显示锁定状态无法修改的,当我们在左下角修改器长宽时,也会出现不可修改的情况。
码农阿宇
2018/04/18
4.6K0
Visio如何调整锁定图像大小
VMware 中 Linux 调整分区大小
Precondition :VMware Player 中安装的Fedora 17 Linux 32bit,个人较久远的测试环境,安装时没有进行磁盘规划,默认20G空间(动态调整),安装在根/下。 Background :在上述环境中安装IBM DB2 Express-C 10.5(v10.5fp1_linuxia32_expc.tar.gz),安装时/tmp空间不足,无法安装。 Plan:需要进行磁盘扩容。考虑到使用VMware Player虚拟机。
gigiwangs
2019/02/28
7K0
调整图像大小的三种插值算法总结
这种类型的插值是最基本的。我们简单地将最近的像素插值到当前像素。假设,我们从0开始索引像素的值。下面2x2图像的像素如下:{' 10 ':(0,0),' 20 ':(1,0),' 30 ':(0,1),' 40 ':(1,1)}
deephub
2021/07/01
2.9K0
Linux下调整根目录的空间大小
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
拓荒者
2019/08/22
8.4K0
Linux下如何调整根目录的空间大小
      在使用CentOS版本linux系统的时候,发现根目录(/)的空间不是很充足,而其他目录空间有很大的空闲,所以本文主要是针对现在已有的空间进行调整。
拓荒者
2019/08/22
9.9K0
Linux下如何调整根目录的空间大小
批处理命令for循环_批处理获取某个目录大小
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183021.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
5970
图像明暗调整
算法:图像明暗调整是检测画面亮度和调节画面亮度与对比度。数字图像 f(x,y) = i(x,y) r(x,y) ,如果灰度值在[0,255]之间,则f值越接近0,亮度越低,f值越接近255,亮度越高。
裴来凡
2022/05/29
3710
图像明暗调整
调整JVM内存大小
JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能;Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。有以下几种方法可以选用:
MonroeCode
2018/01/12
3.3K0
ECharts散点图大小调整
在业务需求中,有时候会遇到ECharts散点图,现在记录一下,今天解决了一个小问题,ECharts散点图大小调整。
王小婷
2019/05/07
5.2K0
ECharts散点图大小调整
小程序checkbox调整大小
.cb{ transform: scale(0.6,0.6); } <view> <label class="lab" for="box1"> <checkbox value="v1" checked class="cb"/>复选框 </label> </view>
苦咖啡
2018/04/28
4.2K0
serverless环境下动态调整图像大小的系统的设计与实现
最近毕业设计选题,基于我之前做过的项目和图像处理有关,serverless也是最近几年开始流行的一种服务,于是选择这个题目,从零开始研究serverless。(后记:出题老师后来想了想我这个的工作量太小了,所以把题目扩充了许多,现在要去研究证件识别和处理之类的了QwQ)
月落星河Tsukistar
2022/02/21
6640
serverless环境下动态调整图像大小的系统的设计与实现
如何在 Linux 中减少/缩小 LVM 大小(逻辑卷调整)
当你在 LVM 中的磁盘空间耗尽时,你可以通过缩小现有的没有使用全部空间的 LVM,而不是增加一个新的物理磁盘,在卷组上腾出一些空闲空间。
用户1880875
2021/09/13
3.5K0
图像阴影调整
import cv2 import numpy as np def max_filter(image,filter_size): empty_image=np.full((image.shape[0]+(filter_size//2)*2,image.shape[1]+(filter_size//2)*2),-1) #原始图像填充进矩阵 empty_image[(filter_size//2):empty_image.shape[0]-(filter_size//2),(filt
裴来凡
2022/05/29
4700
图像阴影调整
InnoDB 缓冲池大小调整
从MySQL 5.7.5开始,我们可以动态修改InnoDB Buffer Pool的大小。这个新特性同时也引入了一个参数--innodb_buffer_pool_chunk_size,buffer pool会根据这个参数值的整数倍增加或减小。这个参数不是动态修改的,如果配置错误,可能会导致不想看到的结果。
田帅萌
2019/01/23
5.6K0
InnoDB 缓冲池大小调整
python 调整图片大小 脚本
infile = 'D:\original_img.jpg' outfile = 'D:\adjust_img.jpg' im = Image.open(infile) (x,y) = im.size #read image size x_s = 250 #define standard width y_s = y * x_s / x #calc height based on standard width out = im.resize((x_s,y_s),Image.ANTIALIAS) #resize image with high-quality out.save(outfile)
用户5760343
2022/05/13
2.1K0
HPUX调整LUN大小识别更改
磁盘阵列通常允许调整 LUN 的大小,如果增加 LUN 的大小,请执行以下步骤将附加空间合并到卷组中: 1、按照阵列说明增加 LUN 的大小。 2、运行 vgmodify 检测任何物理卷大小更改。还将报告卷组能否使用所有空间。 3、如果 vgmodify 报告,每个物理卷的最大物理盘区数 (max_pe) 太小,无法容纳新增的空     间,请使用带 -t 和 -n 选项的 vgmodify 确定 max_pe 的新值,如“修改卷组参数” 4、按照新的设置运行带 -r 选项的 vgmodify 检查这些值。 5、停用卷组。 6、提交 max_pe 的任何新值,运行不带 -r 选项的 vgmodify 更新物理卷信息。 7、激活卷组。运行 vgdisplay 和 pvdisplay 命令验证增加的空间是否可用。
星哥玩云
2022/06/30
1.5K0
Markdown 调整图片位置与大小
使用 Markdown 编写文档或博客时,经常需要对图片的位置与尺寸进行调整。 插入图片后,Markdown 表示图片的语法格式如下: ![图片描述](图片URL地址) 调整图片位置 居左 (1)方法一:添加位置标识。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200822014538211.png#pic_left) (2)方法二:嵌入 HTML 代码。 <div align="left"> <img src=https://img-blog.csdnimg.c
恋喵大鲤鱼
2020/08/24
43.5K0
Markdown 调整图片位置与大小
点击加载更多

相似问题

当图像太大时,如何使用imagemagick来调整大小?

12

只有当图像太大时才调整图像大小

13

如果太大则调整图像大小

11

如果图像太大,请调整div的大小

10

当滚动时,UITableViewCell图像会被调整大小

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档