资讯详情

Markdown中永久嵌入bs64图片,python PIL等比列强压缩后将图片转换为bs64,2M直接压成100k

简介

有时候,当你写技术文档或笔记时,你会发现md语法下的插入图片要么是本地的,要么是图床

![img](./lady.jpg) ![img](http://......) 

本地的缺点是服务器加载缓慢(gitgub)、或者在给别人发文件时忘记发图片。 图床这种东西,有一天可能会消失 我以前见过直接将图片嵌入文档。当然,缺点是它会增加文件的体积,但它解决了图片丢失的可能性 有人会说,一张几M的图片被转换了bs64码比我的文章长(如果你不相信,试着复制下面的文章。bs64看看有多少字符,小新复制时死了-.-),有什么办法吗? 一定有办法 给图片编号,并将所有图片编号base64编码放在文档的最后即可,格式如下: 插图:![图片缺失描述][图片编号] 文档结尾:[图片号]:data:image/jpg;base64,base64编码 但另一个缺点是,这是另一个缺点Typora会卡,现在直接说打不开。。其实不到4。M 在这里插入图片描述 !!!这让我头疼,于是我想了想是时候压缩了。以前没有压缩储存过md文档中的图片还是比较大的,所以又研究了一遍py压缩

GIthub项目地址

效果

格式!!!

插图:![图片缺失描述][图片编号] 文档结尾:[图片编号]:data:image/jpg;base64,base64编码

在线转换

直接Bing搜图片转bs64 比如这里

py转换bs64

import base64 f=open('lady.jpg','rb') #图文件lady.jpg,自行更改 pbs64=base64.b64encode(f.read()) #阅读文件内容,转换为base64编码 f.close() print(pbs64) 

以这种方式进行转换bs64码py会卡死(2k lines。。),所以稍微改进一下,在文本文件中写下大量的字节流(bs64.txt)使用记事本打开时不会卡住,实测记事本卡住两秒钟,editplus好多了,基本没有这样的问题,而且editplus中的bs默认情况下,自动换行,直接复制一行很舒服

import base64 f=open('lady.jpg','rb') #图文件lady.jpg,自行更改 pbs64=base64.b64encode(f.read()) #阅读文件内容,转换为base64编 f.close() #print(pbs64) mf=open("bs64.txt","wb") #存储新的目标文件bs64码 mf.write(pbs64) mf.close 

你问我为什么不在这里举个例子??CSDN无法承受复制bs64码。。。不信看文末, 【我原本在这里复制嵌入bs64,但它卡住了。。无法保存或发表文章 看我的博客网站为例 http://kearney.club/2020/06/11/我的藏尸消失了/ 这是github Page静态托管,正常显示,实际显示Typora我的文章在编辑过程中有1000多个字,加了三张图片bs64,变成3w多字。。。后台看占用的内存不大,但可能是typora加载数据量本身的问题是3w复制粘贴多字符有点卡滞延迟(我32)G60%以上的内存空余)。

无损压缩

使用方法:直接拉到代码底部,修改picturepath即可 图片和代码需要在同一目录下

放置省略代码github上去。省里的每个人看起来都很烦。 https://github.com/BackMountainDevil/image-into-bs64

def img_bs64(infile,outfile='', savefile =''):
    compress_image(infile)
    outfile = get_outfile(infile, outfile)
    f=open(outfile,'rb')
    pbs64=base64.b64encode(f.read()) 
    f.close()
    dir, suffix = os.path.splitext(infile)
    savefile = '{}-out{}'.format(dir, '.txt')
    mf=open(savefile,"wb")
    mf.write(pbs64)
    mf.close
    os.remove(outfile)
    
    
if __name__ == '__main__':
    picturepath= "luffy.jpg" 
    img_bs64(picturepath)

代码都cv完了,真的不点个赞再走吗?? 到 GIthub点个Star也成啊

参考

  • https://github.com/BackMountainDevil/image-into-bs64
  • https://cn.bing.com/search?q=%e5%9b%be%e7%89%87%e8%bd%acbs64&qs=SC&pq=%e5%9b%be%e7%89%87%e8%bd%acbs&sc=1-5&cvid=5B916F1601B6423BBAC2240FC489E031&FORM=QBRE&sp=1
  • https://oktools.net/image2base64
  • https://blog.csdn.net/baidu_31492511/article/details/90704123
  • https://blog.csdn.net/cxs123678/article/details/82533306
  • https://www.jianshu.com/p/280c6a6f2594
  • https://www.runoob.com/python/python-files-io.html
  • https://blog.csdn.net/baidu_33221362/article/details/81566874
  • https://blog.csdn.net/qq_31567335/article/details/82322858?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf
  • https://www.cnblogs.com/li1992/p/10675769.html
  • https://blog.csdn.net/julac/article/details/105492336
  • https://github.com/BackMountainDevil/image-into-bs64
  • https://blog.csdn.net/qq_36387683/article/details/100579736
![picture][1]
其它正文
末尾
[1]:data:image/jpg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAEOKADAAQAAAABAAAFoAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8IAEQgFoAQ4AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAMCBAEFAAYHCAkKC//EAMMQAAEDAwIEAwQGBAcGBAgGcwECAAMRBBIhBTETIhAGQVEyFGFxIweBIJFCFaFSM7EkYjAWwXLRQ5I0ggjhU0AlYxc18JNzolBEsoPxJlQ2ZJR0wmDShKMYcOInRTdls1V1pJXDhfLTRnaA40dWZrQJChkaKCkqODk6SElKV1hZWmdoaWp3eHl6hoeIiYqQlpeYmZqgpaanqKmqsLW2t7i5usDExc

标签: 2cl75高压二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台