PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] imagecopy() macht mucken.T_T



raian
21.04.2006, 11:59
Hallo erstmal!

hab mich ja ne ganze weile schon nicht mehr gemeldet, abe rich habe momentan ein riesen Problem... -_-

Die Imagefunktionen von PHP versteh ich ja shalbwegs..abgesehen von der einen oder anderen, wozu beispielsweise imagecopy() gehört. -_-

Naja.. mein Code:

<?php

header("Content-Type: image/gif");

$img = imagecreate(200,100);
$img2 = imagecreatefrompng("secret0J98sh7Hz.png");

$img2_h = imagesy($img2);
$img2_w = imagesx($img2);

$img_h = imagesy($img);
$img_w = imagesx($img);

ImageCopy($img, $img2, 0, 0, $img2_w, $img2_h, $img_w, $img_h)

//Kopiert einen Teil des Quellbildes src_im nach dst_im.
//Der zu kopierende Teil wird angegeben über die x/y-Koordinaten src_x und src_y.
//Die Breite wird in src_w und die Höhe in src_h angegeben.
//Der Ausschnitt wird an die x/y-Koordinaten dst_x und dst_y kopiert.

?>


Ausgegeben wird:
Kann die Grafik nicht anzigeen, weil sie Fehler enthält.

lizard
21.04.2006, 12:22
Wenn du den Seitenquelltext im Browser öffnest, findest du die Ausgabe der PHP-Fehler, vielleicht hilft dir das weiter.
Sonst fehlt hinter ImageCopy ein Semikolon. ;)

raian
21.04.2006, 12:28
Oha..das Semikolon habe ich auch gerade bemerkt!

Außedme habe ich noch eben was neues gemacht, mein neuer Code ist der heir (nicht großartig verändert)



<?php

header("Content-Type: image/gif");

$img = imagecreatefrompng("secretx1za4u2B8.png");
$img2 = imagecreatefrompng("secret0J98sh7Hz.png");

$img2_h = imagesy($img2);
$img2_w = imagesx($img2);
//echo "Img_2:<br>Höhe: $img2_h <br>Breite: $img2_w <br><br>";

$img_h = imagesy($img);
$img_w = imagesx($img);
//echo "Img:<br>Höhe: $img_h <br>Breite: $img_w <br><br>";

ImageCopy($img2, $img, 1, 1, $img_w, $img_h, $img2_w, $img2_h);


?>




Was allerdings im Browser nur folgendes ausgibt:


FireFox schrieb:
http://warlord.xardas.lima-city.de/warlord/pictures/new_regist_pics.php

lizard
21.04.2006, 12:36
Mhmh. Ich bin da auch nicht so bewandert drin. Was mir noch einfällt, bzw. auffällt, ist dass du das Bild nicht ausgibst.
<?php
$im=ImageCopy($img2, $img, 1, 1, $img_w, $img_h, $img2_w, $img2_h);
imagegif($im);
?>Falls du als Ausgabe ein png möchtest, musst du den Header und die Ausgabe ändern.
<?php
header("Content-Type: image/png");
// ...
$im=ImageCopy($img2, $img, 1, 1, $img_w, $img_h, $img2_w, $img2_h);
imagepng($im);
?>Aber nicht getestet und keine Garantie. ^^'

raian
21.04.2006, 12:55
In diesem Falle gibt es was neues aus, unzwar das heir:

Die Grafik "http://warlord.xardas.lima-city.de/warlord/pictures/new_regist_pics.php" kann nicht angezeigt werden, weil sie Fehler enthält.

:p


PHP Image sind plö...zu schade da sich die unbedingt brauch..T_T


Edit: Oha..ich habe soeben gemert das imagecopy den Rückgabewert 1 hat...mehr net..nu.. 1^^"

Lucleonhart
22.04.2006, 08:58
Leutz leutz. ^^

ImageCopy($img2, $img, 1, 1, $img_w, $img_h, $img2_w, $img2_h);
Das da, das kopiert von bild "$img" ab position "$img_w"-"$img_h" einen ausschnitt mit der größe "$img2_w"-"$img2_h" an die stelle "1"-"1" in bild "img2".
Das alleine macht IMHO nicht so viel sinn.. warum kopierst du erst ab der stelle breite bild1-höhe bild eins?! Und dann die breite des kompletten bildes? Geht ja garnicht!! ^^
Also machen wirs mal anders:
ImageCopy($img2, $img, 0, 0, 0, 0, $img2_w, $img2_h);
Kopiert das gesamte $img in die linke obere Ecke von $img.

Danach dann einfach $img2 anzeigen!
imagegif($img2);

Tata! :D

raian
23.04.2006, 16:41
:O

Danke! Das funktioniert sogar... http://www.multimediaxis.de/images/smilies/old/sm_12.gif


^^'


Danke. ;)

Kann geclosed werden, doer auch: problem erledigt. ;)