问题描述
最近碰到一个问题,就是需要取找大约2000张图片用来做机器人的头像。
批量下载图片(爬取图片)
刚开始了解了一下python网络爬虫,发现有点繁琐,需要花费比较大的精力才能解决。从网上看到chrome有很多插件可以批量下载网页上的图片,对比了几款,发现Fatkun简单粗暴。可以批量下载当前打开页面上的所有图片。
压缩图片大小和尺寸
问了美术朋友,推荐了几款图片处理工具
1、pngquant。试用了命令行工具。可以很方便的批量压缩图片。没找到修改图片尺寸的功能。
pngquant *.jpg
2、https://tinypng.com/。支持批量压缩20张图片,压缩效果也很不错。20张能叫批量么?
3、python的图片处理库pillow。自动动手丰衣足食。
python:我才是最好语言。
PHP:wtf?
#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
import os
import sys
# print(sys.path)
# mac下pip安装后默认路径找不到
sys.path.append("/Library/Python/3.7/site-packages")
import uuid
from PIL import Image
image_src_path = "../" # 图片源路径,处理后的图片保存到当前路径下
image_size_x = 250 # 处理后图片宽度
def compress_image(infile,outfile):
im = Image.open(infile)
(x,y) = im.size #read image size
x_s = image_size_x #define standard width
y_s = int(y * x_s / x) #calc height based on standard width
if x < x_s:
x_s,y_s = x,y
out = im.resize((x_s,y_s),Image.ANTIALIAS) #resize image with high-quality
out.save(outfile)
im.close()
print('file %s->%s size (%d,%d)->(%d,%d) ' %(infile,outfile,x,y,x_s,y_s))
for cur_path, cur_dir, cur_files in os.walk(image_src_path):
print(cur_path,cur_dir)
if cur_path != image_src_path:
continue
for f in cur_files:
if f.endswith(".png"):
compress_image(image_src_path+f,str(uuid.uuid4())+".png")