Bolt是一个实时裁剪压缩图片服务器,其比nginx的image_filter快2倍以上,主要是因为Bolt对一张图片只做一次处理,就算在处理图片的过程中,其他的客户端也在请求此图片,Bolt也能保证只有一个线程在处理此图片。
另外Bolt替换缓存机制,处理过的图片不再进行第二次处理,除非内存不足的时候,Bolt才会处理LRU算法来删除缓存中的图片,在启动Bolt的时候可以使用“--max-cache”启动参数来设置最大内存限制。Bolt使用LRU算法来淘汰缓存的图片,也就是说一般只会淘汰较少访问的图片,这就可以很好的限制Bolt的内存使用。
用在哪里
Bolt可以用在内存和CPU都过剩的服务器,另外使用Bolt可以减少磁盘的使用,加快图片的加载速度。
安装
1) 安装libevent (http://libevent.org/) 2) 安装ImageMagick (http://www.imagemagick.org/script/index.php) 3) 安装Bolt
$ git clone https://gitee.com/liexusong/bolt.git $ cd bolt $ make
使用方式
访问URL:http://your-host/filename_(width)x(height)_(quality).jpg
Bolt启动项说明
--host 设置绑定的IP
--port 设置监听的端口
--workers 启动多少个worker线程(用于裁剪图片)
--logfile 日志文件输出的路径
--logmark 日志要显示的级别,可以选择(DEBUG|NOTICE|ALERT|ERROR)
--max-cache 设置Bolt可以使用的最大内存(单位为字节)
--gc-threshold GC要清理的阀值(也就是说GC会清理到max-cache的百分之多少停止,可选值为0 ~ 99)
--path 要进行裁剪的图片源路径
--watermark 水印图片路径
--daemon 是否启动守护进程模式
--help 显示帮助信息
简介 bolt是一个纯go语言实现的键值数据库,支持完全的ACID实务操作,尽管不像SQLite那样有完善的查询语言,但是接口简单易用。bolt本身通过使用一个内存映射的磁盘文件来管理数据,逻辑清晰,接口简单易用。下面代码就是bolt提供的简单的操作接口示例。 db, err := bolt.Open("example.db", 0600, nil) if err != nil {
Bolt是一个组件,以元组作为输入,以生成元组作为输出。当编写Bolt的时候,通常会实现IRichBolt接口。在客户端主机中创建Bolt,序列化到拓扑,并提交到集群中的主控节点。集群启动Worker,反序列化Bolt,准备调用它,然后开始处理元组。 prepare():仅在bolt开始处理Tuple之前调用。 execute():处理一个Tuple的输入。 继承BaseRichBolt的Bolt
本文向大家介绍详解Java实现批量压缩图片裁剪压缩多种尺寸缩略图一键批量上传图片,包括了详解Java实现批量压缩图片裁剪压缩多种尺寸缩略图一键批量上传图片的使用技巧和注意事项,需要的朋友参考一下 10万+IT人都在关注的图片批量压缩上传方案(完整案例+代码) 背景需求:为了客户端访问图片资源时,加载图片更流畅,体验更好,通常不会直接用原图路径,需要根据不同的场景显示不同规格的缩略图,根据商品关键属
本文向大家介绍vue.js 实现图片本地预览 裁剪 压缩 上传功能,包括了vue.js 实现图片本地预览 裁剪 压缩 上传功能的使用技巧和注意事项,需要的朋友参考一下 以下代码涉及 Vue 2.0 及 ES6 语法。 目标 纯 javascrpit 实现,兼容ie9及以上浏览器,在本地做好文件格式、长宽、大小的检测,减少浏览器交互。 现实是残酷的,为了兼容Ie9 还是用上了 flash,第二篇来解
本文向大家介绍vue 实现剪裁图片并上传服务器功能,包括了vue 实现剪裁图片并上传服务器功能的使用技巧和注意事项,需要的朋友参考一下 预览链接点击预览 效果图如下所示,大家感觉不错,请参考实现代码。 需求 [x] 预览:根据选择图像大小自适应填充左侧裁剪区域 [x] 裁剪:移动裁剪框右侧预览区域可实时预览 [x] 上传&清空:点击确认上传裁剪图片,点击取消按钮清空图像 [ ] 裁剪框可调节
本文向大家介绍iOS实现裁剪框和图片剪裁功能,包括了iOS实现裁剪框和图片剪裁功能的使用技巧和注意事项,需要的朋友参考一下 图片处理中经常用的图片剪裁,就是通过剪裁框确定图片剪裁的区域,然后剪去该区域的图片,今天实现了一下,其实图片剪裁本身不难,主要剪裁框封装发了点时间,主要功能可以拖动四个角缩放,但不能超出父视图,拖动四个边单方向缩放,不能超出父视图,拖动中间部分单单移动,不改变大小,不能超出父
问题内容: 我想用PHP裁剪图像并保存文件。我知道您应该使用GD库,但我不确定如何使用。有任何想法吗? 谢谢 问题答案: 您可以用来裁剪图像的必需部分。该命令如下所示: 来自PHP.net的代码- 从源图像中裁剪出一个80x40像素的图像
函数名称:裁剪图片 函数功能: 从图片对象截取部分新建拷贝图片对象 函数方法 img = image.crop(img1,x1,y1,x2,y2) 参数 类型 必填 说明 img1 userdata 是 需要操作的图片对象 x1 number 是 截取图片对象左上角的横坐标 y1 number 是 截取图片对象左上角的纵坐标 x2 number 是 截取图片对象右下角的横坐标 y2 number
本文向大家介绍Android 拍照并对照片进行裁剪和压缩实例详解,包括了Android 拍照并对照片进行裁剪和压缩实例详解的使用技巧和注意事项,需要的朋友参考一下 Android 拍照并对照片进行裁剪和压缩实例详解 本文主要介绍 Android 调用摄像头拍照并对照片进行裁剪和压缩,文中给出了主要步骤和关键代码。 调用摄像头拍照,对拍摄照片进行裁剪,代码如下。 对拍摄照片进行裁剪,代码如下。 得到
出于某种原因,当我使用WordPress 3.6.1媒体库GUI功能裁剪缩略图时,它似乎不会影响公文包页面上显示的缩略图?即使缩略图在后端显示为裁剪,但在公文包页面上仍然显示不正确? 下面是公文包页面的代码摘录。正如您所看到的,它使用中等大小的缩略图。 functions.php我有以下几点: 为什么我不能通过WordPress GUI将上传到媒体库的肖像图像裁剪成横向格式?