Python-制作抖音图片
-------------------------------------------------------------------------------------------------------------二更-------------------------------------------------------------------------------------------------------------
灵光一闪,这么简单的东西为什么我蠢了???
request.urlretrieve(img_url, 'background.jpg')
当总结写的假的好么?
然后更改了一下,现在是可以
功能1:批量下载图片
功能2:转化为抖音图片(无论提交外链或者本地图片)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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]制作抖音图片\n')) 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('加载完毕.......')
实验帮助:
文章末尾有免费源代码、图片和实现的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
我曾七次鄙视自己的灵魂:
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。