디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

횽들 이 소스 좀 봐줘

라공(123.99) 2011.05.24 18:55:36
조회 61 추천 0 댓글 0

#include <stdio.h>
#include <stdlib.h>

#pragma warning(disable:4996)

#define TRUE 1
#define FALSE 0


typedef struct {
 char M, N;  // 매직넘버
 int  width;
 int  height;
 int  max;
 unsigned char **pixels;
} PGMImage;


int fnReadPGM(char* fileNm, PGMImage* img);
void fnClosePGM(PGMImage* img);
int fnWritePGM(char* fileNm, PGMImage* img);

int main(int argc, char** argv)
{
 PGMImage img;
 
 if(argc != 2){
  fprintf(stderr, "사용법 : %s <담장이예찬글>\\n", argv[0]);
  return -1;
 }


 if(fnReadPGM(argv[1], &img) != TRUE){
  return -1;
 }


 // <-- 결과 확인은 파일로 대체
 if(fnWritePGM("E:\\\\test\\\\result.pgm", &img) == TRUE){
  printf("파일 저장완료!\\n");
 }
 // -->

 fnClosePGM(&img);

 return 0;
}

int fnReadPGM(char* fileNm, PGMImage* img)
{
 FILE* fp;
 if(fileNm == NULL){
  fprintf(stderr, "fnReadPGM 호출 에러\\n");
  return FALSE;
 }
 
 fp = fopen(fileNm, "rb"); // binary mode
 if(fp == NULL){
  fprintf(stderr, "파일을 열 수 없습니다 : %s\\n", fileNm);
  return FALSE;
 }

 fscanf(fp, "%c%c\\n", &img->M, &img->N); // 매직넘버 읽기

 if(img->M != \'P\' || img->N != \'5\'){
  fprintf(stderr, "PGM 이미지 포멧이 아닙니다 : %c%c\\n", img->M, img->N);
  return FALSE;
 }

 fscanf(fp, "%d %d\\n", &img->width, &img->height); // 가로, 세로 읽기
 fscanf(fp, "%d\\n"   , &img->max                ); // 최대명암도 값

 if(img->max != 255){
  fprintf(stderr, "올바른 이미지 포멧이 아닙니다.\\n");
  return FALSE;
 }


 // <-- 메모리 할당
 img->pixels = (unsigned char**)calloc(img->height, sizeof(unsigned char*));

 for(int i=0; i<img->height; i++){
  img->pixels[i] = (unsigned char*)calloc(img->width, sizeof(unsigned char));
 }
 // -->


 // <-- pgm 파일로부터 픽셀값을 읽어서 할당한 메모리에 load
 for(int i=0; i<img->height; i++){
  for(int j=0; j<img->width; j++){
   fread(&img->pixels[i][j], sizeof(unsigned char), 1, fp);
  }
 }
 // -->


 fclose(fp); // 더 이상 사용하지 않는 파일을 닫아 줌

 return TRUE;
}

void fnClosePGM(PGMImage* img)
{
 for(int i=0; i<img->height; i++){
  free(img->pixels[i]);
 }

 free(img->pixels);
}

