Hiho, ihr Forumleser, ich wende mich mit einer kleinen Frage an euch...
Ich habe in mein Forum ein System reingebracht, in dem die User Bilder von sich hochladen können und diese dann mit dem Namen $userID.extension gespeichtert werden, geht ja soweit "mit ohne" GD.(ist auch eine andere Geschichte...)
Nun haben wir aber nicht unbeschränkt Platz für diese Bilder, um genau zu sein, will ich diese auf 150x150 pixel beschränken, ich habe dazu folgende Funktion geschrieben, habe aber allerdings das Gefühl dabei, dass ich damit ZIEMLICH auf die Schnauze falle, weil ich eine Eigenschaft des Internet Explorers ausnutze, die ich in Netscape vor v6 vermisst habe.
Diese Eigenschaft ist, dass Bilder mit dem <img>-Tag eingebunden werden können ohne,dass man ihre Größe anzugeben braucht.Wenn man jedoch eine Größe angibt, wird das Bild auf diese skaliert, wenn es die Originalgröße ist, dann wird es halt auf 100% skaliert...
Hier jedenfalls der Code, der die Bilder der User ausliest.
Was ich mir von euch erhoffe, sind besser Vorschläge, wie ich das ganze ohne GDlib realisieren kann, da ich eine recht neue GD version auf dem Server habe, die einige Funktionen, wie imagegif lt. SelfPHP aus Lizenzgründen nicht mehr unterstützt werden.
Ach ja...die Lösung sollte etwa genauso einfach sein, ich baue ein Forum, kein Betriebssystem
Danke im Voraus und GRÜÜÜÜÜÜÜÜÜÜßE
Ich habe in mein Forum ein System reingebracht, in dem die User Bilder von sich hochladen können und diese dann mit dem Namen $userID.extension gespeichtert werden, geht ja soweit "mit ohne" GD.(ist auch eine andere Geschichte...)
Nun haben wir aber nicht unbeschränkt Platz für diese Bilder, um genau zu sein, will ich diese auf 150x150 pixel beschränken, ich habe dazu folgende Funktion geschrieben, habe aber allerdings das Gefühl dabei, dass ich damit ZIEMLICH auf die Schnauze falle, weil ich eine Eigenschaft des Internet Explorers ausnutze, die ich in Netscape vor v6 vermisst habe.
Diese Eigenschaft ist, dass Bilder mit dem <img>-Tag eingebunden werden können ohne,dass man ihre Größe anzugeben braucht.Wenn man jedoch eine Größe angibt, wird das Bild auf diese skaliert, wenn es die Originalgröße ist, dann wird es halt auf 100% skaliert...
Hier jedenfalls der Code, der die Bilder der User ausliest.
PHP:
function zeige_pic($user_id)
{
$datei[1] = "upics/" . $user_id . ".gif";
$datei[2] = "upics/" . $user_id . ".jpeg";
$datei[3] = "upics/" . $user_id . ".png";
/*
System:
erst wird überprüft welceh extension die datei hat, da es nur 3 möglichkeiten gibt,
testen wir, ob eine datei mit der endung .gif,.jpeg oder .png existiert.
Im erfolgsfall wird ein HTML-tag generiert, welches das Bild in seiner ORIGINALGRÖßE
einbindet, falls diese 150x150px überschreitet, wird das tag überschrieben, mit einem tag, in dem
die werte 150x150 als Fläche angegeben werden,was den Browser(zumindest IE) dazu veranlasst,
das Bild zu skalieren.
*/
if(file_exists($datei[1]))
{
$iname = $datei[1];
$tag_create = "<img src=" . $iname . " alt='user picture'>";
$size = getimagesize($iname);
if(($size[0] > 150) OR ($size[1] > 150))
{
$tag_create = "<img src=" . $iname . " alt='user picture' width=150 height=150>";
}
}
elseif(file_exists($datei[2]))
{
$iname = $datei[2];
$tag_create = "<img src=" . $iname . " alt='user picture'>";
$size = getimagesize($iname);
if(($size[0] > 150) OR ($size[1] > 150))
{
$tag_create = "<img src=" . $iname . " alt='user picture' width=150 height=150>";
}
}
elseif(file_exists($datei[3]))
{
$iname = $datei[3];
$tag_create = "<img src=" . $iname . " alt='user picture'>";
$size = getimagesize($iname);
if(($size[0] > 150) OR ($size[1] > 150))
{
$tag_create = "<img src=" . $iname . " alt='user picture' width=150 height=150>";
}
}
else
{
$iname = "nopic.gif";
$tag_create = "<img src=" . $iname . " alt='user picture'>";
}
return $tag_create;
}
Was ich mir von euch erhoffe, sind besser Vorschläge, wie ich das ganze ohne GDlib realisieren kann, da ich eine recht neue GD version auf dem Server habe, die einige Funktionen, wie imagegif lt. SelfPHP aus Lizenzgründen nicht mehr unterstützt werden.
Ach ja...die Lösung sollte etwa genauso einfach sein, ich baue ein Forum, kein Betriebssystem
Danke im Voraus und GRÜÜÜÜÜÜÜÜÜÜßE