Heim >Backend-Entwicklung >PHP-Tutorial >Bildänderung, die mit PHP einfach gemacht wurde

Bildänderung, die mit PHP einfach gemacht wurde

Lisa Kudrow
Lisa KudrowOriginal
2025-03-01 10:23:09735Durchsuche

Image Resizing Made Easy With PHP

Wollte jemals eine allzwecke, benutzerfreundliche Methode zur Größe Ihrer Bilder in PHP? Das ist es, was PHP -Klassen sind - respektierbare Funktionen, die wir für die schmutzige Arbeit hinter den Kulissen bezeichnen. Wir lernen, wie man unsere eigene Klasse erstellt, die gut konstruiert und erweiterbar ist. 

Einführung

Um Ihnen einen kurzen Blick auf das zu geben, was wir mit unserer Klasse erreichen möchten, sollte die Klasse sein:

  • leicht zu verwenden
  • Format unabhängig: Kann eine Anzahl von verschiedenen Bildformaten nicht intelligent geöffnet: Nicht intelligent. Erstellen Sie Klassen und Objekte, und obwohl diese Fähigkeit helfen würde, ist es nicht erforderlich, diesem Tutorial zu folgen. Vorbereitung
  • Der erste Schritt ist einfach. Erstellen Sie in Ihrem Arbeitsverzeichnis zwei Dateien: eine namens
  • index.php
und die andere

Größe der Größe der Größe. Wenn Sie das Objekt


aufrufen, um Ihnen eine Vorstellung davon zu geben, was wir erreichen möchten, werden wir zunächst die Anrufe codieren, mit denen wir die Bilder ändern werden. Öffnen Sie Ihre Datei

index.php

und fügen Sie den folgenden Code hinzu.

Wie Sie sehen können, gibt es eine schöne Logik für das, was wir tun. Wir öffnen die Bilddatei und setzen die Dimensionen, die wir ändern möchten, und die Art der Größenänderung. Dann speichern wir das Bild und wählen das Bildformat und die gewünschte Qualität aus. Speichern und schließen Sie Ihre index.php Datei


Aus dem obigen Code können Sie sehen, dass wir eine

jpg

-Datei öffnen, aber ein

gif speichern. Denken Sie daran, es geht nur um Flexibilität.

3. Erstellen Sie das Klassenskelett Es ist eine objektorientierte Programmierung (OOP), die dieses Gefühl der Leichtigkeit ermöglicht. Denken Sie an eine Klasse wie ein Muster; Sie können die Daten zusammenfassen - einen anderen Jargon -Begriff, der wirklich bedeutet, die Daten zu verbergen. Wir können diese Klasse dann immer wieder wiederverwenden, ohne dass der Größencode umschreiben muss. Öffnen Sie Ihre

-Regrice-Class.php
// *** Include the class<br>include("resize-class.php");<br><br>// *** 1) Initialize / load image<br>$resizeObj = new resize('sample.jpg');<br><br>// *** 2) Resize image (options: exact, height, width, auto, crop)<br>$resizeObj -> resizeImage(150, 100, 'crop');<br><br>// *** 3) Save image<br>$resizeObj -> saveImage('sample-resized.gif', 100);<br>
Datei. Im Folgenden finden Sie eine wirklich grundlegende Klassen -Skelettstruktur, die ich $ Dateiname

. Wir tun dies mit der benutzerdefinierten Methode $ $ image als private Variable, indem Sie private eingeben. Von nun an können wir einen Anruf in unserem geöffneten Bild tätigen, das als Ressource bezeichnet wird und die wir später tun werden, wenn wir die Größe ändern.

Während wir dabei sind, speichern wir die Höhe und Breite des Bildes. Ich habe das Gefühl, dass diese später nützlich sein werden.

Sie sollten jetzt Folgendes haben. Sie holen die Breite und Höhe Ihres Bildes ab.

// *** Include the class<br>include("resize-class.php");<br><br>// *** 1) Initialize / load image<br>$resizeObj = new resize('sample.jpg');<br><br>// *** 2) Resize image (options: exact, height, width, auto, crop)<br>$resizeObj -> resizeImage(150, 100, 'crop');<br><br>// *** 3) Save image<br>$resizeObj -> saveImage('sample-resized.gif', 100);<br>

5. Öffnen des Bildes

Im vorherigen Schritt haben wir die benutzerdefinierte Methode strrchr ()
in PHP bezeichnet, die einen Teil der Hauptzeichenfolge aus dem letzten Auftreten des angegebenen Zeichens bis zum Ende zurückgibt. Zum Beispiel wird uns der Dateiname

papaya.jpg

