<?php class ImagickComponent extends Object { function _getExt( $file ) { $fileParts = pathinfo($file); if( !isset($fileParts['filename']) ) { $fileParts['filename'] = substr($fileParts['basename'], 0, strrpos($fileParts['basename'], '.')); } return $fileParts; } function _upload( $filename ) { if( is_uploaded_file($filename) ) { return $filename; } } function resize( $dir, $nW, $nH, $file ) { $filename = $this->_getExt( $file['name'] ); // pegar a extensao $basename = $filename['basename']; $nF = date('dmY_His').".".strtolower($filename['extension']); list( $w , $h ) = getimagesize ( $file['tmp_name'] ); # Realiza a chama do metodo do upload $this->_upload( $dir.DS.$basename ); echo '<pre>'. "convert ".$dir.DS.$basename." -coalesce ".$dir.DS.$basename.'</pre>'; echo '<pre>'. "convert -size ".$w."x".$h." ".$dir.DS.$basename." -resize ".$nW."x".$nH." ".$dir . DS . $nF .'</pre>'; exec( "convert ".$dir.DS.$basename." -coalesce ".$dir.DS.$basename ); exec( "convert -size ".$w."x".$h." ".$dir.DS.$basename." -resize ".$nW."x".$nH." ".$dir.'/'.$nF ); return $nF; } } ?>
E a chamada dele:
$this->Imagick->resize( $dir, 147, 72, $image );
om, vamos aos contras...
Não sei o motivo mas nao consigo salvar uma imagem válida! =/
Só redimensiona de uma imagem já no servidor, então criei o método _upload, mas me parece que não está acontecendo nada lá =/
Bom, alternativas são sempre bem vindas! \o/
* Não queria fazer isso usando imagick com exec(), pois isso abre brechas na segurança, mas me parece ser a única solução possível! =/
Alguma idéia de como recuperar a imagem e redimensionar?
Da minha forma não deu certo! =/
Eu salvo ela aqui (deveria realizar o upload)
function _upload( $filename ) { if( is_uploaded_file($filename) ) { return $filename; } }