diff --git a/REQUIRE b/REQUIRE index e16c751..d461e3d 100644 --- a/REQUIRE +++ b/REQUIRE @@ -3,3 +3,4 @@ Images Color Tk Winston +Compat diff --git a/src/ImageView.jl b/src/ImageView.jl index 5bd0292..99798f1 100644 --- a/src/ImageView.jl +++ b/src/ImageView.jl @@ -7,6 +7,7 @@ using Color using Tk using Cairo using Images +using Compat import Base: parent, show, delete!, empty! import Base.Graphics: width, height, fill, set_coords diff --git a/src/annotations.jl b/src/annotations.jl index afff542..09e4b9a 100644 --- a/src/annotations.jl +++ b/src/annotations.jl @@ -184,7 +184,7 @@ end function draw_anchored(ctx::CairoContext, data::AnnotationText, scale_x, scale_y) set_source(ctx, data.color) if data.scale && scale_x != 1 - fontdesc = fontdescription(data.fontfamily, data.fontoptions, iround(data.fontsize/scale_x)) + fontdesc = fontdescription(data.fontfamily, data.fontoptions, round(Int,data.fontsize/scale_x)) else fontdesc = data.fontdesc end diff --git a/src/contrast.jl b/src/contrast.jl index 34bc341..f976b33 100644 --- a/src/contrast.jl +++ b/src/contrast.jl @@ -6,6 +6,7 @@ using Tk using Winston using Images import Color.Fractional +using Compat type ContrastSettings min @@ -48,8 +49,8 @@ function contrastgui{T}(win::Tk.TTk_Container, img::AbstractArray{T}, cs::Contra pack(fwin, expand=true, fill="both") dimg = immax-immin - rmin = isa(immin, Fractional) ? immin - dimg/10^4 : ifloor(immin) - rmax = isa(immax, Fractional) ? immax + dimg/10^4 : iceil(immax) + rmin = isa(immin, Fractional) ? immin - dimg/10^4 : floor(Integer, immin) + rmax = isa(immax, Fractional) ? immax + dimg/10^4 : ceil(Integer, immax) max_slider = Slider(fwin, rmin, rmax) set_value(max_slider, cs.max) chist = Canvas(fwin, 2w/3, h) diff --git a/src/display.jl b/src/display.jl index 2f7a78e..acdbc30 100644 --- a/src/display.jl +++ b/src/display.jl @@ -144,7 +144,7 @@ function ImageSlice2d(img::AbstractArray, props::Dict) error("Only two or three spatial dimensions are permitted") end if !isa(img, AbstractImage) - img = Image(img, ["colordim" => colordim(img), "spatialorder" => spatialorder(img), "colorspace" => colorspace(img)]) + img = Image(img, @compat Dict("colordim" => colordim(img), "spatialorder" => spatialorder(img), "colorspace" => colorspace(img))) end # Determine how dimensions map to x, y, z, t xy = get(props, :xy, Images.xy) @@ -179,8 +179,8 @@ function _reslice!(img2::ImageSlice2d) bb = img2.zoombb xindx = newindexes[img2.xdim] yindx = newindexes[img2.ydim] - newindexes[img2.xdim] = xindx[max(1,ifloor(bb.xmin)+1):min(length(xindx),iceil(bb.xmax))] - newindexes[img2.ydim] = yindx[max(1,ifloor(bb.ymin)+1):min(length(yindx),iceil(bb.ymax))] + newindexes[img2.xdim] = xindx[max(1,floor(Integer, bb.xmin)+1):min(length(xindx),ceil(Integer, bb.xmax))] + newindexes[img2.ydim] = yindx[max(1,floor(Integer, bb.ymin)+1):min(length(yindx),ceil(Integer, bb.ymax))] if img2.zdim > 0 newindexes[img2.zdim] = newindexes[img2.zdim][img2.zindex] end @@ -217,8 +217,8 @@ function zoom2!(img2::ImageSlice2d) end # -width(img2::ImageSlice2d) = iceil(xmax(img2))-ifloor(xmin(img2)) -height(img2::ImageSlice2d) = iceil(ymax(img2))-ifloor(ymin(img2)) +width(img2::ImageSlice2d) = ceil(Integer, xmax(img2))-floor(Integer, xmin(img2)) +height(img2::ImageSlice2d) = ceil(Integer, ymax(img2))-floor(Integer, ymin(img2)) xmin(img2::ImageSlice2d) = xmin(img2.zoombb) xmax(img2::ImageSlice2d) = xmax(img2.zoombb) ymin(img2::ImageSlice2d) = ymin(img2.zoombb) @@ -241,7 +241,7 @@ yrange(img2::ImageSlice2d) = (ymin(img2), ymax(img2)) function view{A<:AbstractArray}(img::A; proplist...) # Convert keyword list to dictionary props = Dict{Symbol,Any}() - sizehint(props, length(proplist)) + sizehint!(props, length(proplist)) for (k,v) in proplist props[k] = v end @@ -352,7 +352,7 @@ end function view{A<:AbstractArray}(imgc::ImageCanvas, img::A; interactive=true, proplist...) # Convert keyword list to dictionary props = Dict{Symbol,Any}() - sizehint(props, length(proplist)) + sizehint!(props, length(proplist)) for (k,v) in proplist props[k] = v end @@ -372,7 +372,7 @@ end function view{A<:AbstractArray}(c::Canvas, img::A; interactive=true, proplist...) # Convert keyword list to dictionary props = Dict{Symbol,Any}() - sizehint(props, length(proplist)) + sizehint!(props, length(proplist)) for (k,v) in proplist props[k] = v end @@ -536,7 +536,7 @@ end function updatexylabel(xypos, imgc, img2, x, y) xu,yu = device_to_user(getgc(imgc.c), x, y) # Image-coordinates - xi,yi = ifloor(1+xu), ifloor(1+yu) + xi,yi = floor(Integer, 1+xu), floor(Integer, 1+yu) if isinside(imgc.canvasbb, x, y) val = img2[xi,yi] set_value(xypos, "$xi, $yi: $val") @@ -725,9 +725,9 @@ function rendersize(w::Integer, h::Integer, r) wh = h if !is(r, nothing) if r > 1 - ww = iround(w*r) + ww = round(Integer, w*r) else - wh = iround(h/r) + wh = round(Integer, h/r) end end ww, wh diff --git a/src/navigation.jl b/src/navigation.jl index 2467381..517098b 100644 --- a/src/navigation.jl +++ b/src/navigation.jl @@ -2,7 +2,7 @@ module Navigation -using Tk +using Tk, Compat ## Type for holding GUI state # This specifies a particular 2d slice from a possibly-4D image @@ -159,7 +159,7 @@ function arrowheads(sz, vert::Bool) end function icondata(iconsize, frac) - center = iceil(iconsize[1]/2) + center = ceil(Integer, iconsize[1]/2) data = Bool[ 2abs(i-center)< iconsize[2]-(j-1)/frac for i = 1:iconsize[1], j = 1:iconsize[2] ] data .== true end diff --git a/test/test4d.jl b/test/test4d.jl index 7c3f6e8..99e4857 100644 --- a/test/test4d.jl +++ b/test/test4d.jl @@ -1,8 +1,9 @@ import Images +using Compat # Create a cone in 3d that changes color over time sz = [201, 301, 31] -center = iceil(sz/2) +center = ceil(Int, sz/2) C3 = Bool[(i-center[1])^2+(j-center[2])^2 <= k^2 for i = 1:sz[1], j = 1:sz[2], k = sz[3]:-1:1] cmap1 = uint32(linspace(0,255,60)) cmap = Array(Uint32, length(cmap1)) @@ -13,5 +14,4 @@ C4 = Array(Uint32, sz..., length(cmap)) for i = 1:length(cmap) C4[:,:,:,i] = C3*cmap[i] end -img = Images.Image(C4, ["spatialorder" => ["x", "y", "z"], "timedim" => 4, "colorspace" => "RGB24", "pixelspacing" => [1,1,3]]) - +img = Images.Image(C4, @compat Dict("spatialorder" => ["x", "y", "z"], "timedim" => 4, "colorspace" => "RGB24", "pixelspacing" => [1,1,3]))