PHP裁剪图片并存入mysql
程序员文章站
2022-06-03 15:59:14
...
$picFile = $_FILES["picFileName"];
$picType = $picFile["type"];
$picData = file_get_contents($tempFile);
$tempFile = $picFile["tmp_name"];
$picData = base64_encode($picData);
$query = "INSERT INTO image
(imgid, image, imgtype)
values(
null,
'$picData',
'$picType'
);";
$link->query($query);
首先完成裁剪图片,获取图片对象
list($picW, $picH) = getimagesize($tempFile);
if($picW>600){ //超出大小
$src = imagecreatefromjpeg($tempFile); //获取原图数据
$nW =550;
$nH = $picH*$nW/$picW;
$newPicTemp = imagecreatetruecolor($nW,$nH); //创建彩色图片对象
imagecopyresampled($newPicTemp,$src,0,0,0,0,$nW,$nH,$picW,$picH);
}
string ob_get_contents ( void )
因此,思路就是把 resource 图片输出到缓冲区,然后用一个对象获取其内容。代码如下
ob_start(); //开启输出缓冲区
imagejpeg($newPicTemp); //这个函数可以显示出图片,同时也是把数据输出
$imgContent = ob_get_contents(); //获取字符流
ob_end_clean(); //关闭并清除缓冲区
$picData = base64_encode($imgContent); //不要忘记转码
最后销毁临时数据
imagedestroy($src);
imagedestroy($newPicTemp);
$query = "SELECT image, imgtype from image where imgid = $imgid ;";
$result = $link->query($query);
$row = mysqli_fetch_array($result);
$data = base64_decode( $row["image"]);
$type = $row["imgtype"];
ob_clean();
header("Content-Type:'$type'");
echo $data;
以上就介绍了PHP裁剪图片并存入mysql,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。