Computação Gráfica
CG é uma área da computação dedicada a criação, armazenamento e manipulação de imagens baseada em modelos matemáticos.

Lecture 1
Iniciaremos nosso curso aprendendo como construir uma imagem.
Portable Pixel Map (PPM)
O formato PPM nasceu no final da década de $80$ para compartilhar imagens facilmente entre diferentes plataformas.

Código
Podemos escrever um código em C para construir uma imagem usando o formato PPM. Este objetivo será alcançado através da análise do programa ppm_create.c.

/** * \file ppm_create.c * * \brief Criacao de uma imagem em PPM. * * \author * Petrucio Ricardo Tavares de Medeiros \n * Universidade Federal Rural do Semi-Árido \n * Departamento de Engenharias e Tecnologia \n * petrucio at ufersa (dot) edu (dot) br * * \version 1.0 * \date April 2025 */ #include <stdio.h> int main(){ // dimensoes da imagem int width = 256; int height = 256; // Configurando o header do formato PPM printf("P3\n %d \t %d\n 255\n", width, height); for (int i = 0; i < height; i++){ // Altura for (int j = 0; j < width; j++){ // Largura printf("%d \t %d \t %d \n", i, j, 63); } } return 0; }
Descrição do programa
Inserimos na primeira linha do arquivo a biblioteca para lidar com entrada/saída de dados na linguagem C.
#include <stdio.h>
Definimos as dimensões (largura e altura) da imagem que estamos construindo.
int width = 256; int height = 256;
Em seguida, configuramos o cabeçalho do formato PPM.
printf("P3\n %d \t %d\n 255\n", width, height);
No laço de repetição, percorremos a largura e altura da imagem preenchendo as cores dos pixels.
for (int i = 0; i < height; i++){ // Altura for (int j = 0; j < width; j++){ // Largura printf("%d \t %d \t %d \n", i, j, 63); } }
Compilação
O processo de compilação é realizado através do compilador GCC através do seguinte comando:
gcc <nome_arquivo>.c -o <nome_executavel>
Este comando criará um arquivo executável e a saída deve ser direcionada para um arquivo com extensão ".ppm".
./<nome_executavel> > output.ppm
Exercício
-
Construa uma imagem $100 \times 100$ usando o formato PPM com fundo preto que tem apenas 1 pixel vermelho no centro da imagem.
-
Implemente uma função que altera o valor de um pixel da imagem.
-
Codifique uma função que salva a imagem no formato PPM.
-
Crie uma função que inicializa uma imagem com branco.
-
Construa uma imagem $100 \times 100$ usando o formato PPM com fundo preto e escreva o caractere ' T ' no centro da imagem com alto contraste em relação ao fundo da imagem.