想法细述
520即将到来,不知道送什么礼物给老婆,因为感觉送任何礼物都显得灿白和无力,因为物质的礼物来的容易,给爱人形成的感受也比较浅,因此自己想到使用Python写一个脚本来处理我们的照片,并将照片形状做成520,以后任何照片组都可以这样做。
遇到的问题
1.我的电脑好久没有使用过Python,我需要重新安装环境;
2.虽然有想法,但自己不是程序员,平时也没有怎么写代码,写代码的思路还是欠缺;
解决问题的方案
1.从头到尾安装环境;
2.上网学习经验;
解决问题的细节
-
安装Python时,我的电脑上原本有pycharm-community-2018.2.4.exe和python-3.6.1.exe 安装好后不可用,报错:api-ms-win-crt-runtime-l1-1-0.dll,解决方法是在网上下载了微软常用运行库集合MSVBCRTAIO_v2019.05.08进行安装;
-
第二个问题是Pycharm无法加载编译器,之前安装过python2.7,始终无法正常加载Python3.6,看了网上解决办法都没有成功,最终解决方案是完全卸载Python和pycharm环境,下载了最新版本pycharm和python3.7;
Python下载地址:https://www.python.org/downloads/ -
第三个问题是Pycharm始终无法正常使用PIL,上网查询知道Python 3中PIL已经被pillow替代,但是在Pycharm里面即便是安装了pillow、Pillow-PIL、PillowImage仍然无法正常使用,这点我始终没能搞明白,还请大神指教,下面我将我的环境截图:
-
Pycharm无法解决PIL的使用,我选择使用Python原生的IDE,但是不知为何我的环境pip、setuptools都没有安装,具体链接和安装方法如下:
setuptools-41.0.1:https://pypi.org/project/setuptools/#downloads
pip-19.1.1:https://pypi.org/project/pip/#downloads
选择*.gz文件,下载下来后,解压,进入解压目录使用CMD命令执行:
(注意先安装setuptools后安装pip)
python setup.py install
- 这时就可以在CMD直接安装pillow了命令如下:
pip install pillow
- 这时就可以开始写脚本了,在网上找到了一个方法编写成脚本:
借鉴原文地址:https://blog.csdn.net/BEYONDMA/article/details/90300624
#coding=utf-8
#author = jianglei
#time =2019.05.19
from PIL import Image
import os
path = "F:\照片和视频\9.2 XXX\9.2XXX精修"
canvasImage = Image.new('RGBA', (2000, 1000))
ncol = 20
nrow = 10
proposal = [0, 1, 2, 3, 4, 5, 8,9,10,11,12, 15,16,17,18,19,
1 + 1 * ncol, 12 + 1 * ncol, 15 + 1 * ncol, 19 + 1 * ncol,
1 + 2 * ncol, 12 + 2 * ncol, 15 + 2 * ncol, 19 + 2 * ncol,
1 + 3 * ncol, 12 + 3 * ncol, 15 + 3 * ncol,19 + 3 * ncol,
1 + 4 * ncol, 2 + 4 * ncol,3 + 4 * ncol,4 + 4 * ncol,5 + 4 * ncol,8 + 4 * ncol,9 + 4 * ncol,10 + 4 * ncol,11 + 4 * ncol,12 + 4 * ncol, 15 + 4 * ncol, 19 + 4 * ncol,
5 + 5 * ncol, 8 + 5 * ncol,15 + 5 * ncol, 19 + 5 * ncol,
5 + 6 * ncol, 8 + 6 * ncol, 15 + 6 * ncol, 19 + 6 * ncol,
5 + 7 * ncol, 8 + 7 * ncol, 15 + 7 * ncol, 19 + 7 * ncol,
5 + 8 * ncol, 8 + 8 * ncol, 15 + 8 * ncol, 19 + 8 * ncol,
1 + 9 * ncol,2 + 9 * ncol,3 + 9 * ncol,4 + 9 * ncol,5 + 9 * ncol, 8 + 9 * ncol, 9 + 9 * ncol, 10 + 9 * ncol, 11 + 9 * ncol,12 + 9 * ncol, 15 + 9 * ncol,16 + 9 * ncol,17 + 9 * ncol,18 + 9 * ncol,19 + 9 * ncol]
listPic = []
for i in os.walk(path):
listPic.append(i)
k = 0
for j in range(1, 200):
if j in proposal:
orgImage = Image.open(os.path.join(path, listPic[0][2][k]))
print(orgImage)
canvasRow = j % 20
canvasCol = int((j - canvasRow) / 20)
print(canvasRow)
print(canvasCol)
print()
orgImage = orgImage.resize((100, 100), Image.ANTIALIAS)
canvasImage.paste(orgImage, (canvasRow * 100, canvasCol * 100))
k = k + 1
canvasImage.save('F:/520.bmp')
- 执行效果如下: