python3 打码功能实现

import numpy as np
import json,os,sys
from PIL import Image
def mkdir(path):
    folder = os.path.exists(path)
    if not folder:
        os.makedirs(path)

def method(depts, start, end, url,  newurl):
    '''
    :param depts: 马瑟克块元素大小
    :param start: 马赛克横坐标起点元组
    :param end: 马赛克纵坐标起始点元组
    :return:
    主要通过中间值的rgb对局部范围块的rgb做修改,depts值越小越精确
    '''
    im1 = np.array(Image.open(url))
    for i in range(start[0], start[1], depts):  # y轴
        for j in range(end[0], end[1], depts):  # x轴
            im1[i:i + depts, j:j + depts] = im1[i + (depts // 2)][j + (depts // 2)]
    im2 = Image.fromarray(im1.astype("uint8"))
    im2.save(newurl)
    im2.show()

if __name__ == '__main__':
    imglist = [article_id for article_id in sys.argv[1].strip().split(',')]
    dir = imglist[0]
    mulu = '/www/wwwroot/***.***.com'
    f = open("/www/wwwroot/***.****.com/canvas/"+dir+".json")
    se = json.load(f)
    res = []
    for k, v in se.items():
        for k1, v1 in v.items():
            url = mulu +k
            newurl = mulu + '/Upload' + k
            src = os.path.splitext(k)
            path = "/" + src[0].split('/')[-5] + "/" + src[0].split('/')[-4] + "/" + src[0].split('/')[-3] + "/" + src[0].split('/')[-2]
            newurlmu = mulu + '/Upload/Upload' + path
            mkdir(newurlmu)
            folder = os.path.exists(newurl)
            if folder:
                url = newurl
            method(10, (int(v1['y']), (int(v1['y'])+int(v1['height']))), (int(v1['x']), (int(v1['x'])+int(v1['width']))), url,  newurl)  #坐标打码:起始坐标加上宽高才是结束坐标
            backurl = '/Upload' + k
        res.append(backurl)
    f.close()
    kyse = list(se.keys())
    for i in range(len(kyse)):
        se[res[i]] = se.pop(kyse[i])
    jsonfile=json.dumps(se)
    with open("/www/wwwroot/***.*****.com/canvas/"+dir+".json", 'w') as f:
         f.write(jsonfile)
    print(1)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值