[Bluej-discuss] exercise 11.37 page 331

Luis Moreira Luis.Moreira at jet.uk
Tue May 9 13:28:33 BST 2006


Hi Guys,
I sorted the greyscale filter and it is now working, thanks Michael. I am now looking at the smooth filter, and I can see what I need to do but the algorithm that I can come up with seems very complicated. Is there a simple way to decide which values to get?
Best regards
		Luis 



-----Original Message-----
From: bluej-discuss-bounces at bluej.org [mailto:bluej-discuss-bounces at bluej.org] On Behalf Of Michael Kölling
Sent: 09 May 2006 11:09
To: General discussion for users of BlueJ
Subject: Re: [Bluej-discuss] exercise 11.37 page 331

In your current implementation, 'value' will never be more than 255  
(because you get the values, and divide the sum by three).

So you can safely do

	image.setPixel(x, y, new Color(value, value, value));

mik

On 9 May 2006, at 10:19, Luis Moreira wrote:

> 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
>
> _______________________________________________
> 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


More information about the bluej-discuss mailing list