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
}// 関数を終了します
?>
上記は、PHP で画像を固定サイズにトリミングするコード方法を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









img ファイルを開く方法には、仮想光学ドライブ ソフトウェアを使用する、圧縮ソフトウェアを使用する、特別なツールを使用するなどがあります。詳細な紹介: 1. 仮想光学ドライブ ソフトウェアを使用して、仮想光学ドライブ ソフトウェアを開き、ダウンロードしてインストールします。img ファイルを右クリックし、「プログラムから開く」または「関連プログラム」を選択し、ポップでインストールされている仮想光学ドライブ ソフトウェアを選択します。 -up ダイアログ ボックス、仮想 光学ドライブ ソフトウェアは、img ファイルを自動的にロードし、仮想光学ドライブのディスク イメージとして使用します。仮想光学ドライブのディスク アイコンをダブルクリックして、img ファイルを開いてその内容にアクセスします。等

img ファイルを開く方法: 1. img ファイルのパスを確認します; 2. img ファイル オープナーを使用します; 3. 開く方法を選択します; 4. 画像を表示します; 5. 画像を保存します。 img ファイルは一般的に使用される画像ファイル形式で、通常は画像データを保存するために使用されます。

img はファイル圧縮形式で、主にフロッピー ディスクのイメージ ファイルを作成するために使用されます。フロッピー ディスク全体または CD 全体の内容を圧縮するために使用できます。このファイル形式を使用すると、拡張子「.IMG」のファイルが作成されます。 ; img ファイルには、「Ehfa_HeaderTag」、「Ehfa_File」、「Ehfa_Entry」という 3 つの基本ノードが含まれています。

U ディスクは頻繁に使用されるストレージ デバイスの 1 つです。また、使用中にいくつかの小さな問題が発生することがあります。たとえば、U ディスクが読み取れない場合があります。解決方法はありますか? しまってください。 USB フラッシュ ドライブを読み取れませんか?問題を簡単に解決する方法を 4 つのステップで教えます。USB フラッシュ ドライブをコンピューターに挿入したら、[スタート] メニューをクリックし、[コントロール パネル] を選択して、保管してください。 USB フラッシュ ドライブを読み取れませんか?問題を簡単に解決するための 4 つの手順. コントロール パネルで [デバイス マネージャー] を見つけてダブルクリックします。そのままにしておいて! USB フラッシュ ドライブを読み取れませんか?問題を簡単に解決する方法を示す 4 つのステップ: デバイス マネージャーのメイン インターフェイスでユニバーサル シリアル バス コントローラーを見つけて、保管してください。 USB フラッシュ ドライブを読み取れませんか? USB 大容量ストレージ デバイスを簡単に見つけて選択し、右クリックして [アンインストール] を見つけて保管する方法を 4 つのステップで説明します。 USB フラッシュ ドライブを読み取れませんか?問題を簡単に解決する方法を示す 4 つのステップ。ディスカッション用のメッセージを残すことを歓迎します。

jquery で img src 属性を変更する方法: 1. attr() 属性、構文 "$("img").attr("src","イメージ ファイルのアドレス")" を使用します。 2. prop() メソッドの構文は「 $("img").prop("src","画像ファイルのアドレス")」です。

HTML では、イメージ タグは、イメージを定義するために使用されるタグ、つまり「<img>」タグを指します。 img 要素は、Web ページに画像を埋め込むことができます。「<img>」タグは、参照画像のプレースホルダを作成し、画像を HTML ページにリンクするために使用されます。img タグは、src 属性を使用して、Web ページの URL を指定します。画像を表示します。構文「<img src="imageurl">」。

1. 概念 Java 言語では、「new」式はインスタンスを作成する役割を果たし、その中でコンストラクターが呼び出されてインスタンスを初期化します。コンストラクター自体の戻り値の型は void であり、「コンストラクターは新しく作成された値を返す」ではありません。オブジェクト参照」ですが、新しい式の値は新しく作成されたオブジェクトへの参照です。 2. 目的: 新しいクラスのオブジェクトを作成する 3. 動作メカニズム: オブジェクトのメンバーにメモリ領域を割り当て、デフォルト値を指定する メンバー変数を明示的に初期化し、構築メソッドの計算を実行し、参照値を返す 4. 新しい操作を頻繁にインスタンス化するメモリ内に新しいメモリを開くことを意味し、メモリ内のヒープ領域にメモリ空間が確保され、jvmによって制御され、メモリが自動的に管理されます。ここでは例として String クラスを使用します。プ

相違点: 1. Make は、slice、map、および chan タイプのデータの割り当てと初期化にのみ使用できますが、new は任意のタイプのデータを割り当てることができます。 2. 新しい割り当ては型「*Type」であるポインタを返しますが、make は参照である Type を返します。 3. new によって割り当てられたスペースはクリアされ、make によってスペースが割り当てられた後、初期化されます。
