Select Random Image & Create & show it's thumbnail

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
ManosWdd
Δημοσιεύσεις: 288
Εγγραφή: 17 Ιουν 2004 01:48
Τοποθεσία: Θεσσαλονίκη, Ελλάδα.

Select Random Image & Create & show it's thumbnail

Δημοσίευση από ManosWdd » 21 Σεπ 2010 19:05

Καλησπέρα, όπως θα καταλάβατε και από τον τίτλο προσπαθώ μέσα από tutorial και από τις μέχρι τώρα γνώσεις μου να φτιάξω ένα script που:

1. θα διαλέγει μία τυχαία εικόνα.
μέχρι στιγμής το κατάφερα. αλλά θέλω να διαλέγει μέσα από το images/ όλους τους ΥΠΟφακέλους και τις εικόνες που περιέχουν. το οποίο κ δν μπορώ να κάνω.

2. θα δημιουργεί on the fly(όπως διάβασα σε αρκετά tutorial την thumbnail)

3. θα δείχνει την thumbnail.

Αυτά! Πιστεύω ότι είμαι πολύ κοντά αλλά μάλλον θα χρειαστώ την βοήθεια κάποιου πιο έμπειρου..

Παρακάτω θα βρείτε τον μέχρι τώρα κώδικα...

Κώδικας: Επιλογή όλων


<?php

/*******************************************************************************
*  SETTINGS
*
*  See readme.htm file for further instructions!
*******************************************************************************/

/* The default folder with images */
$settings&#91;'img_folder'&#93; = 'gallery/photos/Wallpapers/';

/* File types &#40;extensions&#41; to display */
$settings&#91;'img_ext'&#93; = array&#40;'.jpg','.gif','.png'&#41;;

/* Allow on-the-fly settings override? 0 = NO, 1 = YES */
$settings&#91;'allow_otf'&#93; = 1;


/*******************************************************************************
*  DO NOT EDIT BELOW...
*
*  ...or at least make a backup before you do!
*******************************************************************************/

/* Override type? */
if &#40;$settings&#91;'allow_otf'&#93; && isset&#40;$_GET&#91;'type'&#93;&#41;&#41;
&#123;
	$type = intval&#40;$_GET&#91;'type'&#93;&#41;;
&#125;
else
&#123;
	$type = $settings&#91;'display_type'&#93;;
&#125;

/* Override images folder? */
if &#40;$settings&#91;'allow_otf'&#93; && isset&#40;$_GET&#91;'folder'&#93;&#41;&#41;
&#123;
	$folder = htmlspecialchars&#40;trim&#40;$_GET&#91;'folder'&#93;&#41;&#41;;
    if &#40;!is_dir&#40;$folder&#41;&#41;
    &#123;
    	$folder = $settings&#91;'img_folder'&#93;;
    &#125;
&#125;
else
&#123;
	$folder = $settings&#91;'img_folder'&#93;;
&#125;

/* Make sure images folder ends with an '/' */
if &#40;substr&#40;$folder,-1&#41; != '/'&#41;
&#123;
	$folder.='/';
&#125;

/* Get a list of all the image files */
$flist = array&#40;&#41;;
foreach&#40;$settings&#91;'img_ext'&#93; as $ext&#41;
&#123;
    $tmp = glob&#40;$folder.'*'.$ext&#41;;
    if &#40;is_array&#40;$tmp&#41;&#41;
    &#123;
    	$flist = array_merge&#40;$flist,$tmp&#41;;
    &#125;
&#125;

/* If we have any images choose a random one, otherwise select the "noimg.gif" image */
if &#40;count&#40;$flist&#41;&#41;
&#123;
	$src = $flist&#91;array_rand&#40;$flist&#41;&#93;;
&#125;
else
&#123;
	echo 'empty!! $src';
&#125;

/* Output the image */

//	echo '<img src="'.$src.'" border=0>';













//CREATE THUMBNAIL LEME

// Maximum Width and Height
$maxsize = 100;


// Set a maximum height and width
$width  = $maxsize;
$height = $maxsize;

// Content type
header&#40;'Content-type&#58; image/jpeg'&#41;;

// Get new dimensions
list&#40;$width_orig, $height_orig&#41; = getimagesize&#40;$src&#41;;

if &#40;$width && &#40;$width_orig < $height_orig&#41;&#41; &#123;
	$width = &#40;$height / $height_orig&#41; * $width_orig;
&#125; else &#123;
	$height = &#40;$width / $width_orig&#41; * $height_orig;
&#125;

// Resample
$image_p = imagecreatetruecolor&#40;$width, $height&#41;;
$image   = imagecreatefromjpeg&#40;$filename&#41;;
imagecopyresampled&#40;$image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig&#41;;

// Output
imagejpeg&#40;$image_p&#41;;
imagedestroy&#40;$image&#41;;
imageDestroy&#40;$image_p&#41;;

echo '<img src="'imagejpeg&#40;$image_p&#41;'" border=0>';



exit&#40;&#41;;

?>
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Select Random Image & Create & show it's thumbnail

Δημοσίευση από fafos » 21 Σεπ 2010 21:15

Κώδικας: Επιλογή όλων

<?php

function ListFiles&#40;$dir&#41; &#123;

    if&#40;$dh = opendir&#40;$dir&#41;&#41; &#123;

        $files = Array&#40;&#41;;
        $inner_files = Array&#40;&#41;;

        while&#40;$file = readdir&#40;$dh&#41;&#41; &#123;
            if&#40;$file != "." && $file != ".." && $file&#91;0&#93; != '.'&#41; &#123;
                if&#40;is_dir&#40;$dir . "/" . $file&#41;&#41; &#123;
                    $inner_files = ListFiles&#40;$dir . "/" . $file&#41;;
                    if&#40;is_array&#40;$inner_files&#41;&#41; $files = array_merge&#40;$files, $inner_files&#41;; 
                &#125; else &#123;
                    array_push&#40;$files, $dir . "/" . $file&#41;;
                &#125;
            &#125;
        &#125;

        closedir&#40;$dh&#41;;
        return $files;
    &#125;
&#125;


$all_images = ListFiles&#40;'gallery/photos/Wallpapers'&#41;;//folder me images

$testarr_keys = array_keys&#40;$all_images&#41;;
$testarr_values = array_values&#40;$all_images&#41;;

for &#40;$i = 0; $i <= count&#40;$all_images&#41; - 1; $i++&#41; &#123;
    $ext = explode&#40;'.',$testarr_values&#91;$i&#93;&#41;;
    $ext = end&#40;$ext&#41;;
    $ext = strtolower&#40;$ext&#41;;    
if&#40;$ext == 'jpg' || $ext == 'jpeg' || $ext == 'jpeg'&#41;&#123;
    $images&#91;$testarr_values&#91;$i&#93;&#93; = $testarr_values&#91;$i&#93;;
    &#125;
&#125;
$src =  array_rand&#40;$images&#41;;



//CREATE THUMBNAIL LEME

// Maximum Width and Height
$maxsize = 100;


// Set a maximum height and width
$width  = $maxsize;
$height = $maxsize;

// Content type
header&#40;'Content-type&#58; image/jpeg'&#41;;

// Get new dimensions
list&#40;$width_orig, $height_orig&#41; = getimagesize&#40;$src&#41;;

if &#40;$width && &#40;$width_orig < $height_orig&#41;&#41; &#123;
   $width = &#40;$height / $height_orig&#41; * $width_orig;
&#125; else &#123;
   $height = &#40;$width / $width_orig&#41; * $height_orig;
&#125;

// Resample
$image_p = imagecreatetruecolor&#40;$width, $height&#41;;
$image   = imagecreatefromjpeg&#40;$src&#41;;
imagecopyresampled&#40;$image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig&#41;;

// Output
imagejpeg&#40;$image_p&#41;;
imagedestroy&#40;$image&#41;;
imageDestroy&#40;$image_p&#41;;

?> 

auto to sozeis kapou me kapoio onoma (p.x. randimg.php)

ekei pou thes na deikseis thn photo vazeis aplos ton html kodika gia image me src to prohgoumeno arxeio:

Κώδικας: Επιλογή όλων

<img src="http&#58;//www.tositemoumesa.gr/randimg.php" border=0>

edit: ksexasa to demo: http://istopoli.com/cruise/randimgshow.php
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

ManosWdd
Δημοσιεύσεις: 288
Εγγραφή: 17 Ιουν 2004 01:48
Τοποθεσία: Θεσσαλονίκη, Ελλάδα.

Select Random Image & Create & show it's thumbnail

Δημοσίευση από ManosWdd » 21 Σεπ 2010 21:41

Ekana oti eipes alla pali dn vgazo akri..
ena keno mou vgazei!!
eina idynaton?? :S
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Select Random Image & Create & show it's thumbnail

Δημοσίευση από fafos » 21 Σεπ 2010 21:50

ManosWdd έγραψε:Ekana oti eipes alla pali dn vgazo akri..
ena keno mou vgazei!!
eina idynaton?? :S
to path $all_images = ListFiles('gallery/photos/Wallpapers');//folder me images einai sosto? (xoris slash sto telos)... auto douleuei mono me jpg images..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

ManosWdd
Δημοσιεύσεις: 288
Εγγραφή: 17 Ιουν 2004 01:48
Τοποθεσία: Θεσσαλονίκη, Ελλάδα.

Select Random Image & Create & show it's thumbnail

Δημοσίευση από ManosWdd » 22 Σεπ 2010 08:33

eyxaristo poli gia tin voitheia & gia tin grigori apantisi!!
Se periptosi pou theleis na to deis kiolas:
http://www.aboutraveling.com
Εικόνα

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Select Random Image & Create & show it's thumbnail

Δημοσίευση από abeautifulmind » 23 Σεπ 2010 19:57

kalispera paidia poli kali douleia.
na rotiso kai ego kati.
ginete omos na emfanizei random tis eikones xoris na xreiazete na kanei ananeosi selidas o xristis
mipos thelei ajax gia na ginei?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Select Random Image & Create & show it's thumbnail

