JQuery+PHP實現圖片在線裁剪

fdpg 9年前發布 | 1K 次閱讀 JavaScript PHP jcrop

/ * Goofy 2011-11-29 * 圖像處理:根據傳遞過來的坐標參數,x,y,w,h,依次為選取的x坐標,y坐標,w寬度,h高度 通過imagecopy()方法將該區域copy至第一步創建的空白圖像中 注意,在創建圖像的時候要用imagecreatetruecolor()真彩色,不然用imagecreate()圖片會失真 */

自由圖片剪切 無比例

<?php

/**

  • Goofy 2011-11-29
  • 圖像處理:根據傳遞過來的坐標參數,x,y,w,h,依次為選取的x坐標,y坐標,w寬度,h高度
  • 通過imagecopy()方法將該區域copy至第一步創建的空白圖像中
  • 注意,在創建圖像的時候要用imagecreatetruecolor()真彩色,不然用imagecreate()圖片會失真 */

//頁面傳過來的比例 $scale=$_GET['scale']; //下面的屬性乘以相應的比例 $x=$_GET['x']$scale; $y=$_GET['y']$scale; $w=$_GET['w']$scale; $h=$_GET['h']$scale;

//源路徑 $src=$_GET['src'];

//是否繼續?如果不繼續在這張圖片截圖,會將源圖片刪除 $again="off"; if(!empty($_GET['again'])){ $again=$_GET['again']; }

//第一步,根據傳來的寬,高參數創建一幅圖片,然后正好將截取的部分真好填充到這個區域 header("Content-type: image/jpeg"); $target = @imagecreatetruecolor($w,$h) or die("Cannot Initialize new GD image stream");

//第二步,根據路徑獲取到源圖像,用源圖像創建一個image對象 $source = imagecreatefromjpeg($src);

//第三步,根據傳來的參數,選取源圖像的一部分填充到第一步創建的圖像中 imagecopy( $target, $source, 0, 0, $x, $y, $w, $h);

//第四步,保存圖像 //截取并組織新路徑 $pos_path= strripos($src, "/"); $newPath=substr($src,0,$pos_path-strlen($src))."_new/"; //截取并組織新名稱 $pos_name=strripos($src, "."); $newName=substr($src,0,$pos_name); $posname= strripos($newName, "/"); //這里暫時不加后綴“.jpg”,防止有重復的文件,如果有,需要重命名,加了后會不方便 $newName=substr($newName,$posname-strlen($newName)+1)."_"; //生成不帶后綴的圖片 $file=$newPath.$newName;

//附加asc碼重命名文件,也可以用隨機數,時間等命名,項目需求我不用那些命名方法了 for($i=0;$i<26;$i++){

//如果目錄存在
if(is_dir($newPath)){
    //如果文件存在,繼續循環,直到沒有重名的文件
    if(is_file($file.chr(97+$i).".jpg")){
        continue;
    }else{
        //創建文件
        imagejpeg($target,$file.chr(97+$i).".jpg",100);
        //文件創建完成確定是否刪除源文件,off為刪除源文件
        if($again=="off"){
            unlink($src);
            unset($_SESSION['url']);
        }
        break;

    }
}else{
    //創建目錄
    mkdir($newPath);
    //創建文件
    imagejpeg($target,$file.chr(97+$i).".jpg",100);
    //文件創建完成確定是否刪除源文件,off為刪除源文件
    if($again=="off"){
            unlink($src);
            unset($_SESSION['url']);
    }
    break;
}

} //跳轉到首頁 Header("Location: index.php"); ?> </pre>

 本文由用戶 fdpg 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!