zoukankan      html  css  js  c++  java
  • Python-制作抖音图片

    -------------------------------------------------------------------------------------------------------------二更-------------------------------------------------------------------------------------------------------------

       灵光一闪,这么简单的东西为什么我蠢了???

      

     request.urlretrieve(img_url, 'background.jpg')
    

      当总结写的假的好么?

             

      然后更改了一下,现在是可以

      功能1:批量下载图片

         功能2:转化为抖音图片(无论提交外链或者本地图片)

      

     1 #!/usr/bin/env python 
     2 # -*- coding: utf-8 -*- 
     3 # @Time : 2018/11/15 19:40 
     4 # @Author : Empirefree 
     5 # @File : 2.py 
     6 # @Software: PyCharm Community Edition
     7 import copy
     8 import os
     9 import argparse
    10 import re
    11 import numpy as np
    12 from urllib import request
    13 from PIL import Image
    14 import requests
    15 from lxml import etree
    16 
    17 #显示下载数据块
    18 def cbk(a,b,c):
    19     '''回调函数
    20     @a:已经下载的数据块
    21     @b:数据块的大小
    22     @c:远程文件的大小
    23     '''
    24     per=100.0*a*b/c
    25     if per>100:
    26         per=100
    27     print('%.2f%%' % per)
    28 
    29 
    30 def Download():
    31     user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    32     headers = {
    33         'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
    34     response = requests.get('http://www.ivsky.com/tupian/ziranfengguang/', headers=headers)
    35     # 使用lxml解析网页
    36     html = etree.HTML(response.text)
    37     img_urls = html.xpath('.//img/@src')  # 先找到所有的img
    38 
    39     i = 0
    40     for img_url in img_urls:
    41         request.urlretrieve(img_url, 'image' + str(i) + '.jpg', cbk)
    42         i += 1
    43     print('已成功保存为/image[].jpg')
    44     print('下载完成!!!')
    45 
    46 def main(imagepath):
    47     #将图片转换为三维数组
    48     img = Image.open(imagepath)
    49     img_arr = np.array(img)
    50     #提取R
    51     img_arr_r = copy.deepcopy(img_arr)
    52     img_arr_r[:, :, 1:3] = 0
    53     #提取GB
    54     img_arr_gb = copy.deepcopy(img_arr)
    55     img_arr_gb[:, :, 0] = 0
    56     #创建画布并将图片错放开
    57     img_r = Image.fromarray(img_arr_r).convert('RGBA')
    58     img_gb = Image.fromarray(img_arr_gb).convert('RGBA')
    59     canvas_r = Image.new('RGB', img.size, color=(0, 0, 0))
    60     canvas_gb = Image.new('RGB', img.size, color=(0, 0, 0))
    61     canvas_r.paste(img_r, (6, 6), img_r)
    62     canvas_gb.paste(img_gb, (0, 0), img_gb)
    63     img_douyin = Image.fromarray(np.array(canvas_gb) + np.array(canvas_r))
    64     img_douyin.save('douyin.jpg')
    65     img_douyin.show()
    66 
    67 def IsHttp(imagepath):
    68     if re.search('http', imagepath) != None:
    69         return 1
    70     else:
    71         return 0
    72 
    73 if __name__ == '__main__':
    74     # parser = argparse.ArgumentParser()
    75     # parser.add_argument('-i', '--image', help='Image to be processed(give the file path).')
    76     # args = parser.parse_args()
    77     # main(args.image)
    78     print('**************************************************************************')
    79     print('*****************!!!欢迎使用抖音图片加载助手!!!*************************')
    80     print('*****************作者:Empirefree                    *********************')
    81     print('*****************工具: Pycharm                       *********************')
    82     print('*****************时间: 2018/10/23 18:49               ********************')
    83     print('**************************************************************************')
    84     while(1):
    85         print('温馨提示(您目前文件路径为):',os.path.dirname(os.path.realpath(__file__)))
    86         fun = int(input('请输入您想选择的功能:[1]批量下载图片        [2]制作抖音图片
    '))
    87         if fun == 1:
    88             Download()
    89         else:
    90             imagepath = input('请输入您的图片路径: ')
    91             if IsHttp(imagepath):
    92                 request.urlretrieve(imagepath, 'background.jpg')    #下载图片
    93                 imagepath = os.path.abspath('background.jpg')
    94             main(imagepath)
    95             print('加载完毕.......')
    抖音图片2.0

    实验帮助:

      文章末尾有免费源代码、图片和实现的exe供下载,本人博客www.empirefree.top

    实现环境:

      python3.6+pycharm(pip什么的自己看错误就可以搞出来了)

    实现目标(如下所示):

                

    实现效果:

      代码分析:

        1、将图片转换成三维数组,然后对于rgb()这三种颜色提取

        2、Rgb(255, 0, 0) 和Rgb(0, 255, 255)位置改变一下()然后就会有像素错位的效果

         1 canvas_r.paste(img_r, (6, 6), img_r) 

        3.然后单纯保存,显示图片即可

         1 img_douyin.save('douyin.jpg') 2 img_douyin.show() 

      总结:读者有兴趣可以改变一下外链,我弄图片外链好像爬不下来,太弱了吧,思路就是提交图片外链,然后如果判断是外链就下载到本地,然后再利用本程序改变图片样例,这里你看到喜欢的图片想制作就都可以了,本程序只能搞本地有的图片,很难受,我好菜啊!!!!

    分享链接: https://pan.baidu.com/s/19V8cFYQe12h8oiP5E9lk8A 提取码: g8be

  • 相关阅读:
    基于jquery后台框架设计(自适应高度,iframe简易版)
    发布mvc遇到的HTTP错误 403.14Forbidden解决办法
    编译器错误消息: CS0012: 类型 在未被引用的程序集中定义。必须添加对程序集 的引用
    jquery获取iframe里的js事件
    js获取浏览器相关尺寸
    CSS半透明兼容写法
    sharepoint 添加解决方案 遇到的问题
    WCF开发小结
    TDD(测试驱动开发/TestDriven Development)
    asp.net 2.0 读取 资源文件
  • 原文地址:https://www.cnblogs.com/meditation5201314/p/9842853.html
Copyright © 2011-2022 走看看