Heim  >  Artikel  >  Backend-Entwicklung  >  So erzielen Sie mit PHP den Schwarz-Weiß-Effekt von Bildern

So erzielen Sie mit PHP den Schwarz-Weiß-Effekt von Bildern

王林
王林Original
2023-08-17 14:25:04858Durchsuche

So erzielen Sie mit PHP den Schwarz-Weiß-Effekt von Bildern

So verwenden Sie PHP, um den Schwarz-Weiß-Effekt von Bildern zu erzielen

Die Bildverarbeitung ist in vielen Webanwendungen sehr wichtig. Das Konvertieren von Farbbildern in Schwarzweißeffekte ist ein häufiger Bedarf, der nicht nur den künstlerischen Sinn der Bilder erhöht, sondern sich auch an einige spezifische Designanforderungen anpasst. In diesem Artikel stellen wir vor, wie Sie mit PHP den Schwarz-Weiß-Effekt von Bildern erzielen.

1. Verwenden Sie die GD-Bibliothek von PHP.

Die GD-Bibliothek von PHP ist eine Bildverarbeitungsbibliothek, mit der Sie verschiedene Vorgänge an Bildern ausführen können, einschließlich Zuschneiden, Skalieren, Wasserzeichen usw. Bevor wir es verwenden, müssen wir sicherstellen, dass die GD-Bibliothek auf unserem Server installiert wurde. Wir können die Installation der GD-Bibliothek mit dem folgenden Code überprüfen:

<?php
// 检查GD库是否已经安装
if (!extension_loaded('gd') && !function_exists('gd_info')) {
    echo 'GD库未安装,无法继续操作!';
    exit;
}

// 获取GD库的版本信息
$gd_info = gd_info();
echo 'GD库版本:' . $gd_info['GD Version'];
?>

Wenn die Versionsinformationen der ausgegebenen GD-Bibliothek leer sind, bedeutet dies, dass die GD-Bibliothek nicht installiert ist.

2. Öffnen Sie die Bilddatei

Bevor wir beginnen, müssen wir ein Farbbild öffnen und es dann in Schwarzweiß konvertieren. Wir können die Funktion imagecreatefromjpeg der GD-Bibliothek verwenden, um ein Bild im JPEG-Format zu öffnen. Das Folgende ist der Beispielcode: imagecreatefromjpeg函数来打开一张JPEG格式的图片。以下是示例代码:

<?php
// 打开一张图片
$src_image = imagecreatefromjpeg('example.jpg');
?>

这里的example.jpg是我们实际使用的图片文件,需要将其替换为自己的图片路径。

三、转换为黑白效果

要将彩色图片转换为黑白效果,我们可以通过修改每个像素的RGB值来实现。将RGB的三个分量取平均值,然后将这个平均值赋给像素的RGB分量,即可将彩色图片转换为黑白效果。以下是示例代码:

<?php
// 获取图片的宽度和高度
$width = imagesx($src_image);
$height = imagesy($src_image);

// 创建一个新的黑白图片
$dst_image = imagecreatetruecolor($width, $height);

// 遍历每个像素进行转换
for ($x = 0; $x < $width; $x++) {
    for ($y = 0; $y < $height; $y++) {
        // 获取像素的RGB值
        $rgb = imagecolorat($src_image, $x, $y);
        $r = ($rgb >> 16) & 0xFF;  // 获取红色分量
        $g = ($rgb >> 8) & 0xFF;   // 获取绿色分量
        $b = $rgb & 0xFF;          // 获取蓝色分量

        // 计算RGB的平均值
        $gray = round(($r + $g + $b) / 3);

        // 将平均值赋给像素的RGB分量
        $new_rgb = imagecolorallocate($dst_image, $gray, $gray, $gray);

        // 设置新的像素值
        imagesetpixel($dst_image, $x, $y, $new_rgb);
    }
}
?>

四、保存黑白图片

在完成黑白效果的转换之后,我们可以使用imagejpeg函数将黑白图片保存到文件。以下是示例代码:

<?php
// 保存黑白图片
imagejpeg($dst_image, 'example_bw.jpg');
?>

这里的example_bw.jpg

<?php
// 打开一张图片
$src_image = imagecreatefromjpeg('example.jpg');

// 获取图片的宽度和高度
$width = imagesx($src_image);
$height = imagesy($src_image);

// 创建一个新的黑白图片
$dst_image = imagecreatetruecolor($width, $height);

// 遍历每个像素进行转换
for ($x = 0; $x < $width; $x++) {
    for ($y = 0; $y < $height; $y++) {
        // 获取像素的RGB值
        $rgb = imagecolorat($src_image, $x, $y);
        $r = ($rgb >> 16) & 0xFF;  // 获取红色分量
        $g = ($rgb >> 8) & 0xFF;   // 获取绿色分量
        $b = $rgb & 0xFF;          // 获取蓝色分量

        // 计算RGB的平均值
        $gray = round(($r + $g + $b) / 3);

        // 将平均值赋给像素的RGB分量
        $new_rgb = imagecolorallocate($dst_image, $gray, $gray, $gray);

        // 设置新的像素值
        imagesetpixel($dst_image, $x, $y, $new_rgb);
    }
}

// 保存黑白图片
imagejpeg($dst_image, 'example_bw.jpg');

// 销毁图片资源
imagedestroy($src_image);
imagedestroy($dst_image);
?>

Der example.jpg hier ist die Bilddatei, die wir tatsächlich verwenden, die durch Ihren eigenen Bildpfad ersetzt werden muss.

3. In einen Schwarzweißeffekt konvertieren

Um Farbbilder in einen Schwarzweißeffekt umzuwandeln, können wir dies erreichen, indem wir den RGB-Wert jedes Pixels ändern. Wenn Sie den Durchschnitt der drei RGB-Komponenten nehmen und diesen Durchschnitt dann der RGB-Komponente des Pixels zuweisen, können Sie das Farbbild in einen Schwarzweißeffekt umwandeln. Das Folgende ist der Beispielcode:

rrreee

4. Schwarzweißbilder speichern 🎜🎜Nach Abschluss der Konvertierung der Schwarzweißeffekte können wir die Funktion imagejpeg verwenden, um die Schwarzweißbilder zu speichern eine Datei. Das Folgende ist der Beispielcode: 🎜rrreee🎜Der example_bw.jpg hier ist der Dateipfad zum Speichern des Schwarzweißbilds, der je nach tatsächlicher Situation geändert werden kann. 🎜🎜5. Vollständiger Beispielcode🎜rrreee🎜6. Mit der GD-Bibliothek von PHP können Sie problemlos den Schwarzweißeffekt von Bildern erzielen. Wir können ein Farbbild ganz einfach in Schwarzweiß umwandeln, indem wir das Bild öffnen, die Pixel durchlaufen, die RGB-Werte ändern und schließlich das geänderte Bild speichern. Oben sind die Schritte und der Beispielcode für die Verwendung von PHP aufgeführt, um Schwarzweißeffekte auf Bildern zu erzielen. Hoffe das hilft! 🎜

Das obige ist der detaillierte Inhalt vonSo erzielen Sie mit PHP den Schwarz-Weiß-Effekt von Bildern. 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