php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack (1) Themen-Optionen Bewertung: Bewertung: 3 Stimmen, 5,00 durchschnittlich.
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Alt 25-04-2013, 16:09
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard Transparenz in PNG mit PHP erstellen - Seltsames Problem

Ich arbeite an einem Script wie dem hier: stylefruits.de | Trendige Outfits von Frauen für Frauen
Ich bearbeite JPG Bilder und entferne die weiße Hintergrundfarbe und mache diese transparent.. so weit so gut.

das ist das Script mit dem ich die weiße Farbe entferne und transparent mache
PHP-Code:
<?php
$o 
"original.jpg";

$img imagecreatefromjpeg($o);

$index imagecolorallocatealpha($img255255255127); 
imagecolortransparent($img$index);

imagepng($img"png_image.png");

?>
<img src="png_image.png" />
Ok, das Bild ist nun transparent, aber leider nur im Bowser direkt nach der Ausgabe! Wenn ich es nun mit Photoshop öffne, ist die Transparenz weg und im weiterem Code unten ist sie auch nicht mehr vorhanden!

Das ist der Code, mit dem ich die PNGs übereinander lege, und so ein JPG mit mehreren PNGs erstelle.

Das funktioniert mit diesem Bild http://tuxpaint.org/stamps/stamps/an...artoon/tux.png super und auch wenn ich ein transparentes PNG Bild in Photoshop erstelle, funktioniert es auch 100% !!! Nur leider nicht wenn das PNG Bild mit dem oberem Code erstellt wird.

PHP-Code:
$canvas imagecreatetruecolor(500500);

$weiss imagecolorallocate($canvas255255255);
imagefill($canvas00$weiss);

imagealphablending($canvasfalse); 
imagesavealpha($canvastrue);

for(
$i 0$i 2$i++)
{
    
$w 300$h 300;

    if(
$i == 1){
    
$left 200$top 200;
    }else {
    
$left 100$top 100;
    }

    
$source "http://tuxpaint.org/stamps/stamps/animals/birds/cartoon/tux.png"//works fine!!!!
    
$source "png_image.png"//does not work

    
$source imagecreatefrompng($source);          

    
$c 0;
    
$o_w imagesx($source);
    
$o_h imagesy($source);

    
imagecopyresampled($canvas$source$left$top00$w$h$o_w$o_h);        
}

$dir "./";
imagejpeg($canvas"image.jpg"); 
ich verstehe einfach nicht, wieso die erstellte PNG nicht mehr transparent ist.

Bitte helft mit endlich damit das hier gelöst werden kann

DANKE!!!!

