2017-08-03 114 views
1

使用Croppic中的示例,當我裁剪某些圖像時,我會在圖像的一側或多側保留邊框。例如:PHP裁剪調整大小創建邊框

enter image description here

這裏是我使用處理圖像的代碼:

 // original sizes 
    $imgInitW = $request->get('imgInitW'); 
    $imgInitH = $request->get('imgInitH'); 
    // resized sizes 
    $imgW = $request->get('imgW'); 
    $imgH = $request->get('imgH'); 
    // offsets 
    $imgY1 = $request->get('imgY1'); 
    $imgX1 = $request->get('imgX1'); 
    // crop box 
    $cropW = $request->get('cropW'); 
    $cropH = $request->get('cropH'); 
    // rotation angle 

    $output_filename = sys_get_temp_dir() . "/croppedImg_" . rand(); 

    $source_image = imagecreatefromjpeg($media->getPath()); 

    $type = '.jpeg'; 

    // resize the original image to size of editor 
    $resizedImage = imagecreatetruecolor($imgW, $imgH); 

    imagecopyresampled($resizedImage, $source_image, 0, 0, 0, 0, $imgW, $imgH, $imgInitW, $imgInitH); 

    // rotate the rezized image 
    $rotated_image = imagerotate($resizedImage, -$angle, 0); 
    // find new width & height of rotated image 
    $rotated_width = imagesx($rotated_image); 
    $rotated_height = imagesy($rotated_image); 
    // diff between rotated & original sizes 
    $dx = $rotated_width - $imgW; 
    $dy = $rotated_height - $imgH; 
    // crop rotated image to fit into original rezized rectangle 
    $cropped_rotated_image = imagecreatetruecolor($imgW, $imgH); 
    imagecolortransparent($cropped_rotated_image, imagecolorallocate($cropped_rotated_image, 0, 0, 0)); 

    imagecopyresampled($cropped_rotated_image, $rotated_image, 0, 0, $dx/2, $dy/2, $imgW, $imgH, $imgW, $imgH); 
    // crop image into selected area 
    $final_image = imagecreatetruecolor($cropW, $cropH); 
    imagecolortransparent($final_image, imagecolorallocate($final_image, 0, 0, 0)); 
    imagecopyresampled($final_image, $cropped_rotated_image, 0, 0, $imgX1, $imgY1, $cropW, $cropH, $cropW, $cropH); 
    // finally output png image 
    //imagepng($final_image, $output_filename.$type, $png_quality); 
    imagejpeg($final_image, $output_filename . $type, '100'); 

當我降低圖像儘可能在croppic window這通常只發生。

我很茫然,並試圖調整我能找到的每個參數。有任何想法嗎?

回答

0

我其實找到了答案here。我應用了分叉版本,它正在工作。