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