Geändert von BananaJo (25-04-2013 um 16:50 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 25-04-2013, 16:40
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

schreibfehler eingeschlichen als du die dateinamen für uns geändert hast oder ist das auch sonst der fall?

PHP-Code:
imagepng($img"image.png");

?>
<img src="png_image.png" /> 
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #3 (permalink)  
Alt 25-04-2013, 16:51
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

Zitat:
schreibfehler eingeschlichen als du die dateinamen für uns geändert hast oder ist das auch sonst der fall?
Sorry war nur hier falsch.. hab ich geändert
Mit Zitat antworten
  #4 (permalink)  
Alt 25-04-2013, 17:08
mephisto111
 Registrierter Benutzer
Links : Onlinestatus : mephisto111 ist offline
Registriert seit: Nov 2003
Beiträge: 52
mephisto111 befindet sich auf einem aufstrebenden Ast
Standard Transparenzproblem

Hallo BananaJo,

ersetze mal die Zeile

PHP-Code:
$index imagecolorallocatealpha($img255255255127); 
durch

PHP-Code:
$index imagecolorexact($img255255255); 
Mit Zitat antworten
  #5 (permalink)  
Alt 25-04-2013, 17:18
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

Zitat:
$index = imagecolorexact($img, 255, 255, 255);
ich auch auch schon probiert.. das macht leider keinen unterschied
Mit Zitat antworten
  #6 (permalink)  
Alt 25-04-2013, 17:31
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Dabei fällt mir ein, was ich schon vor Wochen erledigen wollte und zwischendurch leider in Vergessenheit geriet (eine Beschreibung fertig zu machen). Nun gut, was ich in Deinem Code nicht sehe, den Bereich, den Du mit Transparenz füllen und so abspeichern möchtest. Irgendwo müsste doch da doch wohl imagefilledrectangle folgen, also der Bereich, der in diesem Fall so groß sein sollte, wie das Bild und den Du mit Transparenz füllen möchtest oder nicht? Zumindest hatte ich das so verstanden und bei meinen Scripts so gehandhabt. Imagefill geht wohl auch, wenn das ganze Bild mit Transparenz gefüllt werden soll, habe ich nur noch nicht probiert.

Text in Bilder mit PHP und imagettftext einfügen

Für was ist diese Zeile gut?

HTML-Code:
<img src="png_image.png" />
Rufst Du das Bild zum Speichern bzw. im Browser nicht über das Script auf und setzt dabei einen Image-Header?

PHP-Code:
header("Content-type: image/png"); 
Nicht das ich mich gut auskennen würde mit der Bildverarbeitung, nur hat es praktisch funktioniert, auch mit der Transparenz. Bei mir rufe ich die Bilder mit der Script-Seite images.php auf, die enthält einen Image-Header und HTML hat in dieser Script-Seite nichts verloren. Anschließend kann ich dann die gespeicherten Bilder wie normale Bilder verwenden und mit image.png aufrufen.

Geändert von Melewo (25-04-2013 um 18:29 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 25-04-2013, 18:35
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

PHP-Code:
$c 255;
$trans imagecolorallocatealpha($img$c$c$c127);
imagecolortransparent($img$trans);
imagefilledrectangle($img00$w$h$trans); 
bring leider auch nicht viel... genau das selbe problem..

das Bild transparent zu bekommen ist ja kein Problem, nur eben, wenn ich es wieder aufrufe um es weiter zu bearbeiten, dann ist die transparenz weg oder der Hintergrund ist schwarz.

also ich schlage mich nun schon 2 Wochen mit diesem Problem rum und glaube langsam, dass es einfach nicht mit PHP möglich ist.

Wie bereits gesagt, funktioniert es super, wenn ich eine PNG direkt in Photoshop erstelle und dann verarbeite, funktioniert alles super... nur leider nicht, wenn ich die PNG mit PHP erzeuge..
Mit Zitat antworten
  #8 (permalink)  
Alt 25-04-2013, 19:15
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von BananaJo Beitrag anzeigen
PHP-Code:
<?php
$o 
"original.jpg";

$img imagecreatefromjpeg($o);

$index imagecolorallocatealpha($img255255255127); 
imagecolortransparent($img$index);

imagepng($img"png_image.png");

?>
Wo ich mir jetzt nicht sicher bin, Du öffnest ein jpg und erstellst ein jpg und speicherst es dann mit png. Ob das so geht, weiß ich nicht, da JPG und Transparenz irgendwie nicht zusammen passen. Weiß jetzt nicht was Photoshop alles kann, arbeite für meine Belange mit PSP, doch kenne es da gar nicht anders, als dass ich ein JPG-Bild nicht mit Transparenz speichern kann. Würde mal sagen, speichere ein Bild erst als PNG, öffne es dann mit imagecreatefrompng und nicht mit imagecreatefromjpeg, rufe die Script-Seite (ohne HTML) mit dem entsprechenden Image-Header im Browser auf, vielleicht bringt das mehr.
Mit Zitat antworten
  #9 (permalink)  
Alt 25-04-2013, 20:01
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

alo transparenzen sind nur bei PNG möglich.
Leider funktioniert das auch nicht... ich probiere es mal mit ImageMagic .. das soll das deutlich mehr drauf haben.. ich teste es einfach mal..
Mit Zitat antworten
  #10 (permalink)  
Alt 25-04-2013, 20:28
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Nun gut, habe auch noch etwas experimentiert und nur mit imagefill nichts fertig bekommen, zumindest keine transparente Vorlage zur weiteren Verwendung. Problemlos lassen sich hingegen Bereiche auswählen, mit einer Farbe füllen und diese Farbe transparent schalten. Die Deckfähigkeit der gewählten Farbe wird sozusagen beeinflusst, doch die Ebenen gehen wohl nicht einzeln abzuspeichern oder ich wüsste gerade nicht wie.

PHP-Code:
<?php
header
("Content-Type: image/png");

$bild "test.png";
$img  imagecreatefrompng($bild);

$trans imagecolorallocatealpha($img2550060);
imagefilledrectangle($img007070$trans);

imagepng($img);
imagepng($img"test_image.png");
imagedestroy($img);

// test.png (falls vorhanden) wird aufgerufen mit scriptname.php
?>
Um ein Bild im Browser anzuzeigen und gleichzeitig zu speichern, muss es zweimal mit imagepng ausgegeben werden.
Mit Zitat antworten
  #11 (permalink)  
Alt 25-04-2013, 20:51
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.576
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Wozu soll das alles überhaupt gut sein? Um Bilder transparent darzustellen oder einzufärben braucht man kein PHP. Das kann schon der Browser selber.
Mit Zitat antworten
  #12 (permalink)  
Alt 25-04-2013, 20:57
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

Zitat:
Wozu soll das alles überhaupt gut sein? Um Bilder transparent darzustellen oder einzufärben braucht man kein PHP. Das kann schon der Browser selber.
das steht doch am Anfang des threads wozu das ganze hier gemacht wird
Mit Zitat antworten
  #13 (permalink)  
Alt 25-04-2013, 21:03
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.576
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Kannst du mal so ein Beispielbild zur Verfügung stellen?

Geändert von h3ll (25-04-2013 um 21:06 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 26-04-2013, 11:52
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

Also ich sage nur ImageMagic!!!!!!!

Damit hat es sofort funktioniert und besser als zuvor!!!! Ich bin begeistert!!!
Das resultat ist genau so wie mit Photoshop!! was besseres gibt es nicht!!!
Mit Zitat antworten
  #15 (permalink)  
Alt 26-04-2013, 12:06
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

hau mal den code raus falls andere auch das problem haben sollten ;-)
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
php, png, transparenz


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/103970-transparenz-in-png-mit-php-erstellen-seltsames-problem.html
Erstellt von For Type Datum
Backlink Analyse www.stylefruits.de/ Kostenloser SEOkicks Backlinkcheck This thread Refback 08-11-2013 09:26

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit rgb transparenz Spunk95 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 4 26-04-2011 18:01
png + transparenz (gd) kyo PHP Developer Forum 4 01-10-2006 15:35
Problem mit png und transparenz Scriptmania Grafik / Design / Flash ... 4 23-07-2006 21:53
png verliert Transparenz bei imagerotate() imagica PHP Developer Forum 7 07-06-2006 11:47
[GD] Truecolor zu 'normal' für PNG Transparenz BloodReaver PHP Developer Forum 7 11-06-2004 12:13

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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