图片裁剪上传php
㈠ php 图片裁剪
那应该是你的代码问题了,裁剪说白的就是前台把一张的图片需要裁剪的位置传给后台,后台通过图片处理函数从新生成新的图片。如果你后台代码没问题,就是你前台把裁剪位置的传到后台的四个坐标点有问题,可以按照这个去排错。(网上现成的很多,可以下载下来看看)
㈡ 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对上传图片进行裁剪的时候,没成功,而且连上传的原图都没了
加个base64_decode方法试试:
$src = imagecreatefromstring(base64_decode(file_get_contents($src_path)));
㈣ 亲,你的PHP中实现图片裁剪并上传的例子还有么。方便给我一份么
你搜一下 PHP 图片裁剪 ,很多类似的代码
㈤ Thinkphp上传图片手动剪切功能谁有tp框架
<?php
include'config.php';
classcontroller
{
//ajax上传头像图片
publicfunctionajax_upload_avatar()
{
include('models'.DIRECTORY_SEPARATOR.'uploader.php');
$uploader=newuploader(explode(',',ALLOW_UPLOAD_IMAGE_TYPES),MAX_UPLOAD_SIZE);
$result=$uploader->upload('tmp'.DIRECTORY_SEPARATOR);//先保存到临时文件夹
$reponse=newstdClass();
if(isset($result['success'])&&$result['success'])
{
include('models'.DIRECTORY_SEPARATOR.'gd.php');
$src_path='tmp'.DIRECTORY_SEPARATOR.$uploader->get_real_name();
$gd=newgd();
$gd->open($src_path);
if($gd->is_image())
{
if($gd->get_width()<AVATAR_WIDTH)
{
$reponse->success=false;//传递给file-uploader表示服务器端已处理
$reponse->description='您上传的图片宽度('.$gd->get_width().'像素)过小!最小需要'.AVATAR_WIDTH.'像素。';
}
elseif($gd->get_height()<AVATAR_HEIGHT)
{
$reponse->success=false;//传递给file-uploader表示服务器端已处理
$reponse->description='您上传的图片高度('.$gd->get_height().'像素)过小!最小需要'.AVATAR_HEIGHT.'像素。';
}
else
{
$reponse->success=true;
$reponse->tmp_avatar=$uploader->get_real_name();
if($gd->get_width()>AVATAR_MAX_WIDTH||$gd->get_height()>AVATAR_MAX_HEIGHT)
{
//图片过大时按比例缩小,防止超大图片撑破页面
$gd->resize_to(AVATAR_MAX_WIDTH,AVATAR_MAX_HEIGHT,'scale');
$gd->save_to($src_path);
}
}
}
}
elseif(isset($result['error']))
{
$reponse->success=false;
$reponse->description=$result['error'];
}
header('Content-type:application/json');
echojson_encode($reponse);
}
//ajax裁切头像图片
publicfunctionajax_crop()
{
$tmp_avatar=$_POST['tmp_avatar'];
$x1=$_POST['x1'];
$y1=$_POST['y1'];
$x2=$_POST['x2'];
$y2=$_POST['y2'];
$w=$_POST['w'];
$h=$_POST['h'];
$reponse=newstdClass();
$src_path='tmp'.DIRECTORY_SEPARATOR.$tmp_avatar;
if(!file_exists($src_path))
{
$reponse->success=false;
$reponse->description='未找到图片文件';
}
else
{
include('models'.DIRECTORY_SEPARATOR.'gd.php');
$gd=newgd();
$gd->open($src_path);
if($gd->is_image())
{
$gd->crop($x1,$y1,$w,$h);
$gd->resize_to(AVATAR_WIDTH,AVATAR_HEIGHT,'scale_fill');
$avatar_name=date('YmdHis').'_'.md5(uniqid()).'.'.$gd->get_type();
$gd->save_to('avatars'.DIRECTORY_SEPARATOR.$avatar_name);
setcookie('avatar',$avatar_name,time()+86400*30);//本示例程序仅在cookie中保存
/*
实际应用中会有更多保存头像代码
......
*/
@unlink($src_path);
$reponse->success=true;
$reponse->avatar=$avatar_name;$reponse->description='';
}
else
{
$reponse->success=false;
$reponse->description='该图片文件不是有效的图片';
}
}
header('Content-type:application/json');
echojson_encode($reponse);
}
}
$task=isset($_GET['task'])?$_GET['task']:'';
if($task!='')
{
$instance=newcontroller();
$instance->$task();
}
?>
㈥ PHP怎么裁剪图片大神帮帮忙!
php有专门的图片裁剪函数
㈦ 怎么实现php上传图片并可以裁剪的功能,类似一些网站的头像截取,裁剪可以用jcrop插件。高分悬赏
php本身有裁剪图片的函数,js的截取一般是获得几个坐标,供这个函数作为参数,php在图片上传到服务器临时空间的时候,对图片进行裁剪,再按编程人的需求保存到指定目录。
网络下现成的,或者翻翻手册。
㈧ 【php】上传图片后自动转换为gif并可进行裁剪
用GD做!
获取原图片大小,建画布
保存格式改变一下,像素质量会变的,
㈨ PHP中实现图片裁剪并上传
605863278 加我,我帮你写
㈩ php 上传图片,自动按比例只求宽裁剪,请问怎么做呢
我只能提供步骤和思路,不要想直接拿代码。。。
第一步:判断图片宽高,关键函数getimagesize($fullpath);如果超过宽度限制,根据当前宽高比例,算出压缩后图片正确的宽高。一点小算法即可。
第二步:把当前图片复制一份,关键函数imagecreatefromjpeg()等,根据图片类型(后缀)不同,函数也稍有区别。
第三步:把刚才复制的备用文件压缩,关键函数ImageCopyResampled或者ImageCopyResized 根据php版本和扩展不同选择
第四步:把生成的缩略图保存成文件,ImageJPEG等相应函数
完成