2

写真が伸びないようにするにはどうすればよいですか? PHP はフォルダからランダムに 2 枚の写真を選択し、 を使用して表示しますecho。しかし、現在、縦向きの写真はすべて引き伸ばされています。

<?php if(!empty($images)) {
    $rand_key = array_rand($images, 1);
    $src = $images[$rand_key];
    echo "<img class=\"flickrphoto\" src='".$src."' align='absmiddle'>";

    unset($images[$rand_key]);
    $rand_key = array_rand($images, 1);
    $src = $images[$rand_key];
    echo "<img class=\"flickrphoto\" src='".$src."' align='absmiddle'>";
} else {
    echo 'Error';
} ?>

そしてCSS:

.flickrphoto {
    max-width: 100px;
    max-height: 100px;
    overflow: hidden;
}

** 編集 **
現在のコード:

   // protrait calculations;
    $size = getimagesize($images_folder_path);
    if($size[0] < $size[1]) {
        $orientation = 'portrait';
    } else {
        $orientation = 'landscape';
    }
4

4 に答える 4

5

向きがプロトレイトかどうかを確認し、css クラスを追加します。

<?php if(!empty($images)) {
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];

// protrait calculations;
$fullpath = // statement to fetch the path on the server
$size = getimagesize($fullpath);
if($size[0] < $size[1]) {
   $orientation = 'portrait';
} else {
   $orientation = 'landscape';
}

echo "<img class=\"flickrphoto ". $orientation ."\" src='".$src."' align='absmiddle'>";

unset($images[$rand_key]);
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<img class=\"flickrphoto\" src='".$src."' align='absmiddle'>";
} else {
    echo 'Error';
} ?>

そしてあなたのcssでは次のようになります:

img.flickrphoto {
    max-width: 100px;
    max-height: 100px;
    overflow: hidden;
}
img.flickrphoto.portrait {
    max-width: 50px;
}
于 2011-06-01T14:23:27.983 に答える
2

CSS と HTML でアスペクト比を維持する方法については、次の記事を参照してください。

http://haslayout.net/css-tuts/CSS-Proportional-Image-Scale

また、これを行う方法についていくつかのアイデアを提供する SO の質問もあります。

HTML - 縦横比を維持しながら、画像をできるだけ大きく表示します

基本的に、高さまたは幅のいずれかをスケーリングする必要がありますが、両方をスケーリングする必要はありません。

于 2011-06-01T14:18:35.457 に答える
0

<div>の代わりにa の背景として表示する<img>

このような:

echo "<div class=\"flickrphoto\" style='background: url(".$src.");'></div>";
于 2011-06-01T14:13:52.023 に答える
0

PHP 関数 imagesx および imagesy を使用し、戻り値を image タグの width および height 属性として出力します。

于 2011-06-01T14:18:12.527 に答える