didweb / resize
调整图片大小
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_p
和 img_alto_p
参数指的是小图的宽度和高度(像素)。
img_ancho_g
和 img_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; } }