diff --git a/rendering/cases/image-disable-smoothing/expected.png b/rendering/cases/image-disable-smoothing/expected.png deleted file mode 100644 index 8735dd9d86..0000000000 Binary files a/rendering/cases/image-disable-smoothing/expected.png and /dev/null differ diff --git a/rendering/cases/image-no-stretch-disable-smoothing/expected.png b/rendering/cases/image-no-stretch-disable-smoothing/expected.png new file mode 100644 index 0000000000..65990bfdce Binary files /dev/null and b/rendering/cases/image-no-stretch-disable-smoothing/expected.png differ diff --git a/rendering/cases/image-no-stretch-disable-smoothing/main.js b/rendering/cases/image-no-stretch-disable-smoothing/main.js new file mode 100644 index 0000000000..201f0e1baa --- /dev/null +++ b/rendering/cases/image-no-stretch-disable-smoothing/main.js @@ -0,0 +1,29 @@ +import ImageLayer from '../../../src/ol/layer/Image.js'; +import Map from '../../../src/ol/Map.js'; +import Static from '../../../src/ol/source/ImageStatic.js'; +import View from '../../../src/ol/View.js'; + +const source = new Static({ + url: '/data/tiles/osm/5/5/12.png', + imageExtent: [-123, 37, -122, 38], + imageSmoothing: false, +}); + +new Map({ + pixelRatio: 1, + target: 'map', + layers: [ + new ImageLayer({ + source: source, + }), + ], + view: new View({ + center: [-122.39, 37.81], + zoom: 12, + projection: 'EPSG:4326', + }), +}); + +render({ + tolerance: 0.001, +}); diff --git a/rendering/cases/image-stretched-disable-smoothing/expected.png b/rendering/cases/image-stretched-disable-smoothing/expected.png new file mode 100644 index 0000000000..a8d03e6f35 Binary files /dev/null and b/rendering/cases/image-stretched-disable-smoothing/expected.png differ diff --git a/rendering/cases/image-disable-smoothing/main.js b/rendering/cases/image-stretched-disable-smoothing/main.js similarity index 92% rename from rendering/cases/image-disable-smoothing/main.js rename to rendering/cases/image-stretched-disable-smoothing/main.js index aef17f42d2..07b1cb1ae0 100644 --- a/rendering/cases/image-disable-smoothing/main.js +++ b/rendering/cases/image-stretched-disable-smoothing/main.js @@ -19,7 +19,7 @@ new Map({ }), ], view: new View({ - center: fromLonLat([-122.416667, 37.783333]), + center: fromLonLat([-122.39, 37.81]), zoom: 12, }), }); diff --git a/rendering/cases/reproj-image-disable-smoothing/expected.png b/rendering/cases/reproj-image-disable-smoothing/expected.png deleted file mode 100644 index d2050f0742..0000000000 Binary files a/rendering/cases/reproj-image-disable-smoothing/expected.png and /dev/null differ diff --git a/rendering/cases/reproj-image-no-stretch-disable-smoothing/expected.png b/rendering/cases/reproj-image-no-stretch-disable-smoothing/expected.png new file mode 100644 index 0000000000..3e3b843ec1 Binary files /dev/null and b/rendering/cases/reproj-image-no-stretch-disable-smoothing/expected.png differ diff --git a/rendering/cases/reproj-image-no-stretch-disable-smoothing/main.js b/rendering/cases/reproj-image-no-stretch-disable-smoothing/main.js new file mode 100644 index 0000000000..b27472710f --- /dev/null +++ b/rendering/cases/reproj-image-no-stretch-disable-smoothing/main.js @@ -0,0 +1,30 @@ +import ImageLayer from '../../../src/ol/layer/Image.js'; +import Map from '../../../src/ol/Map.js'; +import Static from '../../../src/ol/source/ImageStatic.js'; +import View from '../../../src/ol/View.js'; +import {fromLonLat} from '../../../src/ol/proj.js'; + +const source = new Static({ + url: '/data/tiles/osm/5/5/12.png', + imageExtent: [-123, 37, -122, 38], + imageSmoothing: false, + projection: 'EPSG:4326', +}); + +new Map({ + pixelRatio: 1, + target: 'map', + layers: [ + new ImageLayer({ + source: source, + }), + ], + view: new View({ + center: fromLonLat([-122.39, 37.81]), + zoom: 12, + }), +}); + +render({ + tolerance: 0.001, +}); diff --git a/rendering/cases/reproj-image-stretched-disable-smoothing/expected.png b/rendering/cases/reproj-image-stretched-disable-smoothing/expected.png new file mode 100644 index 0000000000..cc20c9d668 Binary files /dev/null and b/rendering/cases/reproj-image-stretched-disable-smoothing/expected.png differ diff --git a/rendering/cases/reproj-image-disable-smoothing/main.js b/rendering/cases/reproj-image-stretched-disable-smoothing/main.js similarity index 94% rename from rendering/cases/reproj-image-disable-smoothing/main.js rename to rendering/cases/reproj-image-stretched-disable-smoothing/main.js index 5383d316ca..80d7747fac 100644 --- a/rendering/cases/reproj-image-disable-smoothing/main.js +++ b/rendering/cases/reproj-image-stretched-disable-smoothing/main.js @@ -20,7 +20,7 @@ new Map({ }), ], view: new View({ - center: [-122.416667, 37.783333], + center: [-122.39, 37.81], zoom: 12, projection: 'EPSG:4326', }), diff --git a/src/ol/source/ImageStatic.js b/src/ol/source/ImageStatic.js index fc9276b618..9629cdde78 100644 --- a/src/ol/source/ImageStatic.js +++ b/src/ol/source/ImageStatic.js @@ -6,6 +6,7 @@ import EventType from '../events/EventType.js'; import ImageSource, {defaultImageLoadFunction} from './Image.js'; import ImageState from '../ImageState.js'; import ImageWrapper from '../Image.js'; +import {assign} from '../obj.js'; import {createCanvasContext2D} from '../dom.js'; import {getHeight, getWidth, intersects} from '../extent.js'; import {get as getProjection} from '../proj.js'; @@ -138,6 +139,7 @@ class Static extends ImageSource { const targetWidth = Math.ceil(getWidth(imageExtent) / resolution); if (targetWidth != imageWidth) { const context = createCanvasContext2D(targetWidth, imageHeight); + assign(context, this.getContextOptions()); const canvas = context.canvas; context.drawImage( image,