ホームページ バックエンド開発 PHPチュートリアル PHP 画像を固定サイズのコードにトリミングする方法_PHP チュートリアル

PHP 画像を固定サイズのコードにトリミングする方法_PHP チュートリアル

Jul 21, 2016 pm 03:44 PM
php コード する 修理済み 画像 写真 大きい サイズ 方法 得る 作物 移行 必要 表紙

ホームページ呼び出し画像を作成する場合、ホームページの画像位置はデザイナーが指定することが多いため、最新リリース画像を呼び出す場合は何があるか分からないため、固定サイズの画像を取得する必要がある場合があります。そのため、画像の比率を決定する方法がない場合、フロントエンド ページの作成者は通常、画像のオーバーフローを制御するために img 要素の高さと幅を固定する方法を使用します。ただし、画像の比率が必要な比率でない場合、呼び出し後に画像が変形してしまい、ページの美しさに大きな影響を及ぼします。解決策の 1 つは、元の画像の比率に合わせて画像を拡大縮小することです。拡大縮小された画像には必然的に空白が生じます。この方法では、画像は変形しませんが、たとえば、ユーザーが非常に大きな画像を送信した場合、大きな歪みが発生します。高さはありますが、幅は平均的であり、1:1 の画像に圧縮された場合、圧縮後に画像は基本的に表示されません。
ここでの私の解決策は、画像を固定サイズにトリミングすることです。画像は変形せず、空白スペースは常に引き伸ばされて埋められます。bcastr を使用したことがある友人はそれを知っているはずです。 bcastr は、画像が呼び出されないことを保証します。固定サイズの出力画像フレームの場合、ソース画像には次の状況があります。
1: 出力される画像の高さと幅が、画像の高さと幅より小さい。ソース画像、判定 $new_width<$src_width && $new_height<$ src_width
2: 出力される画像の高さと幅は、判定 $new_width>$src_width と記述された元の画像の高さと幅よりも大きい&& $new_height>$src_width
3: 1 番目と 2 番目のタイプを除外する、つまり、ズームアウトしながらズームインする状況と同等の判断を加えます
1、2 については、関数の処理コードはまったく同じであるため、次のようになります。処理ステートメントにまとめられます

PHPの実装コードが示されています

コードをコピーします コードは次のとおりです:

/*
*説明: 画像を変形させずに任意のサイズの画像にトリミングする機能です
* パラメータの説明: 処理する画像のファイル名を入力し、保存ファイルを生成します新しい画像のファイル名。新しい画像の幅と高さを生成します。
* 作成者: smallchicken
* 時刻 2008-12-18
*/
// 任意のサイズの画像を取得し、不足している部分を引き伸ばします。パーツ、変形なし、空白なし
function my_image_resize($src_file, $dst_file , $new_width , $new_height) {
if($new_width <1 || $new_height <1) {
echo "params 幅または高さのエラー!";
exit();
}
if(!file_exists($src_file)) {
echo $src_file . " は存在しません !";
exit();
}
// 画像タイプ
$type=exif_imagetype ($src_file);
$support_type=array (IMAGETYPE_JPEG , IMAGETYPE_PNG , IMAGETYPE_GIF);
if(!in_array($type, $support_type,true)) {
echo "このタイプの画像はサポートされていません! jpg 、gif のみをサポートしていますまたは png";
exit();
}
//画像の読み込み
switch($type) {
case IMAGETYPE_JPEG :
$src_img=imagecreatefromjpeg($src_file);
break;
case IMAGETYPE_PNG :
$src_img=imagecreatefromp NG( $src_file);
case IMAGETYPE_GIF :
$src_img=imagecreatefromgif($src_file);
echo "画像の読み込みエラー!"
$w=imagesx($) src_img);
$h=imagesy($ src_img);
$ratio_w=1.0 * $new_width / $w;
$ratio=1.0;生成された画像が元の画像より小さい、または両方が大きい場合、拡大するには大きな比率を使用し、縮小するには大きな比率を使用するのが原則です (縮小された比率は小さくなります)
if( ($ratio_w < 1 && $ratio_h < 1) || ($ratio_w > 1 && $ratio_h > ; 1)) {
if($ratio_w < $ratio_h) { // ケース 1、幅の比率高さ方向より小さい場合は、高さの比率の標準に従って切り取るか拡大します
}else {
$ratio = $ratio_w ;
}
// アスペクト比がターゲット要件を満たす中間一時画像を定義します
$inter_w=( int)($new_width / $ratio);
$inter_h=(int ) ($new_height / $ratio);
$inter_img=imagecreatetruecolor($inter_w , $inter_h); ,0,0,$inter_w,$inter_h);
// ターゲット画像のサイズとして最大辺の長さを持つ一時画像を生成します $ratio
// 新しい画像を定義します
$new_img=imagecreatetruecolor($new_width,$ new_height);
imagecopyresampled($new_img,$inter_img,0,0 ,0,0,$new_width,$new_height,$inter_w,$inter_h);
switch($type) {
case IMAGETYPE_JPEG :
imagejpeg, $dst_file,100); // 画像を保存
case IMAGETYPE_PNG :
imagepng($new_img,$dst_file,100); ;
default:
break;
}
} // end if 1
// 2 対象画像の片側が元の画像より大きく、一方が元の画像より小さいそれからトリミングします
// =if( ($ratio_w < 1 && $ratio_h > 1) || ( $ratio_w >1 && $ratio_h <1) )
else{
$ratio=$ratio_h>$ratio_w ? $ratio_h : $ratio_w; //比率が大きい方の値を取得します
//画像の高さまたは幅がターゲット画像と同じになるように、元の画像を拡大します
$ inter_w=(int)($w * $ratio);
$inter_h=(int) ($h * $ratio);
$inter_img= imagecreatetruecolor($inter_w, $inter_h); it
imagecopyresampled($inter_img,$src_img,0,0,0,0,$inter_w,$inter_h,$w,$h);
// 新しい画像を定義します
$new_img=imagecreatetruecolor($new_width,$new_height) ;
imagecopy($new_img, $inter_img, 0,0,0,0,$new_width,$new_height) {
case IMAGETYPE_JPEG :
imagejpeg($new_img, $dst_file,100);画像を保存します
case IMAGETYPE_PNG :
imagepng($new_img,$dst_file,100);
imagegif($new_img,$dst_file,100);
}
}// if3
}// 関数を終了します
?>



http://www.bkjia.com/PHPjc/320499.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/320499.html

技術記事

ホームページ呼び出し画像を作成する場合、通常、ホームページの画像位置はデザイナーによって指定されるため、固定サイズの画像を取得する必要がある場合があります。最新リリースの画像呼び出しを作成している場合は、...





このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

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

See all articles