将 N # 个正方形调整为尽可能大,同时仍然适合 X x Y 尺寸的盒子。 (缩略图!)

2023-11-21

我有 N 个方格。 我有一个长方形的盒子。 我希望所有的方块都能放进盒子里。 我希望正方形尽可能大。

如何计算正方形的最大尺寸以使它们都适合盒子?

这适用于缩略图库中的缩略图。

int function thumbnailSize(
    iItems, // The number of items to fit.
    iWidth, // The width of the container.
    iHeight, // The height of the container.
    iMin // The smallest an item can be.
)
{
    // if there are no items we don't care how big they are!    
    if (iItems = 0) return 0;

    // Max size is whichever dimension is smaller, height or width.
    iDimension = (iWidth min iHeight);

    // Add .49 so that we always round up, even if the square root
    // is something like 1.2.  If the square root is whole (1, 4, etc..)
    // then it won't round up.
    iSquare = (round(sqrt(iItems) + 0.49));

    // If we arrange our items in a square pattern we have the same
    // number of rows and columns, so we can just divide by the number
    // iSquare, because iSquare = iRows = iColumns.
    iSize = (iDimension / iSquare);

    // Don't use a size smaller than the minimum.
    iSize = (iSize max iMin);

    return iSize;
 }

这段代码目前工作正常。其背后的想法是采用矩形容器的最小尺寸,假设该容器是该尺寸的正方形,然后假设我们有相同数量的行和列,刚好足以容纳 iItems 正方形。

如果容器大部分是方形的,则此功能非常有用。但是,如果您有一个长矩形,则缩略图会比应有的小。例如,如果我的矩形为 100 x 300,并且有三个缩略图,则它应该返回 100,但实际上返回 33。


可能不是最佳的(如果它有效,我还没有尝试过),但我认为比你当前的方法更好:

w:矩形的宽度

h:矩形的高度

n:图像数量

a = w*h :矩形的面积。

is = a/n 理想情况下图像的最大面积。

il = sqrt(ia) 理想情况下图像的最大长度。

nw = round_up(w/il):需要堆叠的图像数量。

nh = round_up(h/il):需要相邻堆叠的图像数量。

