// El módulo de imágenes en acción: copias de struct y una fila pasada como arreglo.
#include <stdio.h>

#include "lab/image.h"

void paint_copy(struct image img) {
    img.pixels[0][0] = 99;
    printf("En paint_copy, el primer píxel vale %d\n", img.pixels[0][0]);
}

void paint_row(int row[], int width) {
    for (int x = 0; x < width; x++) {
        row[x] = 99;
    }
}

int main(void) {
    struct image img = image_load("lab/images/tiny.pgm");
    if (!image_is_valid(img)) {
        fprintf(stderr, "No se pudo leer la imagen\n");
        return 1;
    }

    printf("sizeof(struct image) = %zu bytes\n", sizeof(struct image));
    image_print(img);

    paint_copy(img);
    printf("Después de paint_copy:\n");
    image_print(img);

    paint_row(img.pixels[0], img.width);
    printf("Después de paint_row:\n");
    image_print(img);
    return 0;
}
