Manipulação de imagens no formato PPM
O artigo seguinte faz uma introdução sobre o formato ".ppm", que faz o armazenamento de forma simples e "bruta" de imagens. Além de como manipular o arquivo, para podermos aplicar filtros de imagem já existentes ou criar nossos próprios filtros.
[ Hits: 32.694 ]
Por: Pablo Margreff em 16/01/2015 | Blog: https://pmargreff.wordpress.com/
#include#include #define MAX 500 typedef struct { int r, g, b; } pixel; int main(int argc, char** argv) { pixel imagem[MAX][MAX]; //cria uma matriz de pixeis para armazenar a imagem char code[3]; //o código para saber se a imagem é ascii ou binária int max; //o valor máximo de tonalidade de cada pixel int larg, alt; // largura e altura da imagem em pixeis return 0; }
void ler_ascii(pixel imagem[MAX][MAX], char *code, int *max, int *coluna, int *linha) { int i, j; FILE *arquivo; char nome_arq[50]; printf("entre com o nome do arquivo\n"); scanf("%s", nome_arq); if ((arquivo = fopen(nome_arq, "r")) == NULL) { printf("Erro ao abrir o arquivo %s\n", nome_arq); exit(1); } fscanf(arquivo, "%s", code); fscanf(arquivo, "%d", coluna); fscanf(arquivo, "%d", linha); fscanf(arquivo, "%d", max); for (i = 0; i < *linha; i++) { for (j = 0; j < *coluna; j++) { fscanf(arquivo, "%d", &imagem[i][j].r); fscanf(arquivo, "%d", &imagem[i][j].g); fscanf(arquivo, "%d", &imagem[i][j].b); } } fclose(arquivo); }
void salvar_ascii(pixel imagem[MAX][MAX], char *code, int max, int coluna, int linha) { int i, j; FILE *arquivo; char nome_arq[50]; printf("entre com o nome que deseja salvar: \n"); scanf("%s", nome_arq); arquivo = fopen(nome_arq, "w"); fprintf (arquivo, "P3\n"); fprintf (arquivo, "%d\n ", coluna); fprintf (arquivo, "%d\n", linha); fprintf (arquivo, "%d\n", max); for (i = 0; i < linha; i++) { for (j = 0; j < coluna; j++) { fprintf(arquivo, "%d ", imagem[i][j].r); fprintf(arquivo, "%d ", imagem[i][j].g); fprintf(arquivo, "%d\n", imagem[i][j].b); } } fclose(arquivo); }
Aumentando sua produtividade com o teclado padrão Dvorak
Manipulação de arquivos em C++
DoTheWorld - Biblioteca completa para manipulação de Arquivos e Pastas em C
Manipulando arquivos em C (parte 1)
Manipulando arquivos em C (parte 2)
Gerenciando pacotes para C/C++ com Conan
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Usar uma VM dentro do meu notebook como firewall para um dispositivo e... (1)
Alguém que utilize o Warsaw do BB no Ubuntu 24.04 (0)
como instalo panfrost-dri e o driver panfrost fork , ou panfrost (16)
problema no debian que poderia ser corrigido por comando? (12)