PHP boyutlandırma görüntü boyutunu sabit ama yönünü korumak

3 Cevap php

Ben sabit bir boyutu GD kullanarak php görüntüleri yeniden boyutlandırmak ancak yönünü (dikey / yatay) korumak gerekir, bunlar:

portrait: 375 x 500px landscape: 500 x 375px

Ben denedim her şey her zaman yönünü sayar ve onları tüm manzara yapar.

Herkes yardımcı olabilir?

3 Cevap

Gelen resmin genişliğini ve yüksekliğini kontrol edin. Genişliği yüksekliğinden daha genişse, aksi takdirde 375 x 500 yapmak, hedef büyüklüğü 500 x 375 yapmak. Daha sonra bu hedef boyutları ile yeniden boyutlandırma kodu çalıştırın.

Burada, bir görüntünün ölçekli boyutları hesaplar kullandığım bir görüntü sınıfı, bir yöntemdir. Bu kare bir kutu içine bir görüntü takılması ile çalışır.

Sen $box = 500 ayarlayın ve ardından $x geçmek ve $y yeniden boyutlandırmak için çalışıyoruz görüntünün ve her zaman en boy oranını koruyarak doğru resized boyutları dönecektir .

public static function fit_box($box = 200, $x = 100, $y = 100)
{
  $scale = min($box / $x, $box / $y, 1);
  return array(round($x * $scale, 0), round($y * $scale, 0));
}

Bu soru doğru burada cevap verdi: How to detect shot angle of photo, and auto rotate for website display like desktop apps do on viewing?

Kısa cevap, bir fotoğrafın "Oryantasyon" özellik almak için exif_read_data() işlevi kullanmak için, ve sonra size fotoğrafı döndürmek için ihtiyaç olup olmadığını belirlemek için bu değeri kullanabilirsiniz ihtiyacımız var. Yukarıdaki sorunun cevabı bunu nasıl gösterir örnek PHP kodu içeren.