From: George Weis on
Hi:
I'm trying to write a simple screen enlarger. The basic
algorithm is this:

a.) Get current mouse coordinates.
b.) Take a screen shot using a rectangle consisting of (mouse X,
mouse Y, 150, 150)
c.) Create a new scaled image from the screen shot with a height and
width of 300.
This should "zoom" 2 X for the portion of the screen the mouse cursor
is on and show it in a 300 X 300 box
(the image is drawn on the glass panel on top of the other root
panels).

This doesn't produce the result I want.

The screen shot looks fine if I take the screen shot 350 pixels away
from the current mouse coordinates, in other words (mouse X + 350,
mouse Y + 350, 150, 150).

But, if I try to take the screen shot too close to the current X and
Y, I get double or triple images of the same area in the image.

I can't attach a sample image, but it looks like this, each number
representing one of the images.

1 | 2 | 3 |
| | |
---- | |
| |
-------- --- |
|
--------------------

Anyone know what is causing this behavior? And how to get rid of it?
And by the way, I freely admit I am a newbie, so if anyone knows a
better way to render a zoom of an arbitrary part of a User Frame,
please let me know.

Thanks,

George
From: John B. Matthews on
In article
<2bdae8c9-029e-4466-9f41-c7f9b6020fa4(a)y7g2000vbb.googlegroups.com>,
George Weis <wgweis(a)omsoft.com> wrote:

> Hi:
> I'm trying to write a simple screen enlarger. The basic
> algorithm is this:
>
> a.) Get current mouse coordinates.
> b.) Take a screen shot using a rectangle consisting of (mouse X,
> mouse Y, 150, 150)
> c.) Create a new scaled image from the screen shot with a height and
> width of 300.
> This should "zoom" 2 X for the portion of the screen the mouse cursor
> is on and show it in a 300 X 300 box (the image is drawn on the glass
> panel on top of the other root panels).
>
> This doesn't produce the result I want.
>
> The screen shot looks fine if I take the screen shot 350 pixels away
> from the current mouse coordinates, in other words (mouse X + 350,
> mouse Y + 350, 150, 150).
> ...
> Anyone know what is causing this behavior? And how to get rid of it?
> And by the way, I freely admit I am a newbie, so if anyone knows a
> better way to render a zoom of an arbitrary part of a User Frame,
> please let me know.

I think Pete's right about the "video feedback" effect. Here's an
alternate way to get a BufferedImage of a component that can be scaled
_ad_lib_. On the downside, the image will be "pixelated," accordingly.

<http://groups.google.com/group/comp.lang.java.gui/msg/662e54ff77c3e6f8>

You can get a smoother result by adjusting the graphics context's
transform. Here's an example that scales to fill the enclosing panel

<http://groups.google.com/group/comp.lang.java.gui/msg/3f1781d063cae9e7>

--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>