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: 31.660 ]
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 2)
Manipulando arquivos em C (parte 1)
Introdução à linguagem C - Parte I
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
redirecionando saida de comando touch para o AWK[AJUDA] (11)
filtrar só as pastas onde tem arquivo (1)
Impressora Canon Ip 1800 (Drivers) 64 bit (9)