很多站长朋友们都不太清楚php裁剪图片封装,今天小编就来给大家整理php裁剪图片封装,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 如何实现PHP图片裁剪与缩放 2、 php如何实现图片的裁剪 3、 php无组件裁剪图片 4、 我要用PHP做一个缩放、裁剪后台图片的页面,该如何做? 5、 php 图片裁剪 如何实现PHP图片裁剪与缩放给你段代码吧。上边的是具体的事务处理。下面的是类文件。
////////////////////////////////////////////////////下面开始处理图片压缩问题
$src = "$fileurl";
echo $src;
$image = new Image($src);
$width= $image->getimgwidth();
echo $width."宽度是这些";
if($width>1024){
$coefficient=number_format(1024/$width, 4, '.', '');
echo $coefficient;
$image->percent = $coefficient;
$image->openImage();
$image->thumpImage();
//************************************重新给图片命名
$randname=date("Y").date("m").date("d").date("H").date("i").date("s").rand(100, 999).".".$hz;
echo "<br/>重新命名是这个".$randname;
$fileurl=$fileimgweb.$randname;//重新给数据库里存的图片地址命名
// $image->showImage();
$image->saveImage($fileurl);
}
////////////////////////////////////////////////////图片压缩问题处理结束
--------------------------------------------------------------------------------------
<?php
/**
图片压缩操作类
v1.0
*/
class Image{
private $src;
private $imageinfo;
private $image;
public $percent = 0.5;
public function __construct($src){
$this->src = $src;
}
/**
获取图片的宽度并传输给前台
*/
public function getimgwidth(){
$imgwidth= getimagesize($this->src)[0];
// echo $imgwidth;
return $imgwidth;
}
/**
打开图片
*/
public function openImage(){
list($width, $height, $type, $attr) = getimagesize($this->src);
$this->imageinfo = array(
'width'=>$width,
'height'=>$height,
'type'=>image_type_to_extension($type,false),
'attr'=>$attr
);
$fun = "imagecreatefrom".$this->imageinfo['type'];
$this->image = $fun($this->src);
}
/**
操作图片
*/
public function thumpImage(){
$new_width = $this->imageinfo['width'] * $this->percent;
$new_height = $this->imageinfo['height'] * $this->percent;
$image_thump = imagecreatetruecolor($new_width,$new_height);
//将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度
imagecopyresampled($image_thump,$this->image,0,0,0,0,$new_width,$new_height,$this->imageinfo['width'],$this->imageinfo['height']);
imagedestroy($this->image);
$this->image = $image_thump;
}
/**
输出图片
*/
public function showImage(){
header('Content-Type: image/'.$this->imageinfo['type']);
$funcs = "image".$this->imageinfo['type'];
$funcs($this->image);
}
/**
保存图片到硬盘
*/
public function saveImage($fileurl){
imagejpeg($this->image, $fileurl,75);
// $funcs = "image".$this->imageinfo['type'];
// $funcs($this->image,$name.'.'.$this->imageinfo['type']);
}
/**
销毁图片
*/
public function destruct(){
imagedestroy($this->image);
}
}
?>
php如何实现图片的裁剪php中裁剪图片主要使用gd库的imagecopyresampled方法
$src_path = '1.jpg';
//创建源图的实例
$src = imagecreatefromstring(file_get_contents($src_path));
//裁剪开区域左上角的点的坐标
$x = 100;
$y = 12;
//裁剪区域的宽和高
$width = 200;
$height = 200;
//最终保存成图片的宽和高,和源要等比例,否则会变形
$final_width = 100;
$final_height = round($final_width * $height / $width);
//将裁剪区域复制到新图片上,并根据源和目标的宽高进行缩放或者拉升
$new_image = imagecreatetruecolor($final_width, $final_height);
imagecopyresampled($new_image, $src, 0, 0, $x, $y, $final_width, $final_height, $width, $height);
//输出图片
header('Content-Type: image/jpeg');
imagejpeg($new_image);
imagedestroy($src);
imagedestroy($new_image);
php无组件裁剪图片function cut_img($img,$w,$h){ //要裁减的图片,宽度,高度
$s = imagecreatefromjpeg($img); //这里以jpg图片为例,其他图片要修改这个方法名称,可以上网参考(就是后面那个后缀名不一样)
$w = imagesx($s)<$w?imagesx($s):$w; //如果图片的宽比要求的小,则以原图宽为准
$h = imagesy($s)<$w?imagesy($s):$h;
$bg = imagecreatetruecolor($w,$h); //创建$w*$h的空白图像
if(imagecopy($bg,$s,0,0,0,0,$w,$h)){
if(imagejpeg($bg,"img/new_img.jpg")){ //将生成的图片保存到img/new_img.jpg
echo "success";
}else{
echo "false";
}
}else{
echo "false";
}
/*
*imagecopy ($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h)
将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
*/
imagedestroy($s); //关闭图片
imagedestroy($bg);
//这里只写了几个主要操作,你可以再加上开始裁减的坐标,也就是imagecopy中的第5,第6两个参数,那么在判断$w和$h的地方也要相应的剪掉开始没算进去的部分,
//然后保存路径是否存在的判断等
}
cut_img("img/03.jpg",100,100);
我要用PHP做一个缩放、裁剪后台图片的页面,该如何做?按照我的理解应该是这样的 ,首先你的服务器上面有很多图片,但是图片尺寸不符合使用要求,你想给一个cms使用者制作一个可以裁减缩放图片的功能.
你的思路前面2步骤是没有问题的 .
但是第三个步骤是不对的
我们平常所看到的裁减功能.例如BAI度的头像设置.是用JS模拟一个框框来模拟裁减.只有当用户真正点击保存后.通过js记录了裁减的起始位置.结束位置,宽高.等参数.通过php的GD库来重新绘制这张图片.保存并替换掉原来的 ,并且更新数据库信息.知道用户点击保存之前.这张图片的数据源都没有发生变化.
php 图片裁剪那应该是你的代码问题了,裁剪说白的就是前台把一张的图片需要裁剪的位置传给后台,后台通过图片处理函数从新生成新的图片。如果你后台代码没问题,就是你前台把裁剪位置的传到后台的四个坐标点有问题,可以按照这个去排错。(网上现成的很多,可以下载下来看看)
关于php裁剪图片封装的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php裁剪图片封装 图片自动裁剪 php的详细内容...