#include <stdio.h>
// Función para rotar y expandir una imagen utilizando un IFS
void rotateAndExpandImage(int width, int height, int* image) {
int newWidth = width * 2; // Nueva anchura de la imagen
int newHeight = height * 2; // Nueva altura de la imagen
int newImage[newWidth][newHeight]; // Nueva matriz para almacenar la imagen transformada
// Aplicar transformaciones a cada píxel de la imagen original
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
// Obtener el valor del píxel en la posición (x, y) de la imagen original
int pixelValue = image[x][y];
// Calcular las nuevas coordenadas del píxel en la imagen transformada
int newX = x * 2;
int newY = y * 2;
// Asignar el valor del píxel a las cuatro posiciones correspondientes en la imagen transformada
newImage[newX][newY] = pixelValue;
newImage[newX + 1][newY] = pixelValue;
newImage[newX][newY + 1] = pixelValue;
newImage[newX + 1][newY + 1] = pixelValue;
}
}
// Imprimir la imagen transformada
for (int y = 0; y < newHeight; y++) {
for (int x = 0; x < newWidth; x++) {
printf("%d ", newImage[x][y]);
}
printf("\n");
}
}
int main() {
// Ejemplo de uso
int width = 4; // Anchura de la imagen original
int height = 4; // Altura de la imagen original
int image[width][height] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
// Llamar a la función para rotar y expandir la imagen
rotateAndExpandImage(width, height, image);
return 0;
}