Biel. 9 Denunciar post Postado Junho 3, 2015 Pessoal o codigo abaixo cadastra normalmente, corta a imagem e faz uma COPIA da mesma para a pasta upload. O problema é que as duas imagens fica no mesmo tamanho 210 por 160 Gostaria que a COPIA da imagem permanecesse no seu tamanho original ou seja não fosse cortada. id imagem1 imagem2 1 A18895556e6e1c3de59.jpg COPIA12124556e6e1c3e196.jpg ... <?php $editFormAction = $_SERVER['PHP_SELF']; $tmp_name1 = $_FILES['imagem1']['tmp_name']; $type = $_FILES['imagem1']['type']; $pasta1 = "upload"; $imagem1 = $_FILES['imagem1']['name']; $imagem1 = 'A'.uniqid(rand()).'.jpg'; $imagem2 = 'COPIA'.uniqid(rand()).'.jpg'; //imagem com nova largura e altura $largura_nova1 = 210; $altura_nova1 = 160; $list1 = list($largura_original1, $altura_original1) = getimagesize($tmp_name1); //cria uma nova imagem 210 por 160 $nova_imagem1 = imagecreatetruecolor( $largura_nova1, $altura_nova1 ); switch($type){ //case 'image/png': case 'image/gif': $img = imagecreatefromgif($tmp_name1); break; case 'image/jpeg': $img = imagecreatefromjpeg($tmp_name1); break; case 'image/png': $img = imagecreatefrompng($tmp_name1); break; default: echo "<h3>Não foi possível fazer o cadastro"; die(); } imagecopyresampled( $nova_imagem1, $img, 0, 0, 0, 0, $largura_nova1, $altura_nova1, $largura_original1, $altura_original1 ); imagejpeg($nova_imagem1, $pasta1.'/'.$imagem1); if(copy("$pasta1/".$imagem1, "$pasta1/".$imagem2)){ $sql = mysql_query ("INSERT INTO tab_aprendiz (imagem1,imagem2) VALUES ('".$imagem1."' , '".$imagem2."') ")or die (mysql_error()); echo "<script type='text/javascript' language='javascript'>alert('Sucesso!');</script>"; } else{ echo "<script type='text/javascript' language='javascript'>alert('Falha ao Copiar o Arquivo.');</script>"; } ?> <form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1" enctype="multipart/form-data" > imagem <input type="file" name="imagem1" size="60" /><br /><br /> <input type="submit" name="botaocss" value="Salvar Cadastro" /> </form> Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 3, 2015 Como disse antes, não fazia sentido o que você estava querendo fazer, se você quer criar thumbs/resize, crop etc da mesma imagem, use a classe WideImage ela fara todo este trabalho a você, ou seja não reinvente a roda. http://wideimage.sourceforge.net/examples/ Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 3, 2015 Copia antes de cortar. Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Junho 3, 2015 william, não consegui fazer. Do jeito que fiz abaixo a imagem corta, mas não copia. Também dar uma erro nesta linha if(copy("$pasta1/".$imagem1, "$pasta1/".$imagem2)){ este é o erro Warning: copy(upload/A25080556f5c95b2502.jpg) [function.copy]: failed to open stream: No such file or directory in <?php $editFormAction = $_SERVER['PHP_SELF']; if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $tmp_name1 = $_FILES['imagem1']['tmp_name']; $type = $_FILES['imagem1']['type']; $pasta1 = "upload"; $imagem1 = $_FILES['imagem1']['name']; $imagem1 = 'A'.uniqid(rand()).'.jpg'; $imagem2 = 'COPIA'.uniqid(rand()).'.jpg'; if(copy("$pasta1/".$imagem1, "$pasta1/".$imagem2)){ echo "Sucesso!"; } //imagem com nova largura e altura $largura_nova1 = 210; $altura_nova1 = 160; $list1 = list($largura_original1, $altura_original1) = getimagesize($tmp_name1); //cria uma nova imagem 210 por 160 $nova_imagem1 = imagecreatetruecolor( $largura_nova1, $altura_nova1 ); switch($type){ //case 'image/png': case 'image/gif': $img = imagecreatefromgif($tmp_name1); break; case 'image/jpeg': $img = imagecreatefromjpeg($tmp_name1); break; case 'image/png': $img = imagecreatefrompng($tmp_name1); break; default: echo "<h3>Não foi possível fazer o cadastro"; die(); } imagecopyresampled( $nova_imagem1, $img, 0, 0, 0, 0, $largura_nova1, $altura_nova1, $largura_original1, $altura_original1 ); imagejpeg($nova_imagem1, $pasta1.'/'.$imagem1); $sql = mysql_query ("INSERT INTO tab_aprendiz (imagem1,imagem2) VALUES ('".$imagem1."' , '".$imagem2."') "); echo "ok"; } ?> <form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1" enctype="multipart/form-data" > imagem <input type="file" name="imagem1" size="60" /><br /><br /> <input type="submit" name="botaocss" value="Salvar Cadastro" /> <input type="hidden" name="MM_insert" value="form1" /> </form> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 3, 2015 A mensagem de erro diz tudo: arquivo não encontrado Você está tentando copiar um arquivo que você nem sequer criou. No momento do seu copy, os arquivos do upload ainda estão em /tmp. É preciso movê-los primeiro, com move_uploaded_file (pode até usar copy, se quiser) Compartilhar este post Link para o post Compartilhar em outros sites