GD'nin imagerotate kullanmadan PHP görüntü döndürme yapmak için en hızlı yolu nedir?

2 Cevap php

PHP'nin GD imagerotate() function kullanmak için yeteneği yok, o yüzden başka bir çözüm bulmak gerekir. Ben rotateImage() yöntemi found in the comments imagerotate() PHP yardım sayfasında kullanılan, ancak büyük görüntülerde çok yavaş.

Ben görüntü matematikte korkunç ve benim görüntüler daha hızlı döndürülmüş almak için bana doğru yönde işaret almak için doğru Google arama formüle bir sabit zaman yaşıyorum.

İdeal Ben PHP içinde aynı hıza yakın bir çözüm bulmak eğer bir dış uygulama çağıran önlemek istiyorum.

Ben ImageMagick kurulu yok ve ben ImageMagick yüklemeden başvurmadan önce deneyebileceğiniz olmayan ImageMagick istiyorum.

Update

Ben bu kadar çok kısıtlamalar vardı neden belirtmek istendi.

Ben başlangıçta doğrudan imagerotate() kullanabilirsiniz olduğunu kabul vardı ama ben PHP GD PHP'nin sürümü ile inşa halinde sadece çalıştığını keşfetti. Bazı dağıtımlar (benim geliştirme ortamı olarak kullanıyorum en azından Ubuntu) refuse to link against PHP's heavily modified version of the GD library. Bu durumlarda, içinde imagerotate() sonuçlarını aramak için çalışıyor:

PHP Fatal error: Call to undefined function: imagerotate()

Ben (imagerotate() fonksiyonunu kullanmadan) GD kullanarak görüntü rotasyon için bir PHP geçici çözüm bulundu, ancak çok yavaş görünüyor. Bir 2848x2136 görüntü için 15-20 saniye.

Ben GD kullanarak daha hızlı bir algoritma bulmak umuduyla ama will son çare olarak ImageMagick veya başka bir harici kitaplık kullanmayı düşünün duyuyorum. Ben ImageMagick yüklemek mümkün olduğumu değil, ben bu proje için daha bağımlılıkları eklemeden önce PHP yerleşik işlevleri kullanarak daha hızlı bir alternatif bulmak için tercih edeceği yönünde.

Hakkında exec(): Genel bir kural olarak ben kapalı teslim önlemek oldukça zor try exec(). Aslında, ben tüm bu yapmak zorunda son beş yıl içinde her zaman hatırlamıyorum. Başka bir şey yeterince hızlı döner eğer will bunu yaparken düşünün, ama ben oraya gitmeden önce bazı diğer seçenekleri kontrol etmek istiyorum.

2 Cevap

Eğer gerçekten GD kütüphanesi kullanımı yapamıyorsanız, bu görüntü 90 derece döndürülerek her biri için 4 farklı görüntü, her kullanabilirsiniz mümkün mü?

Siz görüntü başına 4 dosya kurtarabilir - image_normal.jpg, image_90.jpg, image_180.jpg, image_270.jpg

Kullanıcı görüntüyü döndürmek istediği zaman sonra, sadece gelen dosyayı yükleyebilirsiniz.

Değil büyük hack, ama iyi bir çözüm.

Umut olur.

Exec erişimi () işlevleri var ama yükleyemezsiniz ImageMagick? Nasıl ki?

Eğer zamanında dl() kütüphaneler can biliyorsun, değil mi?