Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TODO #1

Open
12 of 20 tasks
jcupitt opened this issue Sep 11, 2017 · 7 comments
Open
12 of 20 tasks

TODO #1

jcupitt opened this issue Sep 11, 2017 · 7 comments

Comments

@jcupitt
Copy link
Member

jcupitt commented Sep 11, 2017

Things that need doing before we could declare 1.0, in no order:

  • Documentation
  • Sort out naming conventions: we should probably switch to newFromFile(), for example
  • what about .bandsplit() and .bandjoin()? Should they be .bandSplit() and .bandJoin()?
  • Fix module structure, hide internal things
  • Have something to generate convenience members for Image, eg. Image.black should be generated automatically.
  • Need convenience functions like Image.prototype.bandsplit
  • Enum expansions, eg. Image.prototype.sin
  • Need to handle the libvips error buffer
  • Fix up exceptions
  • More arithmetic wrappers need doing by hand, eg. see Image.prototype.add
  • Load/save unformatted memory areas, eg. a Buffer holding a uint8 pixel array
  • Load/save formatted memory areas, eg. a string holding a PNG
  • Need to wrap VipsInterpolate
  • Some examples
  • Benchmarks
  • Make it "just work" on Windows (it works right now, but you have to change the library names, see the FIXME notes)
  • We open the libraries several times. It would be better to open once and share the handles. We could have code to use the Windows library names in just one place then as well.
  • We seem to leak some buffers in example/thumb.js in memory mode, investigate
  • Travis integration
  • Add vips.call.async

Please add more!

@jcupitt
Copy link
Member Author

jcupitt commented Sep 11, 2017

More abstract points:

libvips has several ways to make images: new_from_file, new_from_buffer etc. At the moment these are extra helper functions hanging off the main Image constructor, but there's probably a better way.

It's very fragile: new Image(12);, for example, will segv immediately. Perhaps there should be some argument checking.

It ended up mostly being copy-pasted from pyvips, since that was the one I'd done most recently and probably has the best internal structure. That would be a good place to copy-paste docs from, eg.:

https://github.com/jcupitt/pyvips/blob/master/pyvips/vimage.py#L196

https://github.com/jcupitt/pyvips/blob/master/doc/intro.rst

@jonathan-kosgei
Copy link

Any chance v1 will come out soon? Would you say this is production worthy atm?

@jonathan-kosgei
Copy link

Thanks @asilvas. I only ask because there's little documentation and

It's very fragile: new Image(12);, for example, will segv immediately. Perhaps there should be some argument checking.

From the above comment.

@asilvas
Copy link

asilvas commented May 1, 2018

Actually I responded thinking it was vips, sorry. I do not have any experience with this package.

@jonathan-kosgei
Copy link

jonathan-kosgei commented May 1, 2018

I thought you might've :) I checked out your package image-steam a few days ago and it's pretty cool! I'm trying to build something similar. And I'm checking out node-vips for this because sharp doesn't expose all the functionality that vips offers.

@jcupitt
Copy link
Member Author

jcupitt commented May 1, 2018

I'm reluctant to declare 1.0 because I'm really not a node programmer -- I'm sure I've done all sorts of horrible things :(

This package needs someone experienced to look it over and fix it up, or we'll get users who will have to live with ugly stupid stuff that we'll then have to support. Plus the remaining items in this TODO, of course.

@jonathan-kosgei
Copy link

I totally understand, thank you for the input and the awesome lib! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants