图片转换HTML:img2html

headpic

「雨上がり」 BY:bob【pixiv】

先是一开始的一点废话

不知不觉五月份就要过去了,最近博客貌似有些停滞,没怎么更新,月初计划的软件工程总结也处于鸽与不鸽的临界状态(笑)。
今天正好在网上找到了一个比较有意思的python库,就打算拿来水一篇博客(逃)

先认识下img2html

img2html 用于将图片转化为 HTML 页面,并没有什么实际作用,只是为了好玩。

这句话是出自img2html作者在github上对其的介绍。
demo
demo
正如作者给出的效果图所示,可以将任何图片轻松转换成字符组,并且生成HTML文件。原理大概是将图片的每个像素转换成指定的字符。下面将介绍这个库的安装、调试及使用。

img2html的安装

安装很简单,直接pip安装即可

1
pip install img2html

更新

1
pip install img2html --upgrade

另外还可以通过源码安装

1
2
3
4
5
git clone https://github.com/xlzd/img2html.git

cd img2html

python setup.py install

适配python3.5

截止到我写这篇博客,img2html的最新版本是0.0.7。如果你的python版本是2.7的话是可以直接使用的,但是如果拍Python版本>=3.5的话还需要改一下源码。
我是在Ubuntu上直接通过pip(pip3)安装的,我需要修改
/home/.local/lib/python3.6/site-packages/img2html/下的converter.py文件。

首先,把文件中的所有xrange()修改成range()
xrange->range
然后,将72~73行

1
2
if isinstance(char, str):
char = char.decode('utf-8')

删去
再然后,将97行的char=self.char.next()修改为char=next(self.char)
55行的format(_c.next())修改为format(next(_c))
next(self.char)
next(c)
最后,把第一行的#! /usr/bin/env python修改为#!/usr/bin/env python3来指定使用python3.x解释器。

img2html使用

有两种方法可以使用img2html

通过命令行使用

直接在终端输入

1
img2html [-h] [-b #RRGGBB] [-s 4~30] [-c CHAR] [-t TITLE] [-f FONT] -i IN [-o OUT]

  • -b是背景色,参数是RGB颜色(不带#号),默认黑色
  • -s是字号大小,同样大小的图片字号越小填充的符号越多,相对越清晰,默认是4
  • -c是填充的字符,默认是“爱”(明显是用做给女朋友的,单身狗们看看就得了)
  • -t是输出的HTML文件标题,默认是img2html by xlzd
  • -f是字体,这个默认是monospace(不知道跟系统字体有没有关系)
  • -i是图片地址及图片名,只有这项是必须填写的,没有默认值(想想也是……)
  • -o是输出地址以及文件名,如果不写的话会直接把HTML源码打印在终端上

通过代码调用

这个我还没试过,直接搬运作者给的了

1
2
3
4
5
6
from img2html.converter import Img2HTMLConverter

converter = Img2HTMLConverter(*some config here*)
html = converter.convert(*image_path*)

# done, so easy.

最后是个用通过命令行使用的示例

这里直接以题图为例
我把图片放在/home/nakeshu/test/目录下
test
在终端输入

1
img2html -c @ -t head_pic -i /home/nakeshu/test/head_pic.jpg -o /home/nakeshu/test/test.html

test
test
可以看到HTML文件已经生成了
最后我为了让大家更好的看到效果,我把这个文件上传到我的服务器上,大家点击这里可以直观地看到生成的效果

谢谢观众姥爷们的支持鼓励qwqありがとうございます~