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.367 ]
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
DoTheWorld - Biblioteca completa para manipulação de Arquivos e Pastas em C
Manipulando arquivos em C (parte 2)
Manipulando arquivos em C (parte 1)
Manipulação de arquivos em C++
Criando uma aplicação gráfica com o Qt Designer
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (4)
Instalação do drive do adaptador wiffi (5)
Linux Lite Demorando Muito Para Ligar (1)