Python实现word简历中图片模糊

Python实现word简历中照片模糊——保护个人隐私的有效方法

 一、引言背景

         在现代招聘流程中,电子简历成为了主要的招聘方式之一。然而,简历中包含的个人信息往往涉及隐私问题,特别是照片。为了保护求职者的个人隐私和数据安全,许多招聘平台要求对简历中的照片进行处理,以避免滥用或非法使用。因此,本篇博客将介绍如何使用Python编程语言,并结合import zipfile、PIL库和io库,来实现对Word简历中照片的模糊处理。

二、开发环境

我们将使用以下工具和库来完成这个任务:

  • Python编程语言:Python是一种流行且易于使用的编程语言,具有强大的图像处理能力。
  • import zipfile:该库允许我们在Python中处理ZIP文件,方便提取和保存Word简历文件。
  • PIL(Python Imaging Library)库:PIL库是Python图像处理的标准库之一,提供了丰富的图像处理功能。
  • io库:io库提供了一些用于处理文件流的工具和函数。

三、步骤概述

  1. 解压Word简历文件:使用import zipfile库打开Word简历文件,并解压缩其中的内容。
  2. 定位照片文件:使用Python代码,找到简历文件中的照片文件,并提取出来。
  3. 图像处理:使用PIL库加载照片文件,并应用模糊滤镜对照片进行模糊处理。
  4. 替换原文件:将处理后的照片重新保存,并替换原始简历中的照片文件。
  5. 重新压缩为Word简历文件:使用import zipfile库重新打包修改后的简历文件,并保持其原有的格式和结构。

        下面将按照上述步骤详细介绍每个环节的实现方法,并提供相应的Python代码示例。通过遵循本篇博客的指导,大家能够轻松地使用Python编程语言来实现照片模糊效果,以确保简历数据集的安全性和隐私保护。

四、实现代码

import zipfile
from PIL import Image, ImageFilter
import io
import os

blur = ImageFilter.GaussianBlur(40)

def redact_images(filename):
    # outfile = filename.replace(".docx", "_redacted.docx")
    with zipfile.ZipFile('D:\Pycharmproject2023\code_test_project\shan_test\data\word简历\{}'.format(filename)) as inzip:
        with zipfile.ZipFile(filename, "w") as outzip:
            for info in inzip.infolist():
                name = info.filename
                print(info)
                content = inzip.read(info)
                if name.endswith((".png", ".jpeg", ".gif")):
                        fmt = name.split(".")[-1]
                        img = Image.open(io.BytesIO(content))
                        img = img.convert().filter(blur)
                        outb = io.BytesIO()
                        img.save(outb, fmt)
                        content = outb.getvalue()
                        info.file_size = len(content)
                        info.CRC = zipfile.crc32(content)
                outzip.writestr(info, content)

for filename in os.listdir('D:\Pycharmproject2023\code_test_project\shan_test\data\word简历'):
    if filename.endswith('.docx'):
        redact_images(filename)

五、模糊后效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/41146.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion生成图片参数查看与抹除

前几天分享了几张Stable Diffusion生成的艺术二维码,有同学反映不知道怎么查看图片的参数信息,还有的同学问怎么保护自己的图片生成参数不会泄露,这篇文章就来专门分享如何查看和抹除图片的参数。 查看图片的生成参数 1、打开Stable Diffus…

【密码学】一、概述

概述 1、密码学的发展历史1.1 古代密码时代1.2 机械密码时代1.3 信息密码时代1.4 现代密码时代 2、密码学的基本概念3、密码学的基本属性4、密码体制分类4.1 对称密码体制4.2 非对称加密体制 5、密码分析 1、密码学的发展历史 起因:保密通信和身份认证问题 根据时间…

Twisted Circuit

题目描述 输入格式 The input consists of four lines, each line containing a single digit 0 or 1. 输出格式 Output a single digit, 0 or 1. 题意翻译 读入四个整数 00 或者 11,作为如图所示的电路图的输入。请输出按照电路图运算后的结果。 感谢PC_DOS …

推荐一款在win、mac、android之间传递文件或消息的软件,LocalSend,前提需要在同一网络下

官方地址 https://github.com/localsend/localsend/releases/download/v1.10.0/LocalSend-1.10.0.dmg 可选择不同的设备进行发送接收,超级好用

etcd实现大规模服务治理应用实战

导读:服务治理目前越来越被企业建设所重视,特别现在云原生,微服务等各种技术被更多的企业所应用,本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结,同时结合当前较火的分布式开源kv产品etcd,…

hybridCLR热更遇到问题

报错1: No ‘git‘ executable was found. Please install Git on your system then restart 下载Git安装: Git - Downloading Package 配置:https://blog.csdn.net/baidu_38246836/article/details/106812067 重启电脑 unity:…

