ArcGIS Developers

PictureFillSymbolLayer Class

class Esri::ArcGISRuntime::PictureFillSymbolLayer

A picture fill symbol layer is a symbol layer intended for use with polygon geometries. More...

Header: #include <PictureFillSymbolLayer>
Since: Esri::ArcGISRuntime 100.5
Inherits: Esri::ArcGISRuntime::FillSymbolLayer, Esri::ArcGISRuntime::Loadable, and Esri::ArcGISRuntime::RemoteResource

This class was introduced in Esri::ArcGISRuntime 100.5.

Public Functions

PictureFillSymbolLayer(const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
PictureFillSymbolLayer(const QUrl &url, QObject *parent = nullptr)
PictureFillSymbolLayer(const QImage &image, QObject *parent = nullptr)
virtual ~PictureFillSymbolLayer() override
QImage image() const
void setTintColor(const QColor &tintColor)
QColor tintColor() const

Reimplemented Public Functions

virtual void cancelLoad() override
virtual Esri::ArcGISRuntime::Credential *credential() const override
virtual void load() override
virtual Esri::ArcGISRuntime::Error loadError() const override
virtual Esri::ArcGISRuntime::LoadStatus loadStatus() const override
virtual Esri::ArcGISRuntime::RequestConfiguration requestConfiguration() const override
virtual void retryLoad() override
virtual void setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration) override
virtual QUrl url() const override


void doneLoading(Esri::ArcGISRuntime::Error loadError)
void loadStatusChanged(Esri::ArcGISRuntime::LoadStatus loadStatus)

Detailed Description

This symbol layer, if it is the sole symbol layer in a MultilayerPolygonSymbol, fills the geometry associated with the symbol with the specified image. The image, should it not fill the geometry, will be tiled throughout the fill.

The PictureFillSymbolLayer is also used to represent the Web Scene specification's Icon3DSymbolLayers. IconSymbol3DLayers from Web Scene JSON - as long as those Icon3DSymbolLayers contain pictures - rather than primitives or vector paths, those symbol layers are represented as PictureFillSymbolLayer. If those Icon3DSymbolLayers are primitives or vector paths, they are represented as VectorMarkerSymbolLayer.

The PictureFillSymbolLayer provides a similar user experience to the simple PictureFillSymbol, but can be used in a MultilayerSymbol.


Create a PictureFillSymbolLayer and set its URL to an online PNG:

const QUrl pictureFillSymbolLayerUrl("");
PictureFillSymbolLayer* pictureFillSymbolLayer = new PictureFillSymbolLayer(pictureFillSymbolLayerUrl, this);

See also Symbol, Loadable, and RemoteResource.

Member Function Documentation

PictureFillSymbolLayer::PictureFillSymbolLayer(const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)

Constructor to initialize a picture fill symbol with the provided url to an image, a credential for the secured resource, and optional parent.

The URL can be provided as a path to a local file (file:/<path to file>), path to a resource image (qrc:/<path to resource image>), or a path to an HTTP URL image (http://path to image).

A Credential is specified if the image needs authentication to gain access to it.

PictureFillSymbolLayer::PictureFillSymbolLayer(const QUrl &url, QObject *parent = nullptr)

Constructor to initialize a picture fill symbol with the provided url to an image and optional parent.

The URL can be provided as a path to a local file ( "file:/<path to file>"), path to a resource image ("qrc:/<path to resource image>"), or a path to an HTTP URL image ("http://path to image").

PictureFillSymbolLayer::PictureFillSymbolLayer(const QImage &image, QObject *parent = nullptr)

Constructor to initialize a picture fill symbol with the provided image and optional parent.

[signal] void PictureFillSymbolLayer::doneLoading(Esri::ArcGISRuntime::Error loadError)

Signal emitted when this object is done loading.

  • loadError - Details about any error that may have occurred.

Note: If there is a load error it will also be emitted on the errorOccurred signal.

See also Loadable and Object.

[signal] void PictureFillSymbolLayer::loadStatusChanged(Esri::ArcGISRuntime::LoadStatus loadStatus)

Signal emitted when the load status changes for this object.

See also Loadable.

[override virtual] PictureFillSymbolLayer::~PictureFillSymbolLayer()


[override virtual] void PictureFillSymbolLayer::cancelLoad()

Reimplements: Loadable::cancelLoad().

See Loadable.

[override virtual] Esri::ArcGISRuntime::Credential *PictureFillSymbolLayer::credential() const

Reimplements: RemoteResource::credential() const.

Returns the credential to be used to access a secured image URL if provided.

QImage PictureFillSymbolLayer::image() const

Returns the picture fill symbol image once loaded.

If a URL was provided for the picture fill symbol layer, an attempt to load the symbol must occur and succeed, before the image can be returned from this function. Prior to loading in this case, this will return a null QImage.

Returned images are in the QImage::Format_ARGB32_Premultiplied format.

[override virtual] void PictureFillSymbolLayer::load()

Reimplements: Loadable::load().

See Loadable.

[override virtual] Esri::ArcGISRuntime::Error PictureFillSymbolLayer::loadError() const

Reimplements: Loadable::loadError() const.

See Loadable.

[override virtual] Esri::ArcGISRuntime::LoadStatus PictureFillSymbolLayer::loadStatus() const

Reimplements: Loadable::loadStatus() const.

See Loadable.

[override virtual] Esri::ArcGISRuntime::RequestConfiguration PictureFillSymbolLayer::requestConfiguration() const

Reimplements: RemoteResource::requestConfiguration() const.

Returns the RequestConfiguration in use by this symbol.

See also setRequestConfiguration().

[override virtual] void PictureFillSymbolLayer::retryLoad()

Reimplements: Loadable::retryLoad().

See Loadable.

[override virtual] void PictureFillSymbolLayer::setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration)

Reimplements: RemoteResource::setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration).

Sets configuration parameters used for network requests sent by this symbol to requestConfiguration.

See also requestConfiguration().

void PictureFillSymbolLayer::setTintColor(const QColor &tintColor)

Sets the tint color of the picture fill symbol layer with the specified tintColor.

This function was introduced in Esri::ArcGISRuntime 100.6.

See also tintColor().

QColor PictureFillSymbolLayer::tintColor() const

Returns the tint color of the picture fill symbol layer.

The tint color is applied to the entire image by multiplying each RGB color channel in the image by the corresponding color channel of the tint color. The default color is white with 100% opacity (RGBA (255,255,255,255)), which when applied leaves the image with its native colors and unchanged opacity. A white tint color with opacity less than 100% applies the reduced opacity without changing the image colors.

When getting the tint color from a symbol, the consensus value is reported. If there is no consensus (one or more layers have different colors), a null value is reported for the color. Likewise, setting a value for tint color on a symbol will apply that tint color to all layers the symbol contains.

This function was introduced in Esri::ArcGISRuntime 100.6.

See also setTintColor().

[override virtual] QUrl PictureFillSymbolLayer::url() const

Reimplements: RemoteResource::url() const.

Returns the URL path to the picture fill symbol layer image.

This could be a local file path, Qt resource path, or HTTP path to the image.

Feedback on this topic?