我有软件,通过POST“发送”图像到服务器上的php脚本。我必须裁剪每一张照片。所以有2个步骤:用卷曲和裁剪来获取它。但裁剪部分不起作用(卷曲部分效果很好并保存图像)。
`
// 1. GET IMAGES VIA POST
$imgpath = $_POST['img_url'];
$dirname = $_POST['img_folder'];
$imgid = $_POST['imgid'];
$ch = curl_init($imgpath);
$fn = ($imgid.substr($imgpath,strrpos($imgpath,'/')+1,strlen($imgpath)));
$fn = str_replace('?', '_', $fn);
$fn = str_replace('=', '_', $fn);
if (is_dir($dirname)==FALSE) mkdir($dirname);
$fp = fopen($dirname.'/'.$fn, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
// 2. CROP IMAGE
$in_filename = $_POST['img_url'];
list($width, $height) = getimagesize($in_filename);
$offset_x = 0;
$offset_y = 0;
$new_height = $height - 40;
$new_width = $width;
$out_filename = $in_filename . '_crop';
$image = imagecreatefromjpeg($in_filename);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopy($new_image, $image, 0, 0, $offset_x, $offset_y, $width, $height);
header('Content-Type: image/jpeg');
imagejpeg($new_image, $out_filename);
imagedestroy($new_image);
echo($dirname.'/'.$fn);`
答案 0 :(得分:1)
使用此功能裁剪图像,它适用于我:
<?php
header('Content-Type: image/jpeg');
function cropPics($img, $x, $y, $width, $height) {
$src = imagecreatefromjpeg($img);
$dest = imagecreatetruecolor($width, $height);
imagecopy($dest, $src, 0, 0, $x, $y, $width, $height);
imagedestroy($src);
cropPics('images/'.$_GET['i'], (int)$_GET['x'], (int)$_GET['y'], (int)$_GET['w'], (int)$_GET['h']);
?>