l = min(w/nw, w/nh) :要使用的图像的长度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 N # 个正方形调整为尽可能大,同时仍然适合 X x Y 尺寸的盒子。 (缩略图!) 的相关文章

  • 删除视频缩略图上的黑条

    我有一个画廊 用户可以在其中提交视频的 Youtube 链接 服务器会自动从 Youtube 获取缩略图 然而 许多视频的图像顶部和底部都包含黑条 我知道黑条的起源 但当我将缩略图大小调整为正方形时 黑条会干扰设计 我尝试从上到下分析像素颜
  • GData Youtube:获取缩略图

    我有一堆 youtube VideoID youtube com 网址的参数 watch v 中的字母数字字符串 我必须获取每个视频的缩略图 现在 我为每个 videoid 创建一个 HTTP GET 请求 如下所示 s VIDEOID 实
  • Chrome 扩展程序“Window Resizer”的替代方案

    鉴于最近的争议 2013 年 12 月 http www reddit com r YouShouldKnow comments 1snyyl ysk the chrome extension called window resizer 通
  • Asp.net 图像大小调整质量

    我有这段代码 用于调整和保存用户发布的文件的大小 问题是 当我调整到 480px 宽度时 图像质量会下降很多 而且大小 以 kb 为单位 仍然很大 例如 当我使用 Paint 之类的软件 手动 将同一图像的大小调整为 480px 时 质量仍
  • 如何按比例调整WPF Listview的大小?

    我在调整 Listview 控件大小时遇到 了一些问题 我打算根据窗口的实际大小按比例调整大小 对于 Listview 的初始大小 其大小为 300 X 600 宽度 X 高度 以像素为单位 我也设置了它最大高度到 750 但其宽度保持不变
  • 如何从直播视频网址获取视频缩略图(帧)

    我已将视频上传到服务器上 这是电影的预告片 我可以借助实时网址直接在我的 videoView 上播放该视频 我的问题 android 中有没有任何方法可以帮助我从 url 获取视频帧而不需要download视频到本地存储 我知道一种方法名称
  • 布局管理器区域的动态调整大小

    在哪个 Swing 布局管理器中可以通过编程方式更改布局区域 以及如何以最低的成本做到这一点 我必须从头开始创建功能类似于 JSplitPane 但具有三个面板的组件 其中一个时刻是单击分隔板上的 oneTouchExpandable 按钮
  • 如何获取 nautilus 用于给定文件的缩略图?

    Nautilus 向我显示文件的缩略图 如果它是图像 它会向我显示预览 如果它是视频 它会显示视频中的帧 如果它是文档 它会向我显示应用程序图标 我如何访问该图像 我看到它们被缓存在 thumbnail 然而 它们都被赋予了独特的名字 缩略
  • 散景图像绘图的较小范围填充

    我正在使用 bokeh 1 0 4 我想使用 bokeh 生成图像图match aspect True 这是用于说明的示例代码 from bokeh models ranges import DataRange1d from bokeh p
  • 如何正确使用 oembed 从 youtube 中提取拇指

    我的主页上有很多来自 YouTube 视频的点赞 我使用下面的这个函数从 youtube url 中抓取拇指 它运行速度很快 但它不适用于像 youtu be JSHDLSKL 这样的缩写形式的 url function get youtu
  • 在 C++ Windows API 中,在运行时调整窗口大小?

    当单击按钮时 如何在运行时调整全局 hwnd 变量的大小 或者只是在运行时调整窗口大小的任何方法 IE HWND hwnd global int buttonid 250 an id for a button also global int
  • Whatsapp 预览链接上未显示缩略图和说明

    我知道也有类似的问题here https stackoverflow com questions 19778620 provide an image for whatsapp link sharing and here https stac
  • 流行图片,例如 Google 图片

    有没有任何 jQuery 插件或 CSS 技术可以实现像谷歌图像那样的流行效果 Thanks images padding 30px images img position relative float left height 100px
  • 将 tiff 像素长宽比更改为正方形

    我正在尝试对多页 tiff 文件执行条形码识别 但是 tiff 文件是从传真服务器 我无法控制 发送给我的 该服务器以非方形像素长宽比保存 tiff 这导致图像由于纵横比而被严重挤压 我需要将 tiff 转换为方形像素长宽比 但不知道如何在
  • 用 Java 创建 PDF 的缩略图

    我正在寻找一个 Java 库 它可以获取 PDF 并从第一页创建缩略 图 PNG 我已经看过 JPedal 但其疯狂的许可费完全令人望而却步 我目前正在使用 iText 来操作 PDF 文件 但我相信它不会生成缩略图 我可以在命令行上使用
  • Windows API 代码包 - ShellFile 不生成 PDF 位图

    使用之前堆栈溢出问题中的代码 System Drawing Bitmap image ShellFile f ShellFile FromFilePath fileLocation image f Thumbnail ExtraLargeB
  • 如何在不实际调整大小的情况下触发 Control.Resize 事件?

    我不会对控件进行子类化 尝试通过触发事件Control Size Control Size失败 因为即使新大小实际上不同 它也不会触发 如果您要子类化Control 你可以打电话OnResize直接 或者将其暴露在 API 上 public
  • 在 javascript/jquery 中获取图像的完整尺寸

    我在页面上有一个图像 该图像已调整大小以适合 div 例如 400x300 如何在 jQuery 中获取图像的完整尺寸 4000x3000 width 和 height 似乎只返回图像的当前大小 图像有naturalWidth and na
  • 当容器大小更改时,JTable 仅调整选定列的大小

    对于面板内的 JTable 如果面板变大 我如何将额外的空间仅分配给某些列 在我的例子中 分配给最后一列 尽管提供 第 3 4 列和8 将获得额外的空间 我想允许用户手动更改所有列的列大小 我尝试了 table setAutoResizeM
  • 在 TIFF 中创建带有缩略图的子 IFD (libtiff)

    我知道thumbnail c包含一些创建缩略图并将其放置在子IDF中的代码 但是该代码中发生了很多事情 生成缩略图 应用对比度曲线等 并且我很难重现写缩略图 谷歌也没有提供任何帮助 我的问题是 在我打开输出文件并获得 TIFF 后 我的缩略

