ホームページ  >  記事  >  バックエンド開発  >  PHP画像のトリミングとサムネイルの使用例を説明

PHP画像のトリミングとサムネイルの使用例を説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-21 11:25:291969ブラウズ

今回は、php画像のトリミングとサムネイルの使用例を紹介します。php画像のトリミングとサムネイルの使用における注意事項は何ですか。以下は実際的なケースです。見てみましょう。

php

プログラミングでは、画像が大きすぎて仕様が一貫していない状況によく遭遇します。モバイルデバイスで使用すると、表示制御がうまくいかず、トラフィックが発生します。既存の画像ライブラリ内の画像は、モバイル デバイスに適したサムネイルを生成するために一度処理され、クライアント側で JS によって実行された元の作業は、一元化するために PHP の GD ライブラリを使用してサーバー側に転送されます。処理。 要件、画像ソース、必要なサイズ:

$src_img = "wallpaper.jpg"; 
$dst_w = 300; 
$dst_h = 200;

画像領域が最大化され、指定されたサイズに拡大縮小されるように画像をトリミングします。

最初は imagecopyresize メソッドを使用して画像を比例的に縮小しましたが、実際に操作した後、縮小後の画像が非常に乾燥していることがわかりました。次に、imagecopyresampled メソッドに切り替えます (ここで言っておきますが、インターネット上にはこの記事の再版がたくさんありますが、どれも imagecopyresampled を imagecopysampled と書いていて、使用できなくなるため、これを再投稿しました)。このメソッドは画像を再サンプリングし、画像のサイズを小さくして、鮮明さを大幅に向上させます。

<?php 
list($src_w,$src_h)=getimagesize($src_img); // 获取原图尺寸 
$dst_scale = $dst_h/$dst_w; //目标图像长宽比 
$src_scale = $src_h/$src_w; // 原图长宽比 
if($src_scale>=$dst_scale) 
{ 
// 过高 
$w = intval($src_w); 
$h = intval($dst_scale*$w); 
$x = 0; 
$y = ($src_h - $h)/3; 
} 
else 
{ 
// 过宽 
$h = intval($src_h); 
$w = intval($h/$dst_scale); 
$x = ($src_w - $w)/2; 
$y = 0; 
} 
// 剪裁 
$source=imagecreatefromjpeg($src_img); 
$croped=imagecreatetruecolor($w, $h); 
imagecopy($croped,$source,0,0,$x,$y,$src_w,$src_h); 
// 缩放 
$scale = $dst_w/$w; 
$target = imagecreatetruecolor($dst_w, $dst_h); 
$final_w = intval($w*$scale); 
$final_h = intval($h*$scale); 
imagecopyresampled($target,$croped,0,0,0,0,$final_w,$final_h,$w,$h); 
// 保存 
$timestamp = time(); 
imagejpeg($target, "$timestamp.jpg"); 
imagedestroy($target); 
?>

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

PHPは、形状に影響を与えずに画像をトリミングします


phpは、リモート画像を呼び出すことができるかどうかを決定します

以上がPHP画像のトリミングとサムネイルの使用例を説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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