Ta aí, utilizando o jCROP do jquery...
voce executa esse crop ai via ajax...

E pronto =)

No meu caso eu passo as informacoes via post..

Eu baixo uma foto de OUTRO servidor... pra cropar NESTe servidor, e reenviar
pro outro.

=)

Este código foi desenvolvido para o CMS que criei pra a empresa aqui.
Ele é único, servindo varioas clientes, por isso a necessidade de utilizar
FTP.

Quem quiser conferir, pedir uma senha de testes:

www.meumaestro.com.br

Abraços.
/*
|---------------------------------------------------------------
| MAESTRO PANEL V2
|---------------------------------------------------------------
|
| Maestro é um produto da empresa PianoLab.
| Para maiores informações, acesse:
| http://www.meumaestro.com.br/
|
| Arquivo: controllers/croper.php
|
*/
class Croper extends Controller {

    private $image_src;
    private $image_width;
    private $image_height;
    private $image_crop_x;
    private $image_crop_y;
    private $response = 0;

    function Croper()
    {
        parent::Controller();
    }

    public function index()
    {
        if ($_POST) {

            //HELPERS
            $this->load->helper(array('module', 'form'));

            //PARÂMETROS PARA O CROP
            $this->image_src = $this->input->post('image_src');
            $this->image_width = $this->input->post('image_width');
            $this->image_height = $this->input->post('image_height');
            $this->image_crop_x = $this->input->post('image_crop_x');
            $this->image_crop_y = $this->input->post('image_crop_y');

            if ((!empty($this->image_src)) || (!empty($this->image_width))
|| (!empty($this->image_height))) {

                $document_root = $_SERVER['DOCUMENT_ROOT'];

                //FTP
                $this->load->library('Ftp');
                $this->load->helper('directory');

                //Informações de FTP
                $info_ftp = explode('@ftpmaestdiv@
',stripslashes(base64_decode($_POST['ftp_connect'])));

                $config['hostname'] = $info_ftp[0];
                $config['username'] = $info_ftp[1];
                $config['password'] = $info_ftp[2];
                $config['root_folder'] = $info_ftp[3];
                $config['upload_folder'] = 'upload';
                $config['debug'] = TRUE;

                $image_temp_name = date('Y-m-d-H-i-s') . rand(0,999) .
"image_temp_crop.jpg";
                $image_return = '';

                //Baixa o código binário da foto
                $photo_download =
file_get_contents($_SESSION[CLIENT_SESSION]['client_url'] . '/' .
$config['upload_folder'] . $this->image_src);
                $handle = fopen ($document_root . '/' .
$config['upload_folder'] . '/' . $image_temp_name, "w+");
                $image_content = $photo_download;
                fwrite($handle, $image_content);
                fclose($handle);

                //Trata src.
                $image_temp_src = explode('/',$this->image_src);
                $image_name = end($image_temp_src);
                array_pop($image_temp_src);
                $src_folder = $config['upload_folder'] . '/' .
implode('/',$image_temp_src);

                $targetPath = $document_root . '/' . $src_folder . '/';
                $targetPath = str_replace('//','/',$targetPath);
                $targetPath = $targetPath;
                $image_crop_name = 'crop_' . $image_name;

                $config['new_image'] = $targetPath . $image_crop_name;
                $config['source_image'] = $document_root . '/' .
$config['upload_folder'] . '/' . $image_temp_name;
                $config['width'] = $this->image_width;
                $config['height'] = $this->image_height;

                $targ_w = $config['width'];
                $targ_h = $config['height'];
                $jpeg_quality = 100;

                $src = $config['source_image'];
                $img_r = imagecreatefromjpeg($src);
                $dst_r = ImageCreateTrueColor( $targ_w, $targ_h );


imagecopyresampled($dst_r,$img_r,0,0,$this->image_crop_x,$this->image_crop_y,$targ_w,$targ_h,$config["width"],$config['height']);
                imagejpeg($dst_r,$config['new_image'],$jpeg_quality);


/***********************************************************************************
                *************************************** FTP
****************************************

************************************************************************************/
                $this->ftp->connect($config);
                if ($this->ftp->upload($config['new_image'],
$config['root_folder'] . $src_folder . '/' . $image_crop_name, 'auto')) {
                    $this->response = 2;
                    $image_return = $_SESSION[CLIENT_SESSION]['client_url']
. '/' . $src_folder . '/' . $image_crop_name;
                    @unlink($config['new_image']);
                    @unlink($config['source_image']);
                } else {
                    $this->response = 4;
                }

            } else {
                $this->response = 1;
            }

        } else {
            $this->response = 0;
        }

        //RETORNO DO AJAX
        echo $this->response . '@' . $image_return;
    }
}
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a