Sublime Text 3 - 将图像限制为视图大小

Sublime Text 3 - Limit images to viewsize

我正在开发一个 Sublime Text 3 插件,它可以在视图中显示图像。这些图像是由 jupyter 内核创建的,因此图像的大小取决于生成它们的代码。因为我创建了非常大的图像,所以它们太大以适应视图。

我想将图像的大小限制为视图的大小,例如将其缩放到视图大小的 100%。有没有办法获取当前视图的大小并将其添加到 ST3 的 minihtml 实现中?

我测试了宽度:100%,它只使用了实际视图大小的一小部分。

我认为你在这里想要的 API 端点是 view.viewport_extent();它 returns 返回一个 vector 表示视图本身的宽度和高度,它是 (dip, dip) 的元组(即与设备无关的像素)。

minihtml 中的 px 大小(我相信)也与设备无关,因此可以在不知道插件中显示的屏幕大小或 DPI 比例的情况下生成 HTML。

因此,通过使用此 API 方法,您可以在图像标签上计算适当的 widthheight(如果需要,请确保限制纵横比)以调整其大小随心所欲。

需要注意的是,您获得的大小实际上是整个视口的大小,因此在垂直滚动条占用 window 的水平 space 一点的情况下,您你会发现制作这么宽的东西实际上会使水平滚动条出现,因为图像的一小部分位于滚动条下方。因此,您可能希望 trim 将尺寸调小一点。

view.line_height()view.em_width() 也可能在这种情况下派上用场;他们会在 dip 中告诉您文本的高度或宽度基于视图中的字体,以防您想根据字体大小调整图像大小,