3 ms·
Thanks so much for the clarification and for the great work on libvips! In my Go project I’m using the Golang library github.com/davidbyttow/govips/v2. Images
by vic1102 1y ago
Thanks so much for the clarification and for the great work on libvips!
In my Go project I’m using the Golang library github.com/davidbyttow/govips/v2.
Images are loaded via `vips.NewImageFromFile()`, which internally calls `vips_image_new_from_file()`.
However, `NewImageFromFile()` doesn't support any flags or options beyond the image path, so for JPEGs I manually call `AutoRotate()` before resizing, which wraps `vips_autorot()` — and that works well.
Thanks again!
- jcupitt 1y agoAh 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 by hand, and there are a number of leaks and misfeatures. It's been replaced by `vipsgen`: https://github.com/cshum/vipsgen https://github.com/cshum/vipsgen Which is an automatically generated 100% binding. It should have the complete API, it should be very stable and leak-free, and it should be simple to maintain. `autorot` is pretty expensive. You'll see much better performance if you flip x and y in your crop instead.
- vic1102 1y agoThanks a lot! I really appreciate the detailed reply and the recommendation! I wasn’t aware of `vipsgen`, but it looks great — full coverage and auto-generated bindings are exactly what I’ll be missing in `govips` if the project grows (I hope it will). I’ll definitely give it a try and see how it works. Also, great tip on avoiding `autorot` by flipping crop coordinates — I hadn’t thought of that! Thanks again for your help!