两分钟教你玩转千图成像Part1~

导读

本期将实现用Python进行豆瓣图片的爬取,并用软件快速生成马赛克拼图。
图片获取方式:微信公众号后台回复: 照片

软件获取方式:微信公众号后台回复:千图成像

微信公众号:

简介

千图成像即马赛克拼图。马赛克拼图主要运用于抽象艺术图像的表达,利用图片像素的原理,将图像的每个色彩点,用不同的马赛克原石(图片)拼贴出来。
网上流传较广的方法为通过 照片无规则拼接加调整背景透明度的方法实现(如下图,来源见水印)。但从本质上来说是一种“取巧”的方法。
那本系列教程将用Python教你玩转千图成像,从原理出发,如何用代码快速、准确的实现马赛克拼图。

本系列教程

Part1:Python实现图片爬取+软件快速体验马赛克拼图

part2:马赛克拼图实现原理+代码实现

part3:如何实现多样式的马赛克拼图

照片爬取

本文以爬取周杰伦豆瓣照片为例。进入周杰伦的图片界面,获得其地址链接规则与请求头信息,可以看到不同页数对应的strat值不同,规则为 start=30*第几页。
#请求头信息与链接
headers = {  'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"  }
url = 'https://movie.douban.com/celebrity/1048000/photos/?type=C&start=' + str(page * 30) + '&sortby=like&size=a&subtype=a'
然后通过查看HTML代码获得图片对应的class值,通过requests与bs4对页面进行解析与爬取。完整代码如下。
# -*- utf-8 -*-

import os
import requests
from bs4 import BeautifulSoup

headers = {
	'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"
	}
def GetHtmlText(url):
    try:
        r = requests.get(url, headers=headers)
        #print(url)
        r.raise_for_status()
        r.encoding = 'utf-8'
        return r.text
    except:
        return ""

def main(pages):
    FilePath = os.getcwd() + '\jay\\'
    if not os.path.exists(FilePath):
        os.makedirs(FilePath)
    TempPage = pages
    FileNum = 1
    for page in range(pages):
        url = 'https://movie.douban.com/celebrity/1048000/photos/?type=C&start=' + str(page * 30) + '&sortby=like&size=a&subtype=a'
        html = GetHtmlText(url)
        soup = BeautifulSoup(html, 'html.parser')
        #print(str(page * 30))
        uls = soup.find_all('ul', {"class": "poster-col3 clearfix"})
        print(html)
        for ul in uls:
            imgs = ul.find_all('img')
            for img in imgs:
                imgurl = img['src']
                imgcontent = requests.get(imgurl).content
                filename = str(FileNum) + '.jpg'
                with open(os.getcwd() + '/jay/' + filename, 'wb') as wf:
                    wf.write(imgcontent)
                FileNum += 1

if __name__ == '__main__':
	main(10)

运行结果如下。值得一说的是,在进行爬取时默认保存的图片格式为jpg,而豆瓣图片储存格式并非完全为jpg格式,所以会出现部分图片无法读取与查看。但并不影响后续的操作。

软件生成马赛克拼图

Foto-Mosaik-Edda是一个简单易用的向导程序,软件大小为1.47MB,用户可以使用它自己的照片,轻松的创建出由很多张图片组成的马赛克拼图

1.创建图库

2. 创建马赛克拼图
3. 部分结果
往期推荐
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值