随机推荐

  • Linux内核UDP接收时间戳

    我一直在读网络时间戳linux 内核的文档 有一些东西我不清楚 提供的时间戳在哪里SO TIMESTAMPNS生成 在硬件中还是在内核中 如果是这样 一旦产生新数据包的中断 它就会被触发吗 SO TIMESTAMPING还应该允许生成硬件时
  • @angular/[email protected] 安装后脚本失败

    您好 我无法安装 Angular clinpm install g angular email protected 我不断收到这个 gt node bin postinstall script js module js 549 throw
  • 强制关闭带有服务的应用程序:服务中未调用 onDestroy()?

    我已经实现了粘性服务 当我强制关闭应用程序时 我看到 Activity 的 onDestroy 被调用 但该服务显然没有做任何事情 这是日志猫 07 01 22 35 30 397 DEBUG ActivityMine 6505 onDes
  • 如何获取SecondOrDefault?

    我有一个简单的 linq lambda 语句 Interactions new BindableCollection
  • 错误:Bool 不可转换为 Void:

    我正在从 Obj 移动我的代码 C 到 Swift C 并尝试实现 Twitter sdk 但是 我收到错误 任何人都可以告诉我我做错了什么吗 请在这件事上给予我帮助 我花了两天时间尝试了一切 但对我来说没有用 您的块没有 return 语
  • CUDA 启动请求的资源过多

    我在具有计算能力 2 0 的 GTX 480 上运行代码时遇到一些问题 如果我启动每块 1024 个线程的内核 我总是会收到以下错误 CUDA MEMCHECK Program hit cudaErrorLaunchOutOfResourc
  • 使用新的 Scala 反射 API 获取伴随对象实例

    使用 Scala 的新反射 API 是否可以获得对类的伴生对象的引用 我正在思考以下几点 trait Base def companion MetaBase someReflectionMagic this asInstanceOf Met
  • Pandas concat:ValueError:传递值的形状是 blah,索引意味着 blah2

    我正在尝试合并一个 Pandas 14 1 数据框和一个系列 该系列应形成一个新列 其中包含一些 NA 因为该系列的索引值是数据帧索引值的子集 这适用于玩具示例 但不适用于我的数据 详细信息如下 Example import pandas
  • OCaml 是否有像 Python 一样的 String.split 函数?

    我用它来分割字符串 let split Str split Str regexp string in let tokens split instr in 但问题是 例如这里有一个我想解析的句子 pop esi 分割后 它变成了 我使用辅助函
  • 如何在 C++ 中使用嵌套向量?

    我正在尝试使用整数向量的向量来构建我正在编写的数独解谜器 问题一 如果我要按索引访问二维向量 是否必须首先使用适当的大小对其进行初始化 例如 typedef vector
  • 如何选择给定字符后的子字符串

    我想使用正则表达式将子字符串保存到 javascript 变量中 除非有不同 更简单的方法 例如我有一个这样的链接 我只想获得 sEHN4t29oXY feature lated 所以我想我必须检查第一个等号的出现 然后将该字符串的其余部分
  • jQuery css() 函数更改“a”属性而不是“a:hover”属性

    我在使用 jQuery 时遇到了一些问题css 此刻的功能 它正在更改锚元素的 css 值border top color而不仅仅是锚元素的border top color当悬停时 下面是我的代码 header headerlist li
  • .NET 优化的 Int32

    在阅读 70 536 培训套件时 它指出 运行时优化性能 32 位整数类型 Int32 因此 将这些类型用于计数器和其他 经常访问的积分 变量 这只适用于32位环境吗 Int64 是否会在 64 位环境中取代 或者 Int32 仍然是更好的
  • 我应该在生产代码中使用模拟吗?

    我有一个情况需要mock生产中的一些代码 这是为了使一部分代码发挥一半功能 我必须选择编写一个空类 以实现接口 或者使用像最小起订量这样的模拟系统 所以问题是 模拟系统发挥出色 or 破坏一些可读性生产代码 update例子 interfa
  • lua中整数的各位数字之和

    我看到一个与Java和C相关的问题 但我正在使用LUA 这些答案可能适用于我 但我不理解它们 有人可以告诉我如何获得整数的各个数字之和 例如 a 275 aSum 2 7 5 如果您能解释我如何在 LUA 中实现这一目标以及代码为何执行此操
  • 将 UIView 的子视图放在其 CALayer 前面?

    这可能吗 基本上 我想给我的 UIView 一个子视图 并让该子视图位于视图层的前面 更具体地说 在所述层的边框前面 当然 我可以通过创建视图的超级视图的两个子视图 一个在另一个之上 来实现我想要的效果 但如果可能的话 我宁愿避免这种情况
  • 如何通过给定的 lambda 函数来担任角色?

    我们的这个要求来自渗透测试 我有一个 lambda 函数 add address 和一个角色 account management role 我想让 帐户管理角色 只能通过 add address lambda 函数来承担 我不希望任何其他
  • 将时间转换为 UTC vbScript

    我有以下函数 可以很好地将当前时间转换为 UTC 时间 Function toUtc byVal dDate Dim oShell Set oShell CreateObject WScript Shell toUtc dateadd n
  • 使用 CSS 绘制 S 形曲线

    我想创建一个乙状结肠曲线全屏布局的类似形状 一侧显示装饰图案背景 另一侧显示纯色背景 以便将文本放置在其顶部 目标是拥有一个全屏页面 其左上角充满图案的 S 型曲线 而页面的其余部分只有白色背景 JSFiddle 未完成的 sigmoid
  • 将 N # 个正方形调整为尽可能大,同时仍然适合 X x Y 尺寸的盒子。 (缩略图!)

    我有 N 个方格 我有一个长方形的盒子 我希望所有的方块都能放进盒子里 我希望正方形尽可能大 如何计算正方形的最大尺寸以使它们都适合盒子 这适用于缩略图库中的缩略图 int function thumbnailSize iItems The