ホームページ バックエンド開発 PHPチュートリアル PHP を使用して画像の白黒効果を実現する方法

PHP を使用して画像の白黒効果を実現する方法

Aug 17, 2023 pm 02:25 PM
php 画像処理 黒と白の効果

PHP を使用して画像の白黒効果を実現する方法

PHP を使用して画像の白黒効果を実現する方法

画像の処理は、多くの Web アプリケーションにおいて非常に重要です。カラー画像を白黒効果に変換することは一般的なニーズであり、これにより画像の芸術的センスが高まるだけでなく、特定のデザイン要件にも適応できます。この記事では、PHP を使用して写真の白黒効果を実現する方法を紹介します。

1. PHP の GD ライブラリの使用

PHP の GD ライブラリは、トリミング、拡大縮小、透かしなど、画像に対してさまざまな操作を実行するために使用できる画像処理ライブラリです。使用する前に、GD ライブラリがサーバーにインストールされていることを確認する必要があります。次のコードで GD ライブラリのインストールを確認できます。

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

// 获取GD库的版本信息
$gd_info = gd_info();
echo 'GD库版本:' . $gd_info['GD Version'];
?>
ログイン後にコピー

出力された GD ライブラリのバージョン情報が空の場合は、GD ライブラリがインストールされていないことを意味します。

2. 画像ファイルを開きます

始める前に、カラー画像を開いて白黒に変換する必要があります。 GD ライブラリの imagecreatefromjpeg 関数を使用して、JPEG 形式の画像を開くことができます。以下はサンプル コードです。

<?php
// 打开一张图片
$src_image = imagecreatefromjpeg('example.jpg');
?>
ログイン後にコピー

ここの example.jpg は実際に使用する画像ファイルであり、独自の画像パスに置き換える必要があります。

3. 白黒効果への変換

カラー画像を白黒効果に変換するには、各ピクセルの RGB 値を変更することで実現できます。 3 つの 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);
    }
}
?>
ログイン後にコピー

4. 白黒写真の保存

白黒効果の変換が完了したら、imagejpeg 関数を使用して次のことを行うことができます。白黒写真をファイルに保存します。以下はサンプル コードです。

<?php
// 保存黑白图片
imagejpeg($dst_image, 'example_bw.jpg');
?>
ログイン後にコピー

ここの example_bw.jpg は、白黒画像を保存するファイル パスです。実際の状況に応じて変更できます。

5. 完全なサンプル コード

<?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);
?>
ログイン後にコピー

6. 概要

PHP の GD ライブラリを使用すると、画像の白黒効果を簡単に実現できます。画像を開いてピクセルを反復処理して RGB 値を変更し、最後に変更した画像を保存することで、カラー画像を簡単に白黒に変換できます。上記は、PHP を使用して画像に白黒効果を実現する手順とサンプル コードです。お役に立てれば!

以上がPHP を使用して画像の白黒効果を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles