Autor Zpráva
dimmuboy
Profil *
Zdravim,
mam tu problem s ktorym si neviem rady. Spravil som si skript ktory by mal z priecinku nahodne vybrat 3 obrazky, ktore sa nebudu opakovat, a vlozi ich do jedneho cierneho obrazku.

Problem je ze kusok skriptu ktory tie obrazky nahodne vytiahne z priecinka sam o sebe funguje a aj ten ktory vlozi tie 3 obrazky do jedneho, no spolu v jednom mi to nefunguje.

Obrazok by mal vyzerat takto:

A tu je zdrojak:
<?php
function imgRand( $ar ) {
   mt_srand(( double )microtime() * 1000000 );
   $num = array_rand( $ar );
   return $ar[$num];
}

function imgArray() {
   $path = 'img/kolkaren6.6.6/thumbs/';
   $dir = opendir( $path );
   while( $file = readdir( $dir )) {
      if( $file != '.' && $file != '..' ) {
         $nofiles++;
         $files[$nofiles]=$file;
      }
   }
   closedir( $dir );
   return $files;
}

// randomize images //

$files = imgArray();
$img1 = imgRand( $files );
$img2 = imgRand( $files );
$img3 = imgRand( $files );
while( $img1 == $img2 ) {
   $img2 = imgRand( $files );
}
while(( $img1 == $img3 ) || ( $img2 == $img3 )) {
   $img3 = imgRand( $files );
}

///////////////////////////////////////
// Toto je ten zvysok zdrojaku //
///////////////////////////////////////

// create cover //

$dest = imagecreatefromjpeg( 'blank.jpg' );
$src1 = imagecreatefromjpeg( $img1 );
$src2 = imagecreatefromjpeg( $img2 );
$src3 = imagecreatefromjpeg( $img3 );
$size1 = getimagesize( $img1 );
$size2 = getimagesize( $img2 );
$size3 = getimagesize( $img3 );

imagecopymerge( $dest, $src1, 40, 5, 0, 0, $size1[0], $size1[1], 100 );
imagecopymerge( $dest, $src2, 5, 120, 0, 0, $size2[0], $size2[1], 100 );
imagecopymerge( $dest, $src3, 70, 70, 0, 0, $size3[0], $size3[1], 100 );

header( 'Content-Type: image/gif' );
imagejpeg( $dest );

?>
dimmuboy
Profil *
Zabudol som este doplnit ze co na tom nefunguje :)
Tvari sa to ze je vsetko v poriadku, ale nikdy sa v tom vytvorenom obrazku nezobrazia vsetky tie 3 male. Bud ziaden, jeden, dva ale nikdy nie vsetky 3.
Davex
Profil
Jsou všechny soubory v adresáři thumbs/ obrázky ve formátu JPEG? Proč posíláš výsledný obrázek ve formátu JPEG s MIME typem image/gif?
dimmuboy
Profil *
aha.. sakra to som si nevsimol ze tam je gif, hned to idem opravit :D a ano vsetky su vo formate JPEG
Davex
Profil
Ve jménu načítaného obrázku chybí celá cesta, ale potom nechápu, proč se tam některé načtou.

Mělo by se to vyřešit nějak takto:
$path = 'img/kolkaren6.6.6/thumbs/';
$src1 = imagecreatefromjpeg( $path . $img1 );
$src2 = imagecreatefromjpeg( $path . $img2 );
$src3 = imagecreatefromjpeg( $path . $img3 );

To samé u zjištění velikosti.
dimmuboy
Profil *
hmm tak tomu tiez moc nechapem ale ono to bude zrejme chyba v tom mojom while
dimmuboy
Profil *
tak uz som to opravil, aby som to nemusel dopisovat aj pri size zmenil som to uz v
$img1 = $path.imgRand( $files );
a prisiel som aj nato preco mi to sem-tam nacitalo aj ked tam chybala cesta. Zabudol som totiz zmazat par obrazkov v ./ uz len nejako prerobit tie dva while kedze blbnu
djkmito
Profil
Píšem zo starého nicku, lebo som konečne prišiel na to ako sa tu prihlasuje :D
Už mi to funguje, chyba naozaj nebola v tých cykloch while, ale v mojej nepozornosti. Stačilo pridať tú cestu všade kde to bolo potrebné, a teraz to už funguje ako má.
Ďakujem za pomoc ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0