获取图片尺寸信息

£可爱£侵袭症+ 提交于 2020-03-20 22:19:18

这个是从网上找到的,具体是谁写的已经记不清了,非原创!

/**
     * 获取远程图片的宽高和字节数
     * @param string $url
     * @param string $isGetFilesize
     * @return boolean|multitype:string number
     */
    private function getImageInfo($url, $isGetFilesize = false)
    {
        $result = array();
        
        if (empty($url)) {
            return false;
        }
        
        $handle = fopen($url, 'rb');
        
        if (! $handle) return false;
        
        // 只取头部固定长度168字节数据
        $dataBlock = fread($handle, 168);
        
        $size = getimagesize('data://image/jpeg;base64,'. base64_encode($dataBlock));
        if (empty($size)) {
            return false;
        }
        
        $result['width'] = isset($size[0]) ? intval($size[0]) : 0;
        $result['height'] = isset($size[1]) ? intval($size[1]) : 0;
        
        // 是否获取图片体积大小
        if ($isGetFilesize) {
            // 获取文件数据流信息
            $meta = stream_get_meta_data($handle);
            // nginx 的信息保存在 headers 里,apache 则直接在 wrapper_data
            $dataInfo = isset($meta['wrapper_data']['headers']) ?
            $meta['wrapper_data']['headers'] : $meta['wrapper_data'];
        
            foreach ($dataInfo as $va) {
                if ( preg_match('/length/iU', $va)) {
                    $ts = explode(':', $va);
                    $result['size'] = trim(array_pop($ts));
                    break;
                }
            }
        }
        
        fclose($handle);
        return $result;
    }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!