python - 如何使用 Linux Ubuntu 终端将图像移动到不同的目录
问题描述
我现在正在尝试构建一个脚本,该脚本可以打开、旋转、调整大小并保存图像目录中包含的多个图像(运行pwd
命令会给出消息/home/student-01-052f372bc989/images
)。图像目录中包含的图像为 TIFF 格式,分辨率为 192x192 像素,逆时针旋转 90°。脚本必须将这些图像转换为以下格式:
- .jpeg 格式
- 图像分辨率 128x128 像素
- 应该是直的
并将修改后的图像保存在 /opt/icons 目录中
这是我目前拥有的代码:
import os
from PIL import Image
Image_dir = '/home/student-01-052f372bc989/images'
imagedir = os.chdir(Image_dir)
new_dir = '/opt/icons'
for pic in os.listdir(os.getcwd()):
if pic.endswith(".tiff"):
img = Image.open(pic)
new_img = img.resize((128,128)).rotate(270)
newName = pic.replace(".tiff", ".jpeg")
newdir = os.chdir(new_dir)
new_img.save(newName, "JPEG")
imagedir = os.chdir(Image_dir)
代码运行时没有问题,但是当我运行ls /opt/icons
命令检查修改后的图像是否复制到目录时,图像还没有。
该脚本当前位于/home/student-01-052f372bc989/images
目录中。
有人可以告诉我我做错了什么吗?
解决方案
所以......经过一些挖掘,我确实设法找到了一种更简单的方法来编写脚本
代码如下:
import os
from PIL import Image
old_path = os.path.expanduser('~') + '/images/'
new_path = '/opt/icons/'
for image in os.listdir(old_path):
if '.' not in image[0]:
img = Image.open(old_path + image)
img.rotate(-90).resize((128, 128)).convert("RGB").save(new_path + image.split('.')[0], 'jpeg')
img.close()
推荐阅读
- tfs - TFS 查询按受理人显示所有任务
- selenium - Angular CLI 7:如何在 e2e 中使用随机端口?
- php - 原始 MySQL 中的 Laravel Eloquent 的 belongsTo 等价物是什么
- java - ScheduledThreadPoolExecutor 不等待 TimerTask 终止
- javascript - 颜色条没有显示在我的地图顶部(使用 d3 的传单)
- inno-setup - 在 Inno Setup 脚本中提供 SignTool 配置
- java - maven-javadoc-plugin error javadoc: error - cannot read Input length = 1 with non-ASCII characters in directory name
- android - NestedScrollView 中的 1 个 RecyclerView 在活动开始时未加载
- c++ - MySQL 参数绑定失败但内联成功
- swift - Swift 同步发送多个 HTTP POST 请求