Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void sepia(int height, int width, RGBTRIPLE image[height][width])
- {
- // Start loop
- for (int i = 0; i <= height; i++)
- {
- for (int j = 0; j <= width; j++)
- {
- // Compute sepia RGB
- float SepiaRed = 0.393 * image[i][j].rgbtRed + 0.769 * image[i][j].rgbtGreen + 0.189 * image[i][j].rgbtBlue;
- float SepiaGreen = 0.349 * image[i][j].rgbtRed + 0.686 * image[i][j].rgbtGreen + 0.168 * image[i][j].rgbtBlue;
- float SepiaBlue = 0.272 * image[i][j].rgbtRed + 0.534 * image[i][j].rgbtGreen + 0.131 * image[i][j].rgbtBlue;
- // Rounding off
- SepiaRed = SepiaRed + 0.5;
- SepiaGreen = SepiaGreen + 0.5;
- SepiaBlue = SepiaBlue + 0.5;
- // Apply sepia RGB
- image[i][j].rgbtRed = SepiaRed;
- image[i][j].rgbtGreen = SepiaGreen;
- image[i][j].rgbtBlue = SepiaBlue;
- // Cap at maximum value
- if (image[i][j].rgbtRed > 255)
- {
- image[i][j].rgbtRed = 255;
- }
- else if (image[i][j].rgbtGreen > 255)
- {
- image[i][j].rgbtGreen = 255;
- }
- else if (image[i][j].rgbtBlue > 255)
- {
- image[i][j].rgbtBlue = 255;
- }
- // Apply sepia RGB
- image[i][j].rgbtRed = SepiaRed;
- image[i][j].rgbtGreen = SepiaGreen;
- image[i][j].rgbtBlue = SepiaBlue;
- }
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment