how to save cropped image

10,765

Try this:

imagejpeg($dst_r, 'yourfilename.jpg', $jpeg_quality);

// Remove from memory - don't forget this part
imagedestroy($dst_r);

More info http://www.php.net/manual/en/function.imagejpeg.php

Share:
10,765
galtech.Mariya
Author by

galtech.Mariya

Updated on June 09, 2022

Comments

  • galtech.Mariya
    galtech.Mariya almost 2 years

    Downloaded the code for cropping image from the following link:

    http://deepliquid.com/content/Jcrop.html

    This is the code in crop.php page:

    <?php
    
    /**
     * Jcrop image cropping plugin for jQuery
     * Example cropping script
     * @copyright 2008-2009 Kelly Hallman
     * More info: http://deepliquid.com/content/Jcrop_Implementation_Theory.html
     */
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        $targ_w = $targ_h = 150;
        $jpeg_quality = 90;
    
        $src = 'demo_files/pool.jpg';
        $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,null,$jpeg_quality);
    
        exit;
    }
    
    // If not a POST request, display page below:
    
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
            <script src="js/jquery.min.js"></script>
            <script src="js/jquery.Jcrop.js"></script>
            <link rel="stylesheet" href="css/jquery.Jcrop.css" type="text/css" />
            <script language="Javascript">
    
                $(function(){
    
                    $('#cropbox').Jcrop({
                        aspectRatio: 1,
                        onSelect: updateCoords
                    });
    
                });
    
                function updateCoords(c)
                {
                    $('#x').val(c.x);
                    $('#y').val(c.y);
                    $('#w').val(c.w);
                    $('#h').val(c.h);
                };
    
                function checkCoords()
                {
                    if (parseInt($('#w').val())) return true;
                    alert('Please select a crop region then press submit.');
                    return false;
                };
    
            </script>
    
    </head>
    
    <body>
    <!-- This is the image we're attaching Jcrop to -->
            <img src="demo_files/pool.jpg" id="cropbox" />
    
            <!-- This is the form that our event handler fills -->
            <form action="crop.php" method="post" onsubmit="return checkCoords();">
                <input type="hidden" id="x" name="x" />
                <input type="hidden" id="y" name="y" />
                <input type="hidden" id="w" name="w" />
                <input type="hidden" id="h" name="h" />
                <input type="submit" value="Crop Image" />
            </form>
    </body>
    </html>
    

    The cropping is done perfectly and displayed the cropped image successfully.

    But i want to save the cropped image into a directory .

    How can i do this?

    • Josh
      Josh almost 12 years
      Have you read the manual on imagejpeg? Change the second parameter from null to the desired filename.
    • Prasenjit Kumar Nag
      Prasenjit Kumar Nag almost 12 years
      +1 @Josh, do it like this ImageJpeg($dst_r, 'images/' . 'Desired_name'; To save the file into images directory. Read more here php.net/manual/en/function.imagejpeg.php
    • galtech.Mariya
      galtech.Mariya almost 12 years
      @Joy,I changed the code as imagejpeg($dst_r,'crop_images/',$jpeg_quality);.Then i got this error The image “http://localhost/crop/index.php” cannot be displayed because it contains errors.
    • Prasenjit Kumar Nag
      Prasenjit Kumar Nag almost 12 years
      @galtech.Mariya, Do you still want to show the image, if you do you Can Just link to the newly saved image from images dir. Remove the header('Content-type: image/jpeg'); It will remove the error.
    • galtech.Mariya
      galtech.Mariya almost 12 years
      +1@Joy,ok i got my mistake , only put the disrectory path not included the name of the image