display.newImage()

类型 函数
display.*
返回值 显示对象 (DisplayObject)
修订 版本 2024.3703
关键词 图像, 对象, 显示对象, 图形
另请参阅 display.newImageRect()
display.loadRemoteImage()
显示对象 (指南)
图像表单 (指南)

概述

从文件在屏幕上显示图像(支持通过 object:setFillColor 进行着色)。局部原点位于图像中心,锚点 初始化为此局部原点。

请注意,当启用内容缩放时,应使用 display.newImageRect() 来加载图像。

图像对象与 矩形对象 相同,其中 object.fill 属性设置为图像。

语法

图像文件

display.newImage( [parent,] filename [, baseDir] [, x, y] )
parent (可选)

GroupObject. 用于插入图像对象的可选显示组。

filename (必填)

String. 要加载的图像文件的名称,相对于 baseDir(默认为 system.ResourceDirectory)。

baseDir (可选)

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

x (可选)

Number. 图像的 x 坐标。

y (可选)

Number. 图像的 y 坐标。

图像表单

display.newImage( [parent,] imageSheet, frameIndex [, x, y] )
parent (可选)

GroupObject. 用于插入图像对象的可选显示组。

imageSheet (必填)

ImageSheet. 使用 graphics.newImageSheet() 创建的图像表单对象的引用。仅当您打算从图像表单创建对象时才需要此参数。

frameIndex (必填)

Number. 表示 ImageSheet 中用于创建对象的帧索引号。仅当指定了 imageSheet 时才需要此参数。

x (可选)

Number. 图像的 x 坐标。

y (可选)

Number. 图像的 y 坐标。

纹理采样

默认情况下,新的图像表单将使用线性采样滤波器,以便在实际渲染区域大于或小于加载纹理的像素尺寸时,图像看起来平滑。

您可以通过调用 display.setDefault() 来更改默认纹理滤波器。首次加载图像后,将对同一文件的任何后续加载应用相同的采样滤波器。这是因为每个文件只加载一次纹理。

陷阱

图像指南

属性

(继承自 ShapeObjectdisplay.newRect() 的属性)

示例

图像文件用法
local myImage = display.newImage( "image.png" )

-- Position the image
myImage:translate( 100, 100 )

-- Tint the image red
myImage:setFillColor( 1, 0, 0 )

-- Hide the image
myImage.isVisible = false

-- Remove the image
myImage:removeSelf()
myImage = nil
图像表单用法
-- Create the image sheet object
local options =
{
    -- The params below are required
    width = 70,
    height = 41,
    numFrames = 2,

    -- The params below are optional (used for dynamic image selection)
    sheetContentWidth = 70,  -- width of original 1x size of entire sheet
    sheetContentHeight = 82  -- height of original 1x size of entire sheet
}
local imageSheet = graphics.newImageSheet( "fishies.png", options )

local myImage = display.newImage( imageSheet, 1 )