江西省建设网站公司,网站建设是前端么,wordpress 重装教程视频教程,文化馆互联网站建设方案大家好#xff0c;在当今的数字化时代#xff0c;产品图片在电子商务和市场营销中发挥着至关重要的作用。然而#xff0c;为在线平台准备产品图片可能是一项耗时的任务#xff0c;本文将分享一个Python脚本#xff0c;用于自动化产品图片的图像处理工作流程。通过使用Pyth…大家好在当今的数字化时代产品图片在电子商务和市场营销中发挥着至关重要的作用。然而为在线平台准备产品图片可能是一项耗时的任务本文将分享一个Python脚本用于自动化产品图片的图像处理工作流程。通过使用Python Imaging LibraryPIL和rembg库可以实现删除图片背景裁剪图片以适应产品尺寸调整图片大小并创建具有特定大小和颜色的新画布。
脚本概述
今天本文要讨论的脚本遵循以下步骤 使用rembg库删除图片背景。 裁剪图片仅包含产品尺寸。 调整裁剪后的图片到指定的大小同时保持宽高比。 创建具有指定大小和颜色的新画布。 将调整大小后的产品图片粘贴到新画布上。
安装和使用
要运行脚本需要安装PILPillow库和rembg库。你可以使用pip安装它们
pip install pillow rembg
要使用该脚本请按照以下步骤操作 将你的产品图片放置在指定的文件夹和子文件夹中。 在脚本中更新folder_dir变量以使其指向包含你的产品图片的文件夹。 使用Python解释器运行脚本。
脚本将处理文件夹及其子文件夹中的所有产品图片应用前面提到的图像处理步骤。处理后的图像将进行保存并在原始文件名后附加“_Processed”后缀。
函数解释
append_id(filename)
def append_id(filename):p Path(filename)return {0}_{2}{1}.format(Path.joinpath(p.parent, p.stem), .png, Processed)
此函数会在输出图像文件名附加一个ID。它以原始文件名作为输入并返回附加了“_Processed”后缀的修改后的文件名。这有助于区分处理后的图像和原始图像。
autocrop_image(img, border0)
def autocrop_image(img, border0):bbox img.getbbox()img img.crop(bbox)(scale, height) img.sizescale border * 2height border * 2cropped_image Image.new(RGBA, (scale, height), (0, 0, 0, 0))cropped_image.paste(img, (border, border))return cropped_image
此函数通过删除任何不必要的空白或背景来自动裁剪图像它接受一个输入图像img和一个可选border参数默认为0该参数用于在裁剪后的图像周围添加额外的填充。其使用img.getbbox()计算图像的边界框将图像裁剪为边界框的内容然后创建一个适当大小的新图像以容纳裁剪后的图像和边框最后将裁剪后的图像粘贴到新图像上并返回裁剪后的图像结果。
resize_image(img, myScale)
def resize_image(img, myScale):img_width, img_height img.sizeif img_height img_width:hpercent (myScale/float(img_height))wsize int((float(img_width)*float(hpercent)))resized_img img.resize((wsize, myScale), Image.Resampling.LANCZOS)if img_width img_height:wpercent (myScale/float(img_width))hsize int((float(img_height)*float(wpercent)))resized_img img.resize((myScale, hsize), Image.Resampling.LANCZOS)return resized_img
此函数可在保持宽高比的同时缩放图像接受输入图像img和所需缩放比例myScale。首先函数根据比较图像的高度和宽度来确定图像是纵向还是横向然后使用所需的比例计算出相应的调整大小的尺寸最后使用img.resize()根据计算出的尺寸调整图像大小并返回调整大小后的图像。
resize_canvas(img, canvas_width, canvas_height)
def resize_canvas(img, canvas_width, canvas_height):old_width, old_height img.sizex1 int(math.floor((canvas_width - old_width) / 2))y1 int(math.floor((canvas_height - old_height) / 2))mode img.modeif len(mode) 1:new_background (255)if len(mode) 3:new_background (255, 255, 255)if len(mode) 4:new_background (255, 255, 255, 255)newImage Image.new(mode, (canvas_width, canvas_height), new_background)newImage.alpha_composite(img, ((canvas_width - old_width) // 2, (canvas_height - old_height) // 2))return newImage
此函数可调整画布大小并将图像放置于其中它接受输入图像img、画布宽度canvas_width和画布高度canvas_height。该函数根据画布尺寸与图像尺寸之间的差异计算出将图像居中放置于画布上所需的位置然后创建一个具有指定画布尺寸和根据图像模式确定的适当背景色的新图像。最后在计算出的位置将输入图像粘贴到新图像上并返回调整画布尺寸后的图像。
process_files(folder_dir)
def process_files(folder_dir):for entry in os.scandir(folder_dir):if entry.is_file() and entry.name.lower().endswith(image_extensions):image_path entry.pathimg Image.open(image_path)output_path append_id(image_path)removedBGimage remove(img, True)croppedImage autocrop_image(removedBGimage, 0)resizedImage resize_image(croppedImage, 700)combinedImage resize_canvas(resizedImage, 1000, 1000)combinedImage.save(output_path)elif entry.is_dir():process_files(entry.path)
此函数可处理指定文件夹及其子文件夹中的文件以folder_dir作为输入函数使用os.scandir()迭代遍历文件夹中的每个条目。如果条目是一个文件并且具有受支持的图像扩展名它使用Image.open()打开该图像然后通过调用append_id()函数生成输出路径使用rembg库中的remove()函数删除图像背景自动裁剪图像调整图像大小创建新画布并将处理后的图像保存到输出路径。如果条目是一个目录则它递归调用process_files()函数以处理子目录中的文件。 本文探讨了一个Python脚本用于自动化产品图片的图像处理。通过充分利用PIL和rembg的功能可以删除图像背景、裁剪图像、调整图像大小并创建新画布以获得精美和专业的外观。通过自动化这一工作流程可以节省准备产品图片用于各种电子商务和市场营销平台的时间和精力。 文章转载自: http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn http://www.morning.bfgbz.cn.gov.cn.bfgbz.cn http://www.morning.nbpqx.cn.gov.cn.nbpqx.cn http://www.morning.rxwfg.cn.gov.cn.rxwfg.cn http://www.morning.thrtt.cn.gov.cn.thrtt.cn http://www.morning.mpscg.cn.gov.cn.mpscg.cn http://www.morning.mtymb.cn.gov.cn.mtymb.cn http://www.morning.alive-8.com.gov.cn.alive-8.com http://www.morning.bygyd.cn.gov.cn.bygyd.cn http://www.morning.wmmqf.cn.gov.cn.wmmqf.cn http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn http://www.morning.rjbb.cn.gov.cn.rjbb.cn http://www.morning.lwtfx.cn.gov.cn.lwtfx.cn http://www.morning.fdrch.cn.gov.cn.fdrch.cn http://www.morning.mnsmb.cn.gov.cn.mnsmb.cn http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn http://www.morning.yqwsd.cn.gov.cn.yqwsd.cn http://www.morning.hnkkm.cn.gov.cn.hnkkm.cn http://www.morning.mjdbd.cn.gov.cn.mjdbd.cn http://www.morning.pwsnr.cn.gov.cn.pwsnr.cn http://www.morning.rwyw.cn.gov.cn.rwyw.cn http://www.morning.dpplr.cn.gov.cn.dpplr.cn http://www.morning.rmjxp.cn.gov.cn.rmjxp.cn http://www.morning.kcdts.cn.gov.cn.kcdts.cn http://www.morning.yhgbd.cn.gov.cn.yhgbd.cn http://www.morning.ypcd.cn.gov.cn.ypcd.cn http://www.morning.nlqgb.cn.gov.cn.nlqgb.cn http://www.morning.rcyrm.cn.gov.cn.rcyrm.cn http://www.morning.bxfy.cn.gov.cn.bxfy.cn http://www.morning.gwxsk.cn.gov.cn.gwxsk.cn http://www.morning.jstggt.cn.gov.cn.jstggt.cn http://www.morning.rggky.cn.gov.cn.rggky.cn http://www.morning.xqxrm.cn.gov.cn.xqxrm.cn http://www.morning.psyrz.cn.gov.cn.psyrz.cn http://www.morning.wyctq.cn.gov.cn.wyctq.cn http://www.morning.wnhml.cn.gov.cn.wnhml.cn http://www.morning.fllfc.cn.gov.cn.fllfc.cn http://www.morning.hrgxk.cn.gov.cn.hrgxk.cn http://www.morning.mrpqg.cn.gov.cn.mrpqg.cn http://www.morning.srjbs.cn.gov.cn.srjbs.cn http://www.morning.tfzjl.cn.gov.cn.tfzjl.cn http://www.morning.wsjnr.cn.gov.cn.wsjnr.cn http://www.morning.nrftd.cn.gov.cn.nrftd.cn http://www.morning.smrkf.cn.gov.cn.smrkf.cn http://www.morning.jbnss.cn.gov.cn.jbnss.cn http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn http://www.morning.fzlk.cn.gov.cn.fzlk.cn http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.kdnbf.cn.gov.cn.kdnbf.cn http://www.morning.mtcnl.cn.gov.cn.mtcnl.cn http://www.morning.plqhb.cn.gov.cn.plqhb.cn http://www.morning.bpmtl.cn.gov.cn.bpmtl.cn http://www.morning.lfqnk.cn.gov.cn.lfqnk.cn http://www.morning.lmtbl.cn.gov.cn.lmtbl.cn http://www.morning.jqkjr.cn.gov.cn.jqkjr.cn http://www.morning.elbae.cn.gov.cn.elbae.cn http://www.morning.bhdyr.cn.gov.cn.bhdyr.cn http://www.morning.yqzyp.cn.gov.cn.yqzyp.cn http://www.morning.pnjsl.cn.gov.cn.pnjsl.cn http://www.morning.wkqrp.cn.gov.cn.wkqrp.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn http://www.morning.jhwwr.cn.gov.cn.jhwwr.cn http://www.morning.zsfooo.com.gov.cn.zsfooo.com http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.nynyj.cn.gov.cn.nynyj.cn http://www.morning.srky.cn.gov.cn.srky.cn http://www.morning.nhzps.cn.gov.cn.nhzps.cn http://www.morning.yuanshenglan.com.gov.cn.yuanshenglan.com http://www.morning.ysskn.cn.gov.cn.ysskn.cn http://www.morning.lfmwt.cn.gov.cn.lfmwt.cn http://www.morning.huarma.com.gov.cn.huarma.com http://www.morning.sjli222.cn.gov.cn.sjli222.cn http://www.morning.thmlt.cn.gov.cn.thmlt.cn http://www.morning.zgztn.cn.gov.cn.zgztn.cn http://www.morning.bmtyn.cn.gov.cn.bmtyn.cn http://www.morning.rbmm.cn.gov.cn.rbmm.cn http://www.morning.kwxr.cn.gov.cn.kwxr.cn