Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com LOOPS


lags cap

Pergunta

Boa tarde. Preciso de uma ajudinha pra transformar este código sequencial em alguns loops.

Alguém pode me dar uma luz?

Este código eu desenvolvi utilizando a classe WideImage. Ele recebe de um formulário via POST uma imagem e faz alguns crops nela. Funcioca perfeitamente, gostaria apenas de melhorar o código.

O código trabalha sempre com 10 imagens, e para isso utilizei 10 linhas, acho que poderia melhorar isso com algum WHILE ou algo do tipo...

Agradeço a ajuda.

<?php

require( "./lib/WideImage.php");

// Example of accessing data for a newly uploaded file
$fileName = $_FILES["uploaded_file"]["name"]; 
$fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"];
// Path and file name
$pathAndName = "cartelas/cart".$fileName;
// Run the move_uploaded_file() function here
$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);
// Evaluate the value returned from the function if needed



$image = WideImage::load($pathAndName);

$unh = WideImage::load("unh11.png");

$crop1 = $image->crop("25", "50", 111, 132);

$crop2 = $image->crop("619", "50", 111, 132);

$crop3 = $image->crop("25", "326", 111, 132);

$crop4 = $image->crop("619", "326", 111, 132);

$crop5 = $image->crop("25", "595", 111, 132);

$crop6 = $image->crop("619", "595", 111, 132);

$crop6 = $image->crop("25", "869", 111, 132);

$crop7 = $image->crop("619", "869", 111, 132);

$crop7 = $image->crop("25", "1147", 111, 132);

$crop8 = $image->crop("619", "1147", 111, 132);

$crop9 = $image->crop("25", "1417", 111, 132);

$crop10 = $image->crop("619", "1417", 111, 132);



$out1 = $crop1->merge($unh,'middle','middle');

$out2 = $crop2->merge($unh,'middle','middle');

$out3 = $crop3->merge($unh,'middle','middle');

$out4 = $crop4->merge($unh,'middle','middle');

$out5 = $crop5->merge($unh,'middle','middle');

$out6 = $crop6->merge($unh,'middle','middle');

$out7 = $crop7->merge($unh,'middle','middle');

$out8 = $crop8->merge($unh,'middle','middle');

$out9 = $crop9->merge($unh,'middle','middle');

$out10 = $crop10->merge($unh,'middle','middle');



$pathAndName1 = "unha-1-".$fileName;
$pathAndName2 = "unha-2-".$fileName;
$pathAndName3 = "unha-3-".$fileName;
$pathAndName4 = "unha-4-".$fileName;
$pathAndName5 = "unha-5-".$fileName;
$pathAndName6 = "unha-6-".$fileName;
$pathAndName7 = "unha-7-".$fileName;
$pathAndName8 = "unha-8-".$fileName;
$pathAndName9 = "unha-9-".$fileName;
$pathAndName10 = "unha-10-".$fileName;



$crop1->saveToFile('./cartelas/estampa'.$pathAndName1);
$crop2->saveToFile('./cartelas/estampa'.$pathAndName2);
$crop3->saveToFile('./cartelas/estampa'.$pathAndName3);
$crop4->saveToFile('./cartelas/estampa'.$pathAndName4);
$crop5->saveToFile('./cartelas/estampa'.$pathAndName5);
$crop6->saveToFile('./cartelas/estampa'.$pathAndName6);
$crop7->saveToFile('./cartelas/estampa'.$pathAndName7);
$crop8->saveToFile('./cartelas/estampa'.$pathAndName8);
$crop9->saveToFile('./cartelas/estampa'.$pathAndName9);
$crop10->saveToFile('./cartelas/estampa'.$pathAndName10);



$out1->saveToFile('./cartelas/'.$pathAndName1);

$out2->saveToFile('./cartelas/'.$pathAndName2);

$out3->saveToFile('./cartelas/'.$pathAndName3);

$out4->saveToFile('./cartelas/'.$pathAndName4);

$out5->saveToFile('./cartelas/'.$pathAndName5);

$out6->saveToFile('./cartelas/'.$pathAndName6);

$out7->saveToFile('./cartelas/'.$pathAndName7);

$out8->saveToFile('./cartelas/'.$pathAndName8);

$out9->saveToFile('./cartelas/'.$pathAndName9);

$out10->saveToFile('./cartelas/'.$pathAndName10);


echo "Imagens geradas:<BR><BR>";


echo "<img src=./cartelas/estampa$pathAndName1><img src=./cartelas/$pathAndName1><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName2><img src=./cartelas/$pathAndName2><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName3><img src=./cartelas/$pathAndName3><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName4><img src=./cartelas/$pathAndName4><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName5><img src=./cartelas/$pathAndName5><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName6><img src=./cartelas/$pathAndName6><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName7><img src=./cartelas/$pathAndName7><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName8><img src=./cartelas/$pathAndName8><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName9><img src=./cartelas/$pathAndName9><BR><BR>";

echo "<img src=./cartelas/estampa$pathAndName10><img src=./cartelas/$pathAndName10><BR><BR>";


?>

Editado por lags cap
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Substitui o que vem depois da definição da variável $unh pelo código abaixo:

$dadosCrops = array(
    array(25,50), // x,y do crop1
    array(619,50), // x,y do crop2
    array(25,326), // x,y do crop3
    ...
    ... // coloque aqui o resto
    ...
); 

