Comunidad de diseño web y desarrollo en internet online

Redimensionar imagen con imagick php

Citar            
MensajeEscrito el 13 Jun 2015 05:42 am
Quiero subir una imagen mediante un formulario, y redimensionarla mediante una nueva función que acabo de ver "Imagick", pero creo que el algoritmo esta algo mal ya que al hacerlo me vota el siguiente error:

Fatal error: Uncaught exception 'ImagickException' with message 'Can not process empty Imagick object' in /home4/sirna/public_html/zeriez/editmovie.php:114 Stack trace: #0 /home4/sirna/public_html/zeriez/editmovie.php(114): Imagick->getimagewidth() #1 {main} thrown in /home4/sirna/public_html/zeriez/editmovie.php on line 114

Código PHP :

$name_file = imagecreatefromstring(file_get_contents($_FILES['thumbnail']['tmp_name']));

        $image= new Imagick($name_file);

        $width=$image->getImageWidth();

        $height=$image->getImageHeight();

        $resize->adaptiveResizeImage($width-50,$height-50);

        move_uploaded_file($resize,"content/img/pelicula/1/t.jpg");

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 15 Jun 2015 12:23 pm
Imagick no es una función, es una biblioteca que exporta una clase.

Tienes un grave error. En el constructor de Imagick, lo que le debes pasar es la ruta y nombre del archivo, no el archivo en sí.

En el código que has puesto $resize no está definido en ninguna parte.

Además, Imagick ya tiene un método para redimensionar imágenes: scaleImage

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Jun 2015 05:31 pm
eso quiere decir que imagick no es para cargar imágenes mediante formularios? entonces creo que podria cargarla y luego pasarle el algoritmo no crees?

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 15 Jun 2015 05:46 pm
No sé a qué te refieres con "cargar imágenes mediante formularios". ImageMagick sirve para tratar imágenes, ya sea tomándolas de un archivo de imágenes o creándolas en memoria para luego exportarlas a archivo en disco.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Jun 2015 05:51 pm
me refiero en aplicar un move_uploaded_file primero así ya lo tendríamos en el disco del servidor

move_uploaded_file($_FILES['thumbnail']['tmp_name'], "content/img/pelicula/1/t.jpg);

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 15 Jun 2015 05:58 pm
Pues sí, primero debes mover el archivo que se acaba de subir, del directorio temporal del servidor web a un lugar en tu sitio, luego procesar ese archivo con ImageMagick,

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 16 Jun 2015 12:43 am
Parece que todo bien, he puesto el código tal cual:

Código PHP :

if(isset($_FILES["thumbnail"])) {
   move_uploaded_file($_FILES['thumbnail']['tmp_name'], "content/img/pelicula/1/t.jpg");
   $im = new Imagick('content/img/pelicula/1/t.jpg');
   $im->scaleImage(100, 0);
   $im->writeImage('content/img/pelicula/1/tr.jpg');
}

Solo veo un problema, en writeImage tengo que colocarle otro nombre, ya que este no reemplaza al anterior puesto que si le pongo "t.jpg" no lo reemplaza...

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 16 Jun 2015 12:18 pm
Me alegro que lo hayas resuelto.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 16 Jun 2015 07:34 pm
gracias a ti, no olvidemos que se le metió un unlink antes por si a alguien le sirve este post

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.