避免拉伸照片

发布于 2024-11-10 18:14:56 字数 878 浏览 3 评论 0原文

如何避免照片拉伸? 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';
    }

How can I avoid the stretching of my photos? PHP selects 2 photos at random from a folder and displays them using echo. But right now, all photos in portrait, are stretched.

<?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';
} ?>

And the CSS:

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

** EDIT **
Current code:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小梨窩很甜 2024-11-17 18:14:56

我只是检查方向是否为直角并添加一个 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;
}

I'd just check if the orientation is protrait or not and add a css class;

<?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';
} ?>

and in your css somthing like this:

img.flickrphoto {
    max-width: 100px;
    max-height: 100px;
    overflow: hidden;
}
img.flickrphoto.portrait {
    max-width: 50px;
}
潇烟暮雨 2024-11-17 18:14:56

这是一篇关于如何使用 CSS 和 HTML 保持宽高比的好文章:

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

另外,还有一个问题也给出了一些关于如何做到这一点的想法:

HTML - 显示尽可能大的图像,同时保持纵横比

基本上,您需要缩放高度或宽度,但不能同时缩放两者。

Here is a good article on how to maintain aspect ratio with CSS and HTML:

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

Also, there is a SO question that gives a couple ideas on how to do this as well:

HTML - display an image as large as possible while preserving aspect ratio

Basically, you need to scale either height or width but not both.

囍孤女 2024-11-17 18:14:56

将它们显示为

的背景,而不是

如下所示:

echo "<div class=\"flickrphoto\" style='background: url(".$src.");'></div>";

display them as background of a <div> instead of <img>

like this:

echo "<div class=\"flickrphoto\" style='background: url(".$src.");'></div>";
懷念過去 2024-11-17 18:14:56

使用 php 函数 imagesx 和 imagesy,并将返回值作为图像标签的宽度和高度属性发出。

use php functions imagesx and imagesy, and emit the return values as the width and height attributes of the image tag.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文