>  기사  >  백엔드 개발  >  thinkphp는 base64 이미지를 처리합니다.

thinkphp는 base64 이미지를 처리합니다.

WBOY
WBOY원래의
2016-10-17 09:30:163466검색

<code>        $url = ''//网络图片地址;
        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_URL, '');
        curl_setopt($curl, CURLOPT_REFERER, '');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        // header('Content-type: image/JPEG');
        // echo $result;
        return $result;
        </code>

tp가 제시한 예시 적용 방법

<code>$image = \think\Image::open('./image.png');
// 返回图片的宽度
$width = $image->width(); 
// 返回图片的高度
$height = $image->height(); 
// 返回图片的类型
$type = $image->type(); 
// 返回图片的mime类型
$mime = $image->mime(); 
// 返回图片的尺寸数组 0 图片宽度 1 图片高度

$size = $image->size(); 
</code>

thinkphp를 사용하여 $result를 처리하는 방법은 무엇입니까? 예를 들어 이미지의 너비와 높이를 변경한 다음 서버에 업로드하고 싶습니다.
감사합니다!

답글 내용:

<code>        $url = ''//网络图片地址;
        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_URL, '');
        curl_setopt($curl, CURLOPT_REFERER, '');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        // header('Content-type: image/JPEG');
        // echo $result;
        return $result;
        </code>

tp가 제시한 예시 적용 방법

<code>$image = \think\Image::open('./image.png');
// 返回图片的宽度
$width = $image->width(); 
// 返回图片的高度
$height = $image->height(); 
// 返回图片的类型
$type = $image->type(); 
// 返回图片的mime类型
$mime = $image->mime(); 
// 返回图片的尺寸数组 0 图片宽度 1 图片高度

$size = $image->size(); 
</code>

thinkphp를 사용하여 $result를 처리하는 방법은 무엇입니까? 예를 들어 이미지의 너비와 높이를 변경한 다음 서버에 업로드하고 싶습니다.
감사합니다!

인터넷에서 네이티브 버전을 캡슐화하기 위해 설치한 것입니다. 참고하시면 됩니다. 실제로는 아주 간단합니다. base64비트를 디코딩하여 로컬에 저장하면 됩니다.
다음이 방금 생성되었습니다.
당신이 언급한 운영 이미지의 크기에 관해서는 제가 아는 한 js 플러그인을 사용하여 사용자가 업로드하기 전에 스크린샷을 찍을 수 있도록 하거나 로컬에서 생성한 다음 PHP를 사용하여 운영합니다. . 서버는 파일을 작동하려는 경우에만 로컬 파일을 작동할 수 있습니다.

<code>
/**
 * 保存64位编码图片
 */

 function saveBase64Image($base64_image_content){

        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){

                  //图片后缀
                  $type = $result[2];

                  //保存位置--图片名
                  $image_name=date('His').str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT).".".$type;
                  $image_url = '/uploads/image/'.date('Ymd').'/'.$image_name;           
                  if(!is_dir(dirname('.'.$image_url))){
                         mkdir(dirname('.'.$image_url));
                        chmod(dirname('.'.$image_url), 0777);
                        umask($oldumask);

                  }
                 
                  //解码
                  $decode=base64_decode(str_replace($result[1], '', $base64_image_content));
                  if (file_put_contents('.'.$image_url, $decode)){
                        $data['code']=0;
                        $data['imageName']=$image_name;
                        $data['url']=$image_url;
                        $data['msg']='保存成功!';
                  }else{
                    $data['code']=1;
                    $data['imgageName']='';
                    $data['url']='';
                    $data['msg']='图片保存失败!';
                  }
        }else{
            $data['code']=1;
            $data['imgageName']='';
            $data['url']='';
            $data['msg']='base64图片格式有误!';


        }       
        return $data;


 }</code>

image.png로 임시 저장
그리고 thinkkphp의 이미지 클래스를 이용하여 동작시킨 후 임시 이미지를 삭제합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.