SORU
15 AĞUSTOS 2008, Cuma


Verimli JPEG Resim Boyutlandırma PHP

PHP büyük görüntüleri yeniden boyutlandırmak için en etkili yolu nedir?

Şu anda GD Bu işlev yüksek çözünürlüklü görüntüler çekmek ve temiz bir şekilde onları web görüntüleme için bir boyut (yaklaşık 700 700 piksel piksel boyunda tarafından geniş) aşağı yeniden boyutlandırmak için imagecopyresampled kullanıyorum.

Bu işleri küçük (2 MB) fotoğrafları ve tüm yeniden boyutlandırma işlemi büyük sunucu üzerinde bir saniyeden daha kısa sürer. Ancak, sitenin sonunda boyutu (görüntüleri 5000x4000 piksel boyutunda) görüntüleri 10 MB yükleme olabilir kim fotoğrafçılar hizmeti.

Büyük resimleri yeniden boyutlandırma işlemi bu şekilde çok büyük bir boşluğu (büyük resim 80) geçtiğimiz komut dosyası için bellek kullanımını spike) tarafından bellek kullanımını artırmak eğilimindedir. Bu yeniden boyutlandırma işlemi daha verimli hale getirmek için herhangi bir yolu var mı? ImageMagick gibi başka bir görüntü Kütüphanesi kullanarak olmalıdır?

Şimdi, yeniden boyutlandırma kod şöyle görünür

function makeThumbnail($sourcefile, $endfile, $thumbwidth, $thumbheight, $quality){
// Takes the sourcefile (path/to/image.jpg) and makes a thumbnail from it
// and places it at endfile (path/to/thumb.jpg).

// Load image and get image size.
$img = imagecreatefromjpeg($sourcefile);
$width = imagesx( $img );
$height = imagesy( $img );

if ($width > $height) {
    $newwidth = $thumbwidth;
    $divisor = $width / $thumbwidth;
    $newheight = floor( $height / $divisor);
}
else {
    $newheight = $thumbheight;
    $divisor = $height / $thumbheight;
    $newwidth = floor( $width / $divisor );
}

// Create a new temporary image.
$tmpimg = imagecreatetruecolor( $newwidth, $newheight );

// Copy and resize old image into new image.
imagecopyresampled( $tmpimg, $img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height );

// Save thumbnail into a file.
imagejpeg( $tmpimg, $endfile, $quality);

// release the memory
imagedestroy($tmpimg);
imagedestroy($img);

CEVAP
15 AĞUSTOS 2008, Cuma


İnsanlar bu ImageMagick çok daha hızlı olduğunu söylüyorlar. En iyi ihtimalle sadece iki kitaplıkları karşılaştırmak ve ölçmek.

  1. 1000 tipik görüntüleri hazırlayın.
  2. İki komut GD için bir cevap yazsam, bir ImageMagick için.
  3. Onları birkaç kez de çalıştırın.
  4. Sonuçlar (toplam yürütme karşılaştırın zaman, CPU ve I/O kullanımı, sonuç görüntü kalitesi bulunuyor.

İyi de herkes senin için iyi olmayan bir şey.

Ayrıca, benim görüşüme göre, ImageMagick çok daha iyi bir arayüz API vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mega64

    Mega64

    24 ŞUBAT 2006
  • MrMimoB

    MrMimoB

    11 NİSAN 2011
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014