ホームページ > バックエンド開発 > PHPチュートリアル > 画像のサイズ変更は、PHPで簡単になりました

画像のサイズ変更は、PHPで簡単になりました

Lisa Kudrow
リリース: 2025-03-01 10:23:09
オリジナル
732 人が閲覧しました

Image Resizing Made Easy With PHP

PHPで画像を変更するための万能で使いやすい方法を望んでいましたか?まあ、それがPHPクラスの目的です。舞台裏で汚い仕事をするために私たちが呼ぶ再利用可能な機能性です。よく構築され拡張可能な独自のクラスを作成する方法を学びます。 

はじめに

クラスで達成しようとしていることをすばやく垣間見るために、クラスは次のようになります。クラスとオブジェクト、そしてこのスキルは役立つでしょうが、このチュートリアルに従うためには必要ありません。
    カバーすることがたくさんあります。準備
  • 最初のステップは簡単です。ワーキングディレクトリで、2つのファイルを作成します。1つは index.php
  • と呼ばれます。オブジェクトを呼び出して
  • 私たちが達成しようとしていることのアイデアを提供するには、画像のサイズを変更するために使用するコールをコーディングすることから始めます。
  • index.php
ファイルを開き、次のコードを追加します。画像ファイルを開き、画像のサイズを変更する寸法とサイズ変更の種類を設定します。次に、画像を保存して、画像形式と品質を選択します。上記のコードから

index.php

ファイルを保存して閉じます。覚えておいてください、それはすべて柔軟性に関するものです。クラスのスケルトン

この簡単なことを可能にするオブジェクト指向プログラミング(OOP)です。パターンのようなクラスを考えてください。データをカプセル化できます。これは、データを隠すことを意味する別の専門用語用語です。その後、サイズ変更コードを書き換える必要なく、このクラスを何度も再利用できます。ステップ2のように、適切な方法を呼び出す必要があります。パターンが作成されたら、オブジェクトと呼ばれるこのパターンのインスタンスを作成します。

resize-class.php

ファイルを開きます。以下は、$ filename と名付けた本当に基本的なクラスのスケルトン構造です。PHPが画像を読むことができるように、PHP(より具体的にはPHP GDライブラリ)で渡されたファイルを開く必要があります。プライベートと入力することにより、プライベート変数としてカスタムメソッド$ image

を使用してこれを行っています。その変数の範囲を制限して、クラスによってのみアクセスできるようにします。これからは、リソースとして知られるオープンした画像に電話をかけることができます。

私たちがそれにいる間、画像の高さと幅を保管しましょう。これらは後で役に立つと感じています。

次のようになります。

// *** Include the class<br>include("resize-class.php");<br><br>// *** 1) Initialize / load image<br>$resizeObj = new resize('sample.jpg');<br><br>// *** 2) Resize image (options: exact, height, width, auto, crop)<br>$resizeObj -> resizeImage(150, 100, 'crop');<br><br>// *** 3) Save image<br>$resizeObj -> saveImage('sample-resized.gif', 100);<br>
ログイン後にコピー

画像()メソッドは、GDライブラリの一部である組み込み関数です。彼らはそれぞれあなたの画像の幅と高さを取得します。画像を開く前のステップでは、指定された文字の最後の発生から終わりまでメイン文字列の一部を返すカスタムメソッドstrrchr()

関数をPHPで呼び出します。たとえば、Filename は、

Auto-Determine Options 2および3。異なるサイズの写真のあるフォルダーをループしている場合は、スクリプトにこれを処理する方法を決定します。 (作物) 7。サイズ変更。それをしましょう!サイズ変更方法には2つの部分があります。 1つ目は、いくつかのカスタムメソッドを作成することにより、新しい画像の最適な幅と高さを取得し、もちろん上記のようにサイズ変更オプションを渡すことです。幅と高さは配列として返され、それぞれの変数に設定されます。参考までに渡してください。しかし、私はそれの大ファンではありません。2番目の部分は、実際のサイズ変更を実行するものです。サイズ変更には、2つの組み込みのPHP関数を使用します。彼らは次のとおりです:

imageCopyResampled 他のクラス変数を使用します。使用しているメソッドの多くは、このライブラリによって提供されています。

  • 上記のコードスニペットでは、新しい画像寸法を計算し、それに応じて真のカラー画像オブジェクトを作成します。この画像オブジェクトは、高さ
  • またはautoに渡され、画像の元の幅と高さを使用して、サイズ変更された画像に固定幅か高さがあるかを判断します。ランドスケープオリエンテーションの画像については、幅を固定します。ポートレートオリエンテーションの画像については、高さを固定します。元の画像が正方形の場合、新しい幅と高さの値を使用して固定寸法を選択します。その理由は、画像を指定された幅と高さに直接トリミングする代わりに、私たちのクラスはサイズ変更後に画像をトリミングするからです。

    画像の寸法は1920Wと1080Hであり、1200Wと200Hにトリミングしたいとします。ご覧のとおり、元の幅と新しい幅の比率は、対応する高さ比よりも低くなります。したがって、画像は最初にその幅が1200に下がり、高さがそれに応じて変化するようにサイズを変更する必要があります。作物

    作物を選択した場合、つまり作物オプションを使用した場合、もう1つのステップがあります。センターから画像をトリミングします。トリミングは、サイズ変更に非常によく似たプロセスですが、いくつかのよりサイズのパラメーターが渡されます。画像を保存してください


    私たちはそこに到達しています。ほぼ完了。今こそ画像を保存する時が来ました。パスを通過し、0〜100の範囲の画質を指定し、100が最高です。次に、適切な方法を呼び出します。画質について注意すべきいくつかのこと:JPGは0〜100のスケールを使用し、100が最高です。 GIF画像には画質設定がありません。 pngsはそうしますが、スケール0-9、0を使用します。画像を保存したいたびにこれを覚えておくことを期待できないので、これは良くありません。したがって、すべてを標準化するために少し魔法をかけることができます。

    今こそ、メモリを解放するための画像リソースを破壊する良い時期でもあります。これを生産で使用する場合、保存された画像の結果をキャプチャして返すことも良い考えかもしれません。このチュートリアルをフォローしていただきありがとうございます。

  • 以上が画像のサイズ変更は、PHPで簡単になりましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    著者別の最新記事
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート