AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] Transparente Bilder zusammenführen
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Transparente Bilder zusammenführen

Ein Thema von Matze · begonnen am 16. Mär 2010 · letzter Beitrag vom 18. Mär 2010
Antwort Antwort
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

[PHP] Transparente Bilder zusammenführen

  Alt 16. Mär 2010, 20:24
Hallo,

gleich vorweg: PHP ist seltsam. *g*

Ich skaliere ein alphatransparentes PNG herunter, grob so:

Code:
$im = imagecreatefrompng(...);
imagesavealpha($im, true);

$im_thumb = imagecreatetruecolor(...);
imagealphablending($im_thumb, false); // fragt nicht wieso, aber "false" ist hier korrekt
imagesavealpha($im_thumb, true);

$transp = imagecolorallocatealpha($im_thumb, ...);
imagefilledrectangle($im_thumb, ..., $transp);

imagecopyresampled($im_thumb, $im, ...);
Das funktioniert soweit.

Nun zeichne ich ein halbtransparentes Rechteck darüber:

Code:
$rect_color = imagecolorallocatealpha($im_thumb, ...);
imagefilledrectangle($im_thumb, ..., $rect_color);
Das geht auch.

Nun möchte ich aber über dem Rechteck noch ein alphatransparentes Icon haben und da kann ich versuchen, was ich will, es klappt nicht.
Das soeben gezeichnete Rechteck wird im Bereich des Icons mit vollständiger transparenz "übermalt". D.h. dort, wo das Icon transparent ist, kann ich durch das Bild auf den Hintergrund schauen.

Ansätze waren u.a.

- der wie oben: imagecreatefrompng() => imagecopy()
- imagecreatetruecolor() => imagecreatefrompng() => imagecopy() auf das mit "...truecolor()" erstellte PNG => imagecopy() auf $im_thumb

Nichts geht.

Wie geht das bzw. kann PHP bzw. GD das überhaupt?

Grüße, Matze
  Mit Zitat antworten Zitat
Benedikt
(Gast)

n/a Beiträge
 
#2

Re: [PHP] Transparente Bilder zusammenführen

  Alt 17. Mär 2010, 23:37
Hi,
versuch mal einen Aufruf von
Code:
imagelayereffect($im_thumb, IMG_EFFECT_ALPHABLEND);
nach dem ersten Abschnitt Code, den du gepostet hast, zu machen.
Bei mir gehts dann, vorausgesetzt ich versteh richtig was du willst

MfG Benedikt
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: [PHP] Transparente Bilder zusammenführen

  Alt 17. Mär 2010, 23:47
Hallo Benedikt,

perfekt. Das ist genau das, was ich wollte. Vielen Dank.
Diese Funktion kannte ich bisher gar nicht.

Grüße, Matze

Edit: Auf php.net steht folgendes:

Zitat:
IMG_EFFECT_ALPHABLEND
Use normal pixel blending (equivalent of passing FALSE to imagealphablending())
"imagealphablending($im_thumb, false);" verwendete ich jedoch und das funktionierte nicht.
  Mit Zitat antworten Zitat
Benedikt
(Gast)

n/a Beiträge
 
#4

Re: [PHP] Transparente Bilder zusammenführen

  Alt 17. Mär 2010, 23:58
Zitat von Matze:
Edit: Auf php.net steht folgendes:

Zitat:
IMG_EFFECT_ALPHABLEND
Use normal pixel blending (equivalent of passing FALSE to imagealphablending())
"imagealphablending($im_thumb, false);" verwendete ich jedoch und das funktionierte nicht.
Das hat mich vorhin auch etwas verwirrt...so ganz äquivalent scheint mir das irgendwie nicht zu sein
Aber Hauptsache es klappt
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: [PHP] Transparente Bilder zusammenführen

  Alt 18. Mär 2010, 08:46
Zitat von Benedikt:
Das hat mich vorhin auch etwas verwirrt...so ganz äquivalent scheint mir das irgendwie nicht zu sein
Aber Hauptsache es klappt
Jupp. Manchmal ist PHP schon etwas eigenwillig. Aber selber Schuld, wenn man PHP nutzt. *g*

Danke nochmals.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz