/ * 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);$pos_name_= strripos($newName, "/"); //這里暫時不加后綴“.jpg”,防止有重復的文件,如果有,需要重命名,加了后會不方便$newName=substr($newName,$pos_name_-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"); ?>以上就是本文的全部內容,希望對大家有所幫助,希望大家繼續關注武林網的最新內容。
新聞熱點
疑難解答