PHP resim boyutlandırma komut?

3 Cevap

Tamam ben PHP aşağıda aşağıdaki komut dosyası bulundu gerçekten yeni değilim. Ama bana bu komut sayesinde öğrenmeye başlamak için örneğin images/photo.jpg bölüme gitmek için görüntüye linki koyarım nereye merak ediyordum nasıl kullanılacağını bilmiyorum.

İşte kodudur.

<?php
function resizeImage($originalImage,$toWidth,$toHeight){

    // Get the original geometry and calculate scales
    list($width, $height) = getimagesize($originalImage);
    $xscale=$width/$toWidth;
    $yscale=$height/$toHeight;

    // Recalculate new size with default ratio
    if ($yscale>$xscale){
        $new_width = round($width * (1/$yscale));
        $new_height = round($height * (1/$yscale));
    }
    else {
        $new_width = round($width * (1/$xscale));
        $new_height = round($height * (1/$xscale));
    }

    // Resize the original image
    $imageResized = imagecreatetruecolor($new_width, $new_height);
    $imageTmp     = imagecreatefromjpeg ($originalImage);
    imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    return $imageResized;
}
?> 

3 Cevap

Orada potansiyel FRİKİKLERİNDEN bir çift burada, ben size içine çalıştırabilirsiniz olası sorunları birkaç vereyim:

  1. Bunu okunabilir, böylece görüntünün tam yolunu vermeniz gerekir. Bunun için aşağıdaki komut dosyasını kullanın:
function getRoot(){
    $cwd = getcwd();
    $splitCwd = explode("/", $cwd);
    $root = "";
    for($count=0; $count<count($splitCwd)-1;$count++){
      $root .= '/' . $splitCwd[$count];
    }
    $root = $root . '/';
    return $root;
}

Sonra () (GetRoot. $ Resim, ...) iletebilirsiniz

  1. Dosya türünü kontrol edecek bir anahtarı oluşturun (benim cevaba bakınız here). Bu, sadece jpegler daha fazla yeniden boyutlandırma ve şeffaflık söz edilebilir olduğunda iyi sadece jpegler daha fazla çıkış, sağlayacaktır.

  2. Çıktı dosya nihai bir parametre ya da iki, orada mümkün olabilir. Bozulmadan orijinal görüntü bırakarak Böylece, minik yapabilirsiniz. Bu durumda, imagejpeg (veya imagepng, vb) yapmak ve ayarlı ise ona yeni bir isim parametresi geçerdi.

Sen $ originalImage olarak ayarlanmış olacaktır işlevi ilk parametre olarak orijinal JPEG, bağlantısını geçerdi.

Işlevi çağrılırken Yani, kullanmak istiyorum:

resizeImage("images/photo.jpg",800,600);

İki numaralar genişlik / yükseklik değerleri olacaktır.

Bunun yerine geri dönüş hattı eklemek gerekir

header('Content-type: image/jpeg');
imagejpeg($imageResized);


Ya da çek http://www.php.net/manual/en/function.imagejpeg.php ve Example #2 Saving a JPEG image