php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.09.2010, 09:58  
Benutzer
 
Registriert seit: 13.02.2010
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
hman13 kann nur auf Besserung hoffen
Standard [Erledigt] Image: Speichern des Alpha-Kanales

Mit diesem Code:
PHP-Code:
<?php
$gesamt
=imagecreatetruecolor(256,512);//erzeuge gesamt-bild

imagefilledrectangle($gesamt,100,100,200,200,imagecolorallocate($gesamt,255,0,0));

$eins=imagecreatefrompng("1.png");//lade erstes bild
$zwei=imagecreatefrompng("2.png");//lade zweites bild

imagecopy  ($gesamt,$eins,0,0,0,0,256,256);//kopiere erstes bild
imagecopy  ($gesamt,$zwei,0,256,0,0,256,256);//und das zweite bild darunter

imagesavealpha($gesamt,true);//alpha-kanal soll auch gespeichert werden!
imagepng($gesamt"gesamt.png",9);//speichern des bildes
?>
sollen die Bilder 1.png und 2.png

zusammengefügt werden. Die beiden Bilder sind großteils transparent mit etwas farbe dazwischen. Mit imagesavealpha soll bewirkt werden, dass der Alphakanal gespeichert wird. das ist aber nicht der Fall:


wie kann ich das machen, das der alphakanal doch gespeichert wird?
hman13 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.09.2010, 10:03  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

PHP: imagecopy - Manual

.. da müsstest du in den User Notes was finden über Hintegrundtransparenz...

... das führt dich zu:

PHP: imagealphablending - Manual

Und da steht in den User Notes folgendes:

Zitat:
If you are trying to copy a transparant image on to another image, you might assume that you should apply the ImageAlphaBlending function to the image that has the transparancy, the source image. In reality, you must apply the ImageAlphaBlending function to the destination image. Basically it's saying, "make the specified image respect transparancy".

Here's a real world example. Suppose you want to put your logo on the upper left corner of a photograph. Your logo is a PNG with transparancy, and the photo is a JPEG. Here's what you would do:

<?php
$photoImage = ImageCreateFromJPEG('photo.jpg');
ImageAlphaBlending($photoImage, true);

$logoImage = ImageCreateFromPNG('logo.png');
$logoW = ImageSX($logoImage);
$logoH = ImageSY($logoImage);

ImageCopy($photoImage, $logoImage, 0, 0, 0, 0, $logoW, $logoH);

ImageJPEG($photoImage); // output to browser

ImageDestroy($photoImage);
ImageDestroy($logoImage);
?>
Mit freundlichen Grüßen

Ihr Google und C&P Service
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline  
Alt 02.09.2010, 10:10  
Benutzer
 
Registriert seit: 13.02.2010
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
hman13 kann nur auf Besserung hoffen
Standard

nein, das ist ja nicht das problem.

die transparenten bilder werden ja richtig kopiert(dafür habe ich ja dieses sinnlose rechteck gezeichnnet). Nur beim Speichern geht der Alphakanal verloren.
hman13 ist offline  
Alt 02.09.2010, 10:28  
Benutzer
 
Registriert seit: 13.02.2010
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
hman13 kann nur auf Besserung hoffen
Standard

Ich habe jetzt eine lösung gefunden: mit gimp mache ich ein 256*512 großes bild, das nur transparent ist. dann erzeuge ich $gesamt nicht, sondern lade es mit
PHP-Code:
$gesamt=imagecreatefrompng("empty.png"); 
Das ist natürlich nicht optimal, da ich ja immer verschieden große bilder erzeugen will.
da muss es doch irgendeine möglichkeit geben, den hintergrund transparent zu färben.
hman13 ist offline  
Alt 02.09.2010, 10:39  
Benutzer
 
Registriert seit: 13.02.2010
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
hman13 kann nur auf Besserung hoffen
Standard

jetzt habe ich eine bessere Lösung gefunden:
PHP-Code:
<?php

$gesamt
=imagecreatetruecolor(256,512);//erzeuge gesamt-bild

ImageAlphaBlending($gesamttrue);
$trans_colour imagecolorallocatealpha($gesamt000127);//THAT'S IT!
imagefill($gesamt00$trans_colour);//THAT'S IT!

imagefilledrectangle($gesamt,100,100,200,200,imagecolorallocate($gesamt,255,0,0));

$eins=imagecreatefrompng("1.png");//lade erstes bild
$zwei=imagecreatefrompng("2.png");//lade zweites bild

imagecopy  ($gesamt,$eins,0,0,0,0,256,256);//kopiere erstes bild
imagecopy  ($gesamt,$zwei,0,256,0,0,256,256);//und das zweite bild darunter

imagesavealpha($gesamt,true);//alpha-kanal soll auch gespeichert werden!
imagepng($gesamt"gesamt.png",9);//speichern des bildes
?>
hman13 ist offline  
Alt 02.09.2010, 13:02  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Warum verwendest du nicht imagecopymerge??

The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy() for pallete images, while it implements alpha transparency for true colour images.
Andreas ist offline  
Alt 02.09.2010, 15:00  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Das Handbuch zu lesen hätte es bei dem Thema wirklich auch getan.

[MOD: Thread verschoben]
Asipak ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Image name nach Rename in MySQL Db speichern Zero0090 PHP Tipps 2010 11 30.07.2010 12:01
Problem bei Image speichern in DB McK PHP-Fortgeschrittene 7 15.05.2010 16:26
Resized Image in DB speichern infeloba PHP Tipps 2010 15 29.04.2010 15:25
Informationen bei Verlassen der Seite speichern Multivac JavaScript, Ajax und mehr 3 16.04.2010 18:25
variable mit onclick an php drombusch PHP Tipps 2009 8 30.08.2009 14:45
[Erledigt] PHP Image Upload &amp; Resize Problem da.eXecutoR PHP-Fortgeschrittene 10 14.08.2009 11:50
[Erledigt] Datei in MSSQL speichern mcules Datenbanken 16 17.09.2008 15:09
Bilder Klasse snatch-ic Beitragsarchiv 1 13.06.2007 11:45
[Erledigt] Speichern unter... geht nicht!!! PHP-Fortgeschrittene 8 09.02.2006 16:55
Deer Park Alpha 1 (=Mozilla Firefox 1.1) Off-Topic Diskussionen 15 09.07.2005 02:32
DPI Anzahl beim erzeugen von Bildern mit GD2 Lib einstellen? PHP Tipps 2005 13 28.04.2005 14:39
Mail inkl. all. Elementen speichern Beitragsarchiv 5 29.12.2004 13:21
Problem mit Wasserzeichen auf Bildern pixelcut PHP-Fortgeschrittene 16 14.12.2004 02:36
image mit php verändern und speichern, dann original löschen Promaetheus PHP Tipps 2004 2 28.10.2004 18:07
Formular in Mysql Datenbank speichern Anuschka Datenbanken 1 15.08.2004 02:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php image mit alpha, php image speichern, php transparentes alpha png speichern, imagecreatefrompng alpha kanal, php imagecreatefrompng transparent, php image alpha, php png alpha kanal kopieren, php image alphakanal, php speichern image, image alpha php, php image alpha information, image copy speichern, alpha source image alpha wird nicht gefunden, php imagecopy und speichern, php transparentes png abspeichern, image abspeichern php, php bild kopieren mit tranzparenz, alphakanal geht beim speichern verloren, php bild speichern, php return array

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:42 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum