Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char *argv[])
- { int n=0;
- // ensure proper usage
- if (argc != 2)
- {
- fprintf(stderr, "Usage: ./copy infile outfile\n");
- return 1;
- }
- char *infile = argv[1];
- // open input file
- FILE *inptr = fopen(infile, "r");
- if (inptr == NULL)
- {
- fprintf(stderr, "Could not open %s.\n", infile);
- return 2;
- }
- int *buffer = malloc(512);
- if (fread(buffer,512,1,inptr)==512)
- {
- for(int i=0;i<512;)
- {
- if(buffer[i]==0xff&&buffer[i+1]==0xd8&&buffer[i+2]==0xff&&(buffer[i] & 0xf0)==0xe0)
- { char *a=NULL;
- sprintf(a,"%03i.jpg",n);
- n++;
- FILE *img = fopen(a,"w");
- for(int j=0;j<4;j++)
- {
- fwrite(buffer,1,1,img);
- i +=4;
- }
- while(!(buffer[i]==0xff&&buffer[i+1]==0xd8&&buffer[i+2]==0xff&&(buffer[i] & 0xf0)==0xe0))
- {
- fwrite(buffer,1,1,img);
- i++;
- }
- if(buffer[i]==0xff&&buffer[i+1]==0xd8&&buffer[i+2]==0xff&&(buffer[i] & 0xf0)==0xe0)
- {
- fclose(img);
- }
- }
- }
- }
- fclose(inptr);
- }
Add Comment
Please, Sign In to add comment