Heim  >  Artikel  >  Backend-Entwicklung  >  So speichern Sie Bilder ohne Hochladen in PHP

So speichern Sie Bilder ohne Hochladen in PHP

PHPz
PHPzOriginal
2023-04-26 14:26:48621Durchsuche

In der Webentwicklung ist die Bildverarbeitung ein wesentlicher Bestandteil. Normalerweise müssen Entwickler die Datei-Upload-Funktion verwenden, um Bilder auf dem Server zu speichern. In manchen Fällen müssen wir das Bild jedoch direkt auf dem Server speichern, ohne es hochzuladen. In diesem Artikel erfahren Sie, wie Sie mit PHP Bilder direkt auf dem Server speichern.

Im Allgemeinen ist das Speichern von Bildern durch Hochladen von Dateien eine gängige Methode. Das Hochladen von Dateien kann mithilfe der mit PHP gelieferten globalen Variablen $_FILES erfolgen. Wenn wir jedoch keine Bilder durch Hochladen speichern möchten, müssen wir die Bildverarbeitungserweiterungsbibliothek oder -funktion von PHP verwenden, um Bilddateien zu schreiben oder zu erstellen.

PHP bietet viele Erweiterungsbibliotheken und Funktionen für die Bildverarbeitung, darunter GD und Imagick sowie Funktionen wie imagecreate() und imagecopy(). Als nächstes stellen wir vor, wie man sie jeweils verwendet.

1. Verwenden Sie die GD-Erweiterungsbibliothek, um Bilder zu speichern.

GD ist eine Erweiterungsbibliothek für PHP. Sie bietet einige Funktionen für die Verwendung von Bildern in PHP. Bilder können über GD erstellt, geändert und ausgegeben werden. Unter anderem kann die Funktion imagejpeg() verwendet werden, um Bilder als Dateien im JPEG-Format zu speichern, die Funktion imagepng() kann verwendet werden, um Bilder als Dateien im PNG-Format zu speichern, und imagegif() kann verwendet werden, um Bilder als Dateien vom Typ GIF zu speichern.

Das Folgende ist ein Beispielcode zum Speichern von Bildern über die GD-Erweiterungsbibliothek:

<?php
//获取图片数据
$data= $img_data; //假设$img_data为图片数据
//创建图像
$img_gd=imagecreatefromstring($data);
//保存为JPEG格式文件
imagejpeg($img_gd,&#39;./img/test.jpg&#39;);
//保存为PNG格式文件
imagepng($img_gd,&#39;./img/test.png&#39;);
//保存为GIF格式文件
imagegif($img_gd,&#39;./img/test.gif&#39;);
//销毁图像
imagedestroy($img_gd);
?>

2. Verwenden Sie die Imagick-Erweiterungsbibliothek zum Speichern von Bildern

Imagick ist eine weitere Erweiterungsbibliothek für PHP. Im Vergleich zu GD bietet sie eine leistungsfähigere Bildverarbeitung Fähigkeit. Es kann verschiedene Bilddateiformate lesen, schreiben, erstellen und ändern und unterstützt einige erweiterte Bildverarbeitungsfunktionen. Durch Imagick können wir auch die Funktion realisieren, Bilder direkt auf dem Server zu speichern.

Das Folgende ist ein Beispielcode zum Speichern von Bildern über die Imagick-Erweiterungsbibliothek:

<?php
//获取图片数据
$data= $img_data; //假设$img_data为图片数据
//创建Imagick对象
$img_ima=new Imagick();
//将数据导入Imagick对象中
$img_ima->readImageBlob($data);
//设置保存格式为JPEG
$img_ima->setImageFormat('jpeg');
//保存图片
$img_ima->writeImage('./img/test.jpg');
//销毁对象
$img_ima->destroy();
?>

3. Verwenden Sie die Funktionen imagecreatetruecolor() und imagecopy(), um Bilder zu speichern

Zusätzlich zur Verwendung der Erweiterungsbibliothek stellt PHP auch einige integrierte Funktionen zur Verfügung -in Funktionen zum Erstellen und Bearbeiten von Bildern. Darunter wird die Funktion imagecreatetruecolor() verwendet, um ein Echtfarbenbild zu erstellen und eine Bildkennung zurückzugeben, und die Funktion imagecopy() kann zwei Bilder zusammenführen.

Der Beispielcode lautet wie folgt:

<?php
//获取图片数据
$data= $img_data; //假设$img_data为图片数据
//根据图片数据创建图像
$img_src=imagecreatefromstring($data);
//创建真彩色图像
$img_dest=imagecreatetruecolor(100, 100);
//将$img_src图像复制到$img_dest图像中
//imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h)
imagecopy($img_dest, $img_src, 0, 0, 0, 0, 100, 100);
//保存为JPEG格式文件
imagejpeg($img_dest,&#39;./img/test.jpg&#39;);
//销毁图像
imagedestroy($img_dest);
imagedestroy($img_src);
?>

Die oben genannten drei Methoden zum direkten Speichern von Bildern mit PHP. Entwickler können entsprechend ihren eigenen Anforderungen verschiedene Methoden auswählen. Beachten Sie, dass Sie beim Speichern von Bildern auf diese Weise die Lese- und Schreibberechtigungen für die Datei aktivieren müssen, da sonst das Speichern fehlschlägt.

Das obige ist der detaillierte Inhalt vonSo speichern Sie Bilder ohne Hochladen in PHP. 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