Heim >Backend-Entwicklung >PHP-Tutorial >PHP generiert Miniaturbildcode
Obwohl Sie in HTML das Bild beliebig skalieren können, indem Sie die Breite und Höhe des Bildes angeben, verringert diese Methode nicht die Anzahl der Pixel im Bild. Die Größe der Grafikdatei hat sich nicht geändert und das Herunterladen von Bildern wird dadurch sicherlich nicht beschleunigt. Natürlich können Sie Miniaturansichten von Bildern auch manuell über eine Grafiksoftware erstellen, aber bei einer großen Anzahl von Bildanzeigen ist dieser Arbeitsaufwand enorm. Zu diesem Zweck wurde ein automatisches Generierungsprogramm für Miniaturen entwickelt.
Mit der in PHP bereitgestellten Funktion imagecopyresized können echte gekürzte Bilder generiert werden. Die Standard-
-Syntax dieser Funktion lautet wie folgt:
Syntax: int imagecopyresized(int dst_im, int src_im, int dstX, int dstY,
int srcX, int srcY, int dstW, int dstH, int srcW , int srcH);
Rückgabewert: Ganzzahl
Funktionstyp: Grafikverarbeitung
Inhaltsbeschreibung: Diese Funktion kann ein neues Bild kopieren und die Größe des Bildes ändern. Die Parameter haben alle zuerst den Zweck und zuletzt die Quelle. Die Parameter dst im und src_im sind die Handles des Bildes. Die Parameter dstX, dstY, srcX und srcY sind die Koordinaten des Ziels bzw. der Quelle. Die Parameter dstW, dstH, srcW und srcH sind die Breite und Höhe der Quelle bzw. des Ziels. Hier wird die Größe des neuen Bildes konfiguriert, das angepasst werden soll.
Das Folgende ist ein Beispiel, um die Verwendung dieser Funktion zu veranschaulichen. Das entsprechende Programm thumb.php ist in der Programmliste 12-5 dargestellt.
Programmliste 12-5 thumb.php
Code kopieren Der Code lautet wie folgt:
// Diese Funktion entnimmt das Bild aus der Quelldatei und setzt es auf die angegebene Größe und gibt sie in die Zieldatei
// Quelldateiformat: gif, jpg, png
// Zieldateiformat: gif
// $srcFile: Quelldatei
// $ aus dstFile: Zieldatei
/ / $dstW: Zielbildbreite
// $dstH: Zieldateihöhe
function makethumb($srcFile,$dstFile,$dstW,$dstH)
{
$data = GetImageSize($srcFile ,&$info);
switch ($data[2])
{
Fall 1:
$imgsrc = @ImageCreateFromGIF($srcFile); >break;
case 2 :
$imgsrc = @ImageCreateFromJPEG;
break;
$imgsrc = @ImageCreateFromPNG($srcFile); ;
}
$srcW = ImageSX($imgsrc);
$ni = ImageCreate($dstW,$dstH); ni,$imgsrc,0,0 ,0,0,$dstW,$dstH,$srcW,$srcH);
Imagegif($ni,$dstFile);
// Wenn Sie eine Ausgabe an den Browser, dann ändern Sie den vorherigen Satz in ImageJpeg(
// Wenn Sie Bilder in anderen Formaten benötigen, ändern Sie einfach den letzten Satz
?> Rufen Sie es beispielsweise zuerst über die Funktion getimagesize() ab. Verwenden Sie im Fall des Quellbilds imagecreatefromgif(),
imagecreatefromjpeg() oder imagecreatefrompng(), um eine Quellbitmap $imgsrc zu erstellen, und verwenden Sie dann
imagecreate ()-Funktion zum Erstellen einer Ziel-Bitmap, deren Länge und Breite der Hälfte der Quell-Bitmap entsprechen. Rufen Sie dann die Funktion imagecopyresized()
auf, um die Quellbitmap zu verkleinern und in die Zielbitmap zu kopieren, und verwenden Sie schließlich die Funktion imagegif(), um eine Miniaturansicht zu generieren.
Die hier verwendeten Grafikverarbeitungsfunktionen werden von der installierten GD-Bibliothek bereitgestellt und werden jetzt separat erläutert. Stellen Sie zunächst
die Funktion getimagesize() vor. Die Standardsyntax lautet wie folgt.
Syntax: array getimagesize(string filename,array [imageinfo]);
Rückgabewert: array
Funktionstyp: Grafikverarbeitung
Inhaltsbeschreibung: Mit dieser Funktion können drei Arten von GIF abgerufen werden: JPEG und PNG Mit dieser Funktion können Sie die Höhe und Breite von Bildern im WWW festlegen, ohne die GD-Bibliothek zu installieren. Das zurückgegebene Array besteht aus 4 Elementen. Das erste Element des zurückgegebenen Arrays (Indexwert 0) ist die Höhe des Bildes in Pixeln; das zweite Element (Indexwert 1) ist die Breite des Bildes (Indexwert 2). ) ist das Dateiformat des Bildes, sein Wert 1 ist das GIF-Format, 2 ist das JPEG/JPG-Format und 3 ist das PNG-Format.
Das vierte Element (Indexwert 3) ist die Höhe und Breite des Bildes. Höhe=xxx Breite=yyy.
Durch die Anwendung der Funktion getimagesize() können verschiedene Informationen über das Bild leicht abgerufen werden. Lassen Sie mich Ihnen ein Beispiel für den Erhalt von Informationen zu Bildbreite, -höhe, -format und Dateigröße geben, um die Verwendungsfähigkeiten der Funktion getimagesize() besser zu verstehen.
Die Programm-imginfo wird in der Programmliste 12-6 angezeigt.
Programmliste 12-6 imginfo.php
Code kopieren Der Code lautet wie folgt:
function getImageInfo($img) //$img ist der absolute Pfad von die Bilddatei
{
$img_info = getimagesize($img);
switch ($img_info[2])
{
Fall 1:
$imgtype = "GIF";
break;
case 2:
$imgtype = "JPG";
break
$imgtype = "PNG"; }
$img_type = $imgtype."Image";
$img_size = ceil(filesize($img)/1000)."k"; //Ermitteln Sie die Dateigröße
$new_img_info = Array (
"width "=>$img_info[0],
"height"=>$img_info[1],
"type"=>$img_type,
"size"=>$img_size
);
print " width"
print " height"; ;
print $img_info[1];
print $img_type;
print $new_img_info; >}
$img = "/www/htdocs/images/jf.gif";
getImageInfo($img>?> Programm Um ein Miniaturbild in 12-5 zu erstellen, müssen Sie zunächst eine leere Leinwand zum Zeichnen erstellen.
Die ImageCreate-Funktion kann dies tun. Es wird eine Kennung für das Bild zurückgegeben, und Sie müssen der Funktion mitteilen, wie groß die Leinwand in Pixeln
ist (x (Breite) vs. y (Höhe)). Die Standardsyntax der in Programm 12-5 verwendeten Bilderstellungsfunktion imagecreate()
lautet wie folgt:
Syntax: int imagecreate(int x_size,int y_size);
Rückgabewert: integer
Funktion Typ: Grafikverarbeitung
Inhaltsbeschreibung: Mit dieser Funktion wird ein vollständig leeres Diagramm erstellt. Die Parameter x_size und y_size geben die Größe der Grafik an und die Einheit
ist Pixel.
Wenn Sie den Bilddateicode aus einem vorhandenen Bild extrahieren möchten, können Sie imagecreatefromgif(),
imagecreatefromjpeg() oder imagecreatefrompng() verwenden, um das zu extrahieren Bilddateicode aus einem GIF-Format
Rufen Sie den entsprechenden Bildquellcode aus der Bilddatei ab. Die Standardsyntax lautet wie folgt:
Syntax: int imagecreatefromgif(string filename);
Rückgabewert: integer
Funktionstyp: Grafikverarbeitung
Inhaltsbeschreibung: Diese Funktion wird zum Herausnehmen einer Grafik im GIF-Format verwendet, die normalerweise als Hintergrund oder einfaches Leinwandmuster verwendet wird
. Der Parameter Dateiname kann eine lokale Datei oder eine Netzwerk-URL-Adresse sein. Der Rückgabewert ist der Code der GIF-Datei
, der von anderen Funktionen verwendet werden kann.
Wenn die Quellbitmap verkleinert und in die Zielbitmap kopiert wird, wird die Funktion imagecopyresized() verwendet. Diese Funktion kann
das neue Bild kopieren und seine Größe ändern:
Syntax: int imagecopyresized (int dst_im,int src_im,int dstX,int dstY,int srcX,int srcY,
int dstW,int dstH,int srcW,int srcH);
Rückgabewert: Ganzzahl
Funktionstyp: Grafikverarbeitung
Inhaltsbeschreibung: Mit dieser Funktion kann ein neues Bild kopiert und die Bildgröße geändert werden. Bei Parametern steht der Zweck an erster Stelle und die Quelle an letzter Stelle. Die Parameter ddst_im und src_im sind die Handles des Bildes. Die Parameter dstX, dstY, srcX und srcY sind die Koordinaten des Ziels
bzw. der Quelle. Die Parameter dstW, dstH, srcW und srcH sind die Breite und Höhe der Quelle bzw. des Ziels. Wenn Sie die Größe des neuen Bildes anpassen möchten
, konfigurieren Sie es hier.
Die Standardsyntax der bei der Ausgabe von Bildern verwendeten Funktion imagegif() lautet wie folgt:
Syntax: int imagegif(int im, string [filename]);
Rückgabewert: Ganzzahl
Funktionstyp: Grafikverarbeitung
Inhaltsbeschreibung: Mit dieser Funktion wird eine Grafik im GIF-Format erstellt. Der Parameter im ist der Bildcode von
, der mit ImageCreate() erstellt wurde. Der Parameter filename kann weggelassen werden. Wenn kein Parameter filename vorhanden ist, wird das Bild direkt an den Browser gesendet das Bild Content-type:image/gif Header-String (Header) an die Browser-Seite
, um das Bild reibungslos zu übertragen. Wenn Sie ein GIF-Bild mit transparentem Hintergrund verwenden möchten, das dem Format von GIF89a entspricht, müssen Sie zunächst
ImageColorTransparent() verwenden, um einen transparenten Hintergrund zu konfigurieren. Das von dieser Funktion generierte GIF-Bild weist Urheberrechtsprobleme auf, daher muss
bei kommerzieller Nutzung stärker berücksichtigt werden.