Schrift
[thread]422[/thread]

mit GD Logo in Bild einfügen

Leser: 2


<< >> 8 Einträge, 1 Seite
wkonline
 2005-02-05 17:42
#4270 #4270
User since
2004-05-09
11 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich erzeuge schon seit einiger Zeit erfolgreich mit GD Thumbnails von JPEG-Bildern. Nun möchte ich die Bilder aber so bearbeiten, dass ich ein Logo in die Bilder einfügen kann.

Texte in Bilder einfügen ist ja nicht so das große Problem mit GD, aber über Logos (Bilder) in Bilder einfügen habe ich bislang noch nicht wirklich was gefunden.

Ist das in GD möglich und wenn ja, hat evtl. jemand einen Code-Schnipsel?

Gruß,

wkonline
esskar
 2005-02-05 19:04
#4271 #4271
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
schau dir mal die copy, copyMerge, copy... Funktion an!
wkonline
 2005-02-05 22:58
#4272 #4272
User since
2004-05-09
11 Artikel
BenutzerIn
[default_avatar]
Hi,

danke für die Antwort!

Habe jetzt folgendes gemacht:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl
use GD;

$image = GD::Image->newFromJpeg('DSC04418.jpg');
$small = GD::Image->newFromJpeg('pre_DSC04225.jpg');
($width, $height)=$image->getBounds( );
$newimage->copyMerge($image, $small, 1, 1, 0, 0, $width, $height, 50);

$quality = 100;
$jpegdata = $newimage->jpeg($quality);

open(BILD,">./meinbild.jpg");
binmode BILD;
print BILD $jpegdata;
close(BILD);


$image ist dabei ein normales Foto und $small ist das, was in das Foto eingeblendet werden soll.

Nun bekomme ich immer folgende Fehlermeldung:

Code: (dl )
Can't call method "copyMerge" on an undefined value at /home/wkonline/bilder.cgi line 10.


Bedeutet dies, dass meine GD-Version zu alt ist und diese Funktion noch gar nicht unterstützt wird?

Gruß,

wkonline
jan
 2005-02-05 23:19
#4273 #4273
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
nein, das bedeutet, dass $newimage nicht definiert ist. schau nochmal nach, wie die funktion aufgerufen wird ;) ich habs auch gerade nicht im kopf
wkonline
 2005-02-05 23:31
#4274 #4274
User since
2004-05-09
11 Artikel
BenutzerIn
[default_avatar]
Hi,

jap, das war der Fehler für diese Meldung.
Habe es so korrigiert:

Code: (dl )
$newimage = GD::Image->copyMerge($image, $small, 100, 100, 0, 0, $width, $height, 50);


Nun bekomme ich allerdings folgende Meldung:

Code: (dl )
Usage: GD::Image::copyMerge(destination, source, dstX, dstY, srcX, srcY, w, h, pct) at /home/wkonline/bilder.cgi line 16.


Und wie sollte man sich das anders denke: Zeile 16 ist

Code: (dl )
$newimage = GD::Image->copyMerge($image, $small, 100, 100, 0, 0, $width, $height, 50);

($width und $height sind natürlich gesetzt)

Wenn ich mir die Zeile printe, dann kommt folgendes dabei heraus:

Code: (dl )
GD::Image->copyMerge(GD::Image=SCALAR(0x8151dbc), GD::Image=SCALAR(0x815bd88), 100, 100, 0, 0, 375, 500, 50);


Gruß,

wkonline\n\n

<!--EDIT|wkonline|1107639365-->
jan
 2005-02-05 23:40
#4275 #4275
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
mh, also mal in der doku geschaut:

$image->copyMerge($sourceImage,$dstX,$dstY,$srcX,$srcY,$width,$height,$percent)

Code: (dl )
1
2
3
4
5
6
7
        $myImage = new GD::Image(100,100);
... various drawing stuff ...
$redImage = new GD::Image(50,50);
... more drawing stuff ...
# copy a 25x25 pixel region from $srcImage to
# the rectangle starting at (10,10) in $myImage, merging 50%
$myImage->copyMerge($srcImage,10,10,0,0,25,25,50);


versuchs mal damit, also destination weglassen und das ganze direkt auf $image anwenden, mit
Code: (dl )
$image->copyMerge($small, 100, 100, 0, 0, $width, $height, 50);

oder so.
wkonline
 2005-02-05 23:46
#4276 #4276
User since
2004-05-09
11 Artikel
BenutzerIn
[default_avatar]
Hi,

danke, das funktioniert!
Im Nachhinein klingt es auch nicht so wirklich unlogisch ;)

THX!!!

wkonline
jan
 2005-02-06 02:24
#4277 #4277
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
gern geschehen ;)


das ist ohnehin immer eine lustige sache. da hat ein kunde von mir, eine fotoagentur, sich eine software entwickeln lassen, um das bild-management (mit drm etc pp) zu machen und damit eine agentur aus wien beauftragt (damals leider noch kein kunde von mir). besagte software-firma hat damals ebenfalls vor diesem problem gestanden und dann gemeint, sie müssten für knapp 1500 euro eine externe lösung einkaufen, um die bilder in der demo mit wasserzeichen zu versehen. am ende lief es darauf hinaus, dass sie genau diese paar GD-funktionen in einem wirklich hässlichen phpscript aufgerufen haben, das einfach ein transparentes png in das bild copymerged hat. das hat mich dann aber doch umgehauen, nur mal so als anekdote am rande
<< >> 8 Einträge, 1 Seite



View all threads created 2005-02-05 17:42.