精华内容
下载资源
问答
  • python 批量修改图片大小 一个文件夹下面有好多图片格式是jpg大小是19201080,把它们处理成1280720并按原先图片的名保存在另一路径下 这里首先要找到给定路径下所有的图片文件,然后在修改图片文件的大小,这里用到...

    python 批量修改图片大小

    一个文件夹下面有好多图片格式是jpg大小是19201080,把它们处理成1280720并按原先图片的名保存在另一路径下

    这里首先要找到给定路径下所有的图片文件,然后在修改图片文件的大小,这里用到PIL和glob两个库:

    # -*- coding: utf-8 -*-
    import os
    import glob
    from PIL import Image
    import os.path
    
    '''修改图片文件大小jpgfile:图片文件;savedir:修改后要保存的路径'''
    
    def convertjpg(jpgfile, savedir, width=64, height=64):
        img = Image.open(jpgfile)
        new_img = img.resize((width, height), Image.BILINEAR)
        new_img.save(os.path.join(savedir, os.path.basename(jpgfile)))
        '''查找给定路径下图片文件,并修改其大小'''
    
    
    def modifyjpgSize(file, saveDir):
        for jpgfile in glob.glob(file):
           convertjpg(jpgfile, saveDir)
    
     # 测试代码
    file = r'F:\injury_inputdata\S1\*.jpg'
    saveDir = r'F:\injury_inputdata\S1\outImage'
    modifyjpgSize(file, saveDir)

    文章转自:https://www.cnblogs.com/shaosks/p/5614915.html

    展开全文
  • python批量处理图片统一尺寸

    千次阅读 2019-04-18 15:19:31
    python批量处理图片尺寸 方法一: import numpy as np import os import cv2 # 设置图片路径,该路径下包含了14张jpg格式的照片,名字依次为0.jpg, 1.jpg, 2.jpg,...,14.jpg DATADIR="D:\Code\ToolBox" #设置目标...
    
    python批量处理图片尺寸
    
    方法一:
    import numpy as np
    import os
    import cv2
    
    # 设置图片路径,该路径下包含了14张jpg格式的照片,名字依次为0.jpg, 1.jpg, 2.jpg,...,14.jpg
    DATADIR="D:\Code\ToolBox"
    #设置目标像素大小,此处设为300'''
    IMG_SIZE=300
    #使用os.path模块的join方法生成路径'''
    path=os.path.join(DATADIR) 
    #使用os.listdir(path)函数,返回path路径下所有文件的名字,以及文件夹的名字,
    #例如,执行下行代码后,img_list是一个list,值为['0.jpg','1.jpg','10.jpg','11.jpg','12.jpg','13.jpg','14.jpg',
    #'2.jpg','3.jpg','4.jg', '5.jpg', '6.jpg', '7.jpg', 
    #'8.jpg', '9.jpg'],注意这个顺序并没有按照从小到大的顺序排列'''
    img_list=os.listdir(path)
    ind=0
    for i in img_list:
    	#调用cv2.imread读入图片,读入格式为IMREAD_COLOR'''
        img_array=cv2.imread(os.path.join(path,i),cv2.IMREAD_COLOR)
        #'''调用cv2.resize函数resize图片'''
        new_array=cv2.resize(img_array,(IMG_SIZE,IMG_SIZE))
        img_name=str(ind)+'.jpg'
        #'''生成图片存储的目标路径'''
        save_path='D:\\Code\\resized\\'+str(ind)+'.jpg'
        ind=ind+1
        #'''调用cv.2的imwrite函数保存图片'''
        cv2.imwrite(save_path,new_array)
        
    
    
    方法二:
    #提取目录下所有图片,更改尺寸后保存到另一目录
    from PIL import Image
    import os.path
    import glob
    def convertjpg(jpgfile,outdir,width=128,height=128):
        img=Image.open(jpgfile)
        try:
            new_img=img.resize((width,height),Image.BILINEAR)   
            new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
        except Exception as e:
            print(e)
    for jpgfile in glob.glob("E:\\img\\*.jpg"):
        convertjpg(jpgfile,"E:\\lianhua")
    	
    	
    	
    方法三:该方法批量修改图片大小和文件夹名称
    import os
    from PIL import Image
    from PIL import ImageFile
    ImageFile.LOAD_TRUNCATED_IMAGES = True
    from matplotlib.font_manager import FontProperties
    
    font = FontProperties(fname=r'c:\windows\fonts\SimSun.ttc', size=14)
    
    # 获取当前路径
    path_abs = os.getcwd()
    print u'*****************开始文件名更名操作*****************'
    print path_abs
    # 遍历当前路径下的文件以及文件目录
    for root, dir_name, file_name in os.walk(path_abs):
        # 统计文件夹个数
        num_dir = len(dir_name)
        for idx, item in enumerate(dir_name):
            print u'第', idx, u'个文件正在更名......'
            item_new = 'test_' + '0' * (1 - idx / 10) + str(idx)
            # 原文件路径
            path_dir_old = path_abs + '\\' + item
            # print u'原文件路径:', path_dir_old
            # 新文件路径
            path_dir_new = path_abs + '\\' + item_new
            # print u'新文件路径:', path_dir_new
            # 更名操作
            os.renames(path_dir_old, path_dir_new)
    print u'*****************文件名更名完毕!*****************'
    
    print u'*****************图片名更名*******************'
    for root1, dir_name1, file_name1 in os.walk(path_abs):
        num1_dir = len(dir_name1)
        for idx1, item1 in enumerate(dir_name1):
            path_dir1 = path_abs + '\\' + item1
            for root2, dir_name2, file_name2 in os.walk(path_dir1):
                for idx2, item2 in enumerate(file_name2):
                    # 原路径 + 图片名
                    item2_old = path_dir1 + '\\' + item2
                    # 新路径 + 图片名(强制转换成jpg格式,数字6制定图片名长度以及0的填充个数)
                    item_new2 = 'idx_'+ '0' * (5 - len(str(idx2))) + str(idx2)
                    item2_new = path_dir1 + '\\' + item_new2 + '.jpg'
                    # 更名
                    os.rename(item2_old, item2_new)
                    # resize 成指定尺寸大小
                    img = Image.open(item2_new)
                    img_new = img.resize((220, 220))
                    # save 保存
                    img_new.save(item2_new)
    
    
    
    
    展开全文
  • python批量处理图片尺寸

    千次阅读 2019-03-06 11:57:43
    # 设置图片路径,该路径下包含了14张jpg格式的照片,名字依次为0.jpg, 1.jpg, 2.jpg,...,14.jpg DATADIR="D:\Code\ToolBox" #设置目标像素大小,此处设为300''' IMG_SIZE=300 #使用os.path模块的join方法...
    方法一:
    
    import numpy as np
    import os
    import cv2
    
    # 设置图片路径,该路径下包含了14张jpg格式的照片,名字依次为0.jpg, 1.jpg, 2.jpg,...,14.jpg
    DATADIR="D:\Code\ToolBox"
    #设置目标像素大小,此处设为300'''
    IMG_SIZE=300
    #使用os.path模块的join方法生成路径'''
    path=os.path.join(DATADIR) 
    #使用os.listdir(path)函数,返回path路径下所有文件的名字,以及文件夹的名字,
    #例如,执行下行代码后,img_list是一个list,值为['0.jpg','1.jpg','10.jpg','11.jpg','12.jpg','13.jpg','14.jpg',
    #'2.jpg','3.jpg','4.jg', '5.jpg', '6.jpg', '7.jpg', 
    #'8.jpg', '9.jpg'],注意这个顺序并没有按照从小到大的顺序排列'''
    img_list=os.listdir(path)
    ind=0
    for i in img_list:
    	#调用cv2.imread读入图片,读入格式为IMREAD_COLOR'''
        img_array=cv2.imread(os.path.join(path,i),cv2.IMREAD_COLOR)
        #'''调用cv2.resize函数resize图片'''
        new_array=cv2.resize(img_array,(IMG_SIZE,IMG_SIZE))
        img_name=str(ind)+'.jpg'
        #'''生成图片存储的目标路径'''
        save_path='D:\\Code\\resized\\'+str(ind)+'.jpg'
        ind=ind+1
        #'''调用cv.2的imwrite函数保存图片'''
        cv2.imwrite(save_path,new_array)
    
    
    
    #提取目录下所有图片,更改尺寸后保存到另一目录
    from PIL import Image
    import os.path
    import glob
    def convertjpg(jpgfile,outdir,width=128,height=128):
        img=Image.open(jpgfile)
        try:
            new_img=img.resize((width,height),Image.BILINEAR)   
            new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
        except Exception as e:
            print(e)
    for jpgfile in glob.glob("E:\\img\\*.jpg"):
        convertjpg(jpgfile,"E:\\lianhua")
    	
    	
    	
    方法三:该方法批量修改图片大小和文件夹名称
    
    import os
    from PIL import Image
    from PIL import ImageFile
    ImageFile.LOAD_TRUNCATED_IMAGES = True
    from matplotlib.font_manager import FontProperties
    
    font = FontProperties(fname=r'c:\windows\fonts\SimSun.ttc', size=14)
    
    # 获取当前路径
    path_abs = os.getcwd()
    print u'*****************开始文件名更名操作*****************'
    print path_abs
    # 遍历当前路径下的文件以及文件目录
    for root, dir_name, file_name in os.walk(path_abs):
        # 统计文件夹个数
        num_dir = len(dir_name)
        for idx, item in enumerate(dir_name):
            print u'第', idx, u'个文件正在更名......'
            item_new = 'test_' + '0' * (1 - idx / 10) + str(idx)
            # 原文件路径
            path_dir_old = path_abs + '\\' + item
            # print u'原文件路径:', path_dir_old
            # 新文件路径
            path_dir_new = path_abs + '\\' + item_new
            # print u'新文件路径:', path_dir_new
            # 更名操作
            os.renames(path_dir_old, path_dir_new)
    print u'*****************文件名更名完毕!*****************'
    
    print u'*****************图片名更名*******************'
    for root1, dir_name1, file_name1 in os.walk(path_abs):
        num1_dir = len(dir_name1)
        for idx1, item1 in enumerate(dir_name1):
            path_dir1 = path_abs + '\\' + item1
            for root2, dir_name2, file_name2 in os.walk(path_dir1):
                for idx2, item2 in enumerate(file_name2):
                    # 原路径 + 图片名
                    item2_old = path_dir1 + '\\' + item2
                    # 新路径 + 图片名(强制转换成jpg格式,数字6制定图片名长度以及0的填充个数)
                    item_new2 = 'idx_'+ '0' * (5 - len(str(idx2))) + str(idx2)
                    item2_new = path_dir1 + '\\' + item_new2 + '.jpg'
                    # 更名
                    os.rename(item2_old, item2_new)
                    # resize 成指定尺寸大小
                    img = Image.open(item2_new)
                    img_new = img.resize((220, 220))
                    # save 保存
                    img_new.save(item2_new)
    
    展开全文
  • python 批量图片大小__批量定宽转图(淘宝批量转图专用)本次使用了PYHONT库的PIL 与OS 模块代码1__转出的图片宽度与高度都是可以指定代码2(淘宝批量转图专用)__转出的图片宽度指定,高度随原比例变化写在最后 ...

    本次使用了PYHONT库的PIL 与OS 模块

    PIL 模块是一个图像处理模块,如果没有,可以win+r---->cmd---->pip install pil
    os 为python自带的模块,使用时直接导入即可。

    代码1__转出的图片宽度与高度都是可以指定

    // An highlighted block
    # -*- coding: utf-8 -*-
    from os import listdir,mkdir,path
    from PIL import Image
     
    class image_aspect():
     
        def __init__(self, image_file, aspect_width, aspect_height):
            self.img = Image.open(image_file)
            self.aspect_width = aspect_width
            self.aspect_height = aspect_height
            self.result_image = None
     
        def change_aspect_rate(self):
            img_width = self.img.size[0]
            img_height = self.img.size[1]
     
            if (img_width / img_height) > (self.aspect_width / self.aspect_height):
                rate = self.aspect_width / img_width
            else:
                rate = self.aspect_height / img_height
     
            rate = round(rate, 1)
            #print(rate)
            self.img = self.img.resize((int(img_width * rate), int(img_height * rate)))
            return self
     
        def past_background(self):
            self.result_image = Image.new("RGB", [self.aspect_width, self.aspect_height], (0, 0, 0, 255))
            self.result_image.paste(self.img, (int((self.aspect_width - self.img.size[0]) / 2), int((self.aspect_height - self.img.size[1]) / 2)))
            return self
     
        def save_result(self, file_name):
            self.result_image.save(file_name)
     
     
    if __name__ == "__main__":
        path_in=r'D:\拼多多\窗帘\短帘-2021-04-11\old'#此处为照片所在的的目录,转好照片将在同一级目录
        width_out=800 #此处输入想要的照片宽度
        high_out=800 #此处输入想要的照片宽度
        path_new=path_in+'_out'
        if path.isdir(path_new)==False:
            mkdir(path_new)
        count=0
        for i in listdir(path_in):
    
            path_out=str(path_new)+r'\{}{}'.format(count,i)
            image_aspect(r"{}\{}".format(path_in, i), width_out, high_out).change_aspect_rate().past_background().save_result(r"{}".format(path_out))
            count+=1
            
    print(f'已将目录:{path_in}中共计{count}张照片转成为{width_out}*{high_out}的格式')
    

    代码2(淘宝批量转图专用)__转出的图片宽度指定,高度随原比例变化

    // An highlighted block
    
    # -*- coding: utf-8 -*-
    from os import listdir,mkdir,path
    from PIL import Image
     
    class image_aspect():
     
        def __init__(self, image_file, aspect_width):
            
            self.img = Image.open(image_file)
            self.aspect_width = aspect_width
            #self.aspect_height = aspect_height
            self.result_image = None
     
        def change_aspect_rate(self):
            img_width = self.img.size[0]
            img_height = self.img.size[1]
     
            #if (img_width / img_height) > (self.aspect_width / self.aspect_height):
            rate = self.aspect_width / img_width
            #else:
                #rate = self.aspect_height / img_height
     
            self.rate = round(rate, 1)
            #print(rate)
            self.img = self.img.resize((int(img_width * rate), int(img_height * rate)))
            return self#,rate
     
        def past_background(self):
            high=int(self.img.size[1]*self.rate)
            self.result_image = Image.new("RGB", [self.aspect_width, high], (0, 0, 0, 255))
            self.result_image.paste(self.img, (int((self.aspect_width - self.img.size[0]) / 2), int((high - self.img.size[1]) / 2)))
            return self
     
        def save_result(self, file_name):
            self.result_image.save(file_name)
     
     
    if __name__ == "__main__":
        path_in=r'D:\拼多多\窗帘\短帘-2021-04-11\old'#此处为照片所在的的目录,转好照片将在同一级目录
        width_out=800 #此处输入想要的照片宽度
        path_new=path_in+'_out'
        if path.isdir(path_new)==False:
            mkdir(path_new)
            print(path_new,'目录已建立')
        else:
            print('目录已存在')
            pass
        count=0
        for i in listdir(path_in):
            path_out=path_new+r'\{}{}'.format(count,i)
            image_aspect(r"{}\{}".format(path_in, i), width_out).change_aspect_rate().past_background().save_result(r"{}".format(path_out))
            count+=1
            
    print(f'已将目录:{path_in}中共计{count}张照片转成宽度为{width_out}的格式')
    
    
    
    

    写在最后

    本帖的大部分代码来源于这位博主https://blog.csdn.net/huuinn/article/details/78746400?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-9.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-9.control

    本人在原博基础上增加了批量操作及增加了定宽图片操作
    [1]: http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference
    [2]: https://mermaidjs.github.io/
    [3]: https://mermaidjs.github.io/
    [4]: http://adrai.github.io/flowchart.js/

    展开全文
  • 最近在学习PCA算法,用PCA对图片进行降维,图片...我选择用python语言来编程实现批量将彩色图转为灰度图。代码如下,有注释。from skimage import io,transform,colorimport numpy as npdef convert_gray(f,**args...
  • 出差做PPT,要放一些图片上去,原图太大必须resize,十几张图片懒得一一处理了,最近正好在学python,最好的学习方式就是使用,于是写了一个批量处理图片resize的代码,在写的过程中,熟悉了python自己的os模块和...
  • python实用批量处理图片小项目批量修改图片大小代码项目链接批量去雾算法项目链接批量二值化算法代码项目链接 批量修改图片大小 代码 def convertjpg(jpgfile,outdir,width=512,height=512): img=Image.open(jpg...
  • 网上下载的小姐姐套图合集因为原图非常大,一张图十几或者几十M,一套图下来总共可能上百G,所以需要批量压缩处理一下,虽然PS也可以办到,但是代码更灵活,写个Python程序处理了一下,讲每张图长宽缩为2分之1,大小实际缩小...
  • # 设置图片路径,该路径下包含了14张jpg格式的照片,名字依次为0.jpg, 1.jpg, 2.jpg,...,14.jpg DATADIR="D:\Code\ToolBox" #设置目标像素大小,此处设为300''' IMG_SIZE=300 #使用os.path模块的join方法生成路径'''...
  • Path0 = "C:/Users/洋洋/Desktop/新建文件夹" # 处理图片存放的文件夹 Path1 = "C:/Users/洋洋/Desktop/images/train" # 处理图片存放的文件夹 filename = os.listdir(Path1) # 读取需要处理的文件夹中所有图片...
  • 其目的是在质量或文件大小成问题时替换JPEG图像格式。 它的主要优点是: 压缩比高。 对于类似的质量,文件比JPEG小得多。 大多数Web浏览器都支持小型Javascript解码器(gzip压缩大小:56 KB)。 基于HEVC开放视频...
  • pil能处理图片类型 pil可以处理光栅图片(像素数据组成的的块)。 通道 一个图片可以包含一到多个数据通道,如果这些通道具有相同的维数和深度,Pil允许将这些通道进行叠加 模式 1  1位像素,黑和...
  • python图片批量处理缩放

    千次阅读 2017-09-18 09:17:05
    你有一个目录,里面装了很多...使用python的PIL库对图片进行处理,iphone5屏幕分辨率为640*1136,将大于该分辨率的图片按照一定比例缩放至合适大小并保存 代码如下: #coding: ut
  • 当前文件夹下图片压缩尺寸到400*225大小以内,生成到outpath下 可在虚拟环境下生成exe执行文件使用 # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Image # pip install -i ...
  • # 批量resize import numpy as np import cv2 import os dir_path = os.path.join(os.getcwd(), 'D:/EZ/Segmentation/512/512_original') #要处理的的图像所在的文件夹,也可以是绝对路径 # 这样调用时,图像所在的...
  • Python批量修改图片分辨率

    千次阅读 2018-01-28 15:46:09
    前言:处理图片需要,需把图片都转换成1920*1280的大小python实现很方便,需要导入图片处理的Image包和匹配的glob包,很简单,代码如下: img_path = glob.glob("D:/chosed/*.jpg") path_save = "D:/closedd" ...
  • 这里利用python批量处理了RGB图片转换成灰度图片,主要依靠cv2.cvtColor库函数。 如果想用python批量调整图片大小请看此文章,实测有用 一、代码实现 请根据需要自行更改文件地址即可。 import os.path import ...
  • 公司的一个项目要求把所有4096x4096的图片全部转化成2048x2048的图片,这种...而且每次都只能处理一个文件夹,很繁琐,于是我想到了万能的Python,然后写了一个脚本来批量处理图片,同一个根目录下的所有文件夹的子...
  • 2.若将jpg格式批量转化为png格式,在刚才新建的记事本文档里输入 ren *.jpg *.png 3.不要忽略空格,然后将后缀名修改为“bat”。 4.双击“bat”后缀文件,等几秒后所有的图片格式自动转换为png格式。 5.反之格式...
  • 【kimol君的无聊小发明】—用python图片格式批量处理工具前言一、思路分析二、调整尺寸三、调整大小四、整合代码写在最后 前言 某个夜深人静的夜晚,夜微凉风微扬,月光照进我的书房~ 当我打开文件夹以回顾往事之...
  • python批量转换图片

    千次阅读 2014-09-13 19:52:01
    需求是这样的,由于现在相机像素都很高,拍出来的照片很大,上传到网上相册太慢,于是要先转下大小,之前都是直接在网上搜图片处理的软件,后来想了一下,既然会编程,这种需求完全可以自己动手搞。 python图片...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

python批量处理图片大小

python 订阅