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

Rewrite ImageView based on GtkReactive #115

Merged
merged 6 commits into from
May 21, 2017
Merged

Rewrite ImageView based on GtkReactive #115

merged 6 commits into from
May 21, 2017

Conversation

timholy
Copy link
Member

@timholy timholy commented May 8, 2017

Here's the NEWS entry, pasted for convenience (also, you can see the new README here):

New in 0.5

ImageView has been rewritten from scratch. Effort was made to maintain
backward compatibility where possible.

Breaking changes

  • The return value of imshow has changed; it is now a Dict that
    stores Gtk widgets, Reactive signals, etc.

Major features

  • This package now uses Gtk. Rendering is considerably faster in some
    cases, and the package is faster to load due to precompilation.

  • Navigation and zoom region are controlled by GtkReactive/Reactive
    signals, allowing one to more easily extract this information for
    reuse elsewhere. Examples are shown in the README.

  • A new contrast GUI is independent of any plotting package, leading
    to faster loading and faster time-to-first-plot.

  • One can now display objects that are not subtypes of
    AbstractArray. See test/cone.jl for a demonstration.

Deprecations

  • canvasgrid now returns more arguments; a deprecation warning
    encourages transitioning to the new syntax

  • pixelspacing is deprecated as a keyword (use an AxisArray instead)

  • The xy keyword has become axes, and it takes dimension integers
    or Symbols (if the image is an AxisArray)

<End of NEWS entry>

For me a major point of the rewrite was the ability to interactively "couple" images together, for example to show an original and segmented image side-by-side, and be able to zoom into the same region on both of them without any effort on the part of the user.

There aren't that many watchers of this package, so to give folks a fair chance to complain let me ping some people who have been active developers for the broader JuliaImages ecosystem: @Evizero, @bjarthur, @mronian, @tejus-gupta, @annimesh2809, @SimonDanisch, @ihnorton, @tkelman, @juliohm, @Cody-G, @tknopp, @mdhe1248.

@Evizero
Copy link
Member

Evizero commented May 8, 2017

From reading the readme this looks really amazing. I'll be sure to try it out soon

@bjarthur
Copy link
Contributor

bjarthur commented May 8, 2017

woa, this seems so much more complicated than ImageInTerminal.jl 😄

@rsrock
Copy link
Collaborator

rsrock commented May 8, 2017

Nice work! Can't wait to give this a spin.

@timholy
Copy link
Member Author

timholy commented May 8, 2017

woa, this seems so much more complicated than ImageInTerminal.jl 😄

It's really hard to compete with ImageInTerminal's elegance. 3d/4d is my niche!

Motivated by the StreamingContainer type. view makes extra promises ("no copying") that can be hard to keep for some objects.
@timholy
Copy link
Member Author

timholy commented May 19, 2017

This is working well in my testing. I'll merge over the weekend barring objections.

@rsrock
Copy link
Collaborator

rsrock commented May 19, 2017

I did some quick testing, and it was very nice. I did run into an issue with the contrast control on macOS. Unfortunately, I don't have time to dig into it at the moment to give you a report-- perhaps in a few weeks.

@timholy
Copy link
Member Author

timholy commented May 19, 2017

Thanks for testing. No problem about the report, presumably someone else will complain and hopefully that will be enough to figure out the problem.

I want to come up with an easier API for linking two axes together, so there will be some additional changes later. But I don't think that needs to hold this up.

@timholy timholy merged commit d09af0a into master May 21, 2017
@timholy timholy deleted the teh/gtkr branch May 21, 2017 09:01
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

Successfully merging this pull request may close these issues.

4 participants