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

