Jump to content


Photo

Redimensionar Gif Animada Com Imagick


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Tylër Vortex

Tylër Vortex

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 02/11/2010, 11:29

Estou disponibilizando meu componente para redimensionamento de GIF animada com vocês:

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





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq