Zum Inhalt springen

[PHP] Image in Image zeichnen (GD)


Empfohlene Beiträge

Hallo,

ich arbeite gerade an einem dynamischen Plan in PHP. Ich möchte verschiedene Objekte wie in in anderen Analysetools verbinden (z.B. Wolke1 mit Wolke2 über eine Linie). Das klappt auch alles mit ImageLine und anderen Funktionen.

Nun habe ich aber eine Frage: ist es möglich, ein per ImageCreateFromJPEG erzeugtes JPEG in ein schon existierendes Image (das per ImageCreate gemacht wurde) einzubinden? Ich stelle es mir z.B. so vor, dass ich schon vorhandene JPEGs (z.B. für ein PC-Icon) darüber einbinden und nun auf meinem End- bzw. Hauptimage platziere. Was mir jetzt fehlt ist eine Funkrion ala setItemOnImage(int StartPunktX, int StartPunktY).... jemand vielleicht schon mal sowas gemacht und eine Idee????

Greetz,

die sockä

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also das Problem habe ich immer noch, aber ich habe es übergangsweise erstmal anders "häßlich" gelöst (zwei einzelne Bilder erstellt und in eine Tabelle ohne Rahmen gepackt und dort angeordnet).

Nun aber schon das nächste Prob - HotSpots :)

ich möchte das eine dynamisch generierte Bild mit einer ImageMap versehen. Die ImageMap soll natürlich auch dynamisch erzeugt werden, zeitgleich mit dem Image selber. Über die normalen HTML-Tags krieg ich es nicht hin. Wenn ich mir im Browser das Bild ansehe, habe ich keinen einzigen Link darauf. Aber im Quelltext (wenn ich mit der rechten Maustaste klicke) stehen sehr wohl die Angaben dafür drin... wieso "überliest" er das einfach... oder geht das so gar nicht wie ich das möchte?!

Wenn jemand nützliche Tipps hat - her damit! *g*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mhh... edit ging irgendwie nicht mehr... also neuer Beitrag:

ich habe in meinem Code sowas stehen:


echo '<map name="map">';

echo '<area shape="rect" coords="10,10,10,10" href="#">';

echo '</map>';

echo '<img src="'.$filename.'" border="0" alt="titel" usemap="#map">;

wenn ich jetzt das Bild im Browser aufrufe, kriege ich sogar den alternativen Text (hier:"titel") angezeigt... also ist die ImageMap theoretisch da. Aber an 10,10,10,10 müsste ja ein Link sein.... der ist aber nicht da.... ?!?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

zur 1. Frage:

ich hab das ma so gelöst:


/**
* Imports an given *.PNG to the given coordinates
*
* @param string filename of the image
* @param int X-Coordinate where the image should be placed
* @param int Y-Coordinate where the image should be placed
* @return void
*/
function importImage( $name, $posX, $posY) {
$image = imagecreatefrompng( MYOBJECTS_IMAGES . $name) or exit( 'Error while creating GD-image "'. $name .'"');
imagecopy( $this->getImage(), $image, $posX, $posY, 0, 0, imagesx( $image), imagesy( $image));
imagedestroy( $image);
}[/PHP]

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey Markus,

danke für deine Methode!

Habe sie mir für JPEG umgeschrieben (oder halt angepasst), funktioniert auch (soll heißen dass das vorhandene jpeg auf mein neu erstelltes Bild "draufgebatscht" wird). Aber ein Problem habe ich jetzt: er zeichnet alles in einem leichten Grau-Schleier! Die Linien-Farbe auf meinem Hauptbild ist schwarz, die Text-Strings sind auch in verschiedenen Farben, aber sie kommen jetzt alle in einem Einheitsgrau raus. Auch das eingebundene Bild (es ist ein s/w Clip-Art) ist in Grau gehalten... alles das gleiche grau.... woran liegt denn das???

Wenn du noch ein Tipp oder ne Idee für die Ursache hast, würde ich mich freuen!

Bis dann und schon mal vielen lieben Dank,

sockä

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nochwas zu den "Grau"-Problem:

Ich habe das Bild, was ich auf mein "Hauptbild" (ein .png) importieren (draufklatschen) will, mal als .png, .jpeg und .gif genommen. Wenn ich PNG und JPEG importiere, wird mein gesamtes Hauptbild mit allen Elemente darauf grau (also richtig grau, nicht nur ein Grauschleier - es sind alle Farben weg). Bei GIF funktioniert es allerdings, dann bekomme ich wieder ein Farbbild.

Naja, soll mich ja ansich nicht stören, dass das Bild ein GIF ist, aber auf dem System, wo das Skript zum Einsatz kommt, ist die GD-Biblio installiert, die kein .gif mehr unterstützt :/

Also wenn jemand weiß, woran dass Grau-werden bei PNG und JPEG liegt... ich wäre ihm sehr dankbar!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nochwas zu den "Grau"-Problem:

Ich habe das Bild, was ich auf mein "Hauptbild" (ein .png) importieren (draufklatschen) will, mal als .png, .jpeg und .gif genommen. Wenn ich PNG und JPEG importiere, wird mein gesamtes Hauptbild mit allen Elemente darauf grau (also richtig grau, nicht nur ein Grauschleier - es sind alle Farben weg). Bei GIF funktioniert es allerdings, dann bekomme ich wieder ein Farbbild.

Naja, soll mich ja ansich nicht stören, dass das Bild ein GIF ist, aber auf dem System, wo das Skript zum Einsatz kommt, ist die GD-Biblio installiert, die kein .gif mehr unterstützt :/

Also wenn jemand weiß, woran dass Grau-werden bei PNG und JPEG liegt... ich wäre ihm sehr dankbar!

Ich hatte ein ähnliches Problem, aber bei mir ging das nur mit PNG so weit ich weiss.

Ich gehe mal davon aus dass du alle formate im gleichen Format haben musst.

Also heisst,

Hauptbild JPEG

dann auch Import mit JPEG

bzw:

Hauptbild GIF

dann auch Import mit GIF

.

.

.

Versuchs am besten ma aus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hauptbild JPEG

dann auch Import mit JPEG

Hauptbild GIF

dann auch Import mit GIF

... mhh... ich habe nun Hauptbild png und Import gif... das ist das einzige was geht. Obwohl mir jpeg->jpeg und gif->gif auch logischer und richtiger erscheint, "machen" tut er es nur mit gif->png...?!

Beim Googlen habe ich als einzigen Tipp bekommen, dass es an der Transparenz liegt, das würde natürlich für gif sprechen und somit wäre klar, warum nur gif bei mir geht. Nun habe ich aber auch mal die Transparenz rausgenommen (wie in den Google-Sites beschrieben) und es müsste dann auch mit jpeg und png gehen... aber Pustekuchen :(

Habe vorerst auf dem Realsystem eine alte GD-Version eingebunden mit GIF-Unterstützung... aber nicht wirklich das Optimum...

Link zu diesem Kommentar
Auf anderen Seiten teilen

statt dem imagecreate nimm einfach imagecreatetruecolor dann ist der Grauschleier verschwunden. ;)

Das ist natürlich eine Idee, aber davon bin ich ausgegangen....

Ich hatte auch schon soclhe Probleme trotz der Verwendung von "imagecreatetruecolor"...

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also ImageTrueColor ging leider auch net :/

Aber noch was anderes: wie kann ich bei einem schon erstellten Bild im Nachhinein noch die Größe ändern? Also bei ImageCreate muss ich ja die Größe angeben. Ist es möglich, dass ich erst per ImageCreate mein Bild an sich anlegen und dann später im Code noch mal die Werte für Höhe und Breite ändern kann? Sowas wie setWidth oder setHeight gibt es ja leider nicht... denn die Größe entscheidet sich erst am Ende des Codes...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...