Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class RGBColor
- {
- private int _red,_green,_blue;
- final int MIN_VALUE = 0, MAX_VALUE = 255;
- //constructors
- public RGBColor()//default constructor, black.
- {
- _red = 0;
- _green = 0;
- _blue = 0;
- }
- public RGBColor(int red, int green, int blue)
- {
- if(isValid(red) && isValid(green) && isValid(blue))
- {
- _red = red;
- _green = green;
- _blue = blue;
- }
- else
- {
- _red = 0;
- _green = 0;
- _blue = 0;
- }
- }
- public RGBColor(RGBColor other)
- {
- _red = other._red;
- _green = other._green;
- _blue = other._blue;
- }
- private boolean isValid(int num)
- {
- if(num < MIN_VALUE ||num > MAX_VALUE)
- return false;
- return true;
- }
- public int getRed()
- {
- return _red;
- }
- public int getGreen()
- {
- return _green;
- }
- public int getBlue()
- {
- return _blue;
- }
- public void setRed(int num)
- {
- if(isValid(_red))
- _red = num;
- return;
- }
- public void setGreen(int num)
- {
- if(isValid(_green))
- _green = num;
- return;
- }
- public void setBlue(int num)
- {
- if(isValid(_blue))
- _blue = num;
- return;
- }
- public String toString()
- {
- return "(" + _red + "," + _green + "," + _blue + ")";
- }
- public boolean equals(RGBColor other)
- {
- if(_red == other._red && _green == other._green && _blue == other._blue)
- return true;
- return false;
- }
- public void mix(RGBColor other)
- {
- _red = Average(_red,other._red);
- _green = Average(_green,other._green);
- _blue = Average(_blue,other._blue);
- }
- private int Average(int num1, int num2)
- {
- return (num1 + num2)/2;
- }
- public double convertToGrayscale()
- {
- return 0.3 * _red + 0.59 * _green + 0.11 * _blue;
- }
- public void invert()
- {
- _red = MAX_VALUE - _red;
- _green = MAX_VALUE - _green;
- _blue = MAX_VALUE - _blue;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement