Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #3978

Re: Anti-aliasing in imag

From "Peter Duniho" <peter.duniho@THRWHITE.remove-dii-this>
Subject Re: Anti-aliasing in imag
Message-ID <op.ufuticmp8jd0ej@petes-computer.local> (permalink)
Newsgroups comp.lang.java.gui
References <48a3826d$0$2239$ec3e2dad@news.usenetmonster.com>
Date 2011-04-27 15:48 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui,comp.l
On Wed, 13 Aug 2008 17:55:10 -0700, Kenneth P. Turvey  
<kt-usenet@squeakydolphin.com> wrote:

> I've got a simple problem that I'm sure someone in this group can help me
> with.  Let me say what I'm currently doing first.
>
> I have an image that has some transparent portions and I want to cut a
> circle out of the image.

Do you want to remove a circular area from inside the image?  Or do you  
want to use only a ciruclar area from inside the image as your new image?

That is, the transformed image, will it be the original image with a hole  
in it?  Or will it be the original image with everything outside the  
circular area excluded?

This description:

> So first I trim it down to a square subimage
> and then I go through it pixel by pixel and set the alpha channel to
> clear for those pixels outside a circle with the sub-image's diameter.

Makes me think you're taking a circular subset of the image, but other  
parts of your message seem to contradict that.  I'm a bit confused.

If I have understood the goal correctly, then it seems to me that the  
easiest way to transform your original image is to draw it into a new  
image, clipping to the circular shape you want.

For example, here's some code that works when just drawing into the  
Graphics2D passed to the paintComponent() method:

     // Where x, y, width, and height describe your circular area and image  
is a reference
     // to the image you want to clip

     Area areaOval = new Area(new Arc2D.Double(x, y, width, height, 0, 360,  
Arc2D.PIE));
     Shape shapeClipSave = gfx2.getClip();

     gfx2.setClip(areaOval);
     gfx2.drawImage(image, 0, 0, null);
     gfx2.setClip(shapeClipSave);

You should be able to use basically the same thing drawing into a  
Graphics2D instance you get from a new BufferedImage instance.  Just make  
sure you've enabled anti-aliased rendering, and when the image is drawn  
clipped into the new BufferedImage, the edges should wind up anti-aliased.

Pete

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Anti-aliasing in image cl "Kenneth P. Turvey" <kenneth.p..turvey@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Peter Duniho" <peter.duniho@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Kenneth P. Turvey" <kenneth.p..turvey@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
    Re: Anti-aliasing in imag "John B. Matthews" <john.b..matthews@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Kenneth P. Turvey" <kenneth.p..turvey@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Peter Duniho" <peter.duniho@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Kenneth P. Turvey" <kenneth.p..turvey@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Peter Duniho" <peter.duniho@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Kenneth P. Turvey" <kenneth.p..turvey@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Kenneth P. Turvey" <kenneth.p..turvey@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
  Re: Anti-aliasing in imag "Peter Duniho" <peter.duniho@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000
    Re: Anti-aliasing in imag "John B. Matthews" <john.b..matthews@THRWHITE.remove-dii-this> - 2011-04-27 15:48 +0000

csiph-web