目次
imagecopyresampled
ホームページ バックエンド開発 PHPチュートリアル PHPで画像のサイズを変更する方法の例

PHPで画像のサイズを変更する方法の例

Mar 31, 2018 pm 03:30 PM
php サイズ 方法

この記事では主に PHP で画像のサイズを変更する方法の例を紹介します。お役に立てれば幸いです。

画像のサイズの変更は非常に一般的な機能要件です。PHP で画像のサイズを変更する方法を勉強してみましょう。まずは私が書いた関数を紹介します。

01
02
03$imgsrc = "http://www.nowmagic.net/images/3.jpg";
04$width = 780;
05$身長 = 420;
06
07resizejpg($imgsrc,$imgdst,$width,$height);
08
09function resizejpg($imgsrc,$imgdst,$imgwidth,$imgheight)
10{
11 //$imgsrc jpg形式画像のパス $imgdst jpg形式画像の保存ファイル名 $imgwidth 変更する幅 $imgheight 変更する高さ
12 //画像の幅と高さの値を取得します
13 $arr = getimagesize($imgsrc);                    
14 header("Content-type: image/jpg");
15
16 $imgWidth = $imgwidth;
17 $imgHeight = $imgheight;
18 // 画像を作成して色を定義します
19 $imgsrc = imagecreatefromjpeg($imgsrc);
20 $image = imagecreatetruecolor($imgWidth, $imgHeight); // カラーベースマップを作成します
21 imagecopyresampled($image, $imgsrc, 0, 0, 0, 0,$imgWidth,$imgHeight,$arr[0], $arr[1]);
22 imagepng($image);
23 imagedestroy($image);
24}
25
26?>

imagecopyresampled

imagecopyresampled -- 画像のコピー部分をリサンプルし、サイズを変更します。

int imagecopyresampled ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

imagecopyresampled() 画像内の正方形の領域を別の画像にコピーします、ピクセル値を滑らかに補間することで、とりわけ、優れた鮮明さを維持しながら画像のサイズを縮小します。 dst_im と src_im は、それぞれターゲット イメージとソース イメージの識別子です。ソースとデスティネーションの幅と高さが異なる場合、画像はそれに応じて縮小または伸縮します。座標は左上隅を指します。この関数は、同じイメージ内の領域をコピーするために使用できます (dst_im と src_im が同じ場合) が、領域が重複している場合の結果は予測できません。

注: パレット画像の制限 (255+1 色) により問題が発生します。画像のリサンプリングまたはフィルタリングには 255 を超える色が必要になることが多く、新しいリサンプリングされたピクセルとその色の計算には近似値が使用されます。パレット画像に新しい色を割り当てようとするときに、それが失敗した場合は、(理論的に) 計算された最も近い色が選択されます。これは必ずしも視覚的に最も近い色であるとは限りません。これにより、空白 (または視覚的に空白) の画像など、奇妙な結果が生じる可能性があります。この問題を回避するには、imagecreatetruecolor() で作成されたものなど、トゥルーカラー イメージをターゲット イメージとして使用します。

注: imagecopyresampled() には GD 2.0.l 以降が必要です。

簡単な例:

01
02// ファイル
03$filename = 'test.jpg';
04$パーセント = 0.5;
05
06// コンテンツ タイプ
07header('Content-Type: 画像/jpeg');
08
09// 新しい次元を手に入れましょう
10リスト($width, $height) = getimagesize($filename);
11$new_width = $width * $percent;
12$new_height = $height * $percent;
13
14// リサンプル
15$image_p = imagecreatetruecolor($new_width, $new_height);
16$image = imagecreatefromjpeg($filename);
17imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
18
19// 出力
20imagejpeg($image_p, null、100);
21?>

示例2:

view source

print?

01
02// ファイル
03$filename = 'test.jpg';
04
05// 最大の高さと幅を設定します
06$width = 200;
07$身長 = 200;
08
09// コンテンツ タイプ
10header('Content-Type: 画像/jpeg');
11
12// 新しい次元を手に入れましょう
13リスト($width_orig, $height_orig) = getimagesize($filename);
14
15$ratio_orig = $width_orig/$height_orig;
16
17if ($width/$height > $ratio_orig) {
18 $width = $height*$ratio_orig;
19} else {
20 $height = $width/$ratio_orig;
21}
22
23// リサンプル
24$image_p = imagecreatetruecolor($width, $height);
25$image = imagecreatefromjpeg($filename);
26imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
27
28// 出力
29imagejpeg($image_p, null、100);
30?>

画像サイズを変更するには 2 つの方法があります:

  • ImageCopyResize() 関数はすべての GD バージョンで有効ですが、画像をスケーリングするアルゴリズムは荒いです。

  • ImageCopyResamples() のピクセル補間アルゴリズムによって取得された画像のエッジは比較的滑らかです。 (ただし、この関数は ImageCopyResize() よりも遅くなります)。

次のように、2 つの関数のパラメータは同じです:

1 imageCopyResampled(dest,src,dy,dx,sx,sy,dw,dh,sw,sh);
2 imageCopyResize(dest,src,dy,dx,sx,sy,dw,dh,sw,sh);

例:

01
02$src = ImageCreateFromJPEG('php.jpg');
03$width = ImageSx($src);
04$身長 = ImageSy($src);
05$x = $width/2;
06$y = $身長/2;
07$dst = ImageCreateTrueColor($x,$y);
08ImageCopyResampled($dst,$src,0,0,0,0,$x,$y,$width,$height);
09header('コンテンツタイプ : image/png');
10ImagePNG($det);
11?>

以上が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:25 PM

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

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:26 PM

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

See all articles