Ankündigung

Einklappen
Keine Ankündigung bisher.

PNG Transparenz geht nach generieren verloren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PNG Transparenz geht nach generieren verloren

    Hallo!!

    Ich hab ein Problem mit meinem Tickerscript . Transparente Ticker werden nach dem generieren mit einem farbigen Hintergrund angezeigt .
    Bastle jetzt schon seit Tagen mit allen möglichen Codes herum die das beheben sollen , aber es funktioniert nicht . Entweder zeigt er dann gar keine Ticker mehr an , oder der Hintergrund ist , schwarz , weiß oder blau .
    Der Zeit sieht der betreffende Code so aus :
    Code:
    <?php
    
    header("Content-type: image/jpg;");
    
    $bg_img = $this->config->item('ticker_bg_path').$bg.".png";
    $slider_img = $this->config->item('ticker_slider_path').$slider.".png";
    // print $slider_img; exit;    
    $due_time = $due_time;
    $adj_time = $adj_time;
    
    
    $time_left = strtotime($due_time)-time()+$adj_time;
    $days_left = $time_left>=0?round($time_left/(3600*24)):0;
    $days_left = $days_left>$max_days?$max_days:$days_left;
    $days_left = $days_left>12*30?12*30:$days_left;
    
    $text_height = $this->config->item('ticker_text_height');
    
    // bg
    $image = @imagecreatefrompng($bg_img);
    $imagewidth = imagesx($image);
    $imageheight = imagesy($image);
    
    // base_image
    $baseimage = imagecreatetruecolor($imagewidth, $imageheight);
    $imagefill = imagecolorresolve($baseimage, 255, 255, 255);
    imagecolortransparent($baseimage, $imagefill);
    
    
    
    
    
    // add bg
    imagecopy($baseimage, $image,  0, 0, 0, 0, $imagewidth, $imageheight);
    
    // add slider
    if (!preg_match("@no_image@", $slider_img)){
        $slider = @imagecreatefrompng($slider_img);
        $sliderwidth =  imagesx($slider);
        $sliderheight =  imagesy($slider);
        $pos = 1-$days_left/$max_days;
        $startwidth = round($pos*($imagewidth-$sliderwidth));
        $startheight = (($imageheight - $sliderheight)/2);
        imagecopy($baseimage, $slider,  $startwidth, $startheight, 0, 0, $sliderwidth, $sliderheight);
    }
    
    // add text
    if (preg_match("@\*custom_text\*@s", $add_text)){
        $text = trim(preg_replace("@\*custom_text\*@s", "", $add_text));
    }else{
        $text = sprintf("%s %d Monate%n und %d Tage%n", $add_text, floor($days_left/30), floor($days_left/30)>1?"s":"", fmod($days_left, 30), fmod($days_left, 30)>1?"s":"\n".$this->config->item('site_name1'));
    }
    $font_size = 10  ;
    $textcolor = imagecolorallocate($baseimage, 0, 0, 0);
    imagettftext($baseimage, $font_size, 0, 30+($imagewidth-strlen(preg_replace("@\&\#.*?;@", "X", $text))*imagefontwidth($font_size/2.5))/2, $imageheight, $textcolor, getcwd().'/arial.ttf', $text);
    // imagettftext($baseimage, $font_size, 0, 50+($imagewidth-strlen(preg_replace("@\&\#.*?;@", "X", $text))*imagefontwidth($font_size/2.5))/2, $imageheight, $textcolor, getcwd().'/arial.ttf', iconv("iso-8859-9", "UTF-8", $text));
    
    // // add text
    // $text = $add_text;
    // $font_size = $this->config->item('ticker_font');
    // $textcolor = imagecolorallocate($baseimage, 0, 0, 0);
    // imagestring($baseimage, 2, ($imagewidth-strlen($text)*imagefontwidth($font_size))/2, $imageheight+imagefontheight($font_size), $text, $textcolor);
    
    
    imagejpeg($baseimage);
    
    imagedestroy($baseimage);
    imagedestroy($image);
    imagedestroy($slider);
    Die betreffende Stelle ist // Base_image

    Ich hoffe ihr könnt mir helfen .
    Also am Browser liegt es nicht . Das Problem besteht im FF wie im IE . Und vor dem Generieren werden die Ticker ja korrekt angezeigt .

  • #2
    imagejpeg($baseimage);
    jpeg unterstützt keine Transparenz.

    Kommentar


    • #3
      David liegt richtig - JPG unterstützt keine Transparenz und PNGs im Internet Explorer auch nicht (oder inzwischen doch?)

      Ich habe das nur kurz überflogen:
      - Anstelle von Content-type: image/jpg verwendest du Content-Type: image/png
      - Anstelle von imagejpeg() verwendest du imagepng()

      gruß
      pacey

      Kommentar


      • #4
        Zitat von pacey Beitrag anzeigen
        David liegt richtig - JPG unterstützt keine Transparenz und PNGs im Internet Explorer auch nicht (oder inzwischen doch?)
        Ich glaub seit IE 7 wirds unterstützt, aber ich würd meine Hand dafür nicht ins Feuer legen

        Kommentar


        • #5
          Wird seit IE 7 unterstützt. Für IE Versionen vor IE 7 gibt es CSS & JS Hacks, die es ebenfalls möglich machen (ob die auch halbtransparenz möglich machen, weiss ich aber wiederum nicht ^^).

          Kommentar


          • #6
            Alternativ auf gif umsteigen. Da ist Transparenz kein Problem

            Kommentar


            • #7
              Also ich hab aus der jpg jetzt png gemacht und damit klappt es jetzt Klasse .
              Aus Imagcreatetruecolor mußte ich aber auch noch imagecreate machen . Dadurch mußte ich die Ticker neu mit 156 Farben exportieren im PSP .
              Bei 24 bit oder 256 Farben legt sich nach dem generieren sonst ein Schleier drüber . Aber so siehts auch gut aus .


              Jetzt hab ich aber noch das Problem , wenn ihr mal schaut , das die Schrift ganz unten am Bild generiert wird und somit beim g z.B. der untere Teil fehlt . Wie bekomme ich denn die Schrift weiter hoch ??

              Danke schon mal für Eure Hilfe .

              Kommentar


              • #8
                Hallöchen,

                ich bin über google auf diesen Beitrag gekommen. Ich würde auch gerne Ticker erstellen.

                Und zwar so einen wie diesen hier:



                Wie mache ich sowas selber? Grafik ist kein ding, aber der rest? Also berechnung und das online stellen und wie leute dann aus verschiedenen Teilen ihren Ticker zusammenstellen können.

                Hoffe mir kann da jemand helfen, danke sehr schonmal!
                Viele Grüße Mag

                Kommentar


                • #9
                  So ein Tickerscript besteht aus sehr vielen Dateien. Ich hab meins über das Internet erworben und es dann an meine Bedürfnisse angepasst.

                  Kommentar


                  • #10
                    huhu,

                    darf ich fragen wo du es herhast? Oder wonach du gesucht hast. Übr google hab ich bis auf 2 ergebnisse nur newsticker gefunden!
                    Viele Grüße Mag

                    Kommentar


                    • #11
                      Von hier : Pregnancy Countdown Ticker Script | Birthday Countdown Ticker Script | Wedding Graphical Countdown Ticker Script!
                      Ist aber wie gesagt nicht einfach, da das Script nur eine reine Rohfassung ist und man viel umbauen muss. Wenn man sich gar nicht auskennt, dann kann man da mehr kaputt machen, als man ganz macht. Und wirklich gelohnt hat sich das für mich auch nicht. Und das trotz sehr gut besuchtem Forum. Dazu kommz noch, dass der generierte Code nicht in jedem forum funktioniert, sondern nur fehlerhaft. Würde ich mir sehr genau überlegen. Ich würde das Geld nicht nochmal dafür ausgeben.

                      Kommentar

                      Lädt...
                      X