$crops = array();
$outs = array();
$paths = array();

echo "Imagens geradas:<BR><BR>";

foreach($dadosCrops as $i => $dados) {
    $crops[$i]     = $image->crop($dados[0], $dados[1], 111, 132);
    $outs[$i]     = $crops[$i]->merge($unh,'middle','middle');    
    
    $j = $i+1; // pra usar 1-2-3-4-5 ao invés de 0-1-2-3 etc    
    $paths[$i]    = "unha-$j-".$filename;
    $crops[$i]->saveToFile('./cartelas/estampa'.$paths[$i]);
    $outs[$i]->saveToFile('./cartelas/'.$paths[$i]);
    
    echo "<img src=./cartelas/estampa$paths[$i]><img src=./cartelas/$paths[$i]><BR><BR>";
}

Só não esqueça de definir o resto das crops ali no $dadosCrops.

Link para o comentário
Compartilhar em outros sites

  • 0
Substitui o que vem depois da definição da variável $unh pelo código abaixo:

$dadosCrops = array(
    array(25,50), // x,y do crop1
    array(619,50), // x,y do crop2
    array(25,326), // x,y do crop3
    ...
    ... // coloque aqui o resto
    ...
); 

$crops = array();
$outs = array();
$paths = array();

echo "Imagens geradas:<BR><BR>";

foreach($dadosCrops as $i => $dados) {
    $crops[$i]     = $image->crop($dados[0], $dados[1], 111, 132);
    $outs[$i]     = $crops[$i]->merge($unh,'middle','middle');    
    
    $j = $i+1; // pra usar 1-2-3-4-5 ao invés de 0-1-2-3 etc    
    $paths[$i]    = "unha-$j-".$filename;
    $crops[$i]->saveToFile('./cartelas/estampa'.$paths[$i]);
    $outs[$i]->saveToFile('./cartelas/'.$paths[$i]);
    
    echo "<img src=./cartelas/estampa$paths[$i]><img src=./cartelas/$paths[$i]><BR><BR>";
}

Só não esqueça de definir o resto das crops ali no $dadosCrops.

PERFEITO! Melhor impossível, muito obrigado pela resposta, vou estudá-la e adaptá-la para o meu uso.

Abraço!

Link para o comentário
Compartilhar em outros sites

  • 0
Substitui o que vem depois da definição da variável $unh pelo código abaixo:

$dadosCrops = array(
    array(25,50), // x,y do crop1
    array(619,50), // x,y do crop2
    array(25,326), // x,y do crop3
    ...
    ... // coloque aqui o resto
    ...
); 

$crops = array();
$outs = array();
$paths = array();

echo "Imagens geradas:<BR><BR>";

foreach($dadosCrops as $i => $dados) {
    $crops[$i]     = $image->crop($dados[0], $dados[1], 111, 132);
    $outs[$i]     = $crops[$i]->merge($unh,'middle','middle');    
    
    $j = $i+1; // pra usar 1-2-3-4-5 ao invés de 0-1-2-3 etc    
    $paths[$i]    = "unha-$j-".$filename;
    $crops[$i]->saveToFile('./cartelas/estampa'.$paths[$i]);
    $outs[$i]->saveToFile('./cartelas/'.$paths[$i]);
    
    echo "<img src=./cartelas/estampa$paths[$i]><img src=./cartelas/$paths[$i]><BR><BR>";
}
Só não esqueça de definir o resto das crops ali no $dadosCrops.
foi PERFEITO! Mas infelizmente não funcionou :unsure: Talvez esta classe WideImage não permita este tipo de chamada usando Arrays e etc, ou estou falando besteira? Segue meu código:
<?php

require( "./lib/WideImage.php");

// Example of accessing data for a newly uploaded file
$fileName = $_FILES["uploaded_file"]["name"]; 
$fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"];
// Path and file name
$pathAndName = "cartelas/cart".$fileName;
// Run the move_uploaded_file() function here
$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);
// Evaluate the value returned from the function if needed

$image = WideImage::load($pathAndName);

$unh = WideImage::load("unh11.png");

$dadosCrops = array(
    array(25,50), // x,y do crop1
    array(619,50), // x,y do crop2
    array(25,326), // x,y do crop3
    array(619,326), // x,y do crop4
    array(25,869), // x,y do crop5
    array(619,869), // x,y do crop6
    array(25,1147), // x,y do crop7
    array(619,1147), // x,y do crop8
    array(25,1417), // x,y do crop9
    array(619,1417), // x,y do crop10
   ); 

$crops = array();
$outs = array();
$paths = array();

echo "Imagens geradas:<BR><BR>";

foreach($dadosCrops as $i => $dados) {

  $crops[$i]     = $image->crop($dados[0], $dados[1], 111, 132);
    $outs[$i]     = $crops[$i]->merge($unh,'middle','middle');    
    
    $j = $i+1; // pra usar 1-2-3-4-5 ao invés de 0-1-2-3 etc    
    $paths[$i]    = "unha-$j-".$filename;
    $crops[$i]->saveToFile('./cartelas/estampa'.$paths[$i]);
    $outs[$i]->saveToFile('./cartelas/'.$paths[$i]);
    
    echo "<img src=./cartelas/estampa$paths[$i]><img src=./cartelas/$paths[$i]><BR><BR>";
}
?>

Editado por lags cap
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...