jquery(Jcrop)+PHP根據座標剪下圖片

來源:互聯網
上載者:User
/** * Goofy 2011-11-29 * 影像處理:根據傳遞過來的座標參數,x,y,w,h,依次為選取的x座標,y座標,w寬度,h高度 * 通過imagecopy()方法將該地區copy至第一步建立的空白映像中 * 注意,在建立映像的時候要用imagecreatetruecolor()真彩色,不然用imagecreate()圖片會失真 */
  1. /**
  2. * Goofy 2011-11-29
  3. * 影像處理:根據傳遞過來的座標參數,x,y,w,h,依次為選取的x座標,y座標,w寬度,h高度
  4. * 通過imagecopy()方法將該地區copy至第一步建立的空白映像中
  5. * 注意,在建立映像的時候要用imagecreatetruecolor()真彩色,不然用imagecreate()圖片會失真
  6. */
  7. //頁面傳過來的比例
  8. $scale=$_GET['scale'];
  9. //下面的屬性乘以相應的比例
  10. $x=$_GET['x']*$scale;
  11. $y=$_GET['y']*$scale;
  12. $w=$_GET['w']*$scale;
  13. $h=$_GET['h']*$scale;
  14. //源路徑
  15. $src=$_GET['src'];
  16. //是否繼續?如果不繼續在這張圖片,會將源圖片刪除
  17. $again="off";
  18. if(!empty($_GET['again'])){
  19. $again=$_GET['again'];
  20. }
  21. //第一步,根據傳來的寬,高參數建立一幅圖片,然後正好將截取的部分真好填充到這個地區
  22. header("Content-type: image/jpeg");
  23. $target = @imagecreatetruecolor($w,$h)
  24. or die("Cannot Initialize new GD image stream");
  25. //第二步,根據路徑擷取到源映像,用源映像建立一個image對象
  26. $source = imagecreatefromjpeg($src);
  27. //第三步,根據傳來的參數,選取源映像的一部分填充到第一步建立的映像中
  28. imagecopy( $target, $source, 0, 0, $x, $y, $w, $h);
  29. //第四步,儲存映像
  30. //截取並組織新路徑
  31. $pos_path= strripos($src, "/");
  32. $newPath=substr($src,0,$pos_path-strlen($src))."_new/";
  33. //截取並組織新名稱
  34. $pos_name=strripos($src, ".");
  35. $newName=substr($src,0,$pos_name);
  36. $pos_name_= strripos($newName, "/");
  37. //這裡暫時不加尾碼“.jpg”,防止有重複的檔案,如果有,需要重新命名,加了後會不方便
  38. $newName=substr($newName,$pos_name_-strlen($newName)+1)."_";
  39. //產生不帶尾碼的圖片
  40. $file=$newPath.$newName;
  41. //附加asc碼重新命名檔案,也可以用隨機數,時間等命名,項目需求我不用那些命名方法了
  42. for($i=0;$i<26;$i++){
  43. //如果目錄存在
  44. if(is_dir($newPath)){
  45. //如果檔案存在,繼續迴圈,直到沒有重名的檔案
  46. if(is_file($file.chr(97+$i).".jpg")){
  47. continue;
  48. }else{
  49. //建立檔案
  50. imagejpeg($target,$file.chr(97+$i).".jpg",100);
  51. //檔案建立完成確定是否刪除源檔案,off為刪除源檔案
  52. if($again=="off"){
  53. unlink($src);
  54. unset($_SESSION['url']);
  55. }
  56. break;
  57. }
  58. }else{
  59. //建立目錄
  60. mkdir($newPath);
  61. //建立檔案
  62. imagejpeg($target,$file.chr(97+$i).".jpg",100);
  63. //檔案建立完成確定是否刪除源檔案,off為刪除源檔案
  64. if($again=="off"){
  65. unlink($src);
  66. unset($_SESSION['url']);
  67. }
  68. break;
  69. }
  70. }
  71. //跳轉到首頁
  72. Header("Location: index.php");
  73. ?>
複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.