2015-01-26 3 views
0

Итак, у меня есть сценарий, где мне нужно загрузить обрезанное изображение в AWS.PHP Image Crop upload обрезанное изображение

Во-первых, у меня есть основная работа по загрузке изображений (AWS putbucket и все), так что это не проблема.

У меня также есть обрезка изображения, работающего (используя imgAreaSelect), так что это тоже не проблема.

На стороне PHP я также захватить изображение от $ _FILES [ «файл»] [ «tmp_name»] и создать новую кадрирования (используя код, аналогичный найти на http://www.codeforest.net/how-to-crop-an-image-using-jquery-and-php.

Однако мне нужно способ захватить новый образ, созданный на последней строке

imagejpeg($new, $new_filename, 95); 

в $ _FILES [ 'файл'] [ ''] tmp_name в AWS загрузить здесь

$s3->putObject(array(  
    'Body' => fopen($_FILES['file']['tmp_name'], 'r'), 
)); 
+0

http://stackoverflow.com/questions/189368/creating-an-image-without-storing-it-as-a-local-file – zavg

+0

Итак: с использованием GD '' ' ob_start(); // запуск нового выходного буфера imagejpeg ($ dstImage, NULL, JPEG_QUALITY); $ resizedJpegData = ob_get_contents(); ob_end_clean(); // останавливаем этот выходной буфер // освобождаем неиспользуемую память (если изображения должны быть большими) unset ($ srcImage); unset ($ dstImage); // ваши измененные данные jpeg теперь в $ resizedJpegData // Используйте вызовы метода Undesigned для хранения данных. // (Многие люди хотят отправить его в виде шестнадцатеричного потока в БД :) $ dbHandle-> storeResizedImage (bin2hex ($ resizedJpegData)); '' ' « Тело »=> fopen ($ dbHandle, 'r'), – Jordan

+0

См. Мой ответ ниже (комментарий не форматировался) – Jordan

ответ

0

Так: с помощью GD

ob_start(); // start a new output buffer 
    imagejpeg($dstImage, NULL, JPEG_QUALITY); 
    $resizedJpegData = ob_get_contents(); 
ob_end_clean(); // stop this output buffer 

// free up unused memmory (if images are expected to be large) 
unset($srcImage); 
unset($dstImage); 

// your resized jpeg data is now in $resizedJpegData 
// Use your Undesigned method calls to store the data. 

// (Many people want to send it as a Hex stream to the DB:) 
$dbHandle->storeResizedImage(bin2hex($resizedJpegData)); 


'Body' => fopen($dbHandle, 'r'),