didweb/resize

调整图片大小

安装: 42

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

v1.0.3 2014-05-18 00:00 UTC

This package is not auto-updated.

Last update: 2024-10-02 03:53:51 UTC


README

重新调整图片大小

用于调整图片大小的Bundle,支持“大”和“小”两种尺寸

尺寸和目标目录可以通过app/config.yml中的参数进行配置

安装

通过composer安装,在composer.json文件中添加 ...

  "require": {
	    ....
	    "didweb/resize": "1.*"
	    ....
     }

app/AppKernel.php文件中添加 ...

	$bundles = array(
	...
	new Didweb\Bundle\ResizeBundle\DidwebResizeBundle(),
	....
	);

app/config/config.yml文件中的imports部分添加以下行 ...

imports:
    - { resource: "@DidwebResizeBundle/Resources/config/services.yml" }

配置

要配置,请在app/config/config.yml文件中添加以下参数 ...

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

配置详情

app/config/config.yml文件中指定的参数中,指定了大图和小图的宽度和高度,以及图片的目标目录。

img_ancho_pimg_alto_p 参数指的是小图的宽度和高度(像素)。

img_ancho_gimg_alto_g 参数指的是大图的宽度和高度(像素)。

img_directorio 参数需要指定图片修改的目标目录,将“fotos”替换为你想要的文件夹名称。

配置目录

创建一个目录,这里我们命名为“fotos”,并在其中创建两个子目录,一个命名为p,另一个命名为g,它们是图片的最终目录。在p中存储小尺寸图片,在g中存储大尺寸图片。

使用示例

在代码中,在需要上传文件的地方放置以下内容 ...

上传图片

      $resize = $this->get('didweb_resize.acciones');
      $resize->upload($nombreArchivo,$entity->getFile());

... 其中 $nombreArchivo 是我们想要设置的文件名,而 $entity->getFile() 是通过表单上传的文件。

修改图片名称

 	$resize = $this->get('didweb_resize.acciones');
	$resize->CambioNombreImg($nombreViejo,$nombreNuevo);

... 其中 $nombreViejo 是图片原来的名称,而 $nombreNuevo 是新的图片名称。

上传图片的完整示例

在你的控制器中 ...

  
    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(),
        );
    }

... 一个示例实体 Imagen ...

<?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;
    }


	
		
}