【问题标题】:sorl-thumbnail resize and add backgroundsorl-thumbnail 调整大小并添加背景
【发布时间】:2011-04-05 20:36:10
【问题描述】:

我正在使用 sorl-thumbnail,我想将图像大小调整为 200x200。假设图像将是 160x200,因为它不是正方形的。如何添加白色背景(或边框)以使生成的图像文件为 200x200? 这可以通过 sorl-thumbnail 实现吗?或者我可以添加这个功能吗?

最好的 雅克

【问题讨论】:

    标签: django sorl-thumbnail


    【解决方案1】:

    我想这有点晚了,但你可以在 margin 属性中找到你的答案:

    简而言之:

    {% thumbnail something.image "200x200" as image %}
        <img src="{{ image.url }}" style="padding:{{ image|margin:"200x200" }}" />
    {% endthumbnail %}
    

    ...别忘了设置

    img { background-color: #fff; }
    

    来自文档的详细信息:http://thumbnail.sorl.net/template.html#margin

    【讨论】:

      【解决方案2】:

      我对您将图像大小调整为 200x200 再调整为 160x200 的意思感到困惑。您是否只想根据图像的最长边按比例裁剪图像?如果是这样,您可以这样做:

      {% thumbnail something.image "200x200" as image %}
          <img src="{{ image.url }}" alt="{{ something.name }}" />
      {% endthumbnail %}
      

      这应该会给你在裁剪方面你正在寻找的行为。

      您是要在图像上实际覆盖边框,还是通过 CSS 创建边框是否合适?

      img {
          background-color: #fff;
          padding: 2px;
      }
      

      如果你真的想改变图像本身,我相信你可以修改源代码(你可以fork on GitHub here)来做你需要的。

      如果您想做诸如水印之类的事情,我也可以推荐django-photologue 作为替代方案...与 sorl 相比,我发现它在进行站点范围的图像修改时非常好。

      【讨论】:

      • 我的意思是:我正在使用比例裁剪到 200x200(类似于您的第一个示例)。但是,当我的图像不是正方形时,此代码将生成一个新的图像文件,其几何形状例如为 160x200。有没有办法为这张图片添加 200x200 背景?
      • 我希望所有图像文件的大小相同(200x200),但不改变原始图像的纵横比并且不进行任何裁剪。您还可以考虑为调整大小的图像(大小为 160x200、195x200、200x130、200x50 等)添加边框,以使这些文件的大小都为 200x200。
      • 现在,我发现了这个:link 这个 pad-function 似乎只是做我需要的,但由于我对 Django 很陌生,我不知道如何将它添加到我的代码中以及如何在模板中使用它。看起来代码也依赖于旧版本的 sorl-thumbnail。我真的不知道该怎么办。最佳雅克
      猜你喜欢
      • 1970-01-01
      • 2012-03-10
      • 2011-06-10
      • 2015-01-16
      • 2011-07-31
      • 1970-01-01
      • 2015-06-28
      • 2017-08-09
      • 2012-01-14
      相关资源
      最近更新 更多