如何在php中利用croppic.js对图片进行剪切并上传

  介绍

这篇文章将为大家详细讲解有关如何在php中利用croppic。js对图片进行剪切并上,传文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>使用

//, css 部分   # yourId  {   ,,宽度:200 px;   ,,身高:150 px;   位置:才能相对,,/*,趁机fixed 或是absolute  */}//,html 部分   & lt; div  id=皔ourId"祝辞& lt;/div>//,js部分   var  options =, (   uploadUrl: & # 39;图片上传地址& # 39;,   cropUrl: & # 39;图片裁切后发送的地址& # 39;,//,等等各种参数配置信息   ];   var  cropperHeader =, new  Croppic (& # 39; yourid # 39;选项),

<强>选项参数

<强> uploadUrl

uploadUrl: & # 39;制定上传的地址& # 39;,   uploadData: {   “dummyData": 1、   “dummyData2":“text"   php}

处理时,和普通的上传文件一模一样,使美元用带有_file [& # 39; img # 39;]可以直接获取文件信息,上传并保存;使用$ _REQUEST[]则直接可以获取js中uploadData中的数据。

php在处理完成后,根据成功状态返回如下json结构

成功时

{   ,“status":“success"   “url"才能:“返回成功后的图片url地址“,   “width"才能:源图片宽度,,   ,“height":源图片高度   }

注意:源图片宽高获取方式列表(宽度、高度美元)=getimagesize(带有_file美元[“img"] [“tmp_name"]);

失败时

{   ,“status":“error"   ,“message":“这里是你的失败提示信息,   }

<>强cropUrl

接下来是裁切图片的请求,基本使用

var  cropperOptions =, {   uploadUrl: & # 39;才能裁切后请求的地址& # 39;,   uploadData才能:{   ,才能“dummyData": 1,   ,才能“dummyData2":“text"   ,,}   }   var  cropperHeader =, new  Croppic (& # 39; yourid # 39;,, cropperOptions);

请求php的参数基本如下:

如何在php中利用croppic.js对图片进行剪切并上传”>,</p> <p> php端使用nezamy/路线的请求类获取Croppic。js裁切后发送过来的参数</p> <pre类= request 美元;=,应用(& # 39;请求# 39;);//,上传服务器的图片路径   美元$ imgUrl =,请求→身体[& # 39;imgUrl& # 39;];//,原始图片宽高   美元$ imgInitW =,请求→身体[& # 39;imgInitW& # 39;];   美元$ imgInitH =,请求→身体[& # 39;imgInitH& # 39;];//,新缩放的图片宽高   美元$ imgW =,请求→身体[& # 39;imgW& # 39;];   美元$ imgH =,请求→身体[& # 39;imgH& # 39;];//,与缩放图像相关的裁剪图像的左上角   美元$ imgY1 =,请求→身体[& # 39;imgY1& # 39;];   美元$ imgX1 =,请求→身体[& # 39;imgX1& # 39;];//,裁剪图像宽高   美元$ cropW =,请求→身体[& # 39;cropW& # 39;];   美元$ cropH =,请求→身体[& # 39;cropH& # 39;];//,角度   美元$ angle =,请求→身体[& # 39;旋转# 39;];

其他参数就不用介绍了,文档上面可以看,如果看不懂或者不太清晰的可以直接下载案例做参照,比文档要详细些。接下来的重头戏在php端的处理。

<强> php各种操作图片GD库

temp_name 美元;,,,=,“crop_temp_",只函数();   temp_path 美元;,,,=,sys_get_temp_dir(),只“/?   $ output_filename =, temp_path 美元;只temp_name美元;   what 美元;,,,,,=,getimagesize ($ imgUrl);//,创建画布并载入图像   switch (函数(美元[& # 39;mime # 39;])), {   case 才能;& # 39;图像/png # 39;:   ,,,source_image 美元;=,imagecreatefrompng ($ imgUrl);   type 美元,,,,,,,,=,& # 39;. png # 39;;   ,,,休息;   case 才能;& # 39;图像/jpeg # 39;:   ,,,source_image 美元;=,imagecreatefromjpeg ($ imgUrl);   type 美元,,,,,,,,=,& # 39;jpeg # 39;;   ,,,休息;   case 才能;& # 39;图像/gif # 39;:   ,,,source_image 美元;=,imagecreatefromgif ($ imgUrl);   type 美元,,,,,,,,=,& # 39;gif # 39;;   ,,,休息;   默认值:才能   ,,,throw  new  \异常(& # 39;不支持的图片类型& # 39;);   }   if  (! is_writable(目录名(output_filename美元))),{   throw 才能;new  \异常(& # 39;文件无法写入& # 39;);   }//,创建一幅真彩色的图像,从而支持更为丰富的色彩,gif文件不可使用   $ resizedImage =, imagecreatetruecolor (imgW美元,,imgH美元);   if  (type 美元;==,& # 39;. png # 39;), {//,才能将黑色定义为透明色   imagecolortransparent才能(resizedImage美元,imagecolorallocate (resizedImage美元,,0,0,0));   }   imagecopyresampled (resizedImage美元,source_image美元,,0,0,0,0,,imgW美元,imgH美元,imgInitW美元,美元imgInitH);//,旋转图像   $ rotated_image =, angle 美元;?,imagerotate (resizedImage美元,美元角,,0),:,resizedImage美元;//,获取图像宽高   $ rotated_width =, imagesx ($ rotated_image);   $ rotated_height =, imagesy ($ rotated_image);//,旋转后,安康;缩放后   $ dx =, rotated_width 美元;作用;imgW美元;   $ dy =, rotated_height 美元;作用;imgH美元;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在php中利用croppic.js对图片进行剪切并上传