fork download
  1. #include <stdio.h>
  2.  
  3. #define X_SIZE 32
  4. #define Y_SIZE 32
  5.  
  6. typedef unsigned char u_char;
  7.  
  8. void disp_img(int n);
  9. void cut_img(void);
  10. void load_image_data(char* f_name);
  11.  
  12. u_char image[Y_SIZE][X_SIZE * 10];
  13. u_char img_a[10][Y_SIZE][X_SIZE];
  14.  
  15. int main()
  16. {
  17. int i;
  18.  
  19. load_image_data("number2.pgm");
  20. cut_img();
  21. for (i = 0; i < 10; i++) {
  22. printf("\nimg_a[%d]\n", i);
  23. disp_img(i);
  24. }
  25.  
  26. return 0;
  27. }
  28.  
  29. void disp_img(int n)
  30. {
  31. int ix, iy;
  32.  
  33. for (iy = 0; iy < Y_SIZE; iy++) {
  34. for (ix = 0; ix < X_SIZE; ix++) {
  35. printf("%02x", img_a[n][iy][ix]);
  36. }
  37. printf("\n");
  38. }
  39. }
  40.  
  41. void cut_img(void)
  42. {
  43. int i, ix, iy;
  44.  
  45. for (i = 0; i < 10; i++) {
  46. for (iy = 0; iy < Y_SIZE; iy++) {
  47. for (ix = 0; ix < X_SIZE; ix++) {
  48. img_a[i][iy][ix] = image[iy][X_SIZE * i + ix];
  49. }
  50. }
  51. }
  52. }
  53.  
  54. void load_image_data(char* f_name)
  55. {
  56. FILE* fp;
  57. char buf[640];
  58. errno_t err;
  59. int x_size, y_size;
  60. int max_gray;
  61. int ix, iy;
  62.  
  63. err = fopen_s(&fp, f_name, "rb");
  64. if (err) {
  65. fprintf(stderr, "fopen_s\n");
  66. return;
  67. }
  68.  
  69. // P5
  70. fgets(buf, sizeof buf, fp);
  71. if (buf[0] != 'P' || buf[1] != '5') {
  72. fprintf(stderr, "not P5\n");
  73. return;
  74. }
  75.  
  76. // x y
  77. x_size = y_size = 0;
  78. while (x_size == 0) {
  79. fgets(buf, sizeof buf, fp);
  80. if (buf[0] == '#') continue;
  81. sscanf_s(buf, "%d%d", &x_size, &y_size);
  82. }
  83.  
  84. // max
  85. max_gray = 0;
  86. while (max_gray == 0) {
  87. fgets(buf, sizeof buf, fp);
  88. if (buf[0] == '#') continue;
  89. sscanf_s(buf, "%d", &max_gray);
  90. }
  91.  
  92. for (iy = 0; iy < y_size; iy++) {
  93. for (ix = 0; ix < x_size; ix++) {
  94. image[iy][ix] = fgetc(fp);
  95. }
  96. }
  97.  
  98. fclose(fp);
  99. }
  100.  
  101. /*
  102. img_a[8]
  103. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  104. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  105. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  106. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  107. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  108. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  109. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  110. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  111. ffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffff
  112. ffffffffff00ffffffffff0000ffffffffffffffffffffffffffffffffffffff
  113. ffffffff00ffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  114. ffffff0000ffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  115. ffffff0000ffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  116. ffffff0000ffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  117. ffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffff
  118. ffffffff00000000ffffff00ffffffffffffffffffffffffffffffffffffffff
  119. ffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffff
  120. ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff
  121. ffffffffff00ffffff00000000ffffffffffffffffffffffffffffffffffffff
  122. ffffff0000ffffffffffff000000ffffffffffffffffffffffffffffffffffff
  123. ffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
  124. ffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
  125. ffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
  126. ffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
  127. ffffff0000ffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  128. ffffffff0000ffffffffff0000ffffffffffffffffffffffffffffffffffffff
  129. ffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffff
  130. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  131. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  132. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  133. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  134. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  135.  
  136. img_a[9]
  137. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  138. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  139. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  140. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  141. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  142. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  143. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  144. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  145. ffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
  146. ffffff0000ffffffffff00ffffffffffffffffffffffffffffffffffffffffff
  147. ffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
  148. ffff00ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
  149. ff0000ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
  150. ff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  151. ff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  152. ff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  153. ffff0000ffffffffffffff000000ffffffffffffffffffffffffffffffffffff
  154. ffffff0000ffffffffff00ff0000ffffffffffffffffffffffffffffffffffff
  155. ffffffff000000000000ffff0000ffffffffffffffffffffffffffffffffffff
  156. ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  157. ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
  158. ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
  159. ffff000000ffffffffffff0000ffffffffffffffffffffffffffffffffffffff
  160. ffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffff
  161. ffff0000ffffffffffff0000ffffffffffffffffffffffffffffffffffffffff
  162. ffffff00ffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
  163. ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffff
  164. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  165. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  166. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  167. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  168. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  169. */
  170.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty