Python自动化:几分钟搞定数万张图片处理,完成美工一周工作量

liftword4个月前 (01-08)技术文章48

在这个信息爆炸的时代,电子商务的竞争日益激烈,每一个细节都可能成为影响店铺流量的关键因素。最近,我的一位朋友就遇到了这样的挑战:他的阿里巴巴国际站店铺流量一直停滞不前,尽管高薪聘请了专业运营,但效果依然不明显。

运营在仔细审查店铺后,提出了一个看似简单却极具挑战性的建议:将所有产品图片的左上角加上品牌logo。这个建议看似简单,但实际操作起来却困难重重。首先,品牌logo的大小需要根据图片大小进行调整,以确保logo既不过于突兀,又能清晰展现品牌特色。其次,阿里巴巴国际站后台有着严格的规则,如果logo过大,产品图的评分将会降低,进而影响产品的曝光率。

原图:

加上logo后的图片

面对这一挑战,我的朋友首先想到的是请美工手动处理。然而,店铺中几千个产品,每个产品又有六张主图,总计几万张图片需要处理,同时每一张图片还要尝试加上不同尺寸的logo,美工团队至少需要一周的时间才能完成。时间就是金钱,在竞争激烈的电商领域,一周的时间足以让竞争对手抢占先机。

面对这种重复性冗余工作,正是Python自动化办公大显身手的时刻。三十行代码轻松完成美工团队一周的工作量

from PIL import Image
import numpy as np 
import os


def add_logo(save_dir='.\mainpic_logo_new',resize_radio=1,logo_dis=(76,72)):
    logo_img = Image.open(r"D:\\BaiduSyncdisk\\WORK\Honor\\国际站运营\\logo.png")
    print(logo_img.size)
    logo_img = logo_img.resize((int(403*resize_radio), int(52*resize_radio)),Image.ANTIALIAS)
    print(logo_img.size)
    # logo_img.show()


    img_path= 'D:\\BaiduSyncdisk\\WORK\\Honor\\国际站运营\\主图加LOGO\\主图加LOGO'
    save_dir = save_dir
    for pic_file in os.listdir(img_path):
        # if not os.path.exists(os.path.join(save_dir,pic_file)):
        save_pic_path = os.path.join(save_dir,pic_file)
        os.makedirs(save_pic_path,exist_ok=True)
        print(save_pic_path)
        par_path = os.path.join(img_path,pic_file)
        for pic in os.listdir(par_path):
            try:
                pic_img = os.path.join(par_path,pic)
                img1 = Image.open(pic_img)
                print(np.array(img1).shape)
                img1.paste(logo_img, logo_dis, mask = logo_img)
                print(os.path.join(save_pic_path,pic))
                img1.save(os.path.join(save_pic_path,pic))
            except:
                continue
if __name__ == "__main__":
    radio_size_list = [1,0.9,0.8,0.7,0.6]
    logo_dis_list = [(76,72),(66,62),(58,56),(49,46),(39,36)]
    for radio_size in radio_size_list:
        for logo_dis in logo_dis_list:
            save_dir = f".\mainpic_logo_new_{radio_size}_{logo_dis}"
            add_logo(save_dir,radio_size,logo_dis)


首先,我利用Python的图像处理库Pillow来读取和处理图片。通过Pillow,我可以轻松地获取图片的尺寸,并根据尺寸调整logo的大小。接着,我使用Pillow的绘图功能,在图片的右上角绘制品牌logo。为了确保logo的位置和大小都符合要求,一张图片生成了五个不同尺寸的logo供业务人员选择。

然后,我利用Python的文件处理功能,遍历店铺中所有的产品图片,并对每张图片进行处理。这个过程虽然看似简单,但实际上需要处理大量的文件和数据,因此我特别注意了代码的性能和稳定性。

最后,我将处理后的图片进行了保存,并进行了最后的检查。整个过程只用了几分钟的时间,就完成了原本需要一周才能完成的任务。

处理前的图片

处理后的图片【左上角贴上标签】

通过这次经历,朋友深刻地体会到了Python自动化办公的魅力。他说:“以前觉得自动化办公只是个概念,没想到实际操作起来这么强大。这次不仅解决了我们的燃眉之急,还让我对Python有了更深的认识和兴趣。”

确实,Python作为一种强大的编程语言,在自动化办公领域有着广泛的应用。无论是数据处理、文件操作还是图像处理,Python都能轻松应对。在这个信息爆炸的时代,掌握Python自动化办公技能,无疑会让我们在工作中更加得心应手,事半功倍。

相关文章

教你使用python编程绘制函数图像

函数公式很抽象,图像更直观,但聪明的我们总不会手画图像吧?来学习一下用Python怎么画函数图像吧。首先打开Visual Studio Code(后面简称VSCode),点击New File(中文版是...

怎么做到的?用python制作九宫格图片,太棒了

1. ? 应用场景 ?当初的想法是:想把一张图切割成九等份,发布到微信朋友圈,切割出来的图片,上传到朋友圈,发现微信不按照我排列的序号来排版。这样的结果是很耗时间的。让我深思,能不能有一种,直接拼接成...

Python自动化办公:一分钟高效搞定Excel所有图片的导入导出

在日常办公中,我们经常需要在Excel表格中插入或导出图片,特别是在制作产品目录、报告或展示数据时。现在有这样一份任务,产品名录表里需要将每个产品的实拍图片插入到D列上,产品有上百个,传统方法需要将图...

Python 潮流周刊#51:用 Python 绘制美观的图表

本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职...

Python中如何操作Surface对象绘制图形?

在Surface对象上绘制图形分为加载图片和绘制图片两个步骤。(1)加载图片加载图片即将图片读取到程序中,通过pygame中 image模块的load()方法可以向程序中加载图片,生成Surface对...

Python带你生成个性海报头像

利用Python语言,可以很方便帮你制作个性海报头像,无需插件,纯代码制作生成。一、生成文字型海报头像要生成一张关于Python基础语法的海报图片,你可以使用Python中的库如PIL(Pillow)...