docker容器引擎(一)

docker 一、docker的理论部分docker的概述容器受欢迎的原因容器与虚拟机的区别docker核心概念 二、安装docker三、docker镜像操作四、docker容器操作 一、docker的理论部分 docker的概述 一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源再Linux容…

UML 图

统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图…

力扣 406. 根据身高重建队列

题目来源:https://leetcode.cn/problems/queue-reconstruction-by-height/description/ C题解1:分别对h和k两个维度进行考虑,我这里是优先考虑k值,k值相同的时候h小的排前面。然后再一一遍历,对于people[i]&#xff0c…

如何自学网络安全(黑客)

自学网络安全(黑客)需要掌握一系列的技能和知识,以下是一些学习网络安全的步骤: 基础知识:首先,你需要对计算机网络和操作系统有基本的了解。学习计算机网络的基本原理、网络协议和网络安全的基本概念。同时…

基于timegan扩增技术,进行多维度数据扩增(Python编程,数据集为瓦斯浓度气体数据集)

1.数据集介绍 瓦斯是被预测气体,其它列为特征列,原始数据一共有472行数据,因为原始数据比较少,所以要对原始数据(总共8列数据)进行扩增。 开始数据截图 截止数据截图 2. 文件夹介绍 lstm.py是对未扩增的数据进行训练…

C++基础算法前缀和和差分篇

📟作者主页:慢热的陕西人 🌴专栏链接:C算法 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要讲解了前缀和和差分算法 文章目录 Ⅳ. 前缀和 和 差分Ⅵ .Ⅰ前缀和…

更改el-select-dropdown_item selected选中颜色

更改el-select-dropdown_item selected选中颜色 默认为element主题色 在修改element select下拉框选中颜色时会发现不生效,原因是:el-select下拉框插入到了body中 解决办法: 在select标签里填写:popper-append-to-body"false"属性…

数据结构-单链表

#include<stdio.h> #include<stdlib.h>typedef struct Node {int data;struct Node* next; }Node;//创建一个头结点&#xff0c;数据域保存链表节点数 Node* init_single_list() {Node* node (Node*)malloc(sizeof(Node));node->next NULL;node->data 0; …

小黑子—JavaWeb:第一章 - JDBC

JavaWeb入门1.0 1. javaweb介绍2. 数据库设计2.1 约束2.2 表关系2.3 多表查询2.3.1 内连接&#xff08;连接查询&#xff09;2.3.2 外连接&#xff08;连接查询&#xff09;2.3.3 子查询 2.4 事务 3. JDBC3.1 JDBC 快速入门 4 JDBC API详解4.1 DriverManager4.2 Conncetion4.3 …

Linux内核源代码的目录结构包括部分:

内核核心代码&#xff1a;这部分代码包括内核的各个子系统和模块&#xff0c;如进程管理、内存管理、文件系统、网络协议栈等。这些代码构成了Linux内核的核心功能。 非核心代码&#xff1a;除了核心代码之外&#xff0c;还包括一些非核心的代码和文件&#xff0c;如库文件、固…

了解 JVM - 认识垃圾回收机制与类加载过程

前言 本篇通过介绍JVM是什么&#xff0c;认识JVM的内存区域的划分&#xff0c;了解类加载过程&#xff0c;JVM中垃圾回收机制&#xff0c;从中了解到垃圾回收机制中如何找到存活对象的方式&#xff0c;引用计数与可达性分析的方式&#xff0c;再释放垃圾对象时使用的方式&…

vue或react当中canvas实现电子签名组件和使用canvas进行图片压缩

<template><div><h1>vue3</h1><canvas id"canvasWrite"> 浏览器不支持Canvas,请升级浏览器 </canvas><div><button class"submit" click"submitWrite">提交签名</button><button clas…

python如何知道你的导包在哪/site-package在哪/anaconda中的模块文件在哪

参考: https://stackoverflow.com/questions/31003994/where-is-site-packages-located-in-a-conda-environment anaconda虚拟环境中的site-package在如下目录&#xff0c;/opt/conda/envs/env_cp37_STAGATE_TF/lib/python3.7/site-packages/。 基于寻找你导包的物理位置在哪…

WPF嵌入外部exe应用程序-使用Winfom控件承载外部程序

使用Winform控件承载外部程序 在WPF中使用Winfom控件添加winform相关的程序集在XAML头中加入对这两个程序集命名空间的引用使用Winform控件效果&#xff1a;问题 在Winfom控件中嵌入exe程序准备Winfrom控件更换父窗体的句柄完整实现代码&#xff1a;实现效果&#xff1a; 问题和…