Live data from Hacker News

Viewing profile — jcupitt

jcupitt

HN member
Joined
Fri, Nov 14, 2014, 11:24 AM UTC
HN karma
49
Public activity
41 items

About jcupitt

No profile information was provided.

Recent public activity

  1. comment
    Comment #49136538

    libvips shouldn't be calling imagemagick for heif decode, it has a nice one built in. Unless you were using a very old libvips! I've found jemalloc works best for long running libv…

  2. comment
    Comment #49081677

    Hello, looks nice! I had a few thoughts: - I'd consider adding support for libvips smartcrop, ICC colour management, HDR, image alpha - can you join pipelines? you could have one m…

  3. comment
    Comment #48368527

    Some packages with native code components (like sharp) will use these hooks to download the correct precompiled native binary for you.

  4. comment
    Comment #48368496

    sharp downloads over https and checks the sha256 (I think?) of the archive.

  5. comment
    Comment #48368485

    sharp does this too: https://sharp.pixelplumbing.com/install/#prebuilt-binaries it can sometimes need to compile the C++ shim that sits between node and libvips, but that's rare.

  6. comment
    Comment #48368471

    sharp does not rebuild libvips, it downloads a pre-compiled libvips for your platform. https://sharp.pixelplumbing.com/install/#prebuilt-binaries It can usually also download a pre…

  7. comment
    Comment #47374375

    Hello, libvips author here, you can get it to do the OKLab averaging for you. For example, using pyvips (ahem, untested): image = pyvips.Image.new_from_file(filename, access="seque…

  8. comment
    Comment #47075646

    libvips uses imagemagick (via libMagick) for BMP load and save, fwiw

  9. comment
    Comment #46356868

    It's just `vips copy src.heic dst.jpg`.

  10. comment
    Comment #46343868

    libvips, the library behind sharp, has just released version 8.18.0: https://www.libvips.org/2025/12/04/What's-new-in-8.18.html It includes support for UltraHDR (HDR and SDR in one…

  11. comment
    Comment #45435379

    Cleanup can be very useful if you depend on a library that does not support arenas.

  12. comment
    Comment #45435368

    `free(NULL);` will crash on some platforms that gcc supports, I believe.

  13. comment
    Comment #45322848

    I'm the libvips author, I should have said, so I'm not very neutral. But at least on that test it's usefully quicker and less memory hungry.

  14. comment
    Comment #45322827

    pyvips (the libvips Python binding) is quite a bit better than pillow-simd --- 3x faster, 10x less memory use, same quality. On this benchmark at least: https://github.com/libvips/…

  15. comment
    Comment #45260812

    Ah no problem! I'm glad it's useful. `govips` was a pretty early binding and wasn't really done the libvips way. It doesn't expose all the operations or options, it's mostly done b…

  16. comment
    Comment #45249217

    Hello, libvips author here, the JPEG loader has a flag to do this for you. You can write: VipsImage *image = vips_image_new_from_file("something.jpg", "autorotate", TRUE, NULL); an…

  17. comment
    Comment #45249148

    Applying rotation can have a large performance penalty (both cpu and memory), so you want to be able to avoid it if possible.

  18. comment
    Comment #44283046

    Those three all use libvips as the image processing engine, fwiw, so it's maybe not a very wide survey. libvips is fairly highly threaded and does a lot of alloc/free, so it's chal…

  19. comment
    Comment #44282405

    Hello, libvips author here. This is probably the canonical thread about libvips and memory fragmentation, and the funniest graph: https://github.com/lovell/sharp/issues/955#issueco…

  20. comment
    Comment #43671679

    The wasm build of libvips (the image processing library this thing uses) does not include HEIC because of the various patent issues: https://github.com/kleisauke/wasm-vips/issues/3…

  21. comment
    Comment #41481659

    Although I think this technique was well known before then -- Crosfield were using channel-independent histogram normalization to restore faded transparencies back in the 80s.

  22. comment
    Comment #41481425

    libvips dev here -- the CLI interface is deliberately really basic, you'll see much better performance and flexibility with one of the language bindings. pyvips works well: https:/…

  23. comment
    Comment #41481377

    imagemagick 7 (the current version) is namespaced under "magick", fwiw

  24. comment
    Comment #40584159

    I made an image viewer for large images: https://github.com/jcupitt/vipsdisp It should be fine with your huge PNGs. Internally it's a bit like a tiled map viewer, but it makes the …

  25. comment
    Comment #39927046

    nip2 does this. It's a little like a spreadsheet, but cells can contain images, matrices, text, widgets, stuff like that. You can add scraps of code to link them together (just lik…