Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement fast zsmooth option for image trace #5354

Merged
merged 14 commits into from
Jan 7, 2021
12 changes: 12 additions & 0 deletions src/traces/image/attributes.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,18 @@ module.exports = extendFlat({
'otherwise it defaults to `rgb`.'
].join(' ')
},
interpolate: {
almarklein marked this conversation as resolved.
Show resolved Hide resolved
valType: 'enumerated',
values: ['nearest', 'linear'],
almarklein marked this conversation as resolved.
Show resolved Hide resolved
almarklein marked this conversation as resolved.
Show resolved Hide resolved
dflt: 'nearest',
almarklein marked this conversation as resolved.
Show resolved Hide resolved
role: 'info',
editType: 'plot',
description: [
'The type of interpolation for rendering the image.',
'Default `nearest` (nearest neighbor interpolation).',
'Can also be set to `linear` (bilinear interpolation).'
].join(' ')
almarklein marked this conversation as resolved.
Show resolved Hide resolved
},
zmin: {
valType: 'info_array',
items: [
Expand Down
1 change: 1 addition & 0 deletions src/traces/image/defaults.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ module.exports = function supplyDefaults(traceIn, traceOut) {
traceOut.zmax = cm.zmaxDflt;
}

coerce('interpolate', 'nearest');
almarklein marked this conversation as resolved.
Show resolved Hide resolved
coerce('text');
almarklein marked this conversation as resolved.
Show resolved Hide resolved
coerce('hovertext');
coerce('hovertemplate');
Expand Down
5 changes: 4 additions & 1 deletion src/traces/image/plot.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,10 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) {
// Pixelated image rendering
// http://phrogz.net/tmp/canvas_image_zoom.html
// https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering
var style = 'image-rendering: optimizeSpeed; image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated;';
var style = '';
if(trace.interpolate === 'nearest') {
style = 'image-rendering: optimizeSpeed; image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated;';
almarklein marked this conversation as resolved.
Show resolved Hide resolved
}
if(fastImage) {
var xRange = Lib.simpleMap(xa.range, xa.r2l);
var yRange = Lib.simpleMap(ya.range, ya.r2l);
Expand Down