From 24532984a0615f0d62420e86b13dc04e4668456f Mon Sep 17 00:00:00 2001 From: ekanshgupta2046 Date: Wed, 22 Oct 2025 13:58:40 +0530 Subject: [PATCH] feat: add sepia function in helpers.c --- filter.exe | Bin 50385 -> 0 bytes helpers.c | 27 +++++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) delete mode 100644 filter.exe diff --git a/filter.exe b/filter.exe deleted file mode 100644 index c7761fb7dc5add94b43500ef3a11484880df37c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50385 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 diff --git a/helpers.c b/helpers.c index 2e06ebd..4925808 100644 --- a/helpers.c +++ b/helpers.c @@ -61,7 +61,30 @@ void invert(int height, int width, RGBTRIPLE image[height][width]){ } void sepia(int height, int width, RGBTRIPLE image[height][width]){ -// Convert image to sepia + for (int i = 0; i < height; i++) + { + for (int j = 0; j < width; j++) + { + int originalRed = image[i][j].rgbtRed; + int originalGreen = image[i][j].rgbtGreen; + int originalBlue = image[i][j].rgbtBlue; + + int sepiaRed = round(0.393 * originalRed + 0.769 * originalGreen + 0.189 * originalBlue); + int sepiaGreen = round(0.349 * originalRed + 0.686 * originalGreen + 0.168 * originalBlue); + int sepiaBlue = round(0.272 * originalRed + 0.534 * originalGreen + 0.131 * originalBlue); + + if (sepiaRed > 255) + sepiaRed = 255; + if (sepiaGreen > 255) + sepiaGreen = 255; + if (sepiaBlue > 255) + sepiaBlue = 255; + + image[i][j].rgbtRed = sepiaRed; + image[i][j].rgbtGreen = sepiaGreen; + image[i][j].rgbtBlue = sepiaBlue; + } + } } @@ -128,7 +151,7 @@ void blur(int height, int width, RGBTRIPLE image[height][width]){ // Blur image -} + void vignette(int height, int width, RGBTRIPLE image[height][width]){ float cx = width / 2.0; // center of the image float cy= height / 2.0;