博文

目前显示的是 四月, 2022的博文

Markdown与html互转markdown.js_showdown.js_marked.js_turndown.js

图片
本文主要介绍markdown与html互转,使用markdown.js,showdown.js,marked.js和turndown.js。 Markdown.js markdown转html showdown.js markdown转html marked.js markdown转html turndown.js html转markdown Markdown转html之markdown.js <script src="https://cdn.bootcdn.net/ajax/libs/markdown.js/0.5.0/markdown.min.js"></script> <script> let html = markdown.toHTML("####Hello https://www.fujuhao.com"); console.log(html); // <h4>Hello https://www.fujuhao.com</h4> </script> Markdown转html之showdown.js <script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.6.4/showdown.min.js"></script> <script> let converter = new showdown.Converter(); let html = converter.makeHtml("####Hello https://www.fujuhao.com"); console.log(html); // <h4 id="hellohttpswwwfujuhaocom">Hello https://www.fujuhao.com</h4> </script> Markdown转html之marked.js 推荐 <script src="https://cdn.jsdeli...

使用python pngquant 实现图片压缩

图片
在网上有很多使用 python 的 pillow 库进行图片压缩的教程,使用简单,但是压缩效果存在明显的色彩不自然,这是因为 pillow 库采取的压缩算法没有优化的问题。今天我们使用 pngquant 有损压缩,压缩率高达 80%, 而且压缩后的图片没有明显差异。 上一篇我尝试使用了 pillow 库对 png 图片进行了压缩,效果不好。这次我换用 pngquant 来压缩。 pngquant 是用于 PNG 图像有损压缩的命令行实用程序和库。压缩程序会显著减小文件大小(通常高达70%),并保持完全的alpha透明度。通过使用alpha通道将图像转换为更高效的8位PNG格式(通常比24/32位PNG文件小60-80%)。 pngquant 使用的算法主要是中值切割量化算法的改进版和 K-means 颜色校正。得到的图片颜色差异肉眼几乎无法察觉。 这是 pngquant 优化后的图片,几乎看不出区别: 这是 pillow 同样采用中值切割和 k-means 得到的优化效果, 云彩有明显颜色过渡不自然问题: pngquant 压缩库安装 pngquant 提供了源码、命令行和 GUI 等多种形式。它不是 python 写的,所以只能用 python 调用命令行或者源码函数。 GUI 的工具目前来说还比较难用,并没有命令行方便,而源码形式可以通过 ctype 使用 python语言去调用 c 源码。但是目前对这方面还不怎么了解,可以后面再去使用 so 动态库等方式。 先用命令行形式进行 PNG 压缩。 下载 windows安装包 或者 mac 和 linux 版本的安装包。 命令行输入 pngquant 就可以使用了; 为了使用方便,可以配置环境变量(后面如果和 picom 集成在了一起再去掉 )。 快速使用 pngquant pngquant 图片名称.png # 对于一些可选参数的说明: --skip-if-larger pngquant 有时候压缩的文件会比源文件大。这个选项会判断,如果大就取消执行。强烈建议加上 --quality 0-100 图片质量。对于颜色没有特别要求的可以缩减到 10, 但是越小压缩率越低,通常不需要设置。 --force 强制执行,pngquant 会判断,如果有一个已经压缩的同名文件在当前文件夹,就...

使用python pillow实现图片压缩

Web网站大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩,我们就可以使用python的 pillow包来实现图片压缩处理。 一、Python导入pillow包 from PIL import Image import os 二、获取图片文件的大小 def get_size(file): # 获取文件大小:KB size = os.path.getsize(file) return size / 1024 三、拼接输出文件地址 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' def get_outfile(infile, outfile): if outfile: return outfile dir, suffix = os.path.splitext(infile) outfile = '{}-out{}'.format(dir, suffix) return outfile 四、压缩文件到指定大小,我期望的是150KB,step和quality可以修改到最合适的数值 def compress_image(infile, outfile='', mb=150, step=10, quality=80): """不改变图片尺寸压缩到指定大小 :param infile: 压缩源文件 :param outfile: 压缩文件保存地址 :param mb: 压缩目标,KB :param step: 每次调整的压缩比率 :param quality: 初始压缩比率 :return: 压缩文件地址,压缩文件大小 """ o_size = get_size(infile) if o_size <= mb: return infile outfile = get_outfile(infile...