function zgetimval,r,a,im,hdr,x=x,y=y

pi = 3.1415926

; Copy the dimensions of r into a double array
out = double(r)


; Copy the dimensions of r into an int array
x = fix(r)
y = x

x0 = sxpar(hdr,'CRPIX1')
y0 = sxpar(hdr,'CRPIX2')
xmax = sxpar(hdr,'NAXIS1')
ymax = sxpar(hdr,'NAXIS2')
scale = sxpar(hdr,'CDELT1') * zunits(sxpar(hdr,'CTYPE1'),'solar-radii')

a0 = sxpar(hdr,'CROT') + 360

if sxpar(hdr,'REFLECT') then reflect = -1 else reflect = 1


x(*) = fix(x0 + (double(r(*))/scale) * ( - sin ( (pi/180) * (a0 + reflect * a(*)))))
y(*) = fix(y0 + (double(r(*))/scale) * (   cos ( (pi/180) * (a0 + reflect * a(*)))))

x(*) = x(*) * (    (x(*) ge 0) and (x(*) lt xmax) $
	       and (y(*) ge 0) and (y(*) lt ymax))

y(*) = y(*) * (    (x(*) ge 0) and (x(*) lt xmax) $
	       and (y(*) ge 0) and (y(*) lt ymax))

out(*) = im(x(*),y(*))

return,out
end
