PHP - Erstellen Sie ein Vorschaubild von der URL

8

Ich brauche einen Weg (mit eingebauten PHP-Bibliotheken), um ein Bild von der URL herunter zu ziehen und es auf der lokalen Festplatte mit einer skalierten BREITE in der Größe von 150px zu speichern. Ich habe das versucht:

Erstellen eines Thumbnails aus einem hochgeladenen Bild

%Vor%

Das sieht sehr vielversprechend aus, aber ich kann mir nicht vorstellen, wie ich es verwenden soll und ob es dann tun wird, was ich will. Bedenken / Bedürfnisse:

  1. Was bedeuten diese Parameter: ($updir, $img, $id) - Ist $updir der Speicherort der Datei? Oder der Ort, wo ich es gespeichert haben möchte? Ist $img ein Datei-Handle oder der Name der Datei? Oder der neue Name der Datei? Wofür ist $id ? Der Autor hat keine Beispielnutzung angegeben.
  2. Die Funktion scheint, dass ich WIDTH und HEIGHT angeben muss. Ich möchte nur WIDTH angeben und die Höhe proportional sein lassen.
  3. Ich muss Bilder über 2 verschiedene Arten von URLs ziehen: (1) Das grundlegende Ссылка ... und (2) die Datensyntax:% Code%
  4. Idealerweise würde ich diese Bilder in allen Fällen auf eine komprimierte JPEG-Miniatur (150 px Breite, beliebige Höhe) konvertieren, selbst wenn das Originalbild nicht im jpg-Format erstellt wurde.

Was ist der beste Weg, dies zu erreichen?

    
HerrimanCoder 04.03.2015, 03:06
quelle

5 Antworten

23

Mach einfach folgendes:

%Vor%

Benutze es so:

%Vor%

Der Trick besteht darin, die interne automatische Dateierkennung von PHP für den eingehenden Datenstrom zu verwenden, die von ImageCreateFromString

sehr gut verarbeitet wird     
flyandi 13.03.2015, 04:39
quelle
1

Sie können diese SimpleImage Klasse verwenden. Sie können die Größe von Bildern direkt von der URL ändern und sie so in Ihrem lokalen speichern.

%Vor%

mehr Beispiele finden Sie hier .

    
Sachin Joshi 11.03.2015 06:26
quelle
1
  

Was bedeuten diese Parameter: ($ updir, $ img, $ id) - Ist $ updir der Speicherort der Datei? Oder der Ort, wo ich es gespeichert haben möchte? Ist $ img ein Datei-Handle oder der Name der Datei? Oder der neue Name der Datei? Wofür ist $ ID? Der Autor hat keine Beispielnutzung angegeben.

  • $updir scheint der Pfad zu einer Datei auf dem Server zu sein
  • $img ist ein Bilddateiname ( mit Erweiterung)
  • $id scheint ein numerischer Präfix (rein für den Ersteller dieser Funktion scheint es) zu dem Dateinamen zu sein. Ich würde es im Funktionskopf in $id = '' ändern.
    .
  

Die Funktion scheint, dass ich WIDTH und HEIGHT angeben muss. Ich möchte nur WIDTH angeben und die Höhe proportional sein lassen.

Nun, Sie können etwas Mathe verwenden. Wenn Sie Bilder im Verhältnis 4: 3 wollen, können Sie eine "Verhältnisgleichung" machen (keine Ahnung, ob es einen Namen in Englisch hat):

%Vor%

Aber wenn Sie das Verhältnis nicht kennen und nur die Proportionen beibehalten wollen, dann wird diese Funktion Ihnen nicht helfen. Sie können versuchen, SimpleImage Klasse wie bereits in anderen Antwort gesagt (es hat resizeToWidth() Methode)
.

  

Ich muss Bilder über zwei verschiedene Arten von URLs ziehen: (1) Die grundlegende Ссылка ... und (2) die Datensyntax: data : image / jpeg; base64, / 9j / 4AAQ ....

Nun, das liegt an dir. Sie haben hier eine Funktion gepostet, und was Sie als Parameter übergeben werden, ist völlig unabhängige Angelegenheit. Wie für base64 codierte Bilder, überprüfen Sie dieses Thema , um zu erfahren, wie Sie es in ein Bild konvertieren (Sie können das Bild mit file_put_content() speichern, anstatt es zu wiederholen).
,

  

Idealerweise würde ich diese Bilder in allen Fällen auf eine komprimierte JPEG-Miniatur (150 Pixel Breite, beliebige Höhe) konvertieren, selbst wenn das Originalbild nicht im JPG-Format wäre.

Auch hier funktioniert die Funktion, die Sie gepostet haben, vollständig auf dem Eingabebild, und so wie es ist, kann es nicht über verschiedene Typen konvertieren. Auch hier würde ich empfehlen, SimpleImage Klasse zu verwenden.

    
Forien 11.03.2015 11:53
quelle
0

Hier ist ein gutes Beispiel für die Umwandlung von URL in Bild. Es scheint ein wenig herumzuarbeiten, aber es funktioniert großartig;) Wenn Sie in Bildmagick Fenster verwenden, müssen Sie imagemagick & amp; zeige imagemagick dll zu php. Klicken Sie hier

    
Emre Karataşoğlu 11.03.2015 13:01
quelle
0

Ich versuche es in wenigen Schritten zu erklären.

1. getImageSize($name) - Er benötigt den Bildnamen, um ein Bild zu erhalten. Also müssen Sie die absolute URL zusammen mit dem genauen Bildnamen mit der Erweiterung angeben.

z. B. "abc.com/edit/9/xyz.png"

Im obigen Fall gemäß Ihrem Funktionsparameter.

  1. abc.com/edit/ ist Ihre Standard-URL.
  2. $id ist deine ID von deinem
  3. bestimmter Datensatz. '_' fügt '/' in Ihre URL ein.
  4. $img ist der Bildname eines bestimmten Datensatzes.

2, Die obige Funktion gibt Ihnen ein Array, in dem die ersten beiden Parameter Höhe und Breite des Bildes in Funktion übergeben werden. also müssen Sie es in Variablen speichern. $height und $width .

3, Weiter wird es die Höhe und Breite prüfen, und wenn die Höhe oder Breite nicht den Anforderungen entspricht, dann müssen Sie es entsprechend einstellen.

4, Dann im folgenden Code sind dest_x und dest_y, mit denen Sie die Position Ihres Bildes bestimmen können.

Und für zwei verschiedene URLs können Sie diese URL in einer konstanten Variablen speichern und diese konstante Variable in Ihre getImageSize() -Funktion einfügen.

    
Viraj_T 13.03.2015 12:53
quelle

Tags und Links