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:
($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. Was ist der beste Weg, dies zu erreichen?
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 .
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.
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
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.
abc.com/edit/
ist Ihre Standard-URL. $id
ist deine ID von deinem $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.
Tags und Links php image-processing