int fnWritePGM(char* fileNm, PGMImage* img)
{
 FILE* fp;

 fp = fopen(fileNm, "w");
 if(fp == NULL){
  fprintf(stderr, "파일 생성에 실패하였습니다.\\n");
  return FALSE;
 }

 fprintf(fp, "%c%c\\n", \'P\', \'2\');
 fprintf(fp, "%d %d\\n" , img->width, img->height);
 fprintf(fp, "%d\\n", 255);

 int tmp;        // int type임에 유의

 for(int i=0; i<img->height; i++){
  for(int j=0; j<img->width; j++){
   tmp = img->pixels[i][j] + 40; // 픽셀값을 밝게 변화를 줌

   if(tmp > 255){     // overflow 방지
    tmp = 255;
   }

   fprintf(fp, "%d ", tmp);
  }
 }

 fclose(fp);
 
 return TRUE;
}








저 글씨 큰 부분에서 에러가 나는데 나는 도대체가 왜 에러가 나는지 이해가 안되
좀 알려줘요!

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 SNS로 싸우면 절대 안 질 것 같은 고집 있는 스타는? 운영자 24/05/06 - -
공지 프로그래밍 갤러리 이용 안내 [68] 운영자 20.09.28 34587 62
2693681 19 ) 섹카오톡 레전드 jpg [1] ㅇㅇ(222.235) 10:23 4 0
2693680 하 커리어 개꼬였다 프갤러(211.36) 10:22 7 0
2693679 가위의 숨겨진 용도 ㅇㅇ(183.109) 10:19 9 0
2693678 여기는 뭐 소돔과 고모라 수준이네 영혼추수갤로그로 이동합니다. 10:16 5 0
2693677 주말엔 공부 같은거 하지말고 쉬세요 [2] 춘절갤로그로 이동합니다. 10:15 12 0
2693675 뻘소리하지말고 공부나해라 [1] 포항의봄갤로그로 이동합니다. 09:58 12 0
2693674 아 씨발 섹ㅅ하고싶다 피임약 벌컥벌컥 하고싶어 [2] 성관계(49.169) 09:34 34 0
2693673 31살 비(?)전공 프론트엔드 취업 성공했다 [3] 프갤러(211.243) 09:28 51 2
2693672 인강 팝니다. [3] 사람낚는어부갤로그로 이동합니다. 09:14 26 0
2693671 이 대화 나만 이해 안가냐 [6] 아스카영원히사랑해갤로그로 이동합니다. 09:11 57 2
2693670 님들 편입해서 수잡대왔는데 벌써 졸작하래요 [6] ㅌㅌ갤로그로 이동합니다. 09:11 38 0
2693668 신용점수가 생각보다 훅 떨어졌다가 훅 오르네 ㅇㅅㅇ 다행이다 [1] ㅇㅇ(223.38) 08:29 27 0
2693667 옛날 전성기 괴짜가족 생각나넹 ㅋㅅㅋ [2] ♥궁그미냥덩♥갤로그로 이동합니다. 08:23 41 0
2693666 ㅋㅅㅋ 박보겁~탈웃교 ♥궁그미냥덩♥갤로그로 이동합니다. 08:19 31 0
2693665 최재천 교수: 용산 대통령실 명당인가? 발명도둑잡기갤로그로 이동합니다. 08:15 16 0
2693664 취업안되고 백수짓 하는거 보단 재택 국비 듣는게 좋겠지? 프갤러(14.39) 08:08 27 0
2693663 아슬아슬하게 세이프로군.. ♥궁그미냥덩♥갤로그로 이동합니다. 07:41 37 0
2693662 Мари́я Влади́мировна Заха́рова 도리스아(119.195) 07:22 11 0
2693661 일기는 일기장에 드립 도리스아(119.195) 07:16 19 0
2693660 최삼숙-기쁨의 노래 안고 함께 가리라 발명도둑잡기갤로그로 이동합니다. 06:49 13 0
2693659 나는내향적이다 ㅇㅇ(223.39) 06:46 16 0
2693658 조청미-림진강 발명도둑잡기갤로그로 이동합니다. 06:41 11 0
2693657 하루 한 번 헤르미온느 찬양 [1] 헤르 미온느갤로그로 이동합니다. 06:27 34 0
2693656 린 민메이 발명도둑잡기갤로그로 이동합니다. 06:17 11 0
2693655 나님 시작합니당⭐ [1] ♥궁그미냥덩♥갤로그로 이동합니다. 06:15 34 0
2693654 바둑-김홍도 발명도둑잡기갤로그로 이동합니다. 06:04 26 0
2693653 부산고검, 현직 검사장 부정청탁·조세포탈 의혹 조사 [1] 조커@두팩트수보(175.117) 05:59 16 0
2693652 How To Make a Mini Rubber Band Car (SIMP 발명도둑잡기갤로그로 이동합니다. 05:47 12 0
2693651 Top Gun Maverick: "SpLiTTinG tHe tHroTTL 발명도둑잡기갤로그로 이동합니다. 05:35 11 0
2693650 안드를 aos라고 하는거 극혐아니냐? [1] 헬마스터갤로그로 이동합니다. 05:31 41 2
2693649 IBM Linux 광고: The Kid 발명도둑잡기갤로그로 이동합니다. 05:29 15 0
2693648 아니 님들아 역류기 왜 고소를 못함? ㅇㅇ(211.235) 05:26 26 0
2693647 68K 맥 손목시계 화면 발명도둑잡기갤로그로 이동합니다. 05:11 23 0
2693646 웹브라우저 크롬도 파폭도아니고 련근볶음갤로그로 이동합니다. 04:56 24 0
2693645 안드로이드 사용자 수 처참하네 탈출해라 AOS 개발자들아 [2] 프갤러(124.60) 03:38 64 0
2693644 it업계는 개발자 아니면 병신취급한다함 [6] 프갤러(218.153) 02:36 161 0
2693643 전공자인데 cs 거의 까먹어서 다시 공부중이다 [2] 프갤러(125.240) 02:19 74 1
2693642 현재 미국 SF 드라마 정책의 목표는 이공계 이민 촉진입니다 [1] 발명도둑잡기갤로그로 이동합니다. 02:09 30 0
2693641 뭐야 플러터 ㅈ댐?? ㅇㅇ갤로그로 이동합니다. 02:08 54 0
2693640 반갑다 SKNT개발자(106.101) 01:51 29 0
2693639 앱 만들려는데 시장조사 힘들긔 프갤러(211.114) 01:48 26 0
2693638 지오웤스 앙상블이라는 것도 있었네 [2] 프갤러(49.165) 01:41 25 0
2693637 광고 달았다 [2] AppHiki갤로그로 이동합니다. 01:40 45 0
2693634 좆지랄 훈수충 또 떳노 프갤러(121.170) 01:29 28 0
2693632 나님 오늘 조기퇴근 하실듯? [4] 헬마스터갤로그로 이동합니다. 01:26 40 0
2693631 대학생 3학년인데 도움좀 주라 [7] 프갤러(114.204) 01:20 114 0
2693630 나트륨은 스타2 초허접이야 ㅇㅅㅇ [1] 나트륨찡갤로그로 이동합니다. 01:16 32 0
2693629 Idc센터 장비관제 취직했는데 죽고싶더 [1] 프갤러(59.16) 01:16 49 0
2693628 아르헨 밀레이, 밀컨 포럼 참석차 취임 5개월만에 4번째 방미 발명도둑잡기갤로그로 이동합니다. 01:09 14 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2