[Bluej-discuss] exercise 11.37 page 331

Luis Moreira luis.moreira at hotmail.co.uk
Tue May 9 10:19:08 BST 2006


Hi Michael,
I have tried your solution but the problem is that if I give the value to 
each component the final RGB value is more than 255 I tried to limit the 
value to 255 but then all the pixels have the same color.
best regards
                  Luis


>From: Michael Kölling <M.Kolling at kent.ac.uk>
>Reply-To: General discussion for users of BlueJ <bluej-discuss at bluej.org>
>To: General discussion for users of BlueJ <bluej-discuss at bluej.org>
>Subject: Re: [Bluej-discuss] exercise 11.37 page 331
>Date: Mon, 8 May 2006 20:57:23 +0100
>
>Your code looks very good until the very last line. That's where the
>bug creeps in.
>
>When you use
>
>	image.setPixel(x, y, value);
>
>(that is, the setPixel method with one int as the color value) the
>system takes all three colors out of selected bits of that int
>variable. You should use the setPixel method that uses a Color
>argument instead.
>
>You 'value' variable now holds the value you want to use for each of
>the color channels, so you should create a Color using
>
>	new Color(value, value, value)
>
>and pass that one to setPixel. Since the three color channels have
>the same value, the color will be a shade of grey.
>
>Michael
>
>
>On 8 May 2006, at 17:51, Luis Moreira wrote:
>
> > Hi Michael,
> > this is what I have done, based on what I got from your email, but
> > the problem is that all pixels go blue. Is this what you mean or am
> > I missing something?
> >
> > public void apply(OFImage image)
> >    {
> >        int height = image.getHeight();
> >        int width = image.getWidth();
> >        for(int y = 0; y < height; y++) {
> >            for(int x = 0; x < width; x++) {
> >                Color pixel = image.getPixel(x, y);
> >                int red = pixel.getRed();
> >                int green = pixel.getGreen();
> >                int blue = pixel.getBlue();
> >                int value = (red + green + blue)/ 3;
> >                image.setPixel(x, y, value);
> >            }
> >        }
> >    }
> >
> >
> >> From: Michael Kölling <M.Kolling at kent.ac.uk>
> >> Reply-To: General discussion for users of BlueJ <bluej-
> >> discuss at bluej.org>
> >> To: General discussion for users of BlueJ <bluej-discuss at bluej.org>
> >> Subject: Re: [Bluej-discuss] exercise 11.37 page 331
> >> Date: Mon, 8 May 2006 16:17:20 +0100
> >>
> >> On 8 May 2006, at 16:12, Luis Moreira wrote:
> >>
> >> > Hi Guys,
> >> > on exercise 11.37, I manage to add the filter no problem, but the
> >> > functionality I could not work out.
> >> > the exercise states that to make a pixel any shade of gray we give
> >> > the same
> >> > value to red,green and blue. that is fine but what value do I need
> >> > to give
> >> > the three components?
> >>
> >> You can preserve the brightness (roughly) by leaving the sum of
> >> the R/
> >> G/B channels the same.
> >>
> >> That is, compute the average of the R, G and B values, and use that
> >> average for all three channels.
> >>
> >> Regards,
> >>
> >> Michael
> >>
> >> _______________________________________________
> >> mailing list bluej-discuss at bluej.org
> >> To unsubscribe or change your preferences, go to
> >> http://lists.bluej.org/mailman/listinfo/bluej-discuss
> >
> > _________________________________________________________________
> > The new MSN Search Toolbar now includes Desktop search! http://
> > join.msn.com/toolbar/overview
> >
> > _______________________________________________
> > mailing list bluej-discuss at bluej.org
> > To unsubscribe or change your preferences, go to
> > http://lists.bluej.org/mailman/listinfo/bluej-discuss
>
>_______________________________________________
>mailing list bluej-discuss at bluej.org
>To unsubscribe or change your preferences, go to
>http://lists.bluej.org/mailman/listinfo/bluej-discuss

_________________________________________________________________
Are you using the latest version of MSN Messenger? Download MSN Messenger 
7.5 today! http://join.msn.com/messenger/overview



More information about the bluej-discuss mailing list