Δημοσίευση από fafos » 23 Σεπ 2010 21:44

abeautifulmind έγραψε:kalispera paidia poli kali douleia.
na rotiso kai ego kati.
ginete omos na emfanizei random tis eikones xoris na xreiazete na kanei ananeosi selidas o xristis
mipos thelei ajax gia na ginei?

ginetai.. mporei na sou parousiasei mia mikrh kathysterhsh sthn enallagh eikonon (analoga ton server)...

feiaxneis ta ekshs arxeia:


ri.php:

Κώδικας: Επιλογή όλων

<?
function ListFiles&#40;$dir&#41; &#123;

    if&#40;$dh = opendir&#40;$dir&#41;&#41; &#123;

        $files = Array&#40;&#41;;
        $inner_files = Array&#40;&#41;;

        while&#40;$file = readdir&#40;$dh&#41;&#41; &#123;
            if&#40;$file != "." && $file != ".." && $file&#91;0&#93; != '.'&#41; &#123;
                if&#40;is_dir&#40;$dir . "/" . $file&#41;&#41; &#123;
                    $inner_files = ListFiles&#40;$dir . "/" . $file&#41;;
                    if&#40;is_array&#40;$inner_files&#41;&#41; $files = array_merge&#40;$files, $inner_files&#41;;
                &#125; else &#123;
                    array_push&#40;$files, $dir . "/" . $file&#41;;
                &#125;
            &#125;
        &#125;

        closedir&#40;$dh&#41;;
        return $files;
    &#125;
&#125;


$all_images = ListFiles&#40;'images'&#41;;//folder me images

$testarr_keys = array_keys&#40;$all_images&#41;;
$testarr_values = array_values&#40;$all_images&#41;;

for &#40;$i = 0; $i <= count&#40;$all_images&#41; - 1; $i++&#41; &#123;
    $ext = explode&#40;'.',$testarr_values&#91;$i&#93;&#41;;
    $ext = end&#40;$ext&#41;;
    $ext = strtolower&#40;$ext&#41;;   
if&#40;$ext == 'jpg' || $ext == 'jpeg'&#41;&#123;
    $images&#91;$testarr_values&#91;$i&#93;&#93; = $testarr_values&#91;$i&#93;;
    &#125;
&#125;
$src =  array_rand&#40;$images&#41;;


//echo $src;


?>


<img src="ri2.php?src=<? echo $src;?>" border=0>
allazeis to images me to path opou vriskontai oi photos sou..



ri2.php:

Κώδικας: Επιλογή όλων

<?php
$src = $_GET&#91;src&#93;;

//CREATE THUMBNAIL LEME

// Maximum Width and Height
$maxsize = 200;


// Set a maximum height and width
$width  = $maxsize;
$height = $maxsize;

// Content type
header&#40;'Content-type&#58; image/jpeg'&#41;;

// Get new dimensions
list&#40;$width_orig, $height_orig&#41; = getimagesize&#40;$src&#41;;

if &#40;$width && &#40;$width_orig < $height_orig&#41;&#41; &#123;
   $width = &#40;$height / $height_orig&#41; * $width_orig;
&#125; else &#123;
   $height = &#40;$width / $width_orig&#41; * $height_orig;
&#125;

// Resample
$image_p = imagecreatetruecolor&#40;$width, $height&#41;;
$image   = imagecreatefromjpeg&#40;$src&#41;;
imagecopyresampled&#40;$image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig&#41;;

// Output
imagejpeg&#40;$image_p&#41;;
imagedestroy&#40;$image&#41;;
imageDestroy&#40;$image_p&#41;;

?> 
edo mporeis na allakseis to $maxsize = 200; (megethos mikrografias)



o parakato kodikas tha mpei ekei pou thes na emfanizeis thn photo:

Κώδικας: Επιλογή όλων

<script src="http&#58;//code.jquery.com/jquery-latest.js"></script>



<script>
 $&#40;document&#41;.ready&#40;function&#40;&#41; &#123;
      $&#40;"#randimg"&#41;.fadeIn&#40;"fast"&#41;.load&#40;"ri.php"&#41;;
   var refreshId = setInterval&#40;function&#40;&#41; &#123;
      $&#40;"#randimg"&#41;.fadeOut&#40;"fast"&#41;.load&#40;'ri.php?randval='+ Math.random&#40;&#41;&#41;.fadeIn&#40;1000&#41;;
   &#125;, 10000&#41;;



&#125;&#41;;
</script>

<div id="randimg">please wait...</div>

1. thn jquery an thn kaleis apo prin mhn thn kaleseis pali (<script src="http://code.jquery.com/jquery-latest.js"></script>)


2. h dhmiourgia mikrografion on the fly me GD den einai oti kalytero gia ton server... mhn ton kseskisoume... dine xrono emfanishs ths mikrografias apo 10 deuterolepta kai pano (o arithmos 10000 mesa sto script)

3. to Math.random() to xrhsimopoioume gia ton filo mas ton explorer pou kanei ta dika tou me thn ajax..


demo edo: http://www.istopoli.com/tuts/ri/ (allazei kathe 15 deutera)


...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες