Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » HTML / XML / XHTML » Bild verkleinern aber nicht vergrößern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.03.2007, 20:15 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Hallo!

Will meinen Usern die Möglichkeit geben ein Selbstportrait von 150x200 auf ihrer Userseite einzubinden. Das Bild wird über eine FremdURL eingelesen. Nun soll das Bild wenn es zb 100x100 groß ist normal in 100x100 dargestellt werden, wenn es aber über 150x200 geht soll es verkleinert werden.

Wie stell ich das an?
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.03.2007, 22:04 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
evtl so:


Code:

<img src="http://external/image" width="100" style="max-height: 200px">




Problem nur: < ie6 funktioniert max-height nicht, d.h wenn einer ein 1x10000px bild einbindet zeigt er das als 100x1000000 an

Wenn du PHP o.ä verfügbar hast, kannste das von nem script einlesen lassen und dir ausrechnen lassen.

Oder du speicherst es direkt beim abspeichern vom profil, wär aber auch doof (oder du lässt halt nur upload zu, dann kann mans ausrechnen lassen vom script)


oder so (mal schnell zusammengeschustert)


Code:
<?php

header("Expires: Mon, 01 Jul 1990 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");

$url = @base64_decode(@urldecode($_GET['image']));
$u = @parse_url($url);
if($u['scheme'] != "http" && $u['scheme'] != "ftp" && $u['scheme'] != "https")
{
    print_r($u);
    die("Unknown URL $url");
}

$size = @getimagesize($url, $info);
while($size[0] > 100)
{
  $nsize[0] = round($size[0] / 1.2,0);
  $nsize[1] = round($size[1] / 1.2,0);
}

$img = 0;

switch($size[2])
{
case 1: // gif
    $img = ImageCreateFromGIF($url);
    break;
case 2: // jpeg
    $img = ImageCreateFromJPEG($url);
    break;
case 3: // png
    $img = ImageCreateFromPNG($url);
    break;
case 4: // swf, unsupported
    break;
}
if(!$img)
    die("Open URL $url failed");

if(isset($nsize))
{
    $nimg = ImageCreateTrueColor($size[0], $size[1]);
    ImageCopyResized($nimg, $img, 0, 0, 0, 0, $nsize[0], $nsize[1], $size[0], $size[1]);
    switch($size[2])
    {
    case 1:
        header("Content-Type: image/gif", true);
        ImageGIF($nimg);
        break;
    default:
        header("Content-Type: image/png", true);
        ImagePNG($nimg);
    }
}
else
{
    switch($size[2])
    {
    case 1:
        header("Content-Type: image/gif", true);
        ImageGIF($img);
        break;
    default:
        header("Content-Type: image/png", true);
        ImagePNG($img);
    }
}

?>



und dann z.B so einbinden:


Code:
$url = "http://external/image";

// ...

<img src="image.php?image=<?= urlencode(base64_encode($url)) ?>">


--
class God : public ChuckNorris { };

Dieser Post wurde am 25.03.2007 um 22:08 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ HTML / XML / XHTML ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: