strip_tags remove ent_quotes ejemplo php laravel laravel-5 php-imagine

remove - Usando PHP Imagine aplicar una máscara



strip_tags() (1)

Tengo lo siguiente:

namespace App/Http/Controllers; use Illuminate/Http/Request; use Imagine/Image/Box; use Imagine/Image/ImageInterface; use Imagine; class UploadController extends Controller { public function processImage($request) { $file = $request->file(''file''); $path = ''/images''; $fileName = ''image.png''; if ($file) { $file->move(''../public'' . $path, $fileName); $gThumb = $this->createThumbnail(219, 300, ''../public/images'', ''image'', ''png'', ''thumb'', true); $pThumb = $this->createThumbnail(300, 300, ''../public/images'', ''image'', ''png'', ''pthumb''); return response()->json([ ''gallery_thumbnail'' => $path . ''/'' . $gThumb, ''upload_thumbnail'' => $path . ''/'' . $pThumb ]); } } function createThumbnail($height, $width, $path, $filename, $extension, $postfix = null, $mask = null) { $mode = ImageInterface::THUMBNAIL_OUTBOUND; $size = new Box($width, $height); $postfix = $postfix ? $postfix : ''thumb''; $thumbnail = Imagine::open("{$path}/{$filename}.{$extension}")->thumbnail($size, $mode); if ($mask) { $mask = Imagine::open(''../public/images/masks/bubble-splash.png''); $thumbnail->applyMask($mask); } $destination = "{$filename}" . "." . $postfix . "." . "{$extension}"; $thumbnail->save("{$path}/{$destination}"); return $destination; } }

Guarda las imágenes como se esperaba, pero no aplica la máscara a la miniatura.

¿Dónde me estoy equivocando (estoy usando Laravel 5)?

Además, cuando se ejecuta el script, toma literalmente alrededor de 1 minuto para completarse, por lo que está haciendo algo, pero las imágenes se siguen emitiendo sin máscara aplicada.

Al final, creo que voy a utilizar estos chicos https://www.imgix.com/


Actualización 2015-08-04 11:32 +0000

Resulta que la transparencia blanca es la lógica de enmascaramiento elegida en Imagine.
https://github.com/avalanche123/Imagine/pull/449#issuecomment-127516157

Original

Es muy probable que sea un error en la biblioteca de Imagine. Encontré lo siguiente:

No pude hacer que GD / Image :: applyMask () funcionara como se describe en el ejemplo de Reflection en http://www.slideshare.net/avalanche123/introduction-toimagine, así que hice algunas correcciones.

  1. Todavía es compatible solo con la paleta RGB para máscara, pero ahora las cuentas son promedio entre colores.
  2. Cambia la imagen si su transparencia es menor a 0.5.

Desde https://github.com/avalanche123/Imagine/pull/449

La corrección asociada aún no confirmada:
https://github.com/kasuparu/Imagine/commit/66a36652c76f9b5ff640f465d8f970c563841ae6

Probé el código fijo y parece funcionar, excepto que la máscara está (desde mi perspectiva) aplicada hacia atrás, manteniendo las partes negras y descartando las partes blancas. Comenté este problema en la solicitud de extracción.

Como referencia, esta es la solución en acción:

Usando $ blackAmount:

Y mi solución de la corrección, usando $ whiteAmount: