diff --git a/externs/olx.js b/externs/olx.js
index 5ff47a3a2b..1d422f42cf 100644
--- a/externs/olx.js
+++ b/externs/olx.js
@@ -5064,6 +5064,7 @@ olx.source.OSMOptions.prototype.wrapX;
/**
* @typedef {{attributions: (Array.
|undefined),
* crossOrigin: (null|string|undefined),
+ * hidpi: (boolean|undefined),
* logo: (string|olx.LogoOptions|undefined),
* imageLoadFunction: (ol.ImageLoadFunctionType|undefined),
* params: Object.,
@@ -5095,6 +5096,15 @@ olx.source.ImageArcGISRestOptions.prototype.attributions;
olx.source.ImageArcGISRestOptions.prototype.crossOrigin;
+/**
+ * Use the `ol.Map#pixelRatio` value when requesting the image from the remote
+ * server. Default is `true`.
+ * @type {boolean|undefined}
+ * @api
+ */
+olx.source.ImageArcGISRestOptions.prototype.hidpi;
+
+
/**
* Logo.
* @type {string|olx.LogoOptions|undefined}
diff --git a/src/ol/source/imagearcgisrest.js b/src/ol/source/imagearcgisrest.js
index c086788ff0..47fabd5b30 100644
--- a/src/ol/source/imagearcgisrest.js
+++ b/src/ol/source/imagearcgisrest.js
@@ -44,6 +44,12 @@ ol.source.ImageArcGISRest = function(opt_options) {
this.crossOrigin_ =
options.crossOrigin !== undefined ? options.crossOrigin : null;
+ /**
+ * @private
+ * @type {boolean}
+ */
+ this.hidpi_ = options.hidpi !== undefined ? options.hidpi : true;
+
/**
* @private
* @type {string|undefined}
@@ -114,6 +120,7 @@ ol.source.ImageArcGISRest.prototype.getImageInternal = function(extent, resoluti
}
resolution = this.findNearestResolution(resolution);
+ pixelRatio = this.hidpi_ ? pixelRatio : 1;
var image = this.image_;
if (image &&