<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 6.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/Image",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI5ImageV"
  },
  "title" : "Image"
}
-->

# Image

A view that displays an image.

```
@frozen struct Image
```

## Overview

Use an `Image` instance when you want to add images to your SwiftUI app.
You can create images from many sources:

- Image files in your app’s asset library or bundle. Supported types include
  PNG, JPEG, HEIC, and more.
- Instances of platform-specific image types, like
  <doc://com.apple.documentation/documentation/UIKit/UIImage> and
  <doc://com.apple.documentation/documentation/AppKit/NSImage>.
- A bitmap stored in a Core Graphics
  <doc://com.apple.documentation/documentation/CoreGraphics/CGImage>
  instance.
- System graphics from the SF Symbols set.

The following example shows how to load an image from the app’s asset
library or bundle and scale it to fit within its container:

```
Image("Landscape_4")
    .resizable()
    .aspectRatio(contentMode: .fit)
Text("Water wheel")
```

![An image of a water wheel and its adjoining building, resized to fit the](images/com.apple.SwiftUI/Image-1@2x.png)

You can use methods on the `Image` type as well as
standard view modifiers to adjust the size of the image to fit your app’s
interface. Here, the `Image` type’s
[`resizable(capInsets:resizingMode:)`](/documentation/SwiftUI/Image/resizable(capInsets:resizingMode:)) method scales the image to fit
the current view. Then, the
[`aspectRatio(_:contentMode:)`](/documentation/SwiftUI/View/aspectRatio(_:contentMode:)) view modifier adjusts
this resizing behavior to maintain the image’s original aspect ratio, rather
than scaling the x- and y-axes independently to fill all four sides of the
view. The article
[Fitting images into available space](/documentation/SwiftUI/Fitting-Images-into-Available-Space) shows how to apply scaling,
clipping, and tiling to `Image` instances of different sizes.

An `Image` is a late-binding token; the system resolves its actual value
only when it’s about to use the image in an environment.

### Making images accessible

To use an image as a control, use one of the initializers that takes a
`label` parameter. This allows the system’s accessibility frameworks to use
the label as the name of the control for users who use features like
VoiceOver. For images that are only present for aesthetic reasons, use an
initializer with the `decorative` parameter; the accessibility systems
ignore these images.

## Topics

### Creating an image

[`init(_:bundle:)`](/documentation/SwiftUI/Image/init(_:bundle:))

Creates a labeled image that you can use as content for controls.

[`init(_:variableValue:bundle:)`](/documentation/SwiftUI/Image/init(_:variableValue:bundle:))

Creates a labeled image that you can use as content for controls,
with a variable value.

[`init(_:)`](/documentation/SwiftUI/Image/init(_:))

Initialize an `Image` with an image resource.

### Creating an image for use as a control

[`init(_:bundle:label:)`](/documentation/SwiftUI/Image/init(_:bundle:label:))

Creates a labeled image that you can use as content for controls, with
the specified label.

[`init(_:variableValue:bundle:label:)`](/documentation/SwiftUI/Image/init(_:variableValue:bundle:label:))

Creates a labeled image that you can use as content for controls, with
the specified label and variable value.

[`init(_:scale:orientation:label:)`](/documentation/SwiftUI/Image/init(_:scale:orientation:label:))

Creates a labeled image based on a Core Graphics image instance, usable
as content for controls.

### Creating an image for decorative use

[`init(decorative:bundle:)`](/documentation/SwiftUI/Image/init(decorative:bundle:))

Creates an unlabeled, decorative image.

[`init(decorative:variableValue:bundle:)`](/documentation/SwiftUI/Image/init(decorative:variableValue:bundle:))

Creates an unlabeled, decorative image, with a variable value.

[`init(decorative:scale:orientation:)`](/documentation/SwiftUI/Image/init(decorative:scale:orientation:))

Creates an unlabeled, decorative image based on a Core Graphics image
instance.

### Creating a system symbol image

[`init(systemName:)`](/documentation/SwiftUI/Image/init(systemName:))

Creates a system symbol image.

[`init(systemName:variableValue:)`](/documentation/SwiftUI/Image/init(systemName:variableValue:))

Creates a system symbol image with a variable value.

### Creating an image from another image

[`init(uiImage:)`](/documentation/SwiftUI/Image/init(uiImage:))

Creates a SwiftUI image from a UIKit image instance.

[`init(nsImage:)`](/documentation/SwiftUI/Image/init(nsImage:))

Creates a SwiftUI image from an AppKit image instance.

### Creating an image from drawing instructions

[`init(size:label:opaque:colorMode:renderer:)`](/documentation/SwiftUI/Image/init(size:label:opaque:colorMode:renderer:))

Initializes an image of the given size, with contents provided by a
custom rendering closure.

### Resizing images

[`resizable(capInsets:resizingMode:)`](/documentation/SwiftUI/Image/resizable(capInsets:resizingMode:))

Sets the mode by which SwiftUI resizes an image to fit its space.

### Specifying rendering behavior

[`antialiased(_:)`](/documentation/SwiftUI/Image/antialiased(_:))

Specifies whether SwiftUI applies antialiasing when rendering
the image.

[`symbolRenderingMode(_:)`](/documentation/SwiftUI/Image/symbolRenderingMode(_:))

Sets the rendering mode for symbol images within this view.

[`renderingMode(_:)`](/documentation/SwiftUI/Image/renderingMode(_:))

Indicates whether SwiftUI renders an image as-is, or
by using a different mode.

[`interpolation(_:)`](/documentation/SwiftUI/Image/interpolation(_:))

Specifies the current level of quality for rendering an
image that requires interpolation.

[`Image.TemplateRenderingMode`](/documentation/SwiftUI/Image/TemplateRenderingMode)

A type that indicates how SwiftUI renders images.

[`Image.Interpolation`](/documentation/SwiftUI/Image/Interpolation)

The level of quality for rendering an image that requires interpolation,
such as a scaled image.

### Specifying dynamic range

[`allowedDynamicRange(_:)`](/documentation/SwiftUI/Image/allowedDynamicRange(_:))

Returns a new image configured with the specified allowed
dynamic range.

[`allowedDynamicRange`](/documentation/SwiftUI/EnvironmentValues/allowedDynamicRange)

The allowed dynamic range for the view, or nil.

[`Image.DynamicRange`](/documentation/SwiftUI/Image/DynamicRange)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)