.jpg geben, und die Dateiname I. Like.Papaya.jpg gibt uns auch .jpg . Breite - Die breite Breite wird eingestellt, die Höhe wird nach Seitenverhältnis eingestellt. (Höhe ) automatische Optionen 2 und 3. Wenn Sie einen Ordner mit verschiedenen Fotos mit unterschiedlichen Größe durchlaufen, lassen Sie das Skript feststellen, wie Sie damit umgehen. (Ernte )

7. Größenänderung. Lassen Sie es uns tun! Die erste ist die optimale Breite und Höhe für unser neues Bild, indem einige benutzerdefinierte Methoden erstellt werden - und natürlich wie oben beschrieben in unserer Option der Größe der Größenänderung weitergegeben. Die Breite und Höhe werden als Array zurückgegeben und auf ihre jeweiligen Variablen eingestellt. Fühlen Sie sich frei, für Referenz zu bestehen - aber ich bin kein großer Fan davon. Wir werden zwei integrierte PHP-Funktionen für unsere Größenänderung verwenden. Sie sind:

  • imageCopyresampled
  • Ich empfehle, dass Sie in der Dokumentation darüber lesen. $ imageresized;
    mit Ihren anderen Klassenvariablen. Viele der von uns verwendeten Methoden werden von dieser Bibliothek bereitgestellt. Dieses Bildobjekt wird dann an die Höhe

    oder automatisch

    übergeben. Wir verwenden die ursprüngliche Breite und Höhe des Bildes, um festzustellen, ob das hochgradige Bild eine feste Breite oder Höhe haben sollte. Für Bilder in der Landschaftsorientierung halten wir die Breite fest. Für Bilder in der Porträtausrichtung halten wir die Höhe repariert. Wenn das Originalbild ein Quadrat ist, wählen wir die feste Dimension mit dem neuen Wert der Breite und des Höhenwerts aus. Der Grund dafür ist, dass unsere Klassen die Bilder nach der Größe direkt auf die angegebene Breite und Höhe aufnehmen.

    Nehmen wir an, die Abmessungen eines Bildes sind 1920 W und 1080h, und Sie möchten es auf 1200 W und 200h abschneiden. Wie Sie sehen können, ist das Verhältnis der ursprünglichen Breite zur neuen Breite niedriger als das entsprechende Höhenverhältnis. Daher muss das Bild zunächst so geändert werden, dass seine Breite auf 1200 sinkt und die Höhe entsprechend ändert. Ernte

    Wenn Sie sich für eine Ernte entschieden haben - das heißt, Sie haben die Ernteoption verwendet - haben Sie noch einen kleinen Schritt. Wir werden das Bild aus der Mitte tauchen. Zuschneiden ist ein sehr ähnlicher Prozess wie die Größe, aber mit ein paar weiteren Größenparametern.


    11. Speichern Sie das Bild

    Wir kommen dorthin; fast fertig. Es ist jetzt Zeit, das Bild zu speichern. Wir geben den Pfad vorbei und geben die Bildqualität an, die wir zwischen 0 und 100 reichen möchten, 100 sind die besten. Dann nennen wir die entsprechende Methode. Ein paar Dinge, die zur Bildqualität zu beachten sind: JPG verwendet eine Skala von 0-100, 100 sind die besten. GIF -Bilder haben keine Bildqualitätseinstellung. PNGs tun es, aber sie verwenden die Skala 0-9, 0 ist die beste. Das ist nicht gut, da wir uns nicht erwarten können, dass wir uns jedes Mal daran erinnern, wenn wir ein Bild speichern möchten. Wir können also ein bisschen Magie machen, um alles zu standardisieren. Wenn Sie dies in der Produktion verwenden würden, könnte es auch eine gute Idee sein, das Ergebnis des gespeicherten Bildes zu erfassen und zurückzugeben. Vielen Dank, dass Sie dieses Tutorial befolgt haben, und ich hoffe, Sie finden es nützlich. Monty ist ein Full-Stack-Entwickler, der auch gerne Tutorials schreibt und sich über neue JavaScript-Bibliotheken informiert.
    // *** Include the class<br>include("resize-class.php");<br><br>// *** 1) Initialize / load image<br>$resizeObj = new resize('sample.jpg');<br><br>// *** 2) Resize image (options: exact, height, width, auto, crop)<br>$resizeObj -> resizeImage(150, 100, 'crop');<br><br>// *** 3) Save image<br>$resizeObj -> saveImage('sample-resized.gif', 100);<br>

    Das obige ist der detaillierte Inhalt vonBildänderung, die mit PHP einfach gemacht wurde. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Vorheriger Artikel:Planen mit Zend Job -WarteschlangeNächster Artikel:Keiner