`
freeman983
  • 浏览: 232775 次
社区版块
存档分类
最新评论

zimg服务器搭建手记

 
阅读更多
zimg是由国人开源的一个高性能的图片服务器,相关介绍和代码可从github上获取:
https://github.com/buaazp/zimg


1.安装Openssl (这个很关键,必须先安装)
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar zxvf  openssl-1.0.1e.tar.gz
./config shared --prefix=/usr --openssldir=/usr/ssl
make && make install



2. 安装 libevent (http://libevent.org/)
wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar zxvf libevent-2.0.17-stable.tar.gz
./configure --prefix=/usr
make && make install


3.安装Cmake
wget "http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz"tar xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap --prefix=/usr

make && make install


4.安装Libevhtp
wget --no-check-certificate  https://github.com/ellzey/libevhtp/archive/1.2.6.tar.gz -O libevhtp-1.2.6.tar.gz
tar xzvf libevhtp-1.2.6.tar.gz
cd libevhtp-1.2.6/
cmake -DCMAKE_PREFIX_PATH=/usr -DCMAKE_INSTALL_PREFIX=/usr  -DLIBEVENT_OPENSSL_LIBRARY=/usr/lib/openssl

make && make install



5.安装ImageMagick
#安装图片库

yum -y install libjpeg libjpeg-devel libpng libpng-devel

wget http://www.imagemagick.org/download/ImageMagick-6.8.7-2.tar.gz

tar xzvf ImageMagick-6.8.7-2.tar.gz

cd ImageMagick-6.8.7-2

./configure  --with-perl

make && make install



6.安装 libmemcached
wget http://download.tangent.org/libmemcached-0.42.tar.gz

tar zxvf libmemcached-0.42.tar.gz

cd libmemcached-0.42

./configure --with-jp2=yes --with-png=yes --with-jpeg=yes LDFLAGS='-L/usr/lib'


make && make install





7.安装zimg
wget  https://github.com/buaazp/zimg/archive/master.zip -O zimg.zip

unzip zimg.zip

cd zimg-master

#修改Makefile文件,红色的是修改的地方,修改完保存退出

#========================================================
OS = $(shell uname)
MAC = Darwin

ifeq ($(OS),Darwin)
        LIBS = -levent -levent_openssl -levent_pthreads -lssl -lcrypto -levhtp -lMagickWand-6.Q16 -lmemcached
else
        LIBS = -levent -levent_openssl -levent_pthreads -lssl -lcrypto -levhtp -lMagickWand-6.Q16 -lmemcached
endif
OBJS = zhttpd.o zspinlock.o zlog.o zmd5.o zutil.o zcache.o zimg.o main.o
CFLAGS = -Wall -I /usr/local/include/ImageMagick-6 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
all: ${OBJS}
        gcc -${CFLAGS} -o zimg ${OBJS} ${LIBS}
clean:
        rm -f zimg ${OBJS}

#=================================================================





#编译
make



#启动
./zimg





#支持启动参数
-p [port] 监听端口号,默认4869
-t [thread_num] 线程数,默认4,请调整为具体服务器的CPU核心数
-k [max_keepalive_num] 最高保持连接数,默认1,不启用长连接,0为启用
-l 启用log,会带来很大的性能损失,自行斟酌是否开启
-M [memcached_ip] 启用缓存的连接IP
-m [memcached_port] 启用缓存的连接端口
-b [backlog_num] 每个线程的最大连接数,默认1024,酌情设置




调用demo:

upload.html

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
    <form enctype="multipart/form-data" action="http://192.168.111.189:9000/upload" method=post>
    选择文件:
    <input name="userfile" type="file">
    <input type="submit" value="上传">
    </form>
</html>


选择图片提交,返回:

MD5:16448cd6ec7af958e948e07267798042
上传路径:
http://192.168.111.189:9000/upload

访问原图:

http://192.168.111.189:9000/16448cd6ec7af958e948e07267798042


裁剪:
http://192.168.111.189:9000/16448cd6ec7af958e948e07267798042?w=200&h=200

灰化:
http://192.168.111.189:9000/16448cd6ec7af958e948e07267798042?g=1



经过试用,发现zimg还不能满足我们的需要,于是用nodejs翻写了一个版本,做了一些更改,代码已开源到github:

https://github.com/ofpay/nimg












分享到:
评论

相关推荐

    zimg 的JAVA提交图片的演示程序

    Zimg是一个高效、轻量级的图片服务器,它支持动态调整图片大小、裁剪、旋转等操作,并能有效地减轻服务器端的压力。这个“zimg 的JAVA提交图片的演示程序”是为了帮助开发者了解如何通过Java客户端与Zimg服务器进行...

    PHP实现上传图片到 zimg 服务器

    zimg是一个具有图片处理功能的图片存储服务,你可以上传图片到zimg服务器,然后通过带有参数的URL来获取被处理过的图片,今天我们的主要内容是使用php实现图片上传到zimg服务器上,希望大家能够喜欢

    zimg安装所需的安装包

    你可以通过修改配置文件(如`/etc/zimg.conf`)来设置服务器参数,然后启动Zimg服务。启动命令通常是`sudo service zimg start`,当然,这取决于你的系统服务管理方式。 最后,记得测试Zimg是否能正常工作,可以...

    springboot zimg整合.zip

    将SpringBoot与Zimg整合,可以构建一个稳定、高效的图片服务器,本文将详细讲解如何进行这种整合。 首先,我们需要了解Zimg的基本概念。Zimg是一个C语言编写的图片服务,它的主要功能包括图片的缩放、裁剪、旋转...

    图像存储和处理系统zimg.zip

    zimg 是一个分布式图像存储和处理系统,采用 C 语言开发的,在图像处理领域有较高的性能,这里有个基准测试可以了解更多信息: ...zimg 是专为高并发图像服务器设计的,支持图片处理和存储。 标签:zimg

    django-zimg:一个简单而愚蠢的 Django 应用程序,用于将图像文件存储到 Zimg

    Django-zimg Django-zimg 是一个简单而愚蠢的 Django 应用程序,用于将图像文件存储到 。快速开始将“zimg”添加到您的 INSTALLED_APPS 设置中,如下所示: INSTALLED_APPS = ( ... 'zimg',)在 settings.py 中添加 ...

    zimg-开源

    **zimg开源项目详解** **一、zimg简介** zimg是一个开源的图像处理工具,其主要功能是将二维的ASCII或二进制数据转换为PNG或JPEG格式的图像。这款工具特别适合于处理和展示大量二维数据,比如在数据分析、科学计算...

    高性能图片服务器NImg.zip

    NImg 是基于ZImg的nodejs实现。 NImg是基于node.js开发的高性能图片服务器,提供图片上传,实时裁剪。图片处理等接口调用。 标签:NImg

    gimg:golang实现的zimg

    完全兼容zimg的文件目录存储格式,支持文件和类Redis协议(SSDB)存储。环境要求:操作系统:ubuntu / debian / osx golang版本:&gt; = 1.4 ImageMagick版本:= 6.8.5-X安装Ubuntu / Debian的wget ...

    zimg:缩放,色彩空间转换和抖动库

    z.lib “ z”库实现了缩放,色彩空间转换和深度转换常用的图像处理基础。 一个简单的API可以在任何受支持的格式之间进行转换,以使编程人员只需很少的知识即可进行操作。 所有库例程都是从头开始设计的,其正确性,...

    Menalto Gallery v3.0.2

    Gallery是一个国外非常优秀的画廊开源项目,标是开发和支持领先照片共享及网络应用解决方案。Menalto Gallery是一个非常有名的免费开源图库相册软件,功能非常强大,在官方可以下载很多功能插件模块。

    扩展Exsi中虚拟机的磁盘 - 副本.docx

    [root@zimg02/]# mount /dev/datavg/datavg /mnt/datavg ``` 7. **验证挂载情况**:使用`df -h`命令验证逻辑卷是否已经正确挂载。 ``` [root@zimg02/]# df -h Filesystem Size Used Avail Use% Mounted on /...

    nimg的JAVA上传图片的演示

    `nimg`和`zimg`是两个与图片处理相关的开源项目,它们在Java环境中提供了便捷的图片上传、处理和存储的服务。这里我们将主要探讨`nimg`在Java环境下的图片上传实现。 `nimg`(可能是“NImg”的缩写)是一个轻量级的...

    libevhtp:轻松创建极其快速和安全的嵌入式HTTP服务器

    虽然我们从未公开记录过任何基准测试,但流行的开源项目做了一些工作.ZIMG团队决定将其软件从NGINX转移到libevhtp,结果非常出色。 这是一张图表,显示了它们在极高负载下的应用 X轴是连接数,而Y轴是每秒的请求数...

    jQuery加PHP实现图片上传并提交的示例代码

    HTML代码 zimg.html文件: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;title&...

    jQuery+PHP实现图片上传并提交功能

    HTML代码 zimg.html文件: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;title&...

    Z-crx插件

    用法: 1)按住Z键 2)网站上的所有图像都将收到粉红色边框 3)单击任何图像,它将保存到您的Zimg。 4)单击扩展图标以访问您的图像 图像由它们添加的日期收集, 有关查询,功能或其他任何其他发送电子邮件。 ...

    python存储16bit和32bit图像的实例

    zImg = (zNorm * 65535).astype(np.uint16) im = Image.fromarray(zImg) im.save('D:\Py_exercise\lena16_save31.tif') # 直接保存归一化的数据为32bit图像 im = Image.fromarray(zNorm) im.save('D:\Py_exercise\...

    ffprobe-20190623-bc3306f-win64-static可执行文件

    z.lib 20190324-89fad4b &lt;https://github.com/sekrit-twc/zimg&gt; XZ Utils 5.2.4 zlib 1.2.11 vid.stab 20190213-aeabc8d Vorbis 20180705-46e70fa VisualOn AMR-WB 20141107-3b3fcd0 libmysofa ...

Global site tag (gtag.js) - Google Analytics