nanosvg.newTexture()

类型 函数
返回值 TextureResourceExternal
修订版 发行版 2024.3703
关键词 SVG、nanosvg、newTexture
另请参见 nanosvg.newImage()
nanosvg.*

概述

创建一个纹理实例,(TextureResourceExternal)包含光栅化的 SVG。

创建的纹理需进行手动纹理内存管理。有关详细信息,请参阅纹理加载/管理指南。

语法

nanosvg.newTexture( params )
params (必需)

Table. 包含新对象所需参数的表 — 有关详细信息,请参阅下一部分。

参数参考

重要提示

至少一个数据源 — filenamefilePathdata必须指定用于渲染 SVG。

filename (可选)

String. 相对于baseDir,指示要加载 SVG 文件的名称。

baseDir (可选)

Constant. 指定 filename 所在的基本目录。选项包括 system.ResourceDirectorysystem.DocumentsDirectorysystem.ApplicationSupportDirectorysystem.TemporaryDirectorysystem.CachesDirectory。默认为 system.ResourceDirectory

filePath (可选)

String. 指示要加载的 SVG 文件的完整文件路径。

data (可选)

String. 包含要光栅化的 SVG 的 XML 数据。

pixelWidth (可选)

Number. 指定 SVG 呈现到的纹理的水平像素尺寸。如果省略此项,纹理宽度将从 SVG 宽度/高度比率中推断出来。

pixelHeight (可选)

Number. 指定 SVG 呈现到的纹理的垂直像素尺寸。如果省略此项,纹理高度将从 SVG 宽度/高度比率中推断出来。

scale (可选)

String. 指定光栅化 SVG 应如何适合纹理。仅当同时指定了 pixelWidthpixelHeight 时,此内容才适用。选项包括

  • "letterbox" — 此选项(默认)将整个光栅化 SVG 填充到纹理宽度/高度,留出信箱区域为透明。
  • "zoomEven" — 此选项使用光栅化 SVG 填充纹理宽度/高度,使其较窄的尺寸适合纹理。
scaleOffset (可选)

Number. 指定缩放光栅化 SVG 如何放置在纹理宽度/高度内。将 0.5(默认)用于将其放置在纹理中间;将 0 用于将其放置在顶部或左侧;将 1 用于将其放置在底部或右侧。

dpi (可选)

数字. 用于在不同 SVG 单位(像素、点数、厘米、毫米等)之间进行转换的数字。默认值是96

示例

从 SVG 文件创建纹理和图像
local nanosvg = require( "plugin.nanosvg" )

local tex = nanosvg.newTexture(
{
    filename = "test.svg",
})

if tex then
    local testSvg = display.newImage( tex.filename, tex.baseDir, display.contentCenterX, display.contentCenterY )
    tex:releaseSelf()
else
    print( "Error rendering SVG" )
end