Dividir figura em .pnm em fatias
Publicado por Sergio 06/05/2005
[ Hits: 5.353 ]
Este programa dado uma imagem *.pnm em formato p2 (grayscale) faz a divisao em N x M subfiguras. As imagens de saida cujo prefixo para as imagesns de saida e xxx sao colocadas em N x M ficheiros cahamados xxx.1.1.pnm xxx.1.2.pnm ... ... exemplo : divide 2 4 img.pnm out
#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXCOL 140 void divide (char *argv[],FILE *f) { FILE *z; int i=0,j,colunas,linhas,imgL,imgA,k,ncoluna=0,nlinha=0,b,v,pixel; char string [100],strler[100],s[10]; while (fgets (strler,100,f)!=NULL) { if (strler[0]!='#') i++; if (i==1) fscanf (f,"%d %d", &imgL, &imgA); } rewind (f); if (atoi (argv[1])>imgA || imgA%atoi (argv[1])!=0 || atoi (argv[2])>imgL || imgL%atoi (argv [2])!=0) { fprintf(stderr,"erro, insira multiplos da altura e largura da imagem\n"); exit(2); } for (i=1;i<=atoi (argv [1]);i++) for (j=1;j<=atoi (argv [2]);j++) { sprintf (string, "%s.%d.%d.pnm", argv[4], i, j); if ((z=fopen (string,"a+"))==NULL) { fprintf (stderr, "erro a abrir o ficheiro %s",string); exit (2); } k=0; while ((fgets (strler,100,f)!=NULL) && k<=2) { if (strler[0]!='#') { if (k==0) fputs (strler,z); if (k==1) fprintf (z,"%d %d\n",imgL/(atoi (argv[2])),imgA/(atoi (argv[1]))); if (k==2) fputs (strler,z); k++; } else fputs (strler,z); } for (v=nlinha;v<(imgA/(atoi (argv[1]))+nlinha) && (fgets (strler,100,f)!=NULL);v++) { for (b=ncoluna;b<(imgL/(atoi (argv[2]))+ncoluna) ;b++) { fscanf (f," %d", &pixel); fflush (f); sprintf (s,"%d ",pixel); fputs (s,z); } fputc ('\n',z); } nlinha+= imgA/(atoi (argv[1])); ncoluna+= imgL/(atoi (argv[2])); rewind (f); fclose (z); } } int main (int argc, char **argv) { FILE *f; char s[MAXCOL]; if (argc !=5) fprintf (stderr, "erro de sintaxe em %s", argv [0]); if ((f=fopen(argv[3],"r"))==NULL) fprintf (stderr, "erro a abrir o ficheiro %s", argv[3]); divide (argv,f); return 0; }
2 Programinhas em C para conversão de bases
Tamantipo - Mostra o tamanho dos tipos: char, int, float...
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (1)
Instalação Uefi com o instalador clássico do Mageia (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta