2012-02-21 1 views
1

Pinterestと同様の方法で画像を操作/サイズ変更したいのですが、どのような方法を採用するのが最適かわかりません。目標は、ポートレート画像と風景画像の両方を混在させることですが、最大の高さと幅にいくつかの制限を設けます。アップロード時に画像の幅や高さを制限する方法

私が見ることができる問題は、私が幅にリサイズすると、肖像画の画像が薄すぎることがあり、その逆が風景画像に当てはまることです。

PHPでこれらの結果をどのように達成するかについてのアイデアはありますか?

答えて

1

イメージの2つのエッジのどちらが長いかを理解し、それに比例して他のディメンションを計算するだけです。最大long-egdeが1024の場合、2つのエッジのいずれかが大きい場合は1024に設定し、もう一方を比率に合わせて計算します。次に、これら2つの値を画像管理関数に渡します。そして、最大サイズのため http://www.9lessons.info/2009/03/upload-and-resize-image-with-php.html

0

チェックし、比率に基づいてサイズを変更:ここのよう

http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

それともここに。

if($imageHeight > $maxHeight) { 
    $newHeight = $maxHeight; 
    $newWidth = $imageWidth * ($maxHeight/$imageHeight); 
} 
if($imageWidth > $maxWidth) { 
    $newWidth = $maxWidth; 
    $newHeight = $imageHeight * ($maxWidth/$imageWidth); 
} 
resize($image, $newWidth, $newHeight); 

最初に高さを確認し、高さが大きい場合はそれを縮小します。次に、幅を確認します。幅が大きすぎる場合は、幅を再び縮小します。最終的に、高さと幅の両方があなたの範囲内にあります。比率を使用してスケーリングを行います。

注:これは疑似コードです。実際のサイズ変更関数の呼び出しは、画像操作ライブラリに依存します。画像サイズを取得するための呼び出しも同じです。

1

この

 $needheight = 1000; 
     $needwidth = 1000; 

     $arrtest = getimagesize($upload_image_physical_path); 

     $actualwidth = $arrtest[0]; 
     $actualheight = $arrtest[1]; 

     if($needwidth > $actualwidth || $needheight > $actualheight){ 
      //uplaod code 
     } 

歓声

てみてください
関連する問題