Antworten auf deine Fragen:
Neues Thema erstellen

PHP Bild erzeugen und als jpg einbinden

pain2000

Nicht mehr ganz neu hier

Hallo Leute,
mal eine Frage zu PHP und der Imagefunktion.
Ich lasse in einem php-Script ein Bild erzeugen. Soweit kein Problem. Auf der Seite, wo das Bild angezeigt werden soll wird es nat. mit dem img-Tag eingebunden
Code:
<img src="bild.php">
Ist es nun aber möglich das Bild nicht als 'bild.php' sondern als 'bild.jpg' zu laden? Durch einfaches umbenennen der php-Datei geht es leider nicht.
Ich frage nur deshalb, weil ich z.B. ein Signaturbild von Danasoft.com hab (), das wird ja direkt als jpg aufgerufen aber trotzdem generiert. Oder haben die das nicht mit PHP gemacht?
 

netbandit

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

Per htaccess und modrewrite wäre das möglich:

htaccess:

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^bild.jpg$ bild.php [L,NE]

Dann kannst Du auch jpg als Dateiendung angeben, wird dann auf die PHP-Datei umgeleitet
 

pain2000

Nicht mehr ganz neu hier

AW: PHP Bild erzeugen und als jpg einbinden

Hi netbandit,
danke für den Tip, hab mich diesbezüglich mal eingelesen... theoretisch ist das klar, aber praktisch macht es mein Server nicht mit...:schmoll:
Naja, ist letztendlich auch nicht sooo schlimm...
 

Chickenshooter

Alter Mann

AW: PHP Bild erzeugen und als jpg einbinden

folgendes geht aber auch wenns denn sein soll:
PHP:
/*
* File: bild.php
*/
function createPicture( $userid )
{
  // mit der userid in der DB (Tabelle der User) nach dem User suchen...
   $username = "UserName";
   $text = "Den Text den Du haben willst";
   $path="deinBilderPfad/";

  $im = @imagecreatetruecolor(320, 40)
      or die('Cannot Initialize new GD image stream');
  $text_color = imagecolorallocate($im, 233, 14, 91);
  imagestring($im, 1, 5, 5,  $text, $text_color);
  imagepng($im,$path.$username.".png");
}
so jetzt Deine php Datei in der Du die Grafik brauchst

PHP:
/*
* File: User.php
* Param: id
*/
<?php
include("bild.php");
createPicture( $_GET['id'] );
?>
<img src="<?php echo $path.$username.".png"; ?>" alt="<?php echo $username; ?>" />
sollte laufen ist aber von mir ungetestet.

MfG Chick
 

pain2000

Nicht mehr ganz neu hier

AW: PHP Bild erzeugen und als jpg einbinden

Hi 'Chickenshooter',
so würde das auch gehen. Klar. Dann wird ja aus der bild.php z.B. ein png auf dem Server erzeugt und das kann ich dann als normales Bild einbinden.
Vielen Dank für den Tip, hätte ich auch drauf kommen können...:D
Aber der Tip von 'netbandit' mit htaccess und modrewrite ist nicht schlecht und auch für andere Dinge gut nutzbar.
Trotzdem merci...
 

stroyer

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

Wozu muss das Bild die Dateiendung jpg haben? Genügt es dir nicht wenn du einfach header("Content-type: image/jpeg"); einfügst?
 

CIX88

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

> Wozu muss das Bild die Dateiendung jpg haben?

Eigentlich braucht man keine Endung, wenn der Header korrekt gesendet wird.
Also Dateityp, Dateilänge und vielleicht Dateiname. Man benutzt aber gern die Endung, wenn es Browser gibt die eventuell den Haeder nicht richtig auswerten.
 

stroyer

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

> Wozu muss das Bild die Dateiendung jpg haben?

Eigentlich braucht man keine Endung, wenn der Header korrekt gesendet wird.
Also Dateityp, Dateilänge und vielleicht Dateiname. Man benutzt aber gern die Endung, wenn es Browser gibt die eventuell den Haeder nicht richtig auswerten.

Header (content type) haben bei mir eigentlih noch nie versagt.
Höchstens in Zusammenhang mit downloads, aber da kommt notfalls der dateiname vom header zum Zug. Und der lässt sich ja beliebig einstellen.
 

Top_Gun

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

Es ging ihm darum das Bild, als für jeden ersichtlich (durch die .jpg-Endung) irgendwo einbinden zu können. Wie das oben genannte Beispiel.
Und nicht darum ob das alleine mit dem Header funktioniert oder nicht...

Ich fände es auch deutlich schöner, wenn das Bild ne entsprechende Endung hätte...
 

stroyer

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

Da hätte ich vielleicht eine dumme Idee (ich weiß nicht, ob sie so funktioniert).
Bsp.: <img src="read.php?id=10.jpg">. Bitte korrigiert mich, falls dies nicht mödlich ist.
Andersherum (z.B. read10.jpg) wird es wie schon netbandit gesagt hat so weit ich weiß nur mit htaccess gehen.

So hätte ich das dann gelöst:
Code:
RewriteEngine On
RewriteCond %{QUERY_STRING} !read.php
RewriteRule ^(img.+)$ read.php?file=$1
Leitet alles, das mit img beginnt auf read.php?file=... um (Bsp.: imgTestBild01.jpg=>read.php?file=TestBild01.jpg)

Sollte dann eigentlich laufen.
 

pain2000

Nicht mehr ganz neu hier

AW: PHP Bild erzeugen und als jpg einbinden

Es ging ihm darum das Bild, als für jeden ersichtlich (durch die .jpg-Endung) irgendwo einbinden zu können. Wie das oben genannte Beispiel.
Und nicht darum ob das alleine mit dem Header funktioniert oder nicht...

Ich fände es auch deutlich schöner, wenn das Bild ne entsprechende Endung hätte...
Ja genau.
Das Bild wird in eine Seite per img-Tag eingebunden.
Code:
<img src="bild.php">
In dieser php-Datei wird dann nat. der Header gesendet...
Es ging mir jedoch darum, den Aufruf im img-Tag nicht mit 'bild.php' sondern mit 'bild.jpg' zu realisieren.
 

pain2000

Nicht mehr ganz neu hier

AW: PHP Bild erzeugen und als jpg einbinden

Da hätte ich vielleicht eine dumme Idee (ich weiß nicht, ob sie so funktioniert).
Bsp.: <img src="read.php?id=10.jpg">. Bitte korrigiert mich, falls dies nicht mödlich ist.
Andersherum (z.B. read10.jpg) wird es wie schon netbandit gesagt hat so weit ich weiß nur mit htaccess gehen.

So hätte ich das dann gelöst:
Code:
RewriteEngine On
RewriteCond %{QUERY_STRING} !read.php
RewriteRule ^(img.+)$ read.php?file=$1
Leitet alles, das mit img beginnt auf read.php?file=... um (Bsp.: imgTestBild01.jpg=>read.php?file=TestBild01.jpg)

Sollte dann eigentlich laufen.
Ja so ähnlich hab ich es jetzt auch gemacht.
Vielen Dank für eure Bemühungen.
Damit ist das Problem eigentlich gelöst.
 

CIX88

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

> Leitet alles, das mit img beginnt auf read.php?file=... um

In der Hoffnung, dass auf der Website keine Grafiken vom Layout vorhanden sind.
Ich würde das jedenfalls nicht so machen.
 

stroyer

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

Ich hab es nur als Beispiel gemeint; statt img geht ja alles, was man braucht. außerdem kann man auch mit Unterordnern arbeiten
 
M

Michael_Jim

Guest

AW: PHP Bild erzeugen und als jpg einbinden

Es ist sinnvoll, Bilder die per gdlib erzeugt werden, zu cachen.
Da das Erzeugen von gdlib Bilder mehr CPU Power verbraucht, kannst du somit verhindern, dass ein Hacker deinen Server in die Knie zwingt.
 

stroyer

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

Kommt aber darauf an 1) ob sich das Bild cachen lässt bzw. es sinnvoll ist und 2) ob überhaupt ein Hacker sich die Seite einmal vornimmt, was eher sehr selten ist. Wahrscheinlich wird das eh kein eigener Server sein, sprich Maximallaufzeit,...
 
M

Michael_Jim

Guest

AW: PHP Bild erzeugen und als jpg einbinden

Kommt aber darauf an 1) ob sich das Bild cachen lässt bzw. es sinnvoll ist und 2) ob überhaupt ein Hacker sich die Seite einmal vornimmt, was eher sehr selten ist. Wahrscheinlich wird das eh kein eigener Server sein, sprich Maximallaufzeit,...
Klar hast du schon teilweise recht, aber sowas wie ne Signatur kann man immer cachen. Nur alle 5 Minuten neu errechnen lassen reicht in den meisten Fällen aus.
Man sollte es auf jedenfall nicht drauf ankommen lassen ;)
Ich bin in so einem Fall immer lieber etwas vorsichtiger.
 
N

Nortex

Guest

AW: PHP Bild erzeugen und als jpg einbinden

Hallo,
wirklich klasse Thema, welches ich zufällig sowieso suchte.
Ich möchte in einem Forum jedem User die Möglichkeit bieten eine dynamische Signatur zu verwenden. Habe nur noch Schwierigkeiten bei der Automatisierung. Ich habe bisher folgenden Code:
PHP:
<?php
include("config.inc.php");
$userid = "UserName";
$path = "signatures/";

//Userdaten
$user = "SELECT * FROM wcf1_user WHERE userID = $userid"; 
$adressen_query = mysql_query($user) or die("Anfrage nicht erfolgreich");

//Beitragszähler
$postcount = "SELECT * FROM wbb1_1_user WHERE userID = $userid"; 
$postcount_query = mysql_query($postcount) or die("Anfrage nicht erfolgreich");

//Personal Best
$pb = "SELECT * FROM wcf1_user_option_value WHERE userID = $userid"; 
$pb_query = mysql_query($pb) or die("Anfrage nicht erfolgreich");

while ($pbr = mysql_fetch_array($pb_query)){
while ($adr = mysql_fetch_array($adressen_query)){

//Userdaten
$username = $adr['username'];
$registered = $adr['registrationDate'];
$registeredsince = date("d.m.y",$registered); 
$rankid = $adr['rankID'];
$email = $adr['email'];
$activity = $adr['lastActivityTime'];

//Other
$lastactivity = date("d.m.y",$activity);
$personalbest = $pbr['userOption53'];
$realname = $pbr['userOption54'];

//Beitragszähler
$posts = $postcount['posts'];

}
}

//Bilderstellung
$image = ImagecreateTrueColor(440, 130);
$im = ImageCreateFromPNG("signature.png");
imagecopy($image, $im, 0, 0, 0, 0, 440, 130);
//imagealphablending($image, false);

$color = ImageColorAllocate($image, 200, 199, 133);
$black = ImageColorAllocate($image, 0, 0, 0);

//Ausgaben
imagettftext($image, $size3, 0, 340, 120, $color, $fontfile, $username);
imagettftext($image, $size2, 357, 20, 74, $black, $fontfile, $personalbest);
imagettftext($image, $size, 0, 5, 10, $black, $fontfile, $realname);
imagettftext($image, $size, 0, 150, 10, $black, $fontfile, $email);
imagettftext($image, $size, 0, 250, 10, $black, $fontfile, $lastactivity);


//Bilderstellung
imagepng($image);
imagepng($image,$path.,$userid.".png");
imagedestroy($image);
?>
Wie genau kann ich für jede UserID eine Signatur erzeugen und die ID's auslesen (Zeile 3).

Vielen Dank
Sebastian
 

stroyer

Aktives Mitglied

AW: PHP Bild erzeugen und als jpg einbinden

die id wirst du wahrscheinlich per get-Variable übernehmen.
und das Bild kannst du entweder jedes mal beim Aufruf generieren oder, in dem Fall geb ich Michael_Jim recht, einfach jedes Mal bei änderung das neue Bild als Datei abspeichern.
 
N

Nortex

Guest

AW: PHP Bild erzeugen und als jpg einbinden

Ok vielen Dank.
Ich bin aber ein Anfänger in Sachen PHP und weiß nicht genau die GET Funktion einzusetzen. Wie würde mein Code aussehen müssen? Die neue Generierung des Bildes beim Aufruf ist ok, dann heißt der Pfad doch: oder?
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.476
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben