请教这些图片效果是如何做到的

阅读 4.1k
10 个回答

从响应头看是服务端生成的,所以不是通过页面js控制的;后端根据url参数实时生成图片(比如GD库)

nginx图片裁剪,我以前遇到过,见这里

cdn
之前用过阿里云的, 云端处理图片, 在你传入参数之后, 根据参数对图片进行处理. 但图片必须是在服务器中.

clipboard.png

https://www.aliyun.com/produc...

再php下有图片处理GD 这个可以做到处理图片大小的问题 创建一个空图层 然后把图片复制进去 生成 输出 就可以了

nginx对图片进行裁剪,配置里面提供了图片尺寸

在服务器端取的传递的参数 根据相应属性生成一个<img> 标签返回到前台
比如

<img  src="" width="501" height="501">

给图片加上相应属性

服务器直接设置输出类型res.header('content-type', 'image/jpg');
比如下面这张图片,其地址为:http://bing.ioliu.cn/v1?w=500...

实现代码:https://github.com/xCss/bing/...

当然,上面是用Nodejs写的,你想要的PHP版本也有:https://github.com/xCss/bing/...

    /*
    * 直接输出图片到页面
    */
    function outputPic($url,$w,$h){
    
        if($w&&$h){
            $url = str_replace('1920x1080',$w.'x'.$h,$url);
        }
        header('Content-Type:image/jpeg');
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36'
        ));
        curl_setopt($ch, CURLOPT_TIMEOUT,0);//忽略超时
        curl_setopt($ch, CURLOPT_NOBODY, false);
        $str = curl_exec($ch);
        curl_close($ch);
        
    }

注:nodejs版本实现的是通过七牛云存储的图片处理实现的,传送门:http://developer.qiniu.com/co...

写了一串关于前端自适应图片大小的回答。写完才发现审错题了。。。
楼上说得对! ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

什么GD库啊,NGINX裁剪,有毛关系,不就是对不同的参数输出不同的图片吗?哪有什么技术可言?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题