热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

简介有的时候自己写技术文档或者笔记的时候发现md语法下的插入图片要么是本地要么是图床![img](.lady.jpg)![img](http:)本地

简介

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

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

本地的缺点是到服务器上加载较慢(gitgub)、或者是发文档给别人的时候忘记发图。。。
图床这种东西嘛、哪天说不定就没了
之前看到过将图片直接内嵌入文档里,当然缺点就是会增大文件体积,但是解决了图片丢失的可能哇
又有人就会说,一个几M的图片转换出来的bs64码比我的文章还长啊(不信你试一下复制下面的bs64看一下多少字符,小新复制的时候死机-.-),有没有什么办法呢??
办法肯定是有的
给图片编号,并将所有的图片base64编码放在文档的最后即可,格式如下:
在插入图片的地方:![图片缺失描述][图片编号]
在文档最后:[图片编号]:data:image/jpg;base64,base64编码
但是这样又有一个缺点就是Typora会卡,现在直接说打不开了。。实际上才不到4M
在这里插入图片描述
!!!这就很让我头疼了,于是琢磨了一下该压缩一下子了,之前没有经过压缩存储到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中的bs64默认是没有自动换行,直接复制一行很舒服

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/%E6%88%91%E7%9A%84%E8%97%8F%E5%B0%B8%E4%B8%8D%E8%A7%81%E4%BA%86/
这是github Page静态托管,正常显示,实际再Typora编辑过程中我的文章一千多字吧,加了三张图片的bs64,变成3w多字。。。后台看了下占用的内存不大,但是可能是typora本身加载数据量的问题吧,在3w多字符中复制粘贴有点卡顿延迟(我32G内存空余60%多)。


无损压缩

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

省略的代码放在了github上。。省的大家看得烦
https://github.com/BackMountainDevil/image-into-bs64def 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.closeos.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

推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文详细介绍了解决全栈跨域问题的方法及步骤,包括添加权限、设置Access-Control-Allow-Origin、白名单等。通过这些操作,可以实现在不同服务器上的数据访问,并解决后台报错问题。同时,还提供了解决second页面访问数据的方法。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
author-avatar
郭绍玲刚珍雅瑜_658
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有