views:

147

answers:

1

Hi,

I'm trying to find the value of an pixel in the image displayed in an UIImageView. getting the pixel on the display is (relatively) simple. But when the image displayed is scaled (say the orgig. image is 1200*1600) it's much more complicated because of the scaling ..

Any good advice ?

+1  A: 

If you're trying to get the pixel value from the original image, this question's accepted answer shows a way to get pixel values from an UIImage.

Edit:

Scaling means a loss of information, so there won't be a one-to-one mapping. One pixel on your scaled-down image corresponds to a patch of pixels in your original image, and the best that you can hope for is a lossy interval mapping from [0..scaledX] to [0..originalX] and from [0..scaledY] to [0..originalY]. An explanation on how to do such a mapping can be found in the answer to this question.

luvieere
That's easy, BUT the problem is to get the right coordinate mapping from the original image to the displayed image (and vice versa) !
strange99
Scaling means a loss of information, so there won't be a one-to-one mapping. Edited with a link that would probably help you.
luvieere
Ok, Ok - let me clarify what the problem is:I'm not having trouble to find the pixel value itself - the challenge is to find out WHRE the pixel is; If the orig. image is e.g. 1200*1600 it is displayed as 320*464 (so it's scaled). If I tap on the displayed image e.g. at 100,100 I would like to calculate the corresponding coordinate (x,y) in the original.. so displayed(100,100) -> original(x,y). I know that there is a interval, but this doesn't matter ....
strange99
Edit: It's not only scaled proportionally - it's also centered to fit in the view...
strange99
It's a matter of percents. You calculate what percent of the displayed width and height are your displayed x and y, and the same percent from the full width and height will give you the corresponding pixel in the full image.
luvieere