导航:首页 > 编程语言 > php图片裁剪缩放

php图片裁剪缩放

发布时间:2022-12-16 07:14:12

‘壹’ php图像处理函数有哪些

php图像处理函数大全

php图片处理代码分享,包括缩放、剪裁、缩放、翻转、旋转、透明、锐化等。需要的朋友可以参考下

一、创建图片资源
imagecreatetruecolor(width,height);
imagecreatefromgif(图片名称);
imagecreatefrompng(图片名称);
imagecreatefromjpeg(图片名称);画出各种图像
imagegif(图片资源,保存路径);
imagepng()
imagejpeg();

二、获取图片属性
imagesx(res//宽度
imagesy(res//高度
getimagesize(文件路径)
返回一个具有四个单元的数组。索引
0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 =
PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10
= JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的
IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG
标记。
销毁图像资源
imagedestroy(图片资源);

三、透明处理
PNG、jpeg透明色都正常,只有gif不正常
imagecolortransparent(resource
image [,int
color])//将某个颜色设置成透明色
imagecolorstotal()
imagecolorforindex();

四、图片的裁剪
imageresized()
imageresampled();

五、加水印(文字、图片)
字符串编码转换string iconv ( string $in_charset ,
string $out_charset , string $str )

六、图片旋转
imagerotate();//制定角度的图片翻转

七、图片的翻转
沿X轴 沿Y轴翻转

八、锐化
imagecolorsforindex()
imagecolorat()

‘贰’ 随便下载一张图片,使用PHP将图片缩放到原来的1/2

//如果是JPG格式,则生成一个同比例的缩小图
$file="xxx.jpg";

$extend_name=strtolower(substr(strrchr($file,"."),1));

if($extend_name=='jpg'){
$image = imagecreatefromjpeg($full_name);//取原图的数据
}
//如果是gif格式,则生成一个同比例的缩小图
if($extend_name=='gif'){
$image = imagecreatefromgif($full_name);//取原图的数据
}
//如果是png格式,则生成一个同比例的缩小图
if($extend_name=='png'){
$image = imagecreatefrompng($full_name);//取原图的数据
}
//echo $full_name.$full_name_small;
$size=GetImageSize($full_name);
$x=$size[0];
$y=$size[1];
//echo $x." _ ".$y;
//假设首页上的图都是250象素左右,如果缩成150则图像失真太严重,则把所有的图都按这个大小进行等比缩放
//计算缩小比例
$rate=1/2;
$small_x=$size[0]*$rate;
$small_y=$size[1]*$rate;
$small_image = imagecreatetruecolor($small_x, $small_y);
imageCopyResampled($small_image,$image,0,0,0,0,$small_x,$small_y,$x,$y);
if(imagejpeg($small_image,$full_name_small)){
ImageDestroy($small_image);
}else{
}

‘叁’ php图片可以等比例的缩放吗

可以。

等比例缩放的方法是:

1、载入选区--自由变换。如下图:

2、按住shift+alt键,使用鼠标调整大小,这种情况下,选区会按照等比例的方法进行缩放的。

‘肆’ php如何实现图片的裁剪

php中裁剪图片主要使用gd库的imageresampled方法

$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);
imageresampled($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手机端图片裁剪怎么做

340改成 100%或是 你想适应的屏幕的比例

‘陆’ php 裁切图片问题 求助

PHP做图片裁切

PHP做图片裁剪的原理是通过前台定位出要裁剪图片的左上角位置,及右下角位置的做标,如果有放大和缩小的话还要给出放大和缩小的百分比,以及要对哪一个图片进行操作,这几个值传到后台,在用PHP去处理!

前端图片坐标点的得到可以自己用JS去实现,如果你的JS写的不是很熟也没有关系,可以下载一个jsCropperUI这一个包里面有很多的DEMO,可以实现前台的拖曳效果了!

前台会有一个AJAX向后台发送数据,一般格式为x1="+position[0]+"&y1="+position[1]+"&x2="+position[2]+"&y2="+position[3]+"&r="+position[4]+"&id = imgid四个坐标,缩放值,要操作的ID

后PHP接收这个数据后,进行操作

$x1 = $_GET['x1'];
$y1 = $_GET['y1'];
$x2 = $_GET['x2'];
$y2 = $_GET['y2'];
$r = $_GET['r'];
if($x2<$x1||$y2<$y1){
return false;
}
$img="dog.jpg";

$im=imagecreatefromjpeg($img);
$percent = $r*0.01;
list($width, $height) = getimagesize($img);
$new_width = $width * $percent;
$new_height = $height * $percent;

$tempimg = imagecreatetruecolor($new_width,$new_height);
imageresampled($tempimg, $im,0,0,0,0, $new_width,$new_height, $width, $height);
imagejpeg($tempimg,"dog_temp.jpg");
ImageDestroy ($im);

$ims=$tempimg;
$srcW=ImageSX($ims);
$srcH=ImageSY($ims);
$top_x = $x1;
$top_y = $y1;
$bottom_x = $x2;
$bottom_y = $y2;
$newimg = imagecreatetruecolor($bottom_x-$top_x,$bottom_y-$top_y);
imageresampled($newimg, $ims,0,0,$top_x,$top_y, $srcW,$srcH, $srcW, $srcH);
imagejpeg($newimg,"dogs.jpg");
ImageDestroy ($ims);

echo 1;

成功后输出1让前台得到进行裁剪区域的刷新!这样就可以实现PHP裁剪图片的效果了!

‘柒’ PHP图片裁剪

参考: https://www.cnblogs.com/-mrl/p/8760051.html

‘捌’ 如何实现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);
//将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度
imageresampled($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等比例压缩图片的实例代码

具体代码如下所示:
/**
*
desription
压缩图片
*
@param
sting
$imgsrc
图片路径
*
@param
string
$imgdst
压缩后保存路径
*/
public
function
compressedImage($imgsrc,
$imgdst)
{
list($width,
$height,
$type)
=
getimagesize($imgsrc);
$new_width
=
$width;//压缩后的图片宽
$new_height
=
$height;//压缩后的图片高
if($width
>=
600){
$per
=
600
/
$width;//计算比例
$new_width
=
$width
*
$per;
$new_height
=
$height
*
$per;
}
switch
($type)
{
case
1:
$giftype
=
check_gifcartoon($imgsrc);
if
($giftype)
{
header('Content-Type:image/gif');
$image_wp
=
imagecreatetruecolor($new_width,
$new_height);
$image
=
imagecreatefromgif($imgsrc);
imageresampled($image_wp,
$image,
0,
0,
0,
0,
$new_width,
$new_height,
$width,
$height);
//90代表的是质量、压缩图片容量大小
imagejpeg($image_wp,
$imgdst,
90);
imagedestroy($image_wp);
imagedestroy($image);
}
break;
case
2:
header('Content-Type:image/jpeg');
$image_wp
=
imagecreatetruecolor($new_width,
$new_height);
$image
=
imagecreatefromjpeg($imgsrc);
imageresampled($image_wp,
$image,
0,
0,
0,
0,
$new_width,
$new_height,
$width,
$height);
//90代表的是质量、压缩图片容量大小
imagejpeg($image_wp,
$imgdst,
90);
imagedestroy($image_wp);
imagedestroy($image);
break;
case
3:
header('Content-Type:image/png');
$image_wp
=
imagecreatetruecolor($new_width,
$new_height);
$image
=
imagecreatefrompng($imgsrc);
imageresampled($image_wp,
$image,
0,
0,
0,
0,
$new_width,
$new_height,
$width,
$height);
//90代表的是质量、压缩图片容量大小
imagejpeg($image_wp,
$imgdst,
90);
imagedestroy($image_wp);
imagedestroy($image);
break;
}
}
总结
以上所述是小编给大家介绍的PHP等比例压缩图片的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:php中10个不同等级压缩优化图片操作示例PHP
实现等比压缩图片尺寸和大小实例代码php
gd等比例缩放压缩图片函数基于PHP实现等比压缩图片大小php上传图片并压缩的实现方法PHP实现图片上传并压缩PHP实现图片压缩的两则实例php使用imagick模块实现图片缩放、裁剪、压缩示例

‘拾’ 我要用PHP做一个缩放、裁剪后台图片的页面,该如何做

按照我的理解应该是这样的 ,首先你的服务器上面有很多图片,但是图片尺寸不符合使用要求,你想给一个cms使用者制作一个可以裁减缩放图片的功能.
你的思路前面2步骤是没有问题的 .
但是第三个步骤是不对的
我们平常所看到的裁减功能.例如BAI度的头像设置.是用JS模拟一个框框来模拟裁减.只有当用户真正点击保存后.通过js记录了裁减的起始位置.结束位置,宽高.等参数.通过php的GD库来重新绘制这张图片.保存并替换掉原来的 ,并且更新数据库信息.知道用户点击保存之前.这张图片的数据源都没有发生变化.

阅读全文

与php图片裁剪缩放相关的资料

热点内容
dvd光盘存储汉子算法 浏览:758
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:383
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163