导读

本期将实现用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 BeautifulSoupheaders = {'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.textexcept:return ""def main(pages):FilePath = os.getcwd() + '\jay\\'if not os.path.exists(FilePath):os.makedirs(FilePath)TempPage = pagesFileNum = 1for 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).contentfilename = str(FileNum) + '.jpg'with open(os.getcwd() + '/jay/' + filename, 'wb') as wf:wf.write(imgcontent)FileNum += 1if __name__ == '__main__':main(10)

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


软件生成马赛克拼图

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

1.创建图库




2. 创建马赛克拼图









3. 部分结果



往期推荐

  • Torch+SSD实现目标检测是否佩戴口罩
  • 手写作业/文件太多不想写?手写模拟器发布啦
  • 【漫评】你驻足于春色中,于那独一无二的春色之中

两分钟教你玩转千图成像Part1~相关推荐

  1. python千人成像_Python实现千图成像:从图片爬取到图片合成

    千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...

  2. Python---如何实现千图成像:初级篇(从图片爬取到图片合成)

    千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...

  3. python 爬取图片_Python实现千图成像:从图片爬取到图片合成

    千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...

  4. python 透明图片合成_Python实现千图成像:从图片爬取到图片合成

    千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...

  5. ps入门第20天_ps批处理_ps动作的编辑与创建 案例:千图成像

    一前言 二操作步骤 1.录制动作 ①窗口---动作---创建文件夹 ②创建新动作---命名 ③点击开始记录 ④点击裁剪---按住shift---裁剪出正方形 ⑤文件---存储为 找个任意的文件夹存放即 ...

  6. 10分钟教你玩起来freemodbus

    源码获取 本节教程源码资料获取方式: 1.公众号后台回复"modbus" 2.小飞哥gitee仓库自提 3.留言区获取资料链接 freemodbus是什么? 简介及应用场景 Fre ...

  7. 两分钟教你使用两款可视化工具

    作者 | Walker 编辑 | 安可 [导读]:本文详细介绍了两个数据可视化工具库并附python演练.欢迎大家点击上方蓝字关注我们的公众号:深度学习与计算机视觉. 我们本篇文章讲的数据可视化是面向 ...

  8. 闲置宽带 | 彼度云两分钟教你选对产品

    路由器除了能上网还能干嘛呢? 你想过没有? 我给大家疯狂安利一个黑科技产品,能上网的同时,竟然还能把改善一下生活质量. 彼度科技根据现有上游和潜在上游研发了一款新品,在今年3月底正式上线--彼度云G1 ...

  9. 两分钟教你学会视频添加滚动字幕并调整色调

    视频剪辑时经常会给一些视频添加滚动字幕,需要调整色调,如何快速剪辑呢?这里给大家分享简单实用的小工具,快速学会剪辑多个视频,一起来试试吧. 在电脑上下载"媒体梦工厂"进入主界面&q ...

  10. 视频加水印怎么加?两分钟教你如何视频加水印

    怎么给视频添加上水印呢?很多小伙伴会有随手拍摄视频的习惯,很多时候会将拍摄好的视频剪辑好后上传到网上供大家浏览,但是就会有很多人将视频下载下来盗用,发到自己的主页上,这无疑是侵害我们自己的合法权益,为 ...

最新文章

  1. Netflix 开源用于 Spring Boot的 GraphQL 服务框架DGS
  2. 联想 k2450 温度、耗电试验
  3. 通过.obj生成2d图像_自动生成 凹凸法线灯贴图 插件
  4. Linux 进程控制 :进程创建,进程终止,进程等待,程序替换
  5. Freenom.com的域名+github pages+netlify的CDN加速
  6. 参考文献中会议名称怎么缩写_期刊缩写查询总结
  7. Java版数据结构与算法——线性表
  8. Elizabeth Taylor【伊丽莎白·泰勒】
  9. 使用C#创建Windows服务 并发布Windows 服务
  10. java jquery jsonp 跨域_Jquery跨域调用(JSONP)遇到error问题的解决
  11. 字符串的迷之算法——KMP,AC自动机,后缀数组
  12. 时间序列研(part11)--EG两步法
  13. c语言输出最大的数ns流程图_急!!!!c语言NS流程图
  14. 《资治通鉴》曾参三人成“真”、胡服骑射、吕不韦
  15. 需求和设计阶段使用的IPO图
  16. 文件hidsdi.h
  17. 数值分析——自适应辛普森积分
  18. 认识PCIe---硬件篇
  19. 闪电网络如何实现更加去中心化的网络
  20. 华硕笔记本U盘装系统教程

热门文章

  1. 玩手游神助攻:盘点那些具有游戏宏按键,可自定义按键一键多用的模拟器
  2. rockchip的pwm驱动框架
  3. 采用泰克示波器TBS2000和TCP0030A电流探头准确评估高速DCDC转换器电感的选择
  4. Android抓包从未如此简单
  5. retainall java_java用retainALL 处理两个具有相同元素的list,竟然返回false,这是为什么?...
  6. 云通讯赛道掀起并购潮 背后有哪些新趋势暗流涌动?
  7. Magisk使用及模块分享
  8. Halcon基础操作
  9. java date 格式化 yyyymmdd_如何将LocalDate格式化为yyyyMMDD(不含JodaTime)
  10. 2018年阿里巴巴关于java重要开源项目汇总