検索
ホームページバックエンド開発PHPチュートリアルPHP はカメラを呼び出して写真を撮り、リアルタイム フィルターを追加します: クイック スタート ガイド

PHP はカメラを呼び出して写真を撮り、リアルタイム フィルターを追加します: クイック スタート ガイド

写真技術は常に革新と発展を続けており、現在では PHP 言語を使用してカメラを呼び出し、リアルタイム フィルターを追加できるようになりました。リアルタイムのフィルター効果で、写真にさらに楽しみを加えます。この記事では、PHP を使用してカメラを呼び出して写真を撮り、必要なリアルタイム フィルター効果を追加する方法を説明するクイック スタート ガイドを提供します。

1. 必要なコンポーネントとライブラリをインストールします

まず、この機能を実現するために必要なコンポーネントとライブラリをインストールする必要があります。次のコンポーネントをインストールする必要があります。

  1. PHP-GD ライブラリ: これは、フィルターやその他の画像処理操作を追加するために使用できる PHP 画像処理ライブラリです。
  2. Video4Linux: これは、Linux システムにビデオ キャプチャ機能を提供するインターフェイスです。

次のコマンドを使用して、これらのコンポーネントを Ubuntu システムにインストールできます:

sudo apt-get install php-gd
sudo apt-get install v4l-utils

2. カメラのリアルタイム プレビュー ページを作成します

次に、次の必要があります。カメラのライブ プレビューを表示するための PHP ページを作成します。次のコードを使用して、カメラのライブ画像を表​​示する簡単なページを作成できます。

<!DOCTYPE html>
<html>
<head>
    <title>Camera Preview</title>
</head>
<body>
    <h1 id="Camera-Preview">Camera Preview</h1>
    <img  id="preview" src=""    style="max-width:90%"  style="max-width:90%" / alt="PHP はカメラを呼び出して写真を撮り、リアルタイム フィルターを追加します: クイック スタート ガイド" >
    <script>
        var videoElem = document.createElement('video');
        var canvasElem = document.createElement('canvas');
        var context = canvasElem.getContext('2d');

        navigator.mediaDevices.getUserMedia({ video: true }).then(function(stream) {
            videoElem.srcObject = stream;
            videoElem.play();

            setInterval(function() {
                context.drawImage(videoElem, 0, 0, canvasElem.width, canvasElem.height);
                var imgData = canvasElem.toDataURL('image/jpeg');
                document.getElementById('preview').src = imgData;
            }, 1000);
        }).catch(function(error) {
            console.log('Error: ' + error.message);
        });
    </script>
</body>
</html>

このコードは、JavaScript の getUserMedia API を使用してカメラにアクセスし、ライブ プレビュー画像を表示します。 Canvas 要素を通じてリアルタイム画像をキャンバスに描画し、画像データを Base64 エンコード形式の URL に変換して、プレビュー画像を表示する img 要素に割り当てます。

3. リアルタイム フィルター効果の追加

ここで、カメラのリアルタイム プレビュー機能を実装しました。次に、このページにライブ フィルター効果を追加します。 PHP-GD ライブラリを使用すると、画像にさまざまなフィルター効果を追加できます。

まず、フィルター選択ボックスを追加し、その値を PHP コードに渡す必要があります。次のコードを使用して、上で作成したプレビュー ページを変更します:

<!DOCTYPE html>
<html>
<head>
    <title>Camera Preview with Filters</title>
</head>
<body>
    <h1 id="Camera-Preview-with-Filters">Camera Preview with Filters</h1>
    <img  id="preview" src=""    style="max-width:90%"  style="max-width:90%" / alt="PHP はカメラを呼び出して写真を撮り、リアルタイム フィルターを追加します: クイック スタート ガイド" >
    <select id="filter">
        <option value="none">None</option>
        <option value="grayscale">Grayscale</option>
        <option value="sepia">Sepia</option>
        <option value="invert">Invert</option>
    </select>

    <script>
        // ... JavaScript code for camera preview ...

        document.getElementById('filter').addEventListener('change', function() {
            var filter = this.value;
            var imgData = canvasElem.toDataURL('image/jpeg');
            
            // Send imgData and filter to server-side PHP code for processing
        });
    </script>
</body>
</html>

フィルター選択ボックスとして選択要素を追加し、JavaScript でイベント リスナーを追加しました。選択ボックスの値が変更されると、選択されたフィルターが値と画像データは、処理のためにサーバー側の PHP コードに送信されます。

ここで、サーバー側の PHP コードでこのデータを受け取り、選択したフィルター値に基づいて対応する効果を画像に追加する必要があります。次のコードを使用して、フィルター効果を処理するための別の PHP ファイルを作成します。

<?php
// Process the image based on the selected filter
if(isset($_POST['filter']) && isset($_POST['imgData'])) {
    $imgData = $_POST['imgData'];
    $filter = $_POST['filter'];
    
    // Create GD image resource from Base64 image data
    $imgResource = imagecreatefromstring(base64_decode(str_replace('data:image/jpeg;base64,', '', $imgData)));

    // Apply filters based on the selected option
    switch($filter) {
        case 'none':
            break;
        case 'grayscale':
            imagefilter($imgResource, IMG_FILTER_GRAYSCALE);
            break;
        case 'sepia':
            imagefilter($imgResource, IMG_FILTER_GRAYSCALE);
            imagefilter($imgResource, IMG_FILTER_COLORIZE, 90, 60, 40);
            break;
        case 'invert':
            imagefilter($imgResource, IMG_FILTER_NEGATE);
            break;
    }

    // Output the filtered image
    header('Content-Type: image/jpeg');
    imagejpeg($imgResource);

    // Clean up resources
    imagedestroy($imgResource);
}
?>

このコードは、PHP-GD ライブラリを使用して、受け取ったフィルター値に基づいて対応する効果を画像に追加し、処理します。最終的な画像は次のとおりです。 JPEG形式で出力します。

最後に、画像データとフィルター オプションをサーバー側の PHP コードに送信して処理できるように、前のプレビュー ページを変更する必要があります。前に作成したプレビュー ページの JavaScript コードを変更し、次のコードに置き換えます。

// ... JavaScript code for camera preview ...

document.getElementById('filter').addEventListener('change', function() {
    var filter = this.value;
    var imgData = canvasElem.toDataURL('image/jpeg');
    
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'filter.php', true);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.onreadystatechange = function() {
        if(xhr.readyState === 4 && xhr.status === 200) {
            document.getElementById('preview').src = 'data:image/jpeg;base64,' + xhr.responseText;
        }
    };

    var data = 'filter=' + encodeURIComponent(filter) + '&imgData=' + encodeURIComponent(imgData);
    xhr.send(data);
});

JavaScript の XMLHttpRequest オブジェクトを通じて、POST リクエストを送信して、選択したフィルター値と画像データをサーバー側に渡すことができます。 PHP コードが処理されます。次に、サーバーから返された処理済み画像の Base64 エンコード データに基づいて、プレビュー画像の src 属性に割り当てます。

これで、ブラウザでこのプレビュー ページを開いて、さまざまなフィルター効果を選択して、リアルタイム プレビュー イメージの変化を確認できます。写真ボタンをクリックすると、PHP コードが選択したフィルター効果を画像に追加して出力します。

この記事では、PHP を使用してカメラを呼び出して写真を撮り、リアルタイムのフィルター効果を追加する方法を説明する、シンプルだが基本的なクイック スタート ガイドを提供します。 PHP-GD ライブラリと Video4Linux インターフェイスを使用すると、この機能をさらに拡張および改善し、写真によりクリエイティブな効果を追加できます。楽しくコーディングしてください!

参考資料:

  1. [PHP GD](https://www.php.net/manual/en/book.image.php)
  2. [Video4Linux](https://www.kernel.org/doc/html/v4.15/media/uapi/v4l/v4l2.html)

以上がPHP はカメラを呼び出して写真を撮り、リアルタイム フィルターを追加します: クイック スタート ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHP:データベースとサーバー側のロジックの処理PHP:データベースとサーバー側のロジックの処理Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPおよびPython:コードの例と比較PHPおよびPython:コードの例と比較Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

アクション中のPHP:実際の例とアプリケーションアクション中のPHP:実際の例とアプリケーションApr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:インタラクティブなWebコンテンツを簡単に作成しますPHP:インタラクティブなWebコンテンツを簡単に作成しますApr 14, 2025 am 12:15 AM

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPython:2つの一般的なプログラミング言語を比較しますPHPとPython:2つの一般的なプログラミング言語を比較しますApr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの永続的な関連性:それはまだ生きていますか?PHPの永続的な関連性:それはまだ生きていますか?Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール