有哪些网站可以学做糕点的,专业做网站建设公司怎么样,微信引流主动被加软件,互联网创新创业大赛这个代码的设计初衷是为了解决图片处理过程中的一些痛点。想象一下#xff0c;我们都曾遇到过这样的情况#xff1a;相机拍摄出来的照片、网络下载的图片#xff0c;尺寸五花八门#xff0c;大小不一。而我们又渴望将它们整理成一套拥有统一尺寸的图片#xff0c;让它们更…这个代码的设计初衷是为了解决图片处理过程中的一些痛点。想象一下我们都曾遇到过这样的情况相机拍摄出来的照片、网络下载的图片尺寸五花八门大小不一。而我们又渴望将它们整理成一套拥有统一尺寸的图片让它们更加美观、方便对比甚至能够让人忍不住想为它们短暂的“尺寸统一”开个欢呼庆祝派对
input默认读取 /storage/emulated/0/Pictures/Screenshots/Screenshot_20231001_132228.jpg 尺寸大小
输入错误就直接读取这个路径图片尺寸
将和它相同尺寸的图片移动到 /storage/emulated/0/Pictures/图片要删除/
没有这个文件夹就新建那个我是要移动那个读渠道的尺寸然后按照这个尺寸移动这个文件夹下的这个相同的尺寸
优雅热诚幽默注释
代码就像是一位图片整理小能手它的使命是帮助您从一大堆杂乱无章的图片中挑选出那些与您心仪的指定尺寸完全匹配的图片并将它们统统移动到一个整洁有序的目标文件夹中。
所以为了达成这个目标我们编写了这段代码将源文件夹中的图片逐个探索并与您指定的图片尺寸进行一一对比。只要找到尺寸完全匹配的图片我们就毫不犹豫地将其搬迁到目标文件夹中。这样一来在整理图片时您只需交给代码这个“小助手”它会自动、细致地帮您完成这项繁琐的任务让您省时省力一举搞定
咳咳我尝试写一个优雅热诚幽默的注释版本 from PIL import Image # 导入PIL库用于处理图片因为机器也想变成梦工厂的缩小药水
import os # 导入os库用于文件和目录操作让我们来操作文件的世界吧
import shutil # 导入shutil库用于文件移动操作我们要把文件从这里移到那里就像魔术师一样
from tqdm import tqdm # 导入tqdm库用于显示进度条进度条是你最可靠的盆友
import imghdr # 导入imghdr库用于判断文件是否为图片类型我们需要知道它是不是真的图片哦# 判断文件是否为图片类型如果它不是图片那它就是一只假冒伪劣产品
def is_image_file(file_path):return imghdr.what(file_path) is not None# 读取指定图片尺寸并存储到列表中我们要知道图片的大小才能做出更好的选择
def get_image_size(image_path):try:image Image.open(image_path)return image.sizeexcept FileNotFoundError:return None# 移动与指定图片尺寸相同的图片到目标文件夹我们要找到和它一样大的伙伴一起吃饭
def move_similar_images(source_folder, target_folder, size):# 创建目标文件夹如果不存在我们要给他找个家if not os.path.exists(target_folder):os.makedirs(target_folder)# 遍历源文件夹中的所有文件就像一个侦探一样搜寻线索for filename in tqdm(os.listdir(source_folder)):file_path os.path.join(source_folder, filename)if os.path.isfile(file_path) and is_image_file(file_path):image_size get_image_size(file_path)if image_size is not None and image_size size:# 移动相同尺寸的图片到目标文件夹让它们团聚在一起shutil.move(file_path, target_folder)# 指定文件夹路径和图片名称我们要准确定位
folder_path /storage/emulated/0/Pictures/Screenshots/ # 源文件夹路径从这里找
image_name Screenshot_20231001_132228.jpg # 指定的图片名称我们要找的那张# 读取指定图片的尺寸看看它有多大才决定是不是我们要的那个
image_path os.path.join(folder_path, image_name)
image_size get_image_size(image_path)
if image_size is None:print(找不到指定的图片文件。) # 找不到的话我们要告诉用户它去哪儿了
else:print(指定图片尺寸大小{}x{}.format(image_size[0], image_size[1])) # 告诉用户图片有多大不会吓到他们# 移动与指定图片尺寸相同的图片到目标文件夹我们要把他们召集起来target_folder /storage/emulated/0/Pictures/图片要删除/move_similar_images(folder_path, target_folder, image_size)
同时为了提升代码的易读性和处理效率我们巧妙地运用了一些优秀的库函数。比如PIL库是专门用于图片处理的神器它帮助我们轻松应对图片的尺寸判断。而os库则在文件和路径操作上发挥了重要作用shutil库则完成了文件和文件夹的移动工作tqdm库更是加入了处理进度条的元素让整个过程像是一场与时间赛跑的游戏。这些巧妙的设计和库函数的精妙应用使得代码不仅功能强大还增添了一丝人性化的趣味。
第2种方法
# 导入 Python Imaging Library 库用于处理图片好像这个库叫做 PIL 也可以
from PIL import Image# 导入 os 库用于文件操作和路径操作让我们来操作文件吧
import os# 导入 shutil 库用于移动文件和文件夹我们要把图片移动到哪里呢
import shutil# 导入 tqdm 库用于展示进度条进度条让我们看得到代码进展了
from tqdm import tqdm# 判断文件是否为图片类型我们只需要图片文件
def is_image_file(file_path):# 设置一个包含合法扩展名的列表哪些扩展名是图片类型的呢valid_extensions [.jpg, .jpeg, .png, .gif]# 获取文件扩展名并转换成小写格式因为文件扩展名大小写不一定我们把它都转换成小写来比较ext os.path.splitext(file_path)[1].lower()# 判断文件扩展名是否在合法扩展名列表中判断一下这个文件是不是图片类型return ext in valid_extensions# 获取指定图片尺寸我们需要知道限定的图片尺寸
def get_image_size(image_path):try:# 打开图片并获取其大小打开图片文件获取它的大小image Image.open(image_path)# 返回图片的尺寸大小return image.sizeexcept FileNotFoundError:# 如果文件不存在则返回 None如果文件不存在我们就返回空return None# 移动与指定图片尺寸相同的图片到目标文件夹让我们把符合要求的图片移动到目标文件夹吧
def move_similar_images(source_folder, target_folder, size):# 如果目标文件夹不存在则创建它万一目标文件夹不见了呢if not os.path.exists(target_folder):os.makedirs(target_folder)# 使用 os.walk() 遍历源文件夹下的所有子文件夹和文件我们要找到那些符合要求的图片文件for root, dirs, files in os.walk(source_folder):for filename in tqdm(files):# 构造文件路径得到图片文件的完整路径file_path os.path.join(root, filename)# 如果文件是图片类型则进一步处理我们只需要处理图片类型的文件if is_image_file(file_path):# 获取图片尺寸并与指定尺寸比较看看这张图片的尺寸是不是我们想要的image_size get_image_size(file_path)if image_size is not None and image_size size:# 将相同尺寸的图片移动到目标文件夹中好了符合要求的图片就可以移动到目标文件夹了shutil.move(file_path, target_folder)# 指定源文件夹路径和目标文件夹路径我们需要知道源文件夹和目标文件夹的位置
source_folder /storage/emulated/0/Pictures/Screenshots/
target_folder /storage/emulated/0/Pictures/图片要删除/# 图片名称和路径我们需要提供一张指定尺寸的图片来找到符合要求的图片
image_name Screenshot_20231001_132228.jpg
image_path os.path.join(source_folder, image_name)# 获取指定图片尺寸我们需要知道限定的图片尺寸
image_size get_image_size(image_path)
if image_size is None:# 如果获取不到指定图片则打印信息如果找不到指定的图片文件那就告诉我们吧print(找不到指定的图片文件。)
else:# 打印指定图片的尺寸大小好的我们取得了指定图片的尺寸让我们看看它的大小吧print(指定图片尺寸大小{}x{}.format(image_size[0], image_size[1]))# 移动与指定图片尺寸相同的图片到目标文件夹那么现在符合要求的图片就可以移动到目标文件夹啦move_similar_images(source_folder, target_folder, image_size)这次的注释能够让理解代码的逻辑和各个函数的作用
一个处理图片的实例我们筛选出与指定图片尺寸相同的图片并将它们移动到指定的目标文件夹中用于整理图片集合只保留指定尺寸的图片使图片更加整洁和有序。
为什么要有这个代码呢 相册整理记得有一次旅行我拍了很多照片各种尺寸都有。为了方便找到那些美好瞬间我挑出了同样尺寸的照片放在一个文件夹里回忆着那段美好的旅程。 统一尺寸有一次我为了制作一个关于我成长的视频需要将各个阶段的照片调整成相同的尺寸。当我看到那些不同年代、同样尺寸的照片时心中涌起一股感慨。 数据分析曾在一个展览中我看到研究人员通过筛选出相同尺寸的照片进行数据分析从而揭示出一些有趣的规律。那一刻我感叹科技的神奇也为这些默默付出的研究人员点赞。
为了实现上述功能我们编写了这个代码。它通过遍历源文件夹中的所有图片文件并逐个判断它们的尺寸是否与指定图片的尺寸相同
如果相同则将其移动到目标文件夹中。
这样做的好处是可以帮助我们自动化完成这个任务提高处理效率。 同时在代码中使用了一些常用的库函数如PIL库用于处理图片os库用于文件和路径操作shutil库用于移动文件和文件夹tqdm库用于展示处理进度条。这些库函数的使用可以简化我们的开发工作并增加了代码的可读性。