ホームページ >バックエンド開発 >PHPの問題 >PHPで画像バイナリファイルのサイズを変更する方法

PHPで画像バイナリファイルのサイズを変更する方法

PHPz
PHPzオリジナル
2023-04-03 11:14:59661ブラウズ

ネットワーク開発やアプリケーションでは、さまざまなニーズや目的を達成するためにイメージを変更する必要があることがよくあります。画像のバイナリ ファイル サイズ (ファイル容量) は、無視できない重要な要素です。画像が大きすぎると、Web サイトやアプリケーションのパフォーマンスと読み込み速度が低下し、ユーザーの損失を引き起こす可能性さえあるからです。画像ファイルのサイズの最適化が非常に必要です。 PHP は強力なプログラミング言語であり、ネットワーク開発でよく使用される言語の 1 つです。以下では、PHP を使用して画像のバイナリ ファイル サイズを変更する方法を紹介します。

1. 画像のバイナリ ファイル サイズを変更する必要があるのはなぜですか?

Web 開発では、ユーザーに画像を表示する方法は数多くありますが、最も一般的な 2 つの方法は、画像をページに直接読み込む方法と、画像を添付ファイルとして提供してユーザーがダウンロードできるようにする方法です。画像を使用してページに直接読み込む場合、Web ページはページのコンテンツに基づいて画像を読み込みます。画像が大きすぎると、Web ページの読み込み速度が遅くなり、最悪の場合、ユーザー エクスペリエンスが低下します。 、Webページがクラッシュする可能性があります。ユーザーにダウンロード用の添付ファイルとして提供される場合、画像のバイナリ ファイル サイズ (ファイル容量) が大きすぎるため、ダウンロード速度が遅くなりすぎ、ユーザー エクスペリエンスが低下します。

したがって、プロジェクト内の画像については、バイナリ ファイル サイズ (ファイル ボリューム) を制御する必要があります。一般的な方法は、画像を圧縮して最適化することです。 PHP 開発の場合、GD ライブラリを使用してイメージのバイナリ ファイル サイズを変更できます。

2. GD ライブラリの紹介

GD ライブラリは、C 言語で書かれたオープンソース ライブラリで、イメージを動的に作成するために使用されます。このライブラリでは、PNG、JPEG、GIF などの形式の画像を処理し、拡大縮小、切り抜き、回転、テキストや透かしの追加などの操作を通じてさまざまな形式の画像を生成できます。 GD ライブラリは、PHP の GD 拡張機能を通じてサポートできる一連の関数を提供します。

3. PHP を使用してイメージ バイナリ ファイルのサイズを変更する方法

PHP を使用してイメージ バイナリ ファイルのサイズを変更する方法は、主に圧縮と最適化によって実現されます。 PHP の GD ライブラリを使用して圧縮と最適化を実現する 2 つの方法を以下に示します:

1. 画像サイズを比率で調整する

この方法では、画像のアスペクト比を変更せずに維持できますが、画像のサイズを調整します。画像は比例して拡大縮小されます。

コード例:

<?php
$src_file = &#39;test.jpg&#39;;  // 图片的路径和名称
$dst_file = &#39;thumbnail.jpg&#39;; // 缩略图的路径和名称
$quality = 50; // 压缩后的图片质量,0~100,0 地表示压缩比最高
$max_width = 200;  // 图片最大的宽度

// 获取原始图片的宽和高
$size = getimagesize($src_file);
$src_width = $size[0];
$src_height = $size[1];

// 计算缩小比例
if($src_width > $max_width){
    $shrink = $max_width / $src_width;
} else{
    $shrink = 1;
}

// 计算缩略图的宽度和高度
$des_width = intval($src_width * $shrink);
$des_height = intval($src_height * $shrink);

// 创建图片资源
$src_image = imagecreatefromjpeg($src_file);
$des_image = imagecreatetruecolor($des_width, $des_height);

// 拷贝并缩放图片
imagecopyresampled($des_image, $src_image, 0, 0, 0, 0, $des_width, $des_height, $src_width, $src_height);

// 保存图片
imagejpeg($des_image, $dst_file, $quality);

// 释放图片资源
imagedestroy($src_image);
imagedestroy($des_image);
?>

ここでは、test.jpg 画像が比例的に拡大縮小されます。拡大縮小後の最大幅は 200 ピクセルです。保存される画像の名前は summnail.jpg で、圧縮品質は50.

注: この方法を使用すると、ズーム時に画像をトリミングすることも選択できます。画像を拡大または縮小しても透明度が維持される PNG 形式の使用を検討する必要があります。

2. 画質を直接調整する

この方法では、画質を比較・測定し、修正した画像として直接出力することができます。

コード例:

<?php
$src_file = &#39;test.jpg&#39;;  // 原始图片
$dst_file = &#39;optimize.jpg&#39;; // 优化后的图片
$quality = 50; // 压缩后的图片质量,0~100,0 地表示压缩比最高

// 创建图片资源
$src_image = imagecreatefromjpeg($src_file);

// 优化图片
imagejpeg($src_image, $dst_file,$quality);

// 释放图片资源
imagedestroy($src_image);
?>

このコードでは、test.jpg 画像の圧縮品質が 50 に下げられ、保存される画像の名前は optimize.jpg になります。

注: この方法では画像サイズを変更できないことに注意してください。

4. 概要

PHP の開発では、画像のバイナリ ファイル サイズを変更するために GD ライブラリを使用することが非常に必要です。画像を圧縮して最適化すると、画像のサイズが効果的に削減され、Web ページの読み込み速度が最適化され、ユーザー エクスペリエンスが向上します。この記事では、GD ライブラリの概要と、GD ライブラリを使用して PHP で画像のバイナリ ファイル サイズを変更する 2 つの方法を紹介します。 Web開発を行うPHPエンジニアの参考になれば幸いです。

以上がPHPで画像バイナリファイルのサイズを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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