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

DRAFT: An imgix tile source #1285

Open
wants to merge 1 commit into
base: master
from

Conversation

Projects
None yet
3 participants
@jrochkind

jrochkind commented Aug 8, 2017

https://www.imgix.com/

I think we are leaning against using this for the use case we developed it experimentally for. For the 100MB+ TIFF original files we have, it's hard to make imgix latency good. imgix isn't really designed for giant-original use case, although it does work fine if slowly with them. (imgix does have a a 512MB max for source file size though). And the options for non-public/secured images are somewhat limited on imgix.

However, I think this OSD tile source actually works fine, within the limitations of the imgix service itself. (which is a pretty good and well-priced service when you are dealing with less insanely large source images).

It does not yet have any tests. I am not neccesarily proposing this be incorporated into OSD source. In fact, without being in OSD source, it's easy enough for an end-project to just load this
single file into their JS, and it'll work fine with OSD. (Which is what we were doing for testing).

I am mostly submitting it in case this work is of interest to someone else. I'm myself probably done working with it at this point. Although I think this tile source code submitted here is actually working fine and production-ready.

@iangilman

This comment has been minimized.

Show comment
Hide comment
@iangilman

iangilman Aug 10, 2017

Member

Beautiful! Thank you for sharing this.

I'm thinking we probably shouldn't include this as part of OSD, since Imgix is a proprietary service. It would be great to have it published somewhere as a plugin, though! @jrochkind Any interest in publishing it under your GitHub account? Or perhaps @imgix would be interested in publishing it under their account?

Member

iangilman commented Aug 10, 2017

Beautiful! Thank you for sharing this.

I'm thinking we probably shouldn't include this as part of OSD, since Imgix is a proprietary service. It would be great to have it published somewhere as a plugin, though! @jrochkind Any interest in publishing it under your GitHub account? Or perhaps @imgix would be interested in publishing it under their account?

@jrochkind

This comment has been minimized.

Show comment
Hide comment
@jrochkind

jrochkind Aug 10, 2017

Honestly, I'm probably not going to be using it, and have no interest in implying any maintenance of it, or really doing anything further with it at present.

I don't see why you can't include it (or publish as a plug-in yourself under @openseadragon) just because it points to a proprietary service. All the code here is open source. If I actually wanted to use it, I might argue harder to convince you of this, but I currently have no horses in this race. :)

Are there examples of other third-party plugins hosted elsewhere? Do you list them in OSD docs? If not, nobody's ever gonna find it or realize OSD can do it, heh.

If my plans change and we end up using this in production, my opinions on these various things my change. :)

jrochkind commented Aug 10, 2017

Honestly, I'm probably not going to be using it, and have no interest in implying any maintenance of it, or really doing anything further with it at present.

I don't see why you can't include it (or publish as a plug-in yourself under @openseadragon) just because it points to a proprietary service. All the code here is open source. If I actually wanted to use it, I might argue harder to convince you of this, but I currently have no horses in this race. :)

Are there examples of other third-party plugins hosted elsewhere? Do you list them in OSD docs? If not, nobody's ever gonna find it or realize OSD can do it, heh.

If my plans change and we end up using this in production, my opinions on these various things my change. :)

@iangilman

This comment has been minimized.

Show comment
Hide comment
@iangilman

iangilman Aug 11, 2017

Member

Yes, we've actually got a great collection of plugins, listed on our front page:

http://openseadragon.github.io/#plugins

Anyway, I definitely want it to be available! I think it might be ideal if @imgix adopts it, but we can adopt it if need be. Either way, we'll be sure to point people to it.

Member

iangilman commented Aug 11, 2017

Yes, we've actually got a great collection of plugins, listed on our front page:

http://openseadragon.github.io/#plugins

Anyway, I definitely want it to be available! I think it might be ideal if @imgix adopts it, but we can adopt it if need be. Either way, we'll be sure to point people to it.

@jrochkind

This comment has been minimized.

Show comment
Hide comment
@jrochkind

jrochkind Aug 11, 2017

Cool. I don't think any existing plugins are tile sources? If you have a plugin listed that's a tile source, I'd mention in the "Supported Tile Sources" section at https://openseadragon.github.io/#examples-and-features that people should check the plugins page for more, and link to it. (and/or just list them there in a plugin section, and/or in a separate 'tile sources' section on the plugins page).

That "Supported Tile Sources" section is where I always end up when trying to figure out "wait, what types of tile sources does OSD support?" I wouldn't have noticed if there were more in the plugins list.

jrochkind commented Aug 11, 2017

Cool. I don't think any existing plugins are tile sources? If you have a plugin listed that's a tile source, I'd mention in the "Supported Tile Sources" section at https://openseadragon.github.io/#examples-and-features that people should check the plugins page for more, and link to it. (and/or just list them there in a plugin section, and/or in a separate 'tile sources' section on the plugins page).

That "Supported Tile Sources" section is where I always end up when trying to figure out "wait, what types of tile sources does OSD support?" I wouldn't have noticed if there were more in the plugins list.

