Resize
Re-dimensionar imagenes, (*1)
Bundle para redimensionar imƔgenes a dos tamaƱos "grande" y "pequeƱo", (*2)
Los tamaƱos y el director de destino son configurables con parametros desde el app/config.yml, (*3)
InstalaciĆ³n
InstalaciĆ³n mediante composer, poner en el archivo composer.json
..., (*4)
"require": {
....
"didweb/resize": "1.*"
....
}
En el archivo app/AppKernel.php
poner poner..., (*5)
$bundles = array(
...
new Didweb\Bundle\ResizeBundle\DidwebResizeBundle(),
....
);
Dentro de app/config/config.yml
poner la siguiente linea dentro de imports
..., (*6)
imports:
- { resource: "@DidwebResizeBundle/Resources/config/services.yml" }
Configurar
Para configurar se ponen los siguientes parametros dentro de app/config/config.yml
..., (*7)
didweb_resize:
img_ancho_p: 240
img_alto_p: 196
img_ancho_g: 1024
img_alto_g: 768
img_directorio: %kernel.root_dir%/../web/fotos
Detalles de configuraciĆ³n
En los parametros colocados en app/config/config.yml
se especificƔn el ancho y alto tanto de la imagen tamaƱo grande como el tamaƱo pequeƱo, asi como el directorio del destino de las imƔgenes., (*8)
Los parametros img_ancho_p
y img_alto_p
hacen referencia al ancho y alto del tamaƱo pequeƱo en pixeles., (*9)
Los parametros img_ancho_g
y img_alto_g
hacen referencia al ancho y alto del tamaƱo grande en pixeles., (*10)
El parametro img_directorio
se ha de especificar el destino de las imƔgenes modifica "fotos" por el nombre de carpeta que quieras., (*11)
Configurar directorio
Crear un directorio en este caso hemos puesto "fotos" y dentro de Ʃl se crean 2 directorios mƔs, uno llamado p
y otro g
, son los directorios finales de las imƔgenes. En p
se almacenaran las imƔgenes de tamaƱo pequeƱo y en g
las de tamaƱo grande., (*12)
Ejemplo de uso
Dentro del cĆ³digo en el lugar que quieras realizar la subida de archivo colocar esto ..., (*13)
Subir Imagen:, (*14)
$resize = $this->get('didweb_resize.acciones');
$resize->upload($nombreArchivo,$entity->getFile());
... donde $nombreArchivo
es el nombre de archivo qu queremos poner y $entity->getFile()
es el archivo subido mediante el formulario., (*15)
Modificar nombre de imagen:, (*16)
$resize = $this->get('didweb_resize.acciones');
$resize->CambioNombreImg($nombreViejo,$nombreNuevo);
... donde $nombreViejo
es el nombre que tenia antes la imagen y $nombreNuevo
es el nombre nuevo de la imagen., (*17)
Ejemplo completo para subir una imagen:, (*18)
Dentro de tu controlador ...., (*19)
public function createAction(Request $request)
{
$entity = new Imagen();
$form = $this->createCreateForm($entity);
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$entity->setSlug($entity->getNombre().'-'.rand(0,99999));
$entity->setExtension();
$em->persist($entity);
$em->flush();
$resize = $this->get('didweb_resize.acciones');
$resize->upload($entity->getSlug().'.'.$entity->getExtension(),$entity->getFile());
return $this->redirect($this->generateUrl('imagen_show', array('id' => $entity->getId())));
}
return array(
'entity' => $entity,
'form' => $form->createView(),
);
}
...un ejemplo de entidad Imagen ...., (*20)
<?php
namespace bancopruebas\BackendBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Imagen
*
* @ORM\Table()
* @ORM\Entity()
*/
class Imagen
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
* @ORM\Column(name="orden", type="integer")
*/
private $orden;
/**
* @var string
* @ORM\Column(name="nombre", type="string", length=255)
*/
private $nombre;
/**
* @var string
* @ORM\Column(name="slug", type="string", length=255)
*/
private $slug;
/**
* @var string
*
* @ORM\Column(name="extension", type="string", length=5)
*/
private $extension;
/**
* @Assert\File(maxSize="6000000")
*/
private $file;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Sets file.
*
* @param UploadedFile $file
*/
public function setFile($file)
{
$this->file = $file;
}
/**
* Get file.
*
* @return UploadedFile
*/
public function getFile()
{
return $this->file;
}
/**
* Set orden
*
* @param integer $orden
* @return Imagen
*/
public function setOrden($orden)
{
$this->orden = $orden;
return $this;
}
/**
* Get orden
*
* @return integer
*/
public function getOrden()
{
return $this->orden;
}
/**
* Set nombre
*
* @param string $nombre
* @return Imagen
*/
public function setNombre($nombre)
{
$this->nombre = $nombre;
return $this;
}
/**
* Get nombre
*
* @return string
*/
public function getNombre()
{
return $this->nombre;
}
/**
* Set slug
*
* @param string $slug
* @return Imagen
*/
public function setSlug($slug)
{
$this->slug = $slug;
return $this;
}
/**
* Get slug
*
* @return string
*/
public function getSlug()
{
return $this->slug;
}
/**
* Set extension
*
* @param string $extension
* @return Imagen
*/
public function setExtension()
{
$nombredelpath=$this->getFile()->getClientOriginalName();
$extension = explode(".",$nombredelpath);
$corte = count($extension)-1;
$extension = $extension[$corte];
$this->extension = $extension;
return $this;
}
/**
* Get extension
*
* @return string
*/
public function getExtension()
{
return $this->extension;
}
}