Skip to content

Commit ab5e8a7

Browse files
committed
Make sure backgroundImage supports base64-encoded images
1 parent bc5a00e commit ab5e8a7

3 files changed

Lines changed: 24 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## v0.10.1
2+
3+
- Make sure `backgroundImage` supports base64-encoded images
4+
15
## v0.10.0
26

37
- Add `lassoClearEvent` property to allow customizing when the lasso is cleared.

src/utils.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,10 @@ export const loadImage = (src, isCrossOrigin = false) =>
139139
*/
140140
export const createTextureFromUrl = (regl, url) =>
141141
new Promise((resolve, reject) => {
142-
loadImage(url, url.indexOf(window.location.origin) !== 0)
142+
loadImage(
143+
url,
144+
url.indexOf(window.location.origin) !== 0 && url.indexOf('base64') === -1
145+
)
143146
.then((image) => {
144147
resolve(regl.texture(image));
145148
})

tests/index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,22 @@ test('set({ backgroundImage })', async (t) => {
311311
300,
312312
'background image should be loaded by scatterplot'
313313
);
314+
315+
// Base64 image
316+
scatterplot.set({
317+
backgroundImage:
318+
'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QDeRXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAAA4YwAA6AMAADhjAADoAwAABwAAkAcABAAAADAyMTABkQcABAAAAAECAwCGkgcAFQAAAMAAAAAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAABAAAAADoAQAAQAAABAAAAAAAAAAQVNDSUkAAABQaWNzdW0gSUQ6IDM1AP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/CABEIABAAEAMBIgACEQEDEQH/xAAVAAEBAAAAAAAAAAAAAAAAAAAEBf/EABQBAQAAAAAAAAAAAAAAAAAAAAT/2gAMAwEAAhADEAAAAXqhhMj/xAAZEAADAAMAAAAAAAAAAAAAAAABAgMFERP/2gAIAQEAAQUClkNit1EkQol3PT//xAAYEQACAwAAAAAAAAAAAAAAAAABAwACIf/aAAgBAwEBPwFa6jTP/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAIBAyH/2gAIAQIBAT8Be12yD//EABsQAAIDAAMAAAAAAAAAAAAAAAABAhExIzKR/9oACAEBAAY/AuSHhJraOo1Wo//EABkQAAMBAQEAAAAAAAAAAAAAAAABESFBUf/aAAgBAQABPyHK09GZVWkzrMZfGL//2gAMAwEAAgADAAAAEG//xAAVEQEBAAAAAAAAAAAAAAAAAAAAAf/aAAgBAwEBPxCsP//EABURAQEAAAAAAAAAAAAAAAAAAABR/9oACAECAQE/EJG//8QAGxABAAMAAwEAAAAAAAAAAAAAAQARITFBcZH/2gAIAQEAAT8QLFXq/H7McnD32o87LUuUMEBVpM48n//Z',
319+
});
320+
321+
await new Promise((resolve) =>
322+
scatterplot.subscribe('background-image-ready', resolve, 1)
323+
);
324+
325+
t.equal(
326+
scatterplot.get('backgroundImage').width,
327+
16,
328+
'base64 background image should be supported'
329+
);
314330
});
315331

316332
test('set({ cameraTarget, cameraDistance, cameraRotation, cameraView })', (t) => {

0 commit comments

Comments
 (0)