@iangilman

This comment has been minimized.

Show comment
Hide comment
@iangilman

iangilman Aug 14, 2017

Member

Yes, absolutely, good point!

I think I'll leave this PR here for now while we think about next steps. Thank you again for building it!

Member

iangilman commented Aug 14, 2017

Yes, absolutely, good point!

I think I'll leave this PR here for now while we think about next steps. Thank you again for building it!

@jrochkind

This comment has been minimized.

Show comment
Hide comment
@jrochkind

jrochkind Aug 19, 2017

I'm still not planning on using this, but it occurred to me you might be able to get a better balance of performance by making the tile size a lot bigger than the current default. The same is probably true of the IIIF tile source, or anything that's asking for tiles to be generated on demand instead of accessing pre-generated tiles.

jrochkind commented Aug 19, 2017

I'm still not planning on using this, but it occurred to me you might be able to get a better balance of performance by making the tile size a lot bigger than the current default. The same is probably true of the IIIF tile source, or anything that's asking for tiles to be generated on demand instead of accessing pre-generated tiles.

@iangilman

This comment has been minimized.

Show comment
Hide comment
@iangilman

iangilman Aug 23, 2017

Member

@jrochkind Good point... I'm generally suggesting 512 or even 1024 pixel tiles these days.

@jpstroop @azaroth42 I'm not familiar enough with the IIIF tile source to know... does it do any sort of choosing for how big to request the tiles? Should we update it to a bigger number? Looks like we might already be supporting 1024, so maybe it's all good?

Member

iangilman commented Aug 23, 2017

@jrochkind Good point... I'm generally suggesting 512 or even 1024 pixel tiles these days.

@jpstroop @azaroth42 I'm not familiar enough with the IIIF tile source to know... does it do any sort of choosing for how big to request the tiles? Should we update it to a bigger number? Looks like we might already be supporting 1024, so maybe it's all good?

@jrochkind

This comment has been minimized.

Show comment
Hide comment
@jrochkind

jrochkind Aug 23, 2017

The back-end server is literally making tiles on demand, so can support whatever tile sizes the front-end asks for. I am not completely sure how the front-end works, but I think I saw a tile-size configuration property.

jrochkind commented Aug 23, 2017

The back-end server is literally making tiles on demand, so can support whatever tile sizes the front-end asks for. I am not completely sure how the front-end works, but I think I saw a tile-size configuration property.

@azaroth42

This comment has been minimized.

Show comment
Hide comment
@azaroth42

azaroth42 Aug 24, 2017

Contributor

IIIF has the following information that is processed for generating the tile requests:

"tiles": [
    {"width" : 512, "scaleFactors" : [1,2,4,8,16]}
 ],

With an optional height if the tiles are not square. So the server can advertise the appropriate size for the particular instance, or even image. If it's not supplied the IIIF TileSource picks a sensible (hopefully) default.

HTH

Contributor

azaroth42 commented Aug 24, 2017

IIIF has the following information that is processed for generating the tile requests:

"tiles": [
    {"width" : 512, "scaleFactors" : [1,2,4,8,16]}
 ],

With an optional height if the tiles are not square. So the server can advertise the appropriate size for the particular instance, or even image. If it's not supplied the IIIF TileSource picks a sensible (hopefully) default.

HTH

@iangilman

This comment has been minimized.

Show comment
Hide comment
@iangilman

iangilman Aug 24, 2017

Member

@azaroth42 Great... sounds like we're already doing the right thing; thank you for confirming!

Member

iangilman commented Aug 24, 2017

@azaroth42 Great... sounds like we're already doing the right thing; thank you for confirming!

@jrochkind

This comment has been minimized.

Show comment
Hide comment
@jrochkind

jrochkind Aug 24, 2017

Interesting. I have no idea if the various IIIF servers we were trying to use allowed us to set this in the info response the OSD plugin would get. I do think a larger tile size would have improved responsiveness for the tests we were doing. It might be nice to allow this to be overridden on the OSD end.

But for now, we're not going with an IIIF server either where i am -- we're just generating straight static DZI.

jrochkind commented Aug 24, 2017

Interesting. I have no idea if the various IIIF servers we were trying to use allowed us to set this in the info response the OSD plugin would get. I do think a larger tile size would have improved responsiveness for the tests we were doing. It might be nice to allow this to be overridden on the OSD end.

But for now, we're not going with an IIIF server either where i am -- we're just generating straight static DZI.

@azaroth42

This comment has been minimized.

Show comment
Hide comment
@azaroth42

azaroth42 Aug 24, 2017

Contributor

I suggest that if you would actually use an override for IIIF tile size in OSD (and it sounds like you probably wouldn't), then a new issue would be the appropriate place to discuss that.

Contributor

azaroth42 commented Aug 24, 2017

I suggest that if you would actually use an override for IIIF tile size in OSD (and it sounds like you probably wouldn't), then a new issue would be the appropriate place to discuss that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment