kostenloser Webspace werbefrei: lima-city


Halbtransparentes Bild erstellen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Hallo liebe Leute,

    ich suche eine Möglichkeit mit Hilfe von PHP ein halbtransparentes Bild zu erstellen, da ich keine Lust habe mir meine halbtransparenten Hintergründe jedes Mal selber mit GIMP erstellen zu müssen.

    Also soll PHP folgendes für mich übernehmen:
    - 1x1 Pixel großes Bild erstellen
    - Mit bestimmten Grauton füllen
    - Deckkraft auf einen bestimmten Prozentwert setzen
    - Bild ausgeben.

    <?php
    $grau=125;
    
    $img = ImageCreate (1, 1);
    imagealphablending($img, true);
    
    $bg = ImageColorAllocate ($img, $grau, $grau, $grau);
    $weiss = ImageColorAllocate ($img, 255, 255, 255);
    
    imagefill($img, 0, 0, $bg);
    
     // ... Hier fehlt jetzt eine tolle Funktion
    
    imagecolortransparent($img, $weiss);
    
    header (\"Content-type: image/gif\");
    Imagegif ($img);
    imagedestroy($img)
    ?>


    Kann mir da jemand weiterhelfen?

    Ich bin bisher auf \"imagefilter()\" gestoßen, konnte das aber auch noch nicht so richtig verwenden.

    Vielen Dank,

    Hannes

    Beitrag geändert: 22.3.2008 21:00:09 von hts
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. habe es selber nicht hinbekommen, da ich mich zulange nicht mehr mit bildmanipulation befasst habe, seit dem ich meinen eigenen thumbnailer fertig gestellt habe.

    vlt hilft dir folgende seite:

    http://forum.de.selfhtml.org/archiv/2005/2/t101578/

    ansonsten spuckt google.de und php.net viel aus. siehe auch folgende funktionen:

    http://de2.php.net/manual/en/function.imagealphablending.php
    http://de2.php.net/manual/en/function.imagesavealpha.php

  4. w******s

    hallo.
    Leider kann ich nicht direkt helfen, das Problem mit php zu lösen. Weis aber das man transparenz mit css hinbekommen kann. Falls das was helfen würde^^

    hier en link: http://www.mandarindesign.com/opacity.html
  5. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Danke. Gestern hab ich wohl zu lange dran gesessen, sodass ich mich bei Google nur totgesucht habe.

    Heute mit klarem Kopf habe ich dann das richtige gefunden.
    Die von dir genannten Funktionen hatte ich bereits beachtet, funktionierte aber nicht so richtig.

    Bei meinem Ansatz hier war wohl sowieso ein Denkfehler drin. Ich erzeuge eine Farbe, die einen bestimmten Grauwert hat und setze weiß als transparente Farbe. Klar, dass nichts passiert, weil in dem Grau kein weißer Pixel enthalten ist.


    Inzwischen habe ich dann aber die Funktion <strong>ImageColorAllocateAlpha</strong> gefunden, wo man also direkt einen Alpha-Transparenz-Wert angeben kann. (0 = transparent; 127 = komplett grau)
    $bg = ImageColorAllocateAlpha ($img, \'0x\'.$grau[0], \'0x\'.$grau[1], \'0x\'.$grau[2], 127 - 1.27*$percent);



    Nun bleibt noch das Problem: <strong>PNG-Transparenz im IE<7 ...
  6. eben noch gefunden:

    http://www.php4-forum.de/befehle/imagecolortransparent.htm?PHPSESSID=26bff455c0000644995daa01f0944bb5
  7. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.


    Weis aber das man transparenz mit css hinbekommen kann. Falls das was helfen würde^^

    hier en link: http://www.mandarindesign.com/opacity.html


    Ja, das nutze ich auch schon teilweise. Allerdings kann ich damit nur schwer nur den Hintergrund teilweise transparent machen.
    Dann müsste ich ja für jeden Hintergrund ein eigenes Block-Element haben ... ne!


    Bleibt nur das Problem mit dem IE.
  8. t*****b

    Opacity kann man vergessen, da nur bei IE funktionsfähig; imagecolortransparent() bringt einen auch nicht weiter, da es eine Farbe komplett transparent macht und nicht halbtransparent. Soweit ich weiß, unterstützt .gif sowieso nur komplette Transparenz und keine Halbtransparenz. Letzteres ist bisher nur mit .png möglich und dann würde ich das Bild nicht per PHP generieren sondern mit einem Grafikprogramm (Photoshop/Gimp/etc).
  9. w******s


    Opacity kann man vergessen, da nur bei IE funktionsfähig;

    hä??

    also mein firefox unterstützt das!
    geh mal auf diese seite und schau dirs an ==> http://www.mandarindesign.com/opacity.html


  10. Opacity kann man vergessen, da nur bei IE funktionsfähig;

    hä??

    also mein firefox unterstützt das!
    geh mal auf diese seite und schau dirs an ==> http://www.mandarindesign.com/opacity.html

    Der FF erkennt nur -moz-opacity:.XX;, opacity=.XX; wird soweit ich weiß nur von Opera richtig angewendet, der IE unterstützt filter:alpha(opacity=XX);.
    Wenn man also für alle Browser irgendwas transparent/halbtransparent machen will, muss man alle drei Dinge in das CSS-File schreiben.
  11. das ist immer das selbe. will man eine hp mit irgendwas speziellem ausstatten muss man immer aufpassen welchen browser man verwendet
    der alte IE 6er kann z.b. transparente pngs nicht darstellen, gif können alle darstellen. diese graphik besitzt aber nur 256 farben, und das ist heut zu tage bei 32 bit darstellungen ein bisschen wenig . und php liefert doch die passende funktion dazu. jedoch habe ich das ganze noch nicht recht verstanden.



    hts schrieb:
    Inzwischen habe ich dann aber die Funktion ImageColorAllocateAlphagefunden, wo man also direkt einen Alpha-Transparenz-Wert angeben kann. (0 = transparent; 127 = komplett grau)
    $bg = ImageColorAllocateAlpha ($img, \\\'0x\\\'.$grau[0], \\\'0x\\\'.$grau[1], \\\'0x\\\'.$grau[2], 127 - 1.27*$percent);


    Nun bleibt noch das Problem: <strong>PNG-Transparenz im IE<7 ...

    welche parameter muss man eingeben und wie sieht ein beispiel dazu aus? ich weiß nämlich nicht ob ich bei mir in xampp gd 2.0 bibliothek drin hab



    Beitrag geändert: 23.3.2008 18:35:30 von h-brand
  12. w******s




    Opacity kann man vergessen, da nur bei IE funktionsfähig;

    hä??

    also mein firefox unterstützt das!
    geh mal auf diese seite und schau dirs an ==> http://www.mandarindesign.com/opacity.html

    Der FF erkennt nur -moz-opacity:.XX;, opacity=.XX; wird soweit ich weiß nur von Opera richtig angewendet, der IE unterstützt filter:alpha(opacity=XX);.
    Wenn man also für alle Browser irgendwas transparent/halbtransparent machen will, muss man alle drei Dinge in das CSS-File schreiben.



    achso. danke. erklärts. hab gedacht, dass das nicht browserabhängig ist. naja. dann wohl doch besser php
  13. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.


    welche parameter muss man eingeben und wie sieht ein beispiel dazu aus? ich weiß nämlich nicht ob ich bei mir in xampp gd 2.0 bibliothek drin hab


    Spontan würde ich mal vermuten, dass es bei dir installiert ist ;-)

    <?php
    $grau = array();
    
    if($_GET[\'c\']!=\'\') {
     $grau[0] = substr($_GET[\'c\'], 0, 2);
     $grau[1] = substr($_GET[\'c\'], 2, 2);
     $grau[2] = substr($_GET[\'c\'], 4, 2);
    }
    else {
     $grau[0] = \"FF\";
     $grau[1] = \"FF\";
     $grau[2] = \"FF\";
    }
    
    if($_GET[\'p\']!=\'\') $percent = $_GET[\'p\'];
     else $percent = 50;
    if($percent>100) $percent = 100;
    $percent = 127 - $percent * 1.27;
    
    $img = ImageCreate (1, 1);
    imagealphablending($img, true);
    
    $bg = ImageColorAllocateAlpha ($img, \'0x\'.$grau[0], \'0x\'.$grau[1], \'0x\'.$grau[2], $percent);
    
    imagefill($img, 0, 0, $bg);
    
    header (\"Content-type: image/PNG\");
    imagePNG ($img);
    imagedestroy($img);
    ?>


    Aufruf dann mit:
    bg.php?p=50&c=F0F0F1

    Also der Parameter \"p\" gibt einen Prozentwert an, zu wieviel Prozent das Bild transparent sein soll, und der parameter \"c\" gibt die Farbe in bekannter Hexadezimalform an.
  14. thx hts,
    das script ist klasse zum testen. jetzt blick ich bei dem code auch durch :)
    gruß h-brand
  15. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    thx hts,
    das script ist klasse zum testen. jetzt blick ich bei dem code auch durch :)


    Schön, dass ich wenigstens jemandem helfen konnte. Mir hat es nun ja nicht geholfen.

    Ich werde mir stattdessen ein neues Design ausdenken ... ohne viele Transparenzen ^^
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!