分享

图片服务器

 WindySky 2016-03-16
主要采用ImageMagick软件搭建,安装该软件后,采用nginx或其他服务器,用php,java等语言调用ImageMagick的convert命令转换出合适的图片。查看服务器是否安装好ImageMagick,可使用:convert -version命令;
转换图片大小:
convert [source_file_path]  -strip -quality 90 -resize  320x240 [dest_file_path];
参考:http://www./index.html
参考:http://www./



<?php
define('BASE', dirname(dirname(__FILE__)) . '/');
define('THUMBS', dirname(__FILE__) . '/');
define("IMAGE_MAGICK_PATH", "/usr/bin/");
preg_match('@\/thumbs\/([^?]*)@', $_SERVER['REQUEST_URI'], $matches);
$parts = preg_split('@\/@', $matches[1]);
$w = $parts[0];
$h = $parts[1];
$dest = THUMBS . 'tmp/';
$i = 0;
foreach($parts as $part) {
$i ++;
if($i < count($parts)) {
$dest .= $part . '/';
if(!file_exists($dest))
mkdir($dest);
}
}
$file = $parts[count($parts) - 1];
$file = preg_replace('@^s_@', '', $file);
$dest .= $file;
if(!file_exists($dest)) {
$src = BASE . implode('/', array_slice($parts, 2, count($parts) - 3)) . '/' . $file;
    if(!file_exists($src)) {
if($w == 128) {
$src = THUMBS . '128.gif';
} elseif ($w == 90) {
$src = THUMBS . '90.gif';
} elseif ($w == 60) {
$src = THUMBS . '60.gif';
} else {
$src = THUMBS . '128.gif';
}
}
    $convertString = IMAGE_MAGICK_PATH."convert $src -strip -quality 90 -resize ".$w."x".$h." $dest";
exec($convertString);
}
else {

$src = BASE . implode('/', array_slice($parts, 2, count($parts) - 3)) . '/' . $file;
    if(filemtime($src)>filemtime($dest))
    {
        if(!file_exists($src)) {
            if($w == 128) {
                $src = THUMBS . '128.gif';
            } elseif ($w == 90) {
                $src = THUMBS . '90.gif';
            } elseif ($w == 60) {
                $src = THUMBS . '60.gif';
            } else {
                $src = THUMBS . '128.gif';
            }
        }
        $convertString = IMAGE_MAGICK_PATH."convert $src -strip -quality 90 -resize ".$w."x".$h." $dest";
        exec($convertString);
    }
}
if(preg_match('@\.png@i', $dest)) {
@header('Content-type: image/png');
} else if (preg_match('@\.jpg@i', $dest) || preg_match('@\.jpeg@i', $dest)) {
@header('Content-type: image/jpeg');
} else if (preg_match('@\.gif@i', $dest)) {
@header('Content-type: image/gif');
}
if(file_exists($dest)) {
readfile($dest);
} else {
}
?>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多