0

サーバー上のphp-scriptにPOST経由で画像を「送信」するソフトウェアがあります。そして、私はこの写真をすべてトリミングする必要があります。したがって、2 つのステップがあります。Curl とクロップで取得します。ただし、トリミング セクションは機能しません(カール セクションは正常に機能し、画像を保存します)。

`

// 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);`
4

1 に答える 1

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']);

?>
于 2013-11-10T07:58:15.957 に答える