Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Biel.

Cortar 1º imagem e deixar a copia dela no tamanho original

Recommended Posts

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

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, 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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.