PHP图片处理

        今天项目里面有个需求是涉及到图片处理的,发现关于图片的处理有很多的应用场景,觉得大家都可能会遇到,于是就把一些经常用到的给整理、记录下来分享给大家。

1、将远程图片,保存到当前服务器

function saveImg($img_url){
    $ext = strrchr($img_url, '.');
    if (!in_array($ext, ['.jpg', '.png', '.jpeg', '.gif'])){
        return $img_url;
    }
    $base_name = basename($img_url);
    if(!is_dir("uploads/img")){
        //文件夹不存在,先创建文件夹,并设置权限
        mkdir("uploads/img",0777,true);
    }
    $save_path = "uploads/img/".mt_rand(10000,99999).$base_name;
    //文件保存绝对路径
    $img = file_get_contents($img_url);
    file_put_contents($save_path, $img);
    return $save_path;
}

2、表单上传图片,转换成base64格式

//photo为表单的属性

     $photo = base64_encode(file_get_contents($_FILES['photo']['tmp_name']));
     $base64 = "data:{$_FILES['photo']['type']};base64,".$photo;

3、base64格式图片保存到服务器

/**
* base64的图片保存到本地服务器
* @param $dir 文件夹路径,"a/b/"
* @param $base64 图片的base64格式
* @return string 保存的路径
*/
public static function saveBase64($base64,$dir='./photos/'){
    if(!file_exists($dir)){
        //检查是否有该文件夹,如果没有就创建,并给予最高权限
        mkdir($dir,0777,true);
    }
    $saveUrl = $dir.uniqid().mt_rand(10000,99999).'.jpg';
    file_put_contents($saveUrl, base64_decode($base64));
    return $saveUrl;
}

4、form-data中媒体文件标识

form-data中媒体文件标识,有filename、filelength、content-type等信息

1、从上传的表单直接获取

['media'=>new \CURLFile($_FILES['inputFile']['tmp_name'],$_FILES['inputFile']['type'],$_FILES['inputFile']['name'])];

2、保存到本地服务器后,获取

'media'=>new \CURLFile(test.jpg)

5、服务器上的图片转换成base64格式

//转换成base64格式的

$image_info = getimagesize($ImageFile);
$image_data = fread(fopen($ImageFile, 'r'), filesize($ImageFile));
$base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
unlink($ImageFile);

6、获取图片的hash_code

$url = "https:///uploads/attach/75b62b5b5b2f46a4cb30acb945.jpg";

//使用sha1生成
sha1_file($url);
sha1(file_get_contents($url))

//使用md5生成:
md5(file_get_contents($url))

完结

如果你在阅读这篇文章时有所收获,请不要忘记点赞评论加关注,你的支持是我创作的最大动力。当然,如果你在文中发现了疏漏之处,或是有着其他的见解,欢迎私信与我交流。


我是老卢,一个热爱分享、不断探索的知识旅者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员老卢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值