2013-11-09 3 views
0

У меня есть программное обеспечение, которое «отправляет» изображения через POST на php-скрипт на сервере. И я должен обрезать каждую эту картину. Итак, есть 2 шага: получите его с помощью Curl и урожая. Но обжатие секции не работает (Раздел Curl хорошо работает и сохраняет изображение).Получить изображение через POST и обрезать его

`

// 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

ли вы PHP GD установлен на вашем сервере? –

+3

Определить «не работает». –

+0

Да, установлен GD. Crop работает хорошо, когда я пытаюсь запустить его «вручную» для 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']); 

?> 
Смежные вопросы