Comments (2)
The issue with image.insert()
is that libvips has to recurse very deeply when it evaluates the pipeline containing a large amount of images, causing an OOM error or a stack overflow.
If your images are a regular grid, you might consider using vips.Image.arrayjoin()
instead, which would be faster and use much less memory. For example:
const urls = [...];
const images = await Promise.all(
urls.map(async url =>
vips.Image.newFromBuffer(await fetch(url).then(res => res.arrayBuffer()), '', {
access: vips.Access.sequential // 'sequential'
})
)
);
const im = vips.Image.arrayjoin(images, {
across: Math.floor(Math.sqrt(urls.length)), // number of images per row
shim: 10, // space between images, in pixels
background: [0, 0, 0] // background colour
});
const buffer = im.writeToBuffer('.jpg');
from wasm-vips.
I hope this information helped. Please feel free to re-open if questions remain.
from wasm-vips.
Related Issues (20)
- Build fails when compiling for node-es6 HOT 2
- Does this work with `sharp`? HOT 3
- `heifsave` is not defined HOT 3
- `wasm-vips` is unstable on Node `18.14.2+` and `19.4.0+` HOT 11
- Unstable on Deno HOT 2
- Playground feature request: ability to import file from disk HOT 3
- `WasmTrapJSTypeError` while loading an SVG when building with LTO HOT 3
- Docker compilation error HOT 6
- setup wasm-vips for next.js/react HOT 3
- TS types improvements HOT 3
- writeToBuffer increases RSS size till OOMKilled HOT 3
- Not working on deno deploy HOT 1
- ab [vips::Error]: no such operation pdfload_buffer VipsOperation: class "pdfload_buffer" not found HOT 1
- JPEG 2000 Support HOT 1
- Errors with vite HOT 27
- No paths work when reading files (Deno) HOT 2
- Promise remains in pending mode HOT 3
- Error `heifload: ignoring nclx profile` when converting to AVIF and resizing HOT 4
- Add progress information HOT 3
- Error: need to see wasm magic number HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wasm-vips.