+ Antworten
Ergebnis 1 bis 14 von 14

Thema: Brauche Hilfe bei Counter-Script

  1. #1
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289

    Unhappy Brauche Hilfe bei Counter-Script

    Hi,
    ich weiß, dass es sehr ungeschickt ist, das so zu Coden wie ich es gemacht hab
    Also ich brauche Hilfe: Ich habe einen Counter gecodet, der auf Textdateien zurückgreift usw. zuerst habe ich das ganze so gelößt, dass er den Counterstand nach jedem zeichen geteilt hat und in einen Array geschrieben hat. Für jedes dieser Zeichen hab ich dann das Bild mit der Zahl ausgegeben.
    Jetzt möchte ich das aber ein bisschen erweitern und möchte statt den einzelbildern ein neues Bild generieren.
    Hier mein Code:
    PHP-Code:
        Header("Content-Type: image/jpeg");
    #echo "<br>Aktion: $action<br>"; ### Zum Löschen!
    #echo "<br>Count_ID: $count_id<br>"; ### Zum Löschen!

    ### Alle Buchstaben (groß und klein) und alle nicht nicht alphanumerischen Zeichen werden gelöscht: ###
    $count_id preg_replace("/[a-z_A-Z_\W]/"""$count_id); 

    ### Alle Zahlen und alle nicht nicht alphanumerischen Zeichen werden gelöscht: ###
    $count_style preg_replace("/[0-9_\W]/"""$count_style); 

    if (
    $count_id == OR $count_id == "" OR ereg("[a-z_A-Z_\W]",$count_id))
    {
        
    #echo "<br><-- ERROR! --><br>";
    }
    elseif (
    $count_id!= "" AND ereg("[0-9]",$id) )
    {
        
    $datei fopen("counts/"$count_id".txt","a+");
        
    rewind($datei);
        
    $counterstand fgets($datei);
        
    fclose($datei);
        
    #echo "<br>Counter vorher: $counterstand<br>"; ### Zum Löschen!
        
    if($counterstand == "")
        {
            
    $counterstand 0;
        }
        
    $counterstand++;
        
    $datei fopen("counts/"$count_id".txt","w");
        
    rewind($datei);
        
    fwrite($datei$counterstand);
        
    fclose($datei);
        
        
    ##############
        
        #echo "<br>Counter nachher: ". $counterstand. "<br>";
        
    $letters_count wordwrap($counterstand1"|"1);
        
    $array_count explode("|"$letters_count);
        
        
    $bild == 0;
        foreach(
    $array_count as $l_count)
        {
            
    $pic $count_style"/"$l_count".gif";
            
    ### For Each 1: ###
            
    $img_a[$bild] = imagecreatefromgif($pic);
            
    $size[$bild] = getimagesize($pic);
            
    $gesamtbreite $gesamtbreite $size[$bild][0];
            
    $bild++;
        }
        
    $bild == 0;
        
        
    $img_end ImageCreate($gesamtbreite$size[$bild][1]); # Hier wird das Bild einer Variable zu gewiesen
        
    $black ImageColorAllocate($img_end000); # Hier wird der Variable $black die Farbe schwarz zugewiesen
        # Die drei nullen bestehen aus den RGB-Parametern. 255, 0, 0 wäre z.B. rot. ($img muss am Anfang stehen)
        
    ImageFill($img_end00$black); # Hier wird mit ImageFill() das Bild gefüllt an den Koordinaten 0 und 0 mit der Variable $black, also Schwarz
        
    Imagejpeg($img_end); # Hier wird das Bild PNG zugewiesen
        
        
    foreach($array_count as $l_count)
        {
            
    $pic $count_style"/"$l_count".gif";
            
    ### For Each 2: ###
            
    $width $size[$bild][0];
            
    $height $size[$bild][1];
            
    imagecopy($img_end$img_a[$bild], $breite_x"0""0""0"$width$height);
            
    $breite_x $breite_x $size[$bild][1];
            
    $bild++;
        }
    imagejpeg($img_end); 
    Jetzt kommt aber immer
    Code:
    Die Grafik "http://board9.bo.funpic.de/home/counter/index.php?a=count&id=2&s=c" kann nicht angezeigt werden, weil sie Fehler enthält.
    Achja, über diesem PHP-Code hab ich noch das hingemacht:
    PHP-Code:
    $action $_GET['a'];
    $count_id $_GET['id'];
    $count_style $_GET['s'];
    $count_style strtolower ($count_style);
    if (
    $action == "")
    {
        
    $action "count";
    }
    if (
    $count_id == "")
    {
        
    $count_id "0";

    kann mir jemand sagen, entweder wo mein Fehler (meine Fehler vermutlich) liegen und wie ich sie beheben kann oder wie ich aus 3-8 einzelbildern ein neues bild generieren kann?
    Geändert von Dome (28.09.2005 um 14:57 Uhr)
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

  2. #2
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289
    kann mir neimand helfen oder sagen wie ich mehere bilder per php ineinanderfügen (zusammenfügen) kann?
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

  3. #3
    TP-Veteran heatseeker bringt sich richtig ein heatseeker bringt sich richtig ein Avatar von heatseeker
    Registriert seit
    Jun 2003
    Ort
    Aachen, Germany, Germany
    Beiträge
    1.165

  4. #4
    TP-Specialist theo bringt sich richtig ein Avatar von theo
    Registriert seit
    Apr 2002
    Ort
    743, evergreen terrace
    Beiträge
    2.346
    an deiner stelle wuerde ich den teil mit dem bildaufbau aus dem script auslagern. es steht zu vermuten, dass hier ein fehler in einem ganz anderen teil des scripts aufgetreten sein koennte und somit ein header vor dem bildheader ausgegeben wird. damit bekommst du auf jeden fall eine fehlerausgabe fuer das bild. und die kann z.b. so aussehen wie die, die du gepostet hast.
    vielleicht bekommst du dann eine eindeutigere fehlerausgabe raus.

    gruss
    hardy
    /b{2}|[^(bb)]/

    [Workshop] Nested sets

  5. #5
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289
    werd mich bald darüm kümmern, da ich zuerst meinen pc formatieren muss
    hatte nen fehler im betriebssystem....
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

  6. #6
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Hallo Dome.. Hab im Prinzip genau das Script was du suchst selbst mal gecodet. Wenn ich heute abend wieder an meinem Rechner bin, dann setze ich den Quältext hier mal rein..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  7. #7
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289
    ok danke! und mein pc funzt auch wieder
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

  8. #8
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    PHP-Code:
    <?php
    //Zahl wird in String umgewandelt
    settype($number,"string"); 

    //Arrays für die wichtigen Daten (Dateiname, Bildbreite)
    $files=array();
    $size=array();

    //Bilder werden bestimmt, Größe ausgelesen und in die entsprechenden Array gespeichert
    for($x=0;$x<strlen($number);$x++) {
    $file="{$number[$x]}_rot.png"//Hier den Dateinamen angeben
    $file_size getimagesize("Zahlen/{$file}"); //Hier vorher den relativen Pfad ändern
    array_push($files,$file);
    array_push($size,$file_size[0]);
    }

    //Gesamtgröße des neuen Bildes wird ermittelt
    $sum=array_sum($size);
    //Neues bild wird erstellt. Alle benutzten Bilder sind 25px hoch
    $image imagecreatetruecolor($sum,25);

    //Bilder werden nacheinander in das neue Bild kopiert. $x_dist gibt die Breite des Vorherigen Bildes an und damit den int_x Wert, wohin kopiert wird
    $dist=array();
    for(
    $x=0;$xcount($files);$x++) {
      
    $pfad="Zahlen/{$files[$x]}";
    $img=imagecreatefrompng($pfad);
    $img_size=$size[$x];
    $x_dist=array_sum($dist);
    array_push($dist,$img_size);

    ImageCopy($image,$img$x_dist,00,0$img_size,20);
    }

    //Farbe wird transparent gesetzt..

    $farbe_b=imagecolorallocate($image,0,0,0);
    imagecolortransparent($image,$farbe_b);

    //Bild wird ausgegeben
    header("Content-Type: image/png");
    imageinterlace($image,1);
    ImagePNG($image);
    ImageDestroy ($image);
    ?>
    Hoffe, es hilft dir.
    $number ist die Zahl, die Später ausgegeben wird. Du musst mehrere Graphiken mit fortlaufender nummerierung anfertigen. Das ist jetzt für pngs ausgelegt, funktioniert ist aber nicht schwer für andere Graphikformate umzuschreiben..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  9. #9
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289
    ich werds morgen testen...
    ich hab morgen fr&#252;h ein eignungstest, deswegen erst gegen nachmittag...
    aber auf jeden fall danke!
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

  10. #10
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289
    also funzt super! Danke!
    nur noch eins:
    bei machen "styles" gibts unten einen scharzen rand, wie kann ich den wegmachen? ==> Anhang
    achja ich hab den transparenten hintergrund abgeschaltet...
    Angehängte Grafiken  
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

  11. #11
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Ich glaube, die Gr&#246;&#223;enangaben passen in meinem Script nicht so ganz. Da wird ein 25px gro&#223;es Bild erstellt, die Bilder aber nur in 20px gr&#246;&#223;e reinkopiert..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  12. #12
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289
    ich dachte eigentlich dass ich die gr&#246;&#223;e auf $size[1] gestellt hatte...
    hier mal das script...
    PHP-Code:
    <?php
    $action 
    $_GET['a'];
    $count_id $_GET['id'];
    $count_style $_GET['s'];
    $count_style strtolower ($count_style);
    if (
    $action == "")
    {
        
    $action "count";
    }
    if (
    $count_id == "")
    {
        
    $count_id "0";
    }
    if (
    $count_style == "")
    {
        
    $count_style "a";
    }

    #################################################################################################################
    ....
    PHP-Code:
    #    Header("Content-Type: image/jpeg");
    #echo "<br>Aktion: $action<br>"; ### Zum Löschen!
    #echo "<br>Count_ID: $count_id<br>"; ### Zum Löschen!

    ### Alle Buchstaben (groß und klein) und alle nicht nicht alphanumerischen Zeichen werden gelöscht: ###
    $count_id preg_replace("/[a-z_A-Z_\W]/"""$count_id); 

    ### Alle Zahlen und alle nicht nicht alphanumerischen Zeichen werden gelöscht: ###
    $count_style preg_replace("/[0-9_\W]/"""$count_style); 

    if (
    $count_id == OR $count_id == "" OR ereg("[a-z_A-Z_\W]",$count_id))
    {
        
    #echo "<br><-- ERROR! --><br>";
    }
    elseif (
    $count_id!= "" AND ereg("[0-9]",$id))
    {
        
    $datei fopen("counts/"$count_id".txt","a+");
        
    rewind($datei);
        
    $counterstand fgets($datei);
        
    fclose($datei);
        
    #echo "<br>Counter vorher: $counterstand<br>"; ### Zum Löschen!
        
    if($counterstand == "")
        {
            
    $counterstand 0;
        }
        
    $counterstand++;
        
    $datei fopen("counts/"$count_id".txt","w");
        
    rewind($datei);
        
    fwrite($datei$counterstand);
        
    fclose($datei);
        
        
    ##############
        
        #echo "<br>Counter nachher: ". $counterstand. "<br>";
        
    $letters_count wordwrap($counterstand1"|"1);
        
    $array_count explode("|"$letters_count);



    #    $bild == 0;
    #    foreach($array_count as $l_count)
    #    {
    #        $pic = $count_style. "/". $l_count. ".gif";
    #        ### For Each 1: ###
    #        $img_a[$bild] = imagecreatefromgif($pic);
    #        $size[$bild] = getimagesize($pic);
    #        $gesamtbreite = $gesamtbreite + $size[$bild][0];
    #        $bild++;
    #    }
    #    $bild == 0;
    #    
    #    $img_end = ImageCreate($gesamtbreite, $size[$bild][1]); # Hier wird das Bild einer Variable zu gewiesen
    #    $black = ImageColorAllocate($img_end, 0, 0, 0); # Hier wird der Variable $black die Farbe schwarz zugewiesen
    #    Die drei nullen bestehen aus den RGB-Parametern. 255, 0, 0 wäre z.B. rot. ($img muss am Anfang stehen)
    #    imagefill($img_end, 0, 0, $black); # Hier wird mit ImageFill() das Bild gefüllt an den Koordinaten 0 und 0 mit der Variable $black, also Schwarz
    #    imagejpeg($img_end); 
    #    
    #    foreach($array_count as $l_count)
    #    {
    #        $pic = $count_style. "/". $l_count. ".gif";
    #        ### For Each 2: ###
    #        $width = $size[$bild][0];
    #        $height = $size[$bild][1];
    #        imagecopy($img_end, $img_a[$bild], $breite_x, "0", "0", "0", $width, $height);
    #        $breite_x = $breite_x + $size[$bild][1];
    #        $bild++;
    #    }
    #imagejpeg($img_end); 
    }

    $number $counterstand;
    ################################################# Imagescript Anfang #################################################
    //Zahl wird in String umgewandelt
    settype($number,"string"); 

    //Arrays für die wichtigen Daten (Dateiname, Bildbreite)
    $files=array();
    $size=array();

    //Bilder werden bestimmt, Größe ausgelesen und in die entsprechenden Array gespeichert
    for($x=0;$x<strlen($number);$x++)
    {
        
    $file="{$number[$x]}.png"//Hier den Dateinamen angeben
        
    $file_size getimagesize($count_style"/{$file}"); //Hier vorher den relativen Pfad ändern
        
    array_push($files,$file);
        
    array_push($size,$file_size[0]);
    }

    //Gesamtgröße des neuen Bildes wird ermittelt
    $sum=array_sum($size);
    //Neues bild wird erstellt. Alle benutzten Bilder sind 25px hoch
    $image imagecreatetruecolor($sum,$file_size[1]);

    //Bilder werden nacheinander in das neue Bild kopiert. $x_dist gibt die Breite des Vorherigen Bildes an und damit den int_x Wert, wohin kopiert wird
    $dist=array();
    for(
    $x=0;$xcount($files);$x++)
    {
        
    $pfad$count_style"/{$files[$x]}";
        
    $img=imagecreatefrompng($pfad);
        
    $img_size=$size[$x];
        
    $x_dist=array_sum($dist);
        
    array_push($dist,$img_size);
        
        
    ImageCopy($image,$img$x_dist,00,0$img_size,20);
    }

    //Farbe wird transparent gesetzt..

    $farbe_b=imagecolorallocate($image,0,0,0);
    #imagecolortransparent($image,$farbe_b); //Farbe wird transparent gesetzt..

    //Bild wird ausgegeben
    header("Content-Type: image/png");
    imageinterlace($image,1);
    ImagePNG($image);
    ImageDestroy ($image);
    ################################################# Imagescript Ende ################################################# 
    &#220;berall wo # davor steht, wollte ich es nicht weg machen, kann ja sein, dass ich nen fehler gemacht hab...
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

  13. #13
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Adromir hat Dir doch den Anhaltspunkt geliefert.
    Spiel doch mit der Zeile
    ImageCopy($image,$img, $x_dist,0, 0,0, $img_size,20);

    statt 20 nimm 25 und schaus Dir an


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  14. #14
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289
    sorry hab zu spät gelesen und ich habs dann selber gefunden
    also ich hab jetzt einfach
    "ImageCopy($image,$img, $x_dist,0, 0,0, $img_size,20);"
    umgeändert in
    "ImageCopy($image,$img, $x_dist,0, 0,0, $img_size,$file_size[1]);"

    dann kann man nämlich so große bilder wie man will damit verarbeiten!

    aber nochmal danke an St@eff.en und natürlich auch an Adromir und alle anderen!

    es funzt wirklich super!
    Geändert von Dome (09.10.2005 um 01:42 Uhr)
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51