Ben çeşitli görüntüler oluşturmak için dinamik bir sınıf oluşturma.
ImagesUtils.php
<?php
class ImagesUtils
{
private $nombre_imagen = null;
private $imagen = null;
private $extension = null;
private $directorio = null;
private $width = null;
private $height = null;
private $tipo = null;
private $final_width = null;
private $final_height = null;
private $nuevo_nombre = null;
private $nuevo_directorio = null;
public function __construct($imagen, $directorio = '')
{
$this->directorio = realpath("..".DS."data".DS."storage".DS."files".DS.$directorio);
$this->imagen = $this->directorio.DS.$imagen;
$this->nombre_imagen = $imagen;
$this->extension = substr($imagen, strrpos($imagen, '.') + 1, strlen($imagen));
$propiedades = getimagesize($this->imagen);
$this->width = $propiedades["0"];
$this->height = $propiedades["1"];
$this->tipo = $propiedades["2"];
}
public function Resize($width = null, $height = null, $proporcion = true)
{
$this->final_width = $width;
$this->final_height = $height;
if(true == $proporcion)
self::proporcion($width, $height);
$imagen = imagecreatefromjpeg($this->imagen);
$nueva_imagen = imagecreatetruecolor($this->final_width, $this->final_height);
imagecopyresampled($nueva_imagen, $imagen, 0, 0, 0, 0, $this->final_width, $this->final_height, $this->width, $this->height);
return imagejpeg($image, $this->nueva_imagen);
}
}
?>
Ve nasıl çağırır:
$procesar_imagen = new ImagesUtils($imagen["nombre"]);
$procesar_imagen->Resize(640, 480);
Genişliği bu kod çalışıyor ... ama bu kullanırsanız:
$procesar_imagen->Resize(300, 300);
http://i51.tinypic.com/htwx79.jpg: Benim son görüntü gibi görünüyor oluşturulan
Giriş görüntü: http://i51.tinypic.com/15n9ifc.jpg
Benim proporcion () işlevi fotoğrafın boy oranı yeni yükseklik ve genişlik ... ben kontrol döner ve değerleri doğru ... bunu çözmek için nasıl bilmiyorum, iade genişliği 300 (ve nihai görüntü genişliği 300 ... ama siyah alan sayma).