Skip to content

UI Image

Represents an image inside a UI, similar to an img tag in HTML.

const image = app.create('uiimage', {
src: 'https://example.com/image.png',
width: 200,
height: 150,
objectFit: 'cover',
backgroundColor: 'rgba(0, 0, 0, 0.5)',
borderRadius: 10
});

Determines whether the image is displayed or hidden. Options are flex or none. Defaults to flex.

The URL of the image to display. Defaults to null.

The height of the image in pixels. Defaults to null (image’s natural height).

How the image should fit within its container. Options are contain, cover, or fill. Defaults to contain.

The radius of the border in pixels. Defaults to 0.

The flex direction for the image container. Options are column, column-reverse, row, or row-reverse. Inherits from parent UI node by default.

Options: flex-start, flex-end, center. Inherits from parent UI node by default.

Options: flex-start, flex-end, stretch, center, space-between, space-around, space-evenly. Inherits from parent UI node by default.

Options: no-wrap, wrap. Inherits from parent UI node by default.

The gap between child elements in pixels. Inherits from parent UI node by default.

The outer margin of the image container in pixels. Defaults to 0.

The inner padding of the image container in pixels. Defaults to 0.

The width of the border in pixels. Defaults to 0.

The color of the border. Can be hex (e.g., #000000) or rgba (e.g., rgba(0, 0, 0, 0.5)). Defaults to null.


Loads an image from the specified URL. Returns a promise that resolves when the image is loaded or rejects if loading fails.

image.src = 'https://example.com/new-image.png';

Here’s an example of creating a responsive UI with an image that covers its container:

// Create a UI node
const ui = app.create('ui', {
space: 'screen',
position: [0, 1, 0],
width: 300,
height: 200,
backgroundColor: 'rgba(0, 0, 0, 0.7)',
pivot: 'top-left'
});
// Create an image element
const image = app.create('uiimage', {
src: 'https://example.com/image.png',
width: 300,
height: 200,
objectFit: 'cover',
backgroundColor: 'rgba(255, 255, 255, 0.2)',
borderRadius: 10
});
// Add the image to the UI node
ui.add(image);

In this example:

  • The image is positioned at the top-left of the screen.
  • The image covers its container while maintaining its aspect ratio.
  • The container has a semi-transparent white background with rounded corners.

You can also make the image configurable using app.configure to allow users to change properties like the source URL or dimensions.

// Configure the app with a file input for images
app.configure([
{
type: 'file',
key: 'selectedImage',
label: 'Upload Image',
kind: 'texture' // Specify the kind as 'image' to restrict file types
}
]);
// Create the image element using the selected file
const image = app.create('uiimage', {
src: props.selectedImage?.url, // Use the URL of the selected image
width: 300,
height: 200,
objectFit: 'cover',
backgroundColor: 'rgba(255, 255, 255, 0.2)',
borderRadius: 10
});