Ensure scale used in calculations is numeric
This commit is contained in:
@@ -312,7 +312,7 @@ export function getDefaultStyleArray() {
|
|||||||
* @param {import("../size.js").Size} size Image size.
|
* @param {import("../size.js").Size} size Image size.
|
||||||
* @return {number} Scale.
|
* @return {number} Scale.
|
||||||
*/
|
*/
|
||||||
function resizeScaleFunction(size) {
|
function scaleForSize(size) {
|
||||||
return 32 / Math.min(size[0], size[1]);
|
return 32 / Math.min(size[0], size[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -341,7 +341,7 @@ function createStyleDefaults() {
|
|||||||
anchorYUnits: DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS,
|
anchorYUnits: DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS,
|
||||||
crossOrigin: 'anonymous',
|
crossOrigin: 'anonymous',
|
||||||
rotation: 0,
|
rotation: 0,
|
||||||
scale: resizeScaleFunction(DEFAULT_IMAGE_STYLE_SIZE),
|
scale: scaleForSize(DEFAULT_IMAGE_STYLE_SIZE),
|
||||||
size: DEFAULT_IMAGE_STYLE_SIZE,
|
size: DEFAULT_IMAGE_STYLE_SIZE,
|
||||||
src: DEFAULT_IMAGE_STYLE_SRC,
|
src: DEFAULT_IMAGE_STYLE_SRC,
|
||||||
});
|
});
|
||||||
@@ -1338,6 +1338,7 @@ function iconStyleParser(node, objectStack) {
|
|||||||
color: color,
|
color: color,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const imageScale = imageStyle.getScaleArray()[0];
|
||||||
const imageSize = imageStyle.getSize();
|
const imageSize = imageStyle.getSize();
|
||||||
if (imageSize === null) {
|
if (imageSize === null) {
|
||||||
const imageState = imageStyle.getImageState();
|
const imageState = imageStyle.getImageState();
|
||||||
@@ -1352,8 +1353,8 @@ function iconStyleParser(node, objectStack) {
|
|||||||
) {
|
) {
|
||||||
const imageSize = imageStyle.getSize();
|
const imageSize = imageStyle.getSize();
|
||||||
if (imageSize && imageSize.length == 2) {
|
if (imageSize && imageSize.length == 2) {
|
||||||
const resizeScale = resizeScaleFunction(imageSize);
|
const resizeScale = scaleForSize(imageSize);
|
||||||
imageStyle.setScale(scale * resizeScale);
|
imageStyle.setScale(imageScale * resizeScale);
|
||||||
}
|
}
|
||||||
imageStyle.unlistenImageChange(listener);
|
imageStyle.unlistenImageChange(listener);
|
||||||
}
|
}
|
||||||
@@ -1364,8 +1365,8 @@ function iconStyleParser(node, objectStack) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (imageSize.length == 2) {
|
} else if (imageSize.length == 2) {
|
||||||
const resizeScale = resizeScaleFunction(imageSize);
|
const resizeScale = scaleForSize(imageSize);
|
||||||
imageStyle.setScale(scale * resizeScale);
|
imageStyle.setScale(imageScale * resizeScale);
|
||||||
}
|
}
|
||||||
styleObject['imageStyle'] = imageStyle;
|
styleObject['imageStyle'] = imageStyle;
|
||||||
} else {
|
} else {
|
||||||
@@ -2658,7 +2659,7 @@ function writeIconStyle(node, style, objectStack) {
|
|||||||
imageSize = DEFAULT_IMAGE_STYLE_SIZE;
|
imageSize = DEFAULT_IMAGE_STYLE_SIZE;
|
||||||
}
|
}
|
||||||
if (imageSize.length == 2) {
|
if (imageSize.length == 2) {
|
||||||
const resizeScale = resizeScaleFunction(imageSize);
|
const resizeScale = scaleForSize(imageSize);
|
||||||
scale = scale / resizeScale;
|
scale = scale / resizeScale;
|
||||||
}
|
}
|
||||||
if (scale !== 1) {
|
if (scale !== 1) {
|
||||||
|
|||||||
Reference in New Issue
Block a user