Как сохранить обрезанное изображение в каталог с помощью Jcrop с помощью PHP


Я могу обрезать свои изображения и нажать "Обрезать". но потом что-то идет не так, потому что я точно не знаю, как сохранить это изображение.

Я использую imagecreatefromjpeg из php. этот код выглядит следующим образом:

<?php
SESSION_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$targ_w = 200;
$targ_h = 400;
$jpeg_quality = 90;

$src = $_SESSION['target_path'];
$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor( $targ_w, $targ_h );

imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
$targ_w,$targ_h,$_POST['w'],$_POST['h']);

//header('Content-type: image/jpeg');
imagejpeg($dst_r, 'uploads/cropped/' . 'filename');

exit;
}

?>

Мой php-код для сохранения исходного изображения выглядит следующим образом:

     <?php 
         session_start();
         $target = "uploads/"; 
         $target = $target . basename( $_FILES['filename']['name']) ; 
         $_SESSION['target_path'] = $target;

         $ok=1; 
         if(move_uploaded_file($_FILES['filename']['tmp_name'], $target)) 
         {
         echo "De afbeelding *". basename( $_FILES['filename']['name']). "* is geupload naar de map 'uploads'";
         } 
         else {
         echo "Sorry, er is een probleem met het uploaden van de afbeelding.";
         }
    ?> 

Как сохранить обрезанное изображение? и есть ли способ сохранить обрезанное изображение, перезаписав оригинал, чтобы я получил только обрезанное изображение?

Заранее благодарю.

РЕДАКТИРОВАТЬ: Теперь я могу сохранить 1 фотографию. я отредактировал свой код, чтобы: imagejpeg($dst_r, 'загружает/обрезает/'. $имя файла.'boek.jpg"); Но мне нужно создать функцию, которая может сохранять несколько файлов под разными именами. и, возможно, перезаписать исходное изображение, которое сохранено в "загрузках/'

Author: Kees Sonnema, 2012-11-26

1 answers

Я собираюсь ответить на то, что сейчас кажется вопросом:

Но мне нужно создать функцию, которая может сохранять несколько файлов под разными именами. и, возможно, перезаписать исходное изображение, которое сохранено в 'uploads/'

Простым способом сделать это было бы добавить метку времени в имя файла, таким образом, каждый раз, когда выполняется операция, вы получаете новое имя файла. Делать что-то вроде:

imagejpeg($dst_r, 'uploads/cropped/' . $filename . time() . 'boek.jpg');

Сохранит новое изображение каждый раз.

Если вы хотите перезаписать оригинал, просто назначьте правильный путь

imagejpeg($dst_r, 'uploads/' . $filename .'.jpg');

Редактировать: Похоже, проблема в том, чтобы получить правильное имя файла без жесткого кодирования'boek.jpg ".

Исходный опубликованный код использовал строку filename при сохранении изображения

imagejpeg($dst_r, 'uploads/cropped/' . 'filename');

Что вы хотите сделать, так это вывести имя файла из $src. Для этого просто используйте функцию basename (документация здесь ), поэтому у вас будет:

imagejpeg($dst_r, 'uploads/cropped/' . basename($src)); // basename will already contain the extension
 7
Author: emartel, 2012-11-28 14:50:21