Resize canvas changes lens absolute origin

This is the place for questions on using Impict, Help & Manual's integrated screenshot editor and enhancer.

Moderators: Alexander Halser, Tim Green

Post Reply
User avatar
Dean Whitlock
Posts: 577
Joined: Thu Sep 01, 2005 5:59 pm
Location: Thetford Center, Vermont USA
Contact:

Resize canvas changes lens absolute origin

Unread post by Dean Whitlock »

I opened a screen shot in Impict. The canvas started out being the same size as the screen shot.

I created a lens object, positioned it over the part of the screen that I wanted it to focus on, clicked "Origin is Absolute", and moved the lens object to a different part of the screen shot. It worked as advertised: the original image fragment still shows through the lens.

I decided it would work better if I moved the lens off to one side of the screen shot, so I dragged it to the left to a final position half on and half off of the screen shot. It continued to show the original fragment, although the part that was off the canvas was cropped.

I clicked the Auto-Resize button. The canvas expanded to the left to encompass the lens object. At the same time, the image in the lens shifted to the left by the same number of pixels as were added to the canvas. That is what appears to be happening at least.

I think I understand what is actually happening: The origin of the lens is actually based on the origin of the canvas, with 0,0 being the top-left corner. The canvas is actually being resized out to the right, and the screen shot plus lens are being moved to the right in order to fit on the larger canvas. This changes the screen shot relative to the origin of the canvas. The lens is still focused on the same place relative to the origin, but what is at that place has changed.

The problem is that, from a user's point of view, the origin for the lens should be based on the original screen shot. When the canvas is resized, the origin for the lens should travel with the screen shot. I suppose I should have flattened the object first, but that isn't any more intuitive than thinking through the implications of the canvas origin versus screen shot origin when both are the same size.

I guess this is actually a wish-list post to ask that the behavior of the absolute origin be changed so that it stays with the original image over which the lens was positioned. (And while you're at it, could I have world peace and lots of money? :roll: )
User avatar
Alexander Halser
EC-Software Support
Posts: 4098
Joined: Mon Jun 24, 2002 7:24 pm
Location: Salzburg, Austria
Contact:

Unread post by Alexander Halser »

The problem is that, from a user's point of view, the origin for the lens should be based on the original screen shot. When the canvas is resized, the origin for the lens should travel with the screen shot
Dean,
the lens object is relative to the canvas and the origin of the lens object is relative to the canvas, too. The lens object has no association with the screenshot or any other object that is on the origin position, so it cannot be relative to that object. Furthermore, it simply magnifies the canvas at this point, regardless if there is only one screenshot at this position or several, perhaps overlapping, objects.
Alexander Halser
Senior Software Architect, EC Software GmbH
User avatar
Dean Whitlock
Posts: 577
Joined: Thu Sep 01, 2005 5:59 pm
Location: Thetford Center, Vermont USA
Contact:

Unread post by Dean Whitlock »

Hi Alexander,

After some thought, I realized that the lens object's origin must be relative to the origin of the canvas, as you describe. Thank you for verifying how it works.

However, when I changed the size of the canvas, everything shifted to the right, except the lens origin. From the point of view of the program code, this may make sense, but from the user's point of view, it is not intuitive. It surprised me and I had to sit there and think about why it happened. Impict is written for the users' benefit, and every function should be as easy to understand as possible. It's my belief that the focus of the lens object should move with the other layers. This is what I expected to happen, and I think it's what other users will expect to happen.

I realize this wouldn't be an easy fix: In this example, the auto-resize function added space on the left side because my lens object was projecting off the left side of the canvas. In other cases, auto-resize might add space at top, right, bottom, or a combination of all sides. The software will have to figure out where the old origin was in relation to the new origin and shift the lens focus by that much. You might want to add a prompt to the user, so they could choose whether to shift the lens origin with the other layers or leave it attached to the canvas origin. I do think it's a change you should consider for a future release.

Let me add that, now I have had some time to play around with Impict, I see how useful it can be. Thanks.
Dean
Post Reply