Opa Marcão, passei pela mesma coisa há um tempo atrás....

Vou postar meu código pra ver se é isso mesmo que vc quer

        $dir = './public/repositorio/fotos/'.$this->input->post('evento').'/';
        (!is_dir($dir)) ? mkdir($dir) : '';
        $config['upload_path']   = $dir;
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size']         = '1000';
        $config['max_width']      = '1024';
        $config['max_height']       = '1024';
        $config['encrypt_name']     = TRUE;
   
        $this->load->library('upload', $config);
               
        if ($this->upload->do_upload())
        {
            $this->load->library('image_lib');
                   
            $dados = $this->upload->data();
            $foto = $dados['file_name'];
                   
            //Cria o thumb
            $config['image_library']     = 'GD2';
            $config['source_image']     = $dados['full_path'];
            $config['create_thumb']     = TRUE;
            $config['maintain_ratio']     = TRUE;
            $config['width']             = 120;
            $config['height']             = 120;
            $this->image_lib->initialize($config);
            $this->image_lib->resize();
                   
            //Redimensiona a imagem original
            $config['create_thumb']     = FALSE;
            $config['width']             = 500;
            $config['height']             = 500;
            $this->image_lib->initialize($config);
            $this->image_lib->resize();
                   
            //Pega qual eh o nome do thumb
            $thumb = explode('.', $foto);
            $extensao = (count($thumb)) - 1;
            $extensao = '.'.$thumb[$extensao];
            $thumb = $thumb[0].'_thumb'.$extensao;

Com isto, eu tenho duas imagens. A original, porém redimensionada para 500x500 e um thumb, de 120x120. Como usei criptografia para salvar o nome da foto, nem me preocupei com o nome dela. Porém preciso do último bloco para pegar o nome da thumb. Eu salvo a foto e o thumb ($foto e $thumb).

Abraços

Marco Telles escreveu:
Prezados,

estou usando a biblioteca upload e uma classe própria para redimensionar 
imagem e ao subir uma imagem eu gostaria de:
1. pegar a imagem tmp e redimensionar antes de salvar;
2. pegar a imagem gravada e criar um thumbnail (ou seja, redimensionar 
também a original).

O thumbnail eu já resolvi, após gravar usando $this->upload->do_upload() 
eu pego os dados e envio como parametro para a classe que redimensiona e 
grava o thumbnail.
Uma opção seria eu pegar os dados em $_FILES e fazer na mão, mas se tem 
uma library já pronta, seria melhor né ?
Alguém poderia dar uma idéia ?

Hoje eu faço como indica no guia do CI:
1. configuro:
                $config['upload_path'] = './images/prod/';
                $config['allowed_types'] = 'gif|jpg|png';
                $config['max_size']    = '1000';
                $config['max_width']  = '1024';
                $config['max_height']  = '768';

2. carrego:
                $this->load->library('upload', $config);

3. executo:
                if ( ! $this->upload->do_upload() ) {
                        $error = array('error' => 
$this->upload->display_errors());
                        echo $error['error'];
                }else {
                         // preparo dados para gravar no banco de dados
                        $aFotoNew = $this->upload->data();
                        (...)
                }
 
Abs

  

-- 
Rafael Vieira de Oliveira
Faculdade de Direito de SBC - Autarquia Municipal
Setor de Automação, Telefonia e Informação
(11)4123-0222 Ramal: 208
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a