【问题标题】:HTML resizing image based on it's sizeHTML根据其大小调整图像大小
【发布时间】:2018-01-25 07:13:22
【问题描述】:

我在制作网上商城页面时遇到了这个问题。

上传到我的数据库的大多数照片都有不同的尺寸,我不得不调整它们的大小。但是当我这样做时,当我将它们的所有高度设置为相同时,一些图片的分辨率变得非常糟糕。

我想添加类似if 的子句来确定图像的大小,然后仅调整大于给定大小的图像的大小。

我想添加一些看起来像这样的东西,我猜:

if (img height < 300px) {
   img height = "100px";
} else {
   img height = "400px";
}

这是我当前的代码:

<ul class="prdList column4">
        <li class="item" id="anchorBoxId_{$product_no}">
            <div class="box">
                <span class="chk"><input type="checkbox" class="{$product_compare_class} {$product_compare_display|display}" /></span>
                <a href="/product/detail.html{$param}" name="anchorBoxName_{$product_no}"><img src="{$image_big}"  id="{$image_medium_id}" alt="" class="thumb" /></a>
                <div class="status">
                    <div class="icon">{$soldout_icon} {$recommend_icon} {$new_icon} {$product_icons} {$benefit_icons}</div>
                    <div class="button"><div class="option">{$option_preview_icon}</div> {$basket_icon} {$zoom_icon}</div>
                </div>
                <p class="name">
                    <a href="/product/detail.html{$param}" class="{$product_name_display|display}"><strong class="title {$product_name_title_display|display}">{$product_name_title} :</strong> {$product_name}</a>
                </p>
                <ul module="product_ListItem">
                    <li class="{$item_display|display}"><strong class="title {$item_title_display|display}">{$item_title} :</strong> {$item_content}</li>
                    <li class="{$item_display|display}"><strong class="title {$item_title_display|display}">{$item_title} :</strong> {$item_content}</li>
                </ul>
            </div>
        </li>
        <li class="item" id="anchorBoxId_{$product_no}">
            <div class="box">
                <span class="chk"><input type="checkbox" class="{$product_compare_class} {$product_compare_display|display}" /></span>
                <a href="/product/detail.html{$param}" name="anchorBoxName_{$product_no}"><img src="{$image_big}" id="{$image_medium_id}" alt="" class="thumb" /></a>
                <div class="status">
                    <div class="icon">{$soldout_icon} {$recommend_icon} {$new_icon} {$product_icons} {$benefit_icons}</div>
                    <div class="button"><div class="option">{$option_preview_icon}</div> {$basket_icon} {$zoom_icon}</div>
                </div>
                <p class="name">
                    <a href="/product/detail.html{$param}" class="{$product_name_display|display}"><strong class="title {$product_name_title_display|display}">{$product_name_title} :</strong> {$product_name}</a>
                </p>
                <ul module="product_ListItem">
                    <li class="{$item_display|display}"><strong class="title {$item_title_display|display}">{$item_title} :</strong> {$item_content}</li>
                    <li class="{$item_display|display}"><strong class="title {$item_title_display|display}">{$item_title} :</strong> {$item_content}</li>
                </ul>
            </div>
        </li>
    </ul>
</div>

【问题讨论】:

  • 在上传到数据库之前,您最好使用简单的图像工具手动调整它们的大小
  • @codemax 我猜是卖家上传了图片。强制卖家上传特定尺寸的图片是一种简单的解决方案,但对用户不友好。
  • 我正在调整我现在上传的所有新图片的大小,但我无法对以前发布的图片做任何事情,因为它们太多了,我无法手动修复所有这些图片 =(跨度>

标签: javascript php html css web


【解决方案1】:

我想添加一些看起来像这样的东西,我猜:

if (img height < 300px) {
  img height = "100px";
} else {
  img height = "400px";
}

你猜对了。 您只需要找到检测和更改图像大小的函数即可。

在哪里可以找到这些函数

首先查看PHP官方手册中的函数参考。

然后你会发现一个专门的图像处理部分:

Image Processing and Generation

事实证明,有几个库提供了所需的功能。 例如,如果您使用 GD,它会提供getimagesizeimagescale。 Gmagick 和 ImageMagick 功能相似,只是名称不同。

【讨论】:

  • 感谢您的回复并纠正我的错误语法 =) 我将尝试更多地研究您提供给我的参考资料以解决我的问题
猜你喜欢
  • 2013-08-28
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
  • 2014-09-02
  • 2019-10-16
  • 2017-08-19
相关资源
最近更新 更多