Advertisement
Guest User

lib.c

a guest
Jun 8th, 2025
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.99 KB | None | 0 0
  1. #include <stdint.h>
  2. #include <stdio.h>
  3.  
  4. int get_height(FILE *image) {
  5.     fseek(image, 22, SEEK_SET);
  6.     int height;
  7.     fread(&height, 4, 1, image);
  8.     return height;
  9. }
  10.  
  11. int get_width(FILE *image) {
  12.     fseek(image, 18, SEEK_SET);
  13.     int width;
  14.     fread(&width, 4, 1, image);
  15.     return width;
  16. }
  17.  
  18. int cprint(char buffer[], int buflen, int red, int green, int blue) {
  19.   return snprintf(buffer, buflen, "\033[48;2;%d;%d;%dm \033[0m", red, green, blue);
  20. }
  21.  
  22. int get_padding(int width) {
  23.     int nat_width = width * 3;
  24.     if (nat_width % 4 == 0) {
  25.         return 0;
  26.     }
  27.    
  28.     int n2 = nat_width;
  29.     while (n2 % 4 != 0) {
  30.         n2++;
  31.     }
  32.  
  33.     return n2 - nat_width;
  34.    
  35. }
  36.  
  37. void write_line(int width, char buffer[], int buflen, FILE *image) {
  38.     int strlength;
  39.  
  40.     for (int i = 0; i < width; i++) {
  41.         int red = 0;
  42.         int green = 0;
  43.         int blue = 0;
  44.         fread(&blue, 1, 1, image);
  45.         fread(&green, 1, 1, image);
  46.         fread(&red, 1, 1, image);
  47.         strlength = cprint(buffer, buflen, red, green, blue);
  48.         buffer += strlength;
  49.     }
  50. }
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement