Ankündigung

Einklappen
Keine Ankündigung bisher.

.jpg Bilder in EIN .gif umwandeln

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • reaver
    hat ein Thema erstellt .jpg Bilder in EIN .gif umwandeln.

    .jpg Bilder in EIN .gif umwandeln

    Hi
    habe einen ordner in dem schon .jpg bilder sind die so wie sie sind "einfach" als .gif zusammengeführt werden sollen.
    Habe bereits folgendes programmiert:
    PHP-Code:
    <?php
    /***************************************************************************
    *Erstellt: 11.06.2008 / VON Reaver
    *Geändert: DATUM ZEIT / VON
    *Giferstellung aus .jpg Dateien, Ordner wird vorgegeben.

    ***************************************************************************/

    $array=array();

    function 
    get_dir($dir)
    {
        global 
    $array;
        
    $fp=opendir($dir);
        while(
    $datei=readdir($fp))
        {
            
    $path_parts pathinfo($datei);
            
    $endung=".".$path_parts["extension"];
            
            if (
    $endung=".jpg"&& !(is_dir($fp))&& $datei!="." && $datei!="..")
            {
                
    $array[]=$datei;
                
            }
            
        }
        
    sort($array);
        
    print_r($array);
    }
    get_dir("C:/xampp/htdocs/projekte/Gif erstellen/GIF/")
    ?>
    Die .jpg haben als namen ein Datum. Ich soll die Bilder von alt nach neu als .gif zusammenführen im Array steht bei mir jetzt das:

    Array
    (
    [0] => 2007_10_04_geomap.jpg
    [1] => 2007_10_12_geomap.jpg
    [2] => 2007_10_20_geomap.jpg
    [3] => 2007_10_27_geomap.jpg
    [4] => 2007_11_03_geomap.jpg
    [5] => 2007_11_10_geomap.jpg
    [6] => 2007_11_17_geomap.jpg
    [7] => 2007_11_24_geomap.jpg
    [8] => 2007_12_01_geomap.jpg
    [9] => 2007_12_08_geomap.jpg
    [10] => 2007_12_15_geomap.jpg
    [11] => 2007_12_22_geomap.jpg
    [12] => 2007_12_29_geomap.jpg
    [13] => 2008_01_06_geomap.jpg
    [14] => 2008_01_13_geomap.jpg
    [15] => 2008_01_20_geomap.jpg
    [16] => 2008_01_27_geomap.jpg
    [17] => 2008_02_03_geomap.jpg
    [18] => 2008_02_10_geomap.jpg
    [19] => 2008_02_17_geomap.jpg
    [20] => 2008_02_24_geomap.jpg
    [21] => 2008_03_02_geomap.jpg
    [22] => 2008_03_09_geomap.jpg
    [23] => 2008_03_16_geomap.jpg
    [24] => 2008_03_23_geomap.jpg
    [25] => 2008_03_30_geomap.jpg
    [26] => 2008_04_06_geomap.jpg
    [27] => 2008_04_13_geomap.jpg
    [28] => 2008_04_20_geomap.jpg
    [29] => 2008_04_27_geomap.jpg
    [30] => 2008_05_07_geomap.jpg
    [31] => 2008_05_14_geomap.jpg
    [32] => 2008_05_21_geomap.jpg
    [33] => 2008_05_28_geomap.jpg
    [34] => 2008_06_04_geomap.jpg
    )
    wie man sieht ist alles schon richtig im Array drinne. Hab mal ein wenig gegooglet aber nicht wirklich was gefunden womit ich mit php ein gif erstellen kann. Oft war von Flash die rede, aber ich habe davon noch weniger Ahnung als von PHP Gibts eine Möglichkeit ein Gif aus meinen jpg dateien zu erstellen?

  • Chriz
    antwortet
    Crossposting, Thread geschlossen.

    Einen Kommentar schreiben:


  • reaver
    antwortet
    thx bin kurz davor es zu haben mit imagemagick
    PHP-Code:
    <?php
    /***************************************************************************
     *Erstellt: 11.06.2008 / VON Reaver
     *Geändert: DATUM ZEIT / VON
     *Giferstellung aus .jpg Dateien, Ordner wird vorgegeben.
     *
     ***************************************************************************/

    $array=array();
    $i=1;
    $j=1;
    function 
    convert_all($dir)
    {
        global 
    $array,$i;
        
    $fp=opendir($dir);
        
        while(
    $datei=readdir($fp))
        {
            
            
    $path_parts pathinfo($datei);
            
    $endung=".".$path_parts["extension"];
            if (
    $endung=".jpg"&& !(is_dir($fp))&& $datei!="." && $datei!="..")
            {
                
                
    $array[]=$datei;
                
    $i++;        
            }
            
        }
        
    $anzahl=count($array);
        
    sort($array);
        for (
    $i=1$i<$anzahl+1$i++) 
        {
        
    rename($dir.$array[$i-1],$dir."Bild ".$i.".gif");
        
    $command "C:\\Program Files\\ImageMagick-6.4.1-Q16\\convert -delay 250 -loop 1 gifname*.gif endbild.gif";
        
    $output shell_exec($command);
        }
    }
    function 
    convert_Jpg_to_Gif($dir
    {
        
    $dir substr($dir, -1) === '/' $dir $dir '/';
       
        
    delete_old_files($dir);
        
        
    $fp=opendir($dir);
        
    mkdir ($dir ."neu/"0700);
        while(
    $datei=readdir($fp)) 
        {
            
    $path_parts pathinfo($datei);
            
    $endung=".".$path_parts["extension"];
            if (
    $endung=".jpg"&& !(is_dir($fp))&& $datei!="." && $datei!=".."&&$endung !="." && $endung!=".."
            {
                
    $jpg imagecreatefromjpeg($dir $datei);
                
    $gifName $dir ."neu/"preg_replace('#.jpg$#msi''.gif'$datei);
                
    imagegif($jpg$gifName);
                
    imagedestroy($jpg);
                echo 
    $dir $datei ' wurde als ' $gifName ' neu gespeichert.<br />';
                
    $j++;
            }
        }
        
    convert_all("./GIF/neu/");
    }

    function 
    delete_old_files($dir)
    {
        
    $newdir=$dir."neu/";
        
    $handle opendir($newdir);
        while (
    $file readdir ($handle))
        { 
             if(
    strstr($file".gif"))
            {
                
                 
    unlink($newdir.$file);
                 
              }
        }
        
    closedir($handle);
        
    rmdir($newdir);
    }

    convert_Jpg_to_Gif("./GIF/");  
    ?>
    Problem ist jetzt noch an der Stelle
    PHP-Code:
    $command "C:\\Program Files\\ImageMagick-6.4.1-Q16\\convert -delay 250 -loop 1 gifname*.gif endbild.gif";
        
    $output shell_exec($command); 
    Kumpel hat unter "cmd" bei windows das hinbekommen damit aus allen .gifs die ich erstellt habe ein animiertes .gif zu machen =)
    Nur ich kriege es grade nich hin.
    Wenn ihr euch fragt wieso ich alte Dateien lösche, das kommt daher weil das .gif immer erweitert wird also hab ich einen ordner namens neu gemacht in dem die .jpg's immer in .gif umgewandelt werden. Soll ein neues .gif erstellt werden so werden alle alten .gif gelöscht und die .jpg werden nochmal komplett neu umgewandelt.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Also ich gehe jetzt mal von deinem Code aus den du oben gepostet hast, also ein Array mit den Grafiken ist vorhanden.

    Als Ansatz:
    PHP-Code:
    <?
    $adresse = "/images";
    ?>
    <script type="text/javascript">
    var imgarray;
    <?
      foreach($array as $key => $dateiname)
      {
        echo "imgarray[$key] = '$adresse/$dateiname';"; // übergabe der Variablen an Javascript
      }
    ?>
    </script>

    Einen Kommentar schreiben:


  • reaver
    antwortet
    über imagemagick bin ich auch schon gestoßen, da ich aber noch ein Neuling in php bin steh ich da vor einer hohen wand^^

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Um animierte gifs zu erstellen, musst du die meines Wissens jedes Bild als einen eigenen Layer eines Formates, das Layers kennt (psd, xcf, etc) erstellen, und dann als (animiertes) gif speichern. Ich vermute, dass das mit imagemagick möglich wäre. Das kannst du über Systemfunktionen aufrufen. Es gibt auch noch eine pecl-Klasse dazu, mit der man imagemagick-Funktionen direkt aus PHP benutzen kann.

    Einen Kommentar schreiben:


  • reaver
    antwortet
    ja den tipp hab ich auch bekommen aber habe von javascript noch weniger ahnung als von php, nämlich keine
    Habe auch schon diesen vorschlag bekommen:
    PHP-Code:
     <img id="test" src="">
    <script language="text/javascript">
    var images = <?php echo json_encode(get_dir("C:/xampp/htdocs/projekte/Gif erstellen/GIF/")); ?>;
    var offset = 0;
        function changeImage() 
        {
              document.getElementById('test').src = images[offset];
            offset++;
            if(offset < images.lenght) 
            {
            window.setTimeout('changeImage', 1000);
            }
        }

    changeImage();

    </script>
    aber der funktioniert leider nicht

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Man könnte sowas auch mit JavaScript machen

    Einen Kommentar schreiben:


  • Frank
    antwortet
    Animierte GIFs mit PHP zu erstellen ist AFAIK nicht möglich.
    Du kannst dir höchstens die GIF-Spezifikationen durchlesen
    http://www.w3.org/Graphics/GIF/spec-gif89a.txt
    und dann selbst per Hand das Bild erzeugen. Dann musst du allerdings die Lizenz an UniSys bezahlen.

    Einen Kommentar schreiben:


  • reaver
    antwortet
    aus borgholzhausen komme ich =)
    Ne hab mehrere BIlder die ein animiertes gif werden sollen. Auf den Bildern ist ne Deutschlandkarte mit ballungsgebieten, die sich mit der Zeit verändern und das möchte ich halt als .gif haben =). Das ist aber nur ein Beispiel von Bildern die ich grade habe. Ich brauche halt n script dass das für spätere Bilder auch macht.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Wieso, wo kommstn her?

    Du willst ne Art Collage machen oder wie?

    Einen Kommentar schreiben:


  • reaver
    antwortet
    hey du kommst aus meiner nähe *g*
    Naja da hab ich schon geschaut und auch schon im internet geschaut. Aber damit ist es nur möglich EIN .jpg in EIN .gif umzuwandeln, aber ich möchte gerne
    20 .jpg in 1 .gif umwandeln

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Manual, da werden sie geholfen: PHP: Image - Manual

    Einen Kommentar schreiben:

Lädt...
X