Php kullanarak kırpma görüntü

6 Cevap php

Ben bir görüntüyü kırpmak istiyorum. Böyle yapmak mümkündür. Ve evet eğer, ne crop() function gibi görünür?

$imgURL her bir .jpg resimdir.

$image = file_get_contents($imgURL);
$maxWidth = 100;
$height = 68;

$image = crop($image, $maxWidth, $height);

file_put_contents("media/imgname.jpg", $image);

function crop($image, $maxWidth, $height){
    ...how do I crop the image?
}

6 Cevap

Eğer yüklü GD kütüphanesi varsa, the functions available to you bir göz taked. Daha fazla açıklama ve bir örnek istiyorsanız, this blog bakabilirsiniz.

Ayrıca, SO posts boyunca size yardım etmek için bol miktarda var.

Yükler çoğu PHP gd library genellikle bulunuyor kısmına bir göz atın.

Genellikle, olur:

  1. imagecreatefromTYPE işlevlerden birini kullanarak görüntüyü içe
  2. boş bir tampon resim yapmak için imagecreate ($ width, $ height) kullanın
  3. () tampon istediğiniz bölümünü aktarmak için imagecopy kullanın
  4. bir dosyaya dışarı tampon yazmak için ImageType işlevlerinden birini kullanabilirsiniz.

Eğer anında görüntüyü yeniden boyutlandırmak timtgumb kullanarak croping için timthumb kullanabilirsiniz ....

Bunu kontrol http://www.wprecipes.com/how-to-resize-images-on-the-fly

Burada sonuç http://joedesigns.com/resizing2/example.php

Just try doing JCROP plugin from Jquery

Görüntü kırpma için en iyi eklentinin bir

deepliquid.com----download JCROP

 function cropfun(){         
            $('#previews').Jcrop({ 
                aspectRatio: 3,
                minSize:[300,100] ,
                boxWidth: 450, boxHeight: 400,
                bgFade:true,
                bgOpacity: .5,
                setSelect: [ 60, 70, 600, 330 ],
                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('Select where you want to Crop.');
            return false;
        };

In the body part

     <img  src="uploads/<?php  echo $image; ?>" id="previews" name="previews"  onclick="cropfun();"   />
     <input type="file" name="image22" id="image22" style="visibility:hidd"     >
    <input type="hidden" id="hh" name="hh" value="" />
     <input type="hidden" id="hhh" name="hhh" value="<?php  echo $image; ?>" />
        <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" name="submit" id="sub" value="submit" />
    </form>

Bu GD sunucunuzda yüklü değilse kullanmak mümkün olabilir başka bir seçenek Imagemagick'in olduğunu.

GD kütüphanesi kullanarak görüntü kırpma için aşağıdaki kodu bulun:

<?php
function createThumb($upfile, $dstfile, $max_width, $max_height){

   $size = getimagesize($upfile);

   $width = $size[0];

   $height = $size[1];



   $x_ratio = $max_width / $width;

   $y_ratio = $max_height / $height;

   if( ($width <= $max_width) && ($height <= $max_height)) {

           $tn_width = $width;

           $tn_height = $height;

   } elseif (($x_ratio * $height) < $max_height) {

           $tn_height = ceil($x_ratio * $height);

           $tn_width = $max_width;

   } else {

           $tn_width = ceil($y_ratio * $width);

           $tn_height = $max_height;

   }



   if($size['mime'] == "image/jpeg"){

           $src = ImageCreateFromJpeg($upfile);

           $dst = ImageCreateTrueColor($tn_width, $tn_height);

           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);

           imageinterlace( $dst, true);

           ImageJpeg($dst, $dstfile, 100);

   } else if ($size['mime'] == "image/png"){

           $src = ImageCreateFrompng($upfile);

           $dst = ImageCreateTrueColor($tn_width, $tn_height);

           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);

           Imagepng($dst, $dstfile);

   } else {

           $src = ImageCreateFromGif($upfile);

           $dst = ImageCreateTrueColor($tn_width, $tn_height);

           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);

           imagegif($dst, $dstfile);

   }

}

//usage

if(isset($_FILES['upload_Image']['name']) && $_FILES['upload_Image']['name']!=='') {
    $ext = substr($_FILES['upload_Image']['name'], strpos($_FILES['upload_Image']['name'],'.'), strlen($_FILES['upload_Image']['name'])-1); 

    $imgNormal = time().$ext;

    $normalDestination = "Photos/Orignal/" . $imgNormal;

    $httpRootLarge = "Photos/Large/" . $imgNormal;

    $httpRootSmall = "Photos/Small/" . $imgNormal;

    $httpRootThumb = "Photos/Thumb/" . $imgNormal;

    move_uploaded_file($_FILES['upload_Image']['tmp_name'], $normalDestination);



    createThumb($normalDestination,$httpRootLarge,680,604); #For 604x604 Image  

    createThumb($normalDestination,$httpRootSmall,500,300); #For 500x300 Image  

    createThumb($normalDestination,$httpRootThumb,130,100); #For 130x100 Image

}

?>