Bildteile transparent machen

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

  • Bildteile transparent machen

    Hoi,
    ich hab da ein Logo im png Format und das kopier ich mit den GD Funktionen auf einen Screenshot.
    Nun soll auf dem Logo alles was weiß ist (255,255,255) transparent werden, also so, dass man da dann den Screenshot durchsieht.

    Ich hoffe ihr wisst was ich mein.
    Da muss man ja anscheinend was mit imagecolortransparent machen, aber ich weiß net wie ich da nen Teil auf dem Logo transparent mach.

    Wäre nett wenn mir einer nen Codestück dafür posten könnte .

    MfG

  • #2
    http://www.php.net/manual/de/functio...ransparent.php
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      Sorry, aber werd daraus net schlau.
      So wies ich bis jetzt gemacht hab, will das einfach net.


      PHP-Code:
      <?PHP
      $image 
      imagecreatefrompng("logo.png"); 
      $farbe_body=imagecolorallocate($image,222,222,222);
      $farbe_b imagecolorallocate($image,255,255,255);
      imagecolortransparent($image,$farbe_b);
      imagepng($image,"logo.png");
      ?>
      Was muß ich da ändern?

      Thx
      MfG

      Kommentar


      • #4
        ImageColorTransparent() does not work on true color images. If it did, it would be very handy for applying masks. A workaround is to use imagetruecolortopalette then use ImageColorTransparent on your mask. Unfortunately imagetruecolortopalette is really bad at picking colours, so you have to fix them with a combination of imagecolorclosest and imagecolorset.

        ______________________________________
        In response to the note above...

        ImageColorTransparent() does work on TrueColor images. I have it working myself but I do remember having to add an extra step somewhere. Anyways, here is how I overlay text on a jpeg. Don't forget, you need GD 2.x for true color to work. This example requires TTF support also.

        //
        // get src image and dimensions
        $src_img = ImageCreateFromJPEG("foo.jpg");
        $src_w = ImageSX($src_img);
        $src_h = ImageSY($src_img);
        //
        // create empty true color canvas, def bg is black
        $txt_img = ImageCreateTrueColor($src_w,$src_h);
        //
        // define colors
        $white = ImageColorAllocate ($txt_img, 255, 255, 255);
        $black = ImageColorAllocate ($txt_img, 0, 0, 0);
        //
        // add your white text
        ImageTTFText ($txt_img, 80, 25, 65, 350, $white, "impact.ttf", "Kung Fu");
        //
        // make black bg transparent
        ImageColorTransparent($txt_img, $black);
        //
        // merge text image onto src image
        ImageCopyMerge($src_img,$txt_img,0,0,0,0,$src_w,$src_h,30); // 30% opacity

        'Now' you can do resizing or whatever and output it. You need to create yet another blank image to resample. (Actually you can resize the image before the text overlay step with some small mods, but its REALLY messy if you want the output size to be dynamic)

        //
        // create empty true color canvas for resizing.
        $dst_img = ImageCreateTrueColor(100,100);
        //
        // resize
        ImageCopyResampled($dst_img,$src_img,0,0,0,0,100,100,$src_w,$src_h);
        //
        // output to browser.
        ImageJPEG($dst_img,'',70); // quality 70

        If someone could tell me a shorter way to do this, that would be sweet. The way it is now, it just feels like there is one too many steps to get this done. But I am glad it works at all!
        So, habe ich nur zufällig gefunden, obs hilft, kann ich net sagen

        Kommentar


        • #5
          Hi,
          danke für die Antwort, aber damit komme ich auch net so richtig weiter .

          MfG

          Kommentar

          Lädt...
          X