|
Grafik beliebig in der Größe verändern |
|
Dienstag, 19. September 2006 |
http://www.webmaster-resource.de/tricks/php/grafik-beliebig-in-der-groesse-veraendern.php
Home: Tipps & Tricks: PHP Di, 19. September 2006
Geben Sie hier die gesuchten Begriffe ein.
Grafik beliebig in der Größe verändern
In diesem Artikel lesen Sie, wie Sie eine Grafik beliebig in der Größe skalieren können.
Mit Hilfe dieser Funktion können Sie eine JPEG-Grafik frei in ihrer Größe verändern.
Übergeben Sie der nachstehenden Funktion GrafikSkalieren(...) zuerst den Dateinamen der Grafik (und ggf. den Pfad) sowie die Länge der neuen Seite. Ob die Breite oder Höhe der Originalgrafik neu berechnet wird, wird dadurch bestimmt, welche Seite in der Grafik länger ist.
Quellcode
1.
<?php
2.
3.
header("Content-type: image/jpeg");
4.
5.
function GrafikSkalieren($Grafik, $Seite)
6.
{
7.
$Bilddaten = getimagesize($Grafik);
8.
$Breite = $Bilddaten[0];
9.
$Hoehe = $Bilddaten[1];
10.
11.
if($Breite > $Hoehe)
12.
{
13.
$NeueBreite = $Seite;
14.
$NeueHoehe = $Seite / $Breite * $Hoehe;
15.
}
16.
else
17.
{
18.
$NeueBreite = $Seite / $Hoehe * $Breite;
19.
$NeueHoehe = $Seite;
20.
}
21.
22.
$SkalierteGrafik = ImageCreateTrueColor($NeueBreite, $NeueHoehe);
23.
$Originalgrafik = ImageCreateFromJPEG($Grafik);
24.
ImageCopyResampled($SkalierteGrafik, $Originalgrafik, 0, 0, 0, 0, $NeueBreite, $NeueHoehe, $Breite, $Hoehe);
25.
return $SkalierteGrafik;
26.
}
27.
28.
ImageJPEG(GrafikSkalieren("grafik.jpg", 500));
29.
30.
?>
Bei der Benutzung der obigen Funktion spielt es keine Rolle, ob das Bild verkleinert oder vergrößert wird.
Möchten Sie statt einer JPG-Grafik ein anderes Bildformat skalieren, müssen Sie die entsprechende Funktion verwenden: ImageCreateFromGIF/JPEG/PNG(...) sowie ImageGIF/JPEG/PNG(...). Zusätzlich müssen Sie den Content-Type des Headers anpassen (gif, jpeg, png). |