ホームページ >バックエンド開発 >PHPの問題 >PHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)

PHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)

WBOY
WBOYオリジナル
2021-10-19 15:44:368845ブラウズ

前回の記事では『PHPでファイルをアップロードするには?読めばわかる! 》では、PHP でファイルをアップロードする方法を詳しく紹介しています。この記事では、PHP での画像処理に関する関連知識を見ていきます。皆様のお役に立てれば幸いです。

PHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)

画像処理は、PHP の作業で頻繁に発生するものであり、画像検証コードや画像の透かしなど、画像を処理する必要がある多くのシナリオに遭遇します。実際、画像処理の学習の焦点は、PHP の GD システムの機能を学習することです。PHP の画像処理には GD ライブラリのサポートが必要なので、最初に GD ライブラリに関する関連知識を見てみましょう。

GD ライブラリ

GD ライブラリは、グラフィックス イメージを作成するための関数ライブラリとして理解できます。実際には C 言語で書かれており、PHP で使用できます。PHP に加えて、Perl などの言語でも使用できます。GD ライブラリには、画像を処理するためのインターフェイスが多数用意されています。

GD は、 PHP このライブラリでは、ページ上にさまざまなグラフィック画像、統計グラフ、画像検証コードを描画できます。これらは、GD ライブラリを使用して実装することもできます。

例は次のとおりです。

<?php
phpinfo();
?>

入力後の出力結果に、以下に示す 2 つのオプションが表示された場合、現在のマシンが GD による画像処理をサポートしていることを意味します。

PHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)

または、

<?php
    print_r(gd_info());
?>

入力後に実行し、出力結果が下図のようであれば、現在のマシンが GD イメージによる処理をサポートしていることを意味します。

PHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)

インストールされていない場合は、Windows システムの php.ini 設定ファイルの「extension=php_gd2.dll」項目を変更することもできます。以上でコメント削除方法は完了です。

PHP では、GD ライブラリを使用して画像を処理する操作は、通常 4 つの基本ステップに分かれています。

  • キャンバスの作成

  • 描画画像

  • #出力画像

  • #リソースのリリース

#これらを経て完成します4 つのステップ 画像の基本的な操作がわかったところで、次は画像の操作方法を見ていきましょう。

キャンバスの作成

描画と画像処理はすべて、理解できる背景画像 (キャンバス) 上で完了する必要があります。画像の場合、画像情報を保存するためのキャンバスとしてメモリ内に一時領域があり、今後の画像操作はこの領域 (キャンバス) 上で実行されます。


imagecreate() imagecreatetruecolor() はキャンバスの作成に使用され、その構文形式は次のとおりです。 , $width 作成したキャンバスの幅が画像の幅としてもわかるという意味 $height 作成したキャンバスの高さも画像の高さになるという意味

両方ともキャンバスの作成には 2 つの関数を使用できますが、違いは、対応できる色の範囲が異なることです。

例は次のとおりです。

imagecreate(int $width, int $height)
imagecreatetruecolor(int $width, int $height)

キャンバスは作成されたばかりで何もないため、ブラウザはキャンバスを出力しませんが、出力することはできます。画像の幅と高さを取得するために、imagesx() と imagesy() を通過させます:

<?php
    $img = @imagecreatetruecolor(120, 20) or die(&#39;画布创建失败!&#39;);
?>

出力結果:


これから、キャンバスの作成が完了しました。 PHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)

上記の 2 つの関数を使用してキャンバスを作成することに加えて、次の方法でファイルまたは URL を使用して画像を作成することもできます:

##imagecreatefromgif()
    : GIF ファイルまたは URL を介して新しい画像を作成します
  • imagecreatefromjpeg()
  • : JPEG ファイルまたは UR を介して新しい画像を作成します
  • imagecreatefrompng()
  • : PNG ファイルまたは URL を通じて新しい画像を作成します
  • ##imagecreatefromwbmp()

    : 作成WBMP ファイルまたは URL を介した新しい画像 画像
  • 出力画像

上記の例では、キャンバスが正常に作成された場合は、PHP 形式の画像とは異なり、出力に異なる関数が必要になります。異なる関数は次のとおりです:

imagegif()

: 出力GIF 形式の画像をブラウザまたはファイルに出力
  • imagejpeg()

    : JPEG 形式の画像をブラウザまたはファイルに出力
  • imagepng( )

    : PNG 形式の画像をブラウザまたはファイルに出力します
  • 構文形式は次のとおりです:

    imagegif(resource $image[, string $filename])
    imagejpeg(resource $image[, string $filename[, int $quality]])
    imagepng(resource $image[, string $filename])

    其中,$image为创建的一个图像资源;$filename表示为参数,用来设置文件需要保存的路径。

    示例如下:

    首先我在根目录中已经保存了一个名为php.png的图像文件

    <?php
        header(&#39;Content-type:image/jpeg&#39;);
        $image= imagecreatefrompng(&#39;php.png&#39;);
        imagepng($image);
    ?>

    输出结果:

    PHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)

    通过imagecreatefrompng()函数和imagepng()成功的输出了一个格式为png的图片。

    释放图像资源

    通过上述示例已经成功的输出了图片,在图片的资源使用完成后,通常需要释放图像处理时所占用的内存,那应该怎样操作呢?

    在PHP中我们通过imagedestroy() 函数来释放图像资源,语法格式如下:

    imagedestroy(resource $image)

    其中$image表示需要释放资源的图像

    示例如下:

    <?php
        header(&#39;Content-type:image/jpeg&#39;);
        $image= imagecreatefrompng(&#39;php.png&#39;);
        imagepng($image);
        imagedestroy($image);
    ?>

    因为释放图像资源的操作是没有输出内容的,所以就不列出输出结果了。

    推荐学习:《PHP视频教程

以上がPHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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