CS153/hw5/hw5programs/hand_rgb_to_gray.oat
jmug cfe502c598 Add all the assignment code.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-24 18:59:28 -08:00

77 lines
1.3 KiB
Text

struct RGB {
int red;
int green;
int blue
}
struct GrayScale {
int lightness;
int average;
int luminosity
}
int div (int a, int b) {
var count = 0;
var cur_num = a;
while (cur_num - b >= 0) {
cur_num = cur_num - b;
count = count + 1;
}
return count;
}
int max (int a, int b, int c) {
var m = 0;
if (a > b) {
m = a;
} else {
m = b;
}
if (c > m) {
m = c;
}
return m;
}
int min (int a, int b, int c) {
var m = 300;
if (a < b) {
m = a;
} else {
m = b;
}
if (c < m) {
m = c;
}
return m;
}
GrayScale rgbtogray (RGB rgb) {
var maxNum = max(rgb.red, rgb.green, rgb.blue);
var minNum = min(rgb.red, rgb.green, rgb.blue);
var maxmin = maxNum + minNum;
var light = div(maxmin, 2);
var averageSum = rgb.red + rgb.green + rgb.blue;
var ave = div(averageSum, 3);
var luminositySum = (rgb.red * 21) + (rgb.green * 72) + (rgb.blue * 7);
var lum = luminositySum;
var gray = new GrayScale { lightness = light; average = ave; luminosity = lum };
return gray;
}
global rgb = RGB { red = 200; green = 150; blue = 100 };
global gray = GrayScale { lightness = 150; average = 150; luminosity = 150 };
int program (int argc, string[] argv) {
var convert = rgbtogray(rgb);
return (convert.average - gray.average) + (convert.lightness - gray.lightness);
}