Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-11-2010, 02:39   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
thumbs erstellen von ganzen bildern in einem ordner

wie schon der titel andeutet, ich suche nach einen möglichkeit, thumbs aus bildern aus einem ordner zu erstellen.

habs jetz folgender code gefunden, der dazu dient, bilder in einem vorgegebener verzeichnis mit entspechender informationen, wie url, breite etc. in arrays zum ausgabe am browser speichert.


PHP-Code:
<?php 

$img 
= array();
$imgH = array();
$imgH = array();
$imgS = array();

$i=0;

$ordner "bilder/";
$verzeichnis=opendir ($ordner);

while (
$bilder readdir ($verzeichnis)){
    if (
$bilder == "." or $bilder == ".." ){
    
    }else{
        
        
$i+=1;
        
        if(
strtolower(substr($bilder,-4))==".jpg"){
            
$bildURL "$ordner$bilder";
            
$bildGroesse getimagesize($bildURL);
            
$groesse filesize($bildURL);
            
$bildHoehe urlencode($bildGroesse[1]);
            
$bildBreite urlencode($bildGroesse[0]);
            
$dateiname=substr($bilder,0,-4);
                            
            
$img $bildURL ;
            
$imgW $bildBreite;
            
$imgH $bildHoehe;
            
$imgS $groesse/1024;
                        
            echo 
$img " - " $imgW " - " $imgH " - " $imgS;
            echo 
"<br/>";
        }
        
    }
}

?>

dann habe ich folgender code gefunden, der thumbsnails aus der bildern in inem ordner erstellt.
PHP-Code:
<?php 

function createThumbs($pathToImages$pathToThumbs$thumbWidth ){

  
$dir opendir$pathToImages );
  while (
false !== ($fname readdir$dir ))) {
    
$info pathinfo($pathToImages $fname);
    if ( 
strtolower($info['extension']) == 'jpg' ) {
      echo 
"Creating thumbnail for {$fname} <br />";
      
$img imagecreatefromjpeg"{$pathToImages}{$fname}" );
      
$width imagesx$img );
      
$height imagesy$img );
      
$new_width $thumbWidth;
      
$new_height floor$height * ( $thumbWidth $width ) );
      
$tmp_img imagecreatetruecolor$new_width$new_height );
      
imagecopyresized$tmp_img$img0000$new_width$new_height$width$height );
      
imagejpeg$tmp_img"{$pathToThumbs}{$fname}" );
    }
  }
  
closedir$dir );
}

createThumbs("bilder/","thumbs/",100);
?>
nun meiner frage ist, wie kann ich der thumbs function verändern, damit erst schaut, ob breit einige thumbs vorhanden sind oder nicht. weil jedesmal wenn ich der script aufrufe, erstellt immer von der ganzen bilder thumbs. auch wenn mal schon erstellt wurden.
es soll quasi nur von der bildern thumbs erstellen, von dem auch keiner gibt.

Geändert von beto2010 (13-11-2010 um 03:31 Uhr)
beto2010 ist offline   Mit Zitat antworten
Alt 13-11-2010, 08:26   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Das kannst du ganz einfach indem du mit
PHP-Code:
if( file_exists"{$pathToThumbs}{$fname}" ){ 

     continue;


zuerst prüfst ob die Datei bereits vorhandne ist. Wenn ja wird mit continue; der Rest der Schlaufe übersprungen und mit dem nächsten Bild fortgefahren. Die Bedingung muss natürlich noch vor dem Erstellen des neuen Bildes eingefügt werden.
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 13-11-2010, 22:53   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
ok danke habs hinbekommen.

ich benutze folgender code um verzeichnisse, in einem ordner zu bekommen.

PHP-Code:
<?php 
$strang 
"";
$pfad "bilder";
$verz opendir ($pfad);
while (
$entry readdir ($verz)) 
{
        if (
$entry == "." or $entry == ".." 
        {
            
#nothing
        
}else{
        
            
$suchstring substr_count($entry".");
            if(
$suchstring == 0)
            {
            
$strang $strang $entry ."|";
            }        
        
        }
}
$str=substr($strang,0,-1);

?>

ich wollte der code so erweitern, dass ich gleich auch der anzahl der bilder, die sich in der vorhendener verzeichnisse befindet merke und ein zufällige bild von der vorhandene verzeichnisse ausgeben.

PHP-Code:
<?php 
$strang 
"";
$pfad "bilder";
$verz opendir ($pfad);
while (
$entry readdir ($verz)) 
{
        if (
$entry == "." or $entry == ".." 
        {
            
#nothing
        
}else{
        
            
$suchstring substr_count($entry".");
            if(
$suchstring == 0)
            {
            
$strang $strang $entry ."|";
            }
            
            
            
$i 0;
        
            while (
$file readdir($verz)) {
                if (
$file != ".") {
                    if (
$file != ".." && strpos($file".jpg"0) > 0)  {
                        
$i ++;
                        echo 
$file;
                    }
                }
            }
            
closedir($verz);
            
        
        }
}
$str=substr($strang,0,-1);
?>
es klappt aber nicht.

wie kann ich auch die dateien in der vorhandene verzeichnisse bekomme?
beto2010 ist offline   Mit Zitat antworten
Alt 14-11-2010, 20:49   #4 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Verzeichnisse liest du einfacher mit PHP: glob - Manual aus

PHP-Code:
foreach ( glob("images/{*.jpg,*.gif,*.png}"GLOB_BRACE) as $filename) {
    echo 
"$filename size " filesize($filename) . "\n";

__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 15-11-2010, 08:43   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
PHP-Code:
$verzeichnisse glob("bilder/*"GLOB_ONLYDIR);  

foreach (
$verzeichnisse as $verzeichnis){
    
$str =  $verzeichnis "|";
    
$str1 =  count(glob($verzeichnis."/*.{jpg,gif,png}"GLOB_BRACE)) . "|"

    echo 
$str;
    echo 
"<br/>";
    echo 
$str1;
    echo 
"<br/>";

danke klappt

es soll aber GLOB_BRACE nicht auf alle systeme laufen.

habs daher versucht, die file types in array zu packen um zu filtern.

PHP-Code:
<?php

$entry 
= array("jpg""png");
$verzeichnisse glob("bilder/*"GLOB_ONLYDIR);  
$test array_filter($entry);
foreach (
$verzeichnisse as $verzeichnis)

    
$str =  $verzeichnis "|";
    
$str1 =  count(glob($verzeichnis "/*.".$test)). "|"

    echo 
$str;
    echo 
"<br/>";
    echo 
$str1;
    echo 
"<br/>";

?>
klappt aber nicht

Geändert von beto2010 (15-11-2010 um 08:44 Uhr)
beto2010 ist offline   Mit Zitat antworten
Alt 15-11-2010, 08:51   #6 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Zitat:
es soll aber GLOB_BRACE nicht auf alle systeme laufen.
Wichtig ist doch nur dass es auf DEINEN Systemen läuft. GLOB_BRACE läuft praktisch überall ausser eben Solaris. Aber bitte, wer benutzt das schon?
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 15-11-2010, 08:52   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
Zitat:
Zitat von nightflyer Beitrag anzeigen
wichtig ist doch nur dass es auf deinen systemen läuft. Glob_brace läuft praktisch überall ausser eben solaris. Aber bitte, wer benutzt das schon?
danke
beto2010 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilderlaufband mit Bildern aus Ordner erstellen sadness Flash Einsteiger 7 12-09-2007 12:22
Bilderwechsel/Slideshow mit Thumbs aus Ordner? Marquez Flash Einsteiger 3 23-11-2006 09:35
XML erstellen und aus einem Ordner lesen Exelcius Flash Einsteiger 12 16-11-2006 15:09
Laden von Bildern aus einem Ordner lottokingmartin Flash MX 1 24-04-2005 19:56
ganzen ordner uploaden? pixon PHP und MySQL 9 15-01-2004 00:58


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele