Jump to content
Fórum Script Brasil
  • 0

Ajuda com LOOPS


lags cap
 Share

Question

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>";


?>

Edited by lags cap
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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>";
}
?>

Edited by lags cap
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.8k
    • Total Posts
      648.7k
×
×
  • Create New...