• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Zwei PNG-Dateien miteinander kombinieren und anzeigen

RE666

Neues Mitglied
Hallo,

ich möchte zwei PNG-Files miteinander kombinieren und anzeigen lassen (ohne zu speichern).

PHP:
$dX='250';
$dY='100';
$sX='0';
$sY='0';
$sW='500';
$sH='800';

$pathToIMG1 = dirname(__FILE__)."/path/to/img1.png";
$pathToIMG2 = dirname(__FILE__)."/path/to/img2.png";

$img1 = imagecreatefrompng($pathToIMG1);
$img2 = imagecreatefrompng($pathToIMG2);

imagealphablending($img1,true);
imagesavealpha($img1,true);
imagecopy($img1,$img2,$dX,$dY,$sX,$sY,$sW,$sH);

header('Content-Type: image/png');
imagepng($img1);


Wenn ich's dann aufrufe erhalte ich stets nur: Die Grafik [...] kann nicht angezeigt werden, weil sie Fehler enthält.
 
Werbung:
Was kommt hier bei raus:
PHP:
<?php
   $dX='250';
   $dY='100';
   $sX='0';
   $sY='0';
   $sW='500';
   $sH='800';

   $pathToIMG1 = dirname(__FILE__)."/path/to/img1.png";
   $pathToIMG2 = dirname(__FILE__)."/path/to/img2.png";

   $img1 = imagecreatefrompng($pathToIMG1)
      or die ("Error imagecreatefrompng $pathToIMG1");
      
   $img2 = imagecreatefrompng($pathToIMG2);
      or die ("Error imagecreatefrompng $pathToIMG2");

   if (! imagealphablending($img1,true))
      die ("Error imagealphablending");
      
   if (! imagesavealpha($img1,true))
      die ("Error imagealphablending");
      
   if (! imagecopy($img1,$img2,$dX,$dY,$sX,$sY,$sW,$sH))
      die ("Error imagecopy");
      
   header('Content-Type: image/png');
   imagepng($img1);
?>
 
Da kommt nur 'ne weiße Seite. :D

(Bei PHP 7.4 kommen irgendwie garkeine Fehlermeldungen mehr. oO Ich google mal eben, ob/wie ich die anzeigen lassen kann.)
 
Werbung:
@m.scatello Also zunächst mal war da ein ; zuviel in deinem Code. :p

So, also in Chrome erhalte ich:
Diese Seite funktioniert nicht
[domain.tld] kann diese Anfrage momentan nicht verarbeiten.

HTTP ERROR 500

Und im Firefox erhalte ich wie zuvor:
Die Grafik [...] kann nicht angezeigt werden, weil sie Fehler enthält.


Wenn ich aber vor das Script noch das hier setze...
PHP:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
...ändert sich in Firefox nicht, aber in Chrome erhalte ich dann seine Seite mit einem kleinen Kästchen. o_O

Bildschirmfoto von 2020-03-06 17-47-14.png
 
Das funktioniert bei mir:
PHP:
<?php
   $dX='250';
   $dY='100';
   $sX='0';
   $sY='0';
   $sW='500';
   $sH='800';

   $pathToIMG1 = dirname(__FILE__)."/images/clip_1364995026.png";
   $pathToIMG2 = dirname(__FILE__)."/images/clip_1364995149.png";

   $img1 = imagecreatefrompng($pathToIMG1)
      or die ("Error imagecreatefrompng $pathToIMG1");
      
   $img2 = imagecreatefrompng($pathToIMG2)
      or die ("Error imagecreatefrompng $pathToIMG2");

   if (! imagealphablending($img1,true))
      die ("Error imagealphablending");
      
   if (! imagesavealpha($img1,true))
      die ("Error imagealphablending");
      
   if (! imagecopy($img1,$img2,$dX,$dY,$sX,$sY,$sW,$sH))
      die ("Error imagecopy");
      
   header('Content-Type: image/png');
   imagepng($img1);
?>
 
Das funktioniert bei mir:
PHP:
<?php
   $dX='250';
   $dY='100';
   $sX='0';
   $sY='0';
   $sW='500';
   $sH='800';

   $pathToIMG1 = dirname(__FILE__)."/images/clip_1364995026.png";
   $pathToIMG2 = dirname(__FILE__)."/images/clip_1364995149.png";

   $img1 = imagecreatefrompng($pathToIMG1)
      or die ("Error imagecreatefrompng $pathToIMG1");
     
   $img2 = imagecreatefrompng($pathToIMG2)
      or die ("Error imagecreatefrompng $pathToIMG2");

   if (! imagealphablending($img1,true))
      die ("Error imagealphablending");
     
   if (! imagesavealpha($img1,true))
      die ("Error imagealphablending");
     
   if (! imagecopy($img1,$img2,$dX,$dY,$sX,$sY,$sW,$sH))
      die ("Error imagecopy");
     
   header('Content-Type: image/png');
   imagepng($img1);
?>

Sorry, ich habe ganz vergessen, mich zu bedanken. Mit deiner Hilfe kam ich nämlich tatsächlich weiter und war dann erstmal total in Fahrt, weshalb ich's vergaß. :confused:

Aber nun noch ein ausdrückliches DANKESCHÖN für deine Hilfe!!! :smile:
 
Werbung:
Zurück
Oben