3

PHPで、php move_uploaded_file関数を使用して画像をデータベースにアップロードしました。データベースから画像を取得するときに、このコードを使用して画像を取得しています

$result = mysql_query("SELECT * FROM "._DB_PREFIX_."storeimages WHERE `city_name`='".$_GET['details']."'");
while($row = mysql_fetch_array($result)){
 echo '<div class="store-img">';
  echo '<img class="store-image" src="storeimages/images/'.$row['store_image'].'" width="100px" height="100px" >';
  echo '</div>';
  }

ここでは、簡単に画像を取得しています。しかし、ここでは、画像サイズにwidth="100px"とを使用したことがわかります。height="100px"これは画像の縦横比を乱しています。これを解決するために Google で検索したところ、imagemagickがそのための適切なオプションであることがわかりました。しかし、単純な php で imagemagick を使用する方法がわかりません (クラス、メソッドを使用していません)。ここで imagemagick を使用するにはどうすればよいですか? ? どんな助けや提案も本当に価値があります。ありがとう

4

4 に答える 4

1

画像の比率を維持する方法は次のとおりです

list($origWidth, $origHeight) = @getimagesize("path/to/image");

$origRatio = $origWidth/$origHeight;
$resultWidth = 100;
$resultHeight = 100;
if ( $resultWidth/$resultHeight > $origRatio ) {
    $resultWidth = $resultHeight * $origRatio;
} else {
    $resultHeight = $resultWidth / $origRatio;
}
于 2013-09-24T10:27:38.507 に答える
0

Sencha .io を試してみてください。非常に簡単で強力です

echo '<img
  src="http://src.sencha.io/100/http://yourdomain.com/storeimages/images/'.$row['store_image'].'"
  alt="My constrained image"
  width="100"
  height="100"
/>';

詳細情報: http://www.sencha.com/learn/how-to-use-src-sencha-io/

于 2013-09-24T10:24:55.523 に答える
0
  1. PHP 内で HTML を使用することはお勧めできません。PHP から HTML を削除してください。
  2. php imagickをインストールする

    sudo apt-get install imagemagick
    sudo apt-get install php5-imagick
    
  3. 写真のサイズを変更するときは、写真の縦横比を維持することをお勧めします。次のコードは、アスペクト比を計算する方法のより良いアイデアを提供するはずです

    if( $imageWidth > $maxWidth OR $imageHeight > $maxHeight )
    {
       $widthRatio = 0;
       $heightRatio = 0;
    
       if( $imageWidth > 0 )
       {
           $widthRatio = $maxWidth/$imageWidth;
       }
    
       if( $imageHeight > 0 )
       {
           $heightRatio = $maxHeight/$imageHeight;
       }
    
       if( $widthRatio > $heightRatio )
       {
           $resizeRatio = $heightRatio;
       }
       else
       {
           $resizeRatio = $widthRatio;
       }
    
       $newWidth = intval( $imageWidth * $resizeRatio );
    
       $newHeight = intval( $imageHeight * $resizeRatio );
    
     }
    
  4. Imagick の使用方法については、http://php.net/manual/en/book.imagick.phpを参照してください。以下のサンプルコードを参照できます

     $image = new Imagick($pathToImage);
     $image->thumbnailImage($newWidth, $newHeight);
     $image->writeImage($pathToNewImage);
    
于 2013-09-24T11:40:06.190 に答える