디시인사이드 갤러리

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

갤러리 본문 영역

C언어 배운지 한달 반된 쓰래기같은 프로그래머 구제좀 해주세여

sdfs(121.157) 2012.02.14 23:15:33
조회 145 추천 0 댓글 9

#include <stdio.h>
#include "BMP_header.h"
#include <malloc.h>
BMP_Header bmp_header;
void BMP_file_header_read (FILE *fp, BMP_Header * bmp_header)
{
 fread (&bmp_header->charB, sizeof (char), 1, fp);
 fread (&bmp_header->charM, sizeof (char), 1, fp);
 fread (&bmp_header->filesize, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->reserved, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->pixel_offset, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->header_size, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->image_width, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->image_height, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->number_of_planes_and_number_of_bits_per_pixel, 4, 1, fp);
 fread (&bmp_header->compression_type, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->image_size_with_padding_in_bytes, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->horizontal_resolution, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->veritical_resolution, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->number_of_colors, sizeof (unsigned int), 1, fp);
 fread (&bmp_header->number_of_important_colors, sizeof (unsigned int), 1, fp);
}
void BMP_file_header_write (FILE *wp, BMP_Header * bmp_header)
{
    fwrite (&bmp_header->charB, sizeof (char), 1, wp);
 fwrite (&bmp_header->charM, sizeof (char), 1, wp);
 fwrite (&bmp_header->filesize, sizeof (unsigned int), 1, wp);
 fwrite (&bmp_header->reserved, sizeof (unsigned int), 1, wp);
 fwrite (&bmp_header->pixel_offset, sizeof (unsigned int), 1, wp);
 fwrite (&bmp_header->header_size, sizeof (unsigned int), 1, wp);
 fwrite (&bmp_header->image_width, sizeof (unsigned int), 1, wp);
 fwrite (&bmp_header->image_height, sizeof (unsigned int), 1, wp);
 fwrite (&bmp_header->number_of_planes_and_number_of_bits_per_pixel, 4,
  1, wp);
 fwrite (&bmp_header->compression_type, sizeof (unsigned int), 1,
  wp);
 fwrite (&bmp_header->image_size_with_padding_in_bytes,
  sizeof (unsigned int), 1, wp);
 fwrite (&bmp_header->horizontal_resolution, sizeof (unsigned int),
  1, wp);
 fwrite (&bmp_header->veritical_resolution, sizeof (unsigned int),
  1, wp);
 fwrite (&bmp_header->number_of_colors, sizeof (unsigned int),
  1, wp);
 fwrite (&bmp_header->number_of_important_colors, sizeof (unsigned int),
  1, wp);
}
void change_color_BluetoZero (char * image_pixel_ptr,
 BMP_Header * bmp_header, FILE *fp)
{
fread (image_pixel_ptr,bmp_header->image_size_with_padding_in_bytes
 ,1,fp);
 
 
 // change the Blue part of each pixel to zero
 // first calculate the padding size
 unsigned int pure_number_of_bytes_per_one_line
  = bmp_header->image_width*3;
 unsigned int padding_size =
   (4 - (pure_number_of_bytes_per_one_line % 4)) %4;
  // (pure_number_of_bytes_per_one_line % 4);
 char *p = image_pixel_ptr;
 unsigned int one_line_width_with_padding
  = bmp_header->image_width*3 + padding_size;
for (unsigned int i = 0; i < bmp_header->image_height; i++)
for (unsigned int j = 0; j < bmp_header->image_width; j++)
{
int first_byte_postion_in_a_line = i * one_line_width_with_padding;

   image_pixel_ptr[first_byte_postion_in_a_line+(j*3)] =image_pixel_ptr[first_byte_postion_in_a_line+(j*3)] - 10;
}
 
 /*
 for (int i = 0; i < 10; i++) //bmp_header->image_height
  for (int j = 0; j < bmp_header->image_width; j++ )
  {
      int first_byte_postion_in_a_line =
    i*one_line_width_with_padding;
   image_pixel_ptr[first_byte_postion_in_a_line+(j*3)] =255;
   image_pixel_ptr[first_byte_postion_in_a_line+(j*2)] =0;
   image_pixel_ptr[first_byte_postion_in_a_line+(j)] =0;
  }
*/ 
}
int main (void)
{
 // first read a bitmap file
 FILE * fp = fopen ("D:\\Desert.bmp", "rb"); // file open
 BMP_file_header_read (fp, &bmp_header);
 // BMP header information completely read
 // now read the pixel information
 // first prepare memory for the pixel data
 // with image_size_with_padding_in_bytes
    char * image_pixel_ptr;
 image_pixel_ptr  = (char *)malloc(bmp_header.image_size_with_padding_in_bytes);
 change_color_BluetoZero (image_pixel_ptr, &bmp_header, fp);
 
 // write a new bitmap file
 FILE * wp = fopen ("D:\\Blue_changed_BMP2.bmp", "wb");
 BMP_file_header_write (wp, &bmp_header);
 fwrite (image_pixel_ptr, bmp_header.image_size_with_padding_in_bytes
  , 1, wp);
 fclose(fp);
 fclose(wp);
 free(image_pixel_ptr);
 
}


변수가 너무 길다거나 하는건 제발 무시해줘..

bmp 파일을 오픈해서 이것저것 해보는중인데

내가 성공한건 사진에서 원하는 색을 변경하는것까지..

이제 더 나아가 사진 좌우대칭을 바꾼다거나 상하를 돌려보고싶은데

이건 언어문제가 아니라 내가 돌머리라서 어떻게 짜야할지모르겠다.

대충 for문만 고치면 될거가튼데..

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
303642 헐시발 이거 나만이런건가요? 디시 갤러리 메인에 프로그래밍이 사라졌어! [2] 헐시발(118.128) 12.02.17 69 0
303641 금딸일기-2일차 [1] ㅇㅇㅎ(110.47) 12.02.17 58 0
303640 오늘 면접 보고 온 후기 [1] 막장갤신학생갤로그로 이동합니다. 12.02.17 107 0
303639 전산실 괜찮나??? op dsad(121.161) 12.02.17 122 0
303638 length 질문점여 [2] (58.75) 12.02.17 42 0
303637 알파블렌딩이 동작 관련해서 질문이 있습니다~ Witch Doctor갤로그로 이동합니다. 12.02.17 60 0
303636 뉴비들이 읽어야 하는 글. [1] c(220.117) 12.02.17 94 0
303634 프로그래밍 하니까 사고방식이 많이 바뀌는거같다 [4] 모미지갤로그로 이동합니다. 12.02.17 138 0
303632 으히힣 짤보충했다. [3] ㅇㅇㅎ(110.47) 12.02.17 72 0
303631 궂이 sleep가 아니라도 그냥 [2] 모미지갤로그로 이동합니다. 12.02.17 43 0
303629 아 오늘 오티에서 아무말도 못하면 뭐임? [6] 공학적닭튀김갤로그로 이동합니다. 12.02.17 97 0
303628 국내도서 중에 openmp 책이라고 이거 하나뿐인데 [1] 일광면(119.198) 12.02.17 75 0
303626 c언어 배운거 써먹고싶은데... [10] 프로그래머한다갤로그로 이동합니다. 12.02.17 87 0
303625 게임 메모리조작하는게 쉬운일인가여??? [8] 위똥쩐갤로그로 이동합니다. 12.02.17 133 0
303624 c++에서 c 프로그래밍 실행하기 [4] 프로그래머한다갤로그로 이동합니다. 12.02.17 57 0
303623 c언어 Sleep() 말인데 [3] 모미지갤로그로 이동합니다. 12.02.17 171 0
303621 글리젠이 안되네? [3] ㅇㅇㅎ(110.47) 12.02.17 39 0
303619 C# 책 추천좀.. [1] 복근키보드갤로그로 이동합니다. 12.02.17 133 0
303616 제가 시간만 되면 C/C++/JAVA/dirctx/winapi/mfc [1] 1(211.197) 12.02.17 66 0
303615 추울때 데이트 하기 좋은곳 어디 있을까? [4] 올체갤로그로 이동합니다. 12.02.17 152 0
303614 C++ 컴파일러 만들기 어렵냐 [5] ㅁㄴㄻㄹ갤로그로 이동합니다. 12.02.17 140 0
303613 lol를 제외한 나머지 게임은 다 별로임 [4] ㅇㅇㅎ(110.47) 12.02.17 75 0
303612 이 게임 뭐야? 무서워. [1] 바보플머(218.155) 12.02.17 106 0
303611 님들 C > API 할까요 C > C++ > MFC 할까여 [4] 1(211.197) 12.02.17 121 0
303606 oracle db backup 받는방법 [14] iljeomobolt갤로그로 이동합니다. 12.02.17 83 0
303602 아 !!! 내가 종양이다 !!! 스콴씌갤로그로 이동합니다. 12.02.17 73 0
303601 노트북은 어디가 제일 잘만드는거 같음? [10] 올체갤로그로 이동합니다. 12.02.17 159 0
303596 지금 이 자리에서 널 죽.인.다. [2] ㅁㄴㄻㄹ갤로그로 이동합니다. 12.02.17 96 0
303595 아 몇일있음 복학인데 C, C++, 자료구조 다 까먹었네 ㅠㅠ [1] 썬즈갤로그로 이동합니다. 12.02.17 88 0
303594 씨발 포탈사이트의 조작질 [1] 1(121.182) 12.02.17 111 0
303593 C++이 외부참조 지원하면 참 좋을텐데... [2] SODMaster갤로그로 이동합니다. 12.02.17 110 0
303592 근데 횽들 개념만 알면 바로 구현가능하다는게 정말이야???? [5] 에이시아(203.90) 12.02.17 99 0
303591 횽들 편입하는데 학교 추천좀ㅋ [29] 편입생(112.133) 12.02.17 296 0
303590 아- 노래방 가고 싶다. ㅇㅇ [1] ☎v2.0™갤로그로 이동합니다. 12.02.17 72 0
303589 횽들 나이번에 편입하는데 학교추천좀 ㅋ 편입생(112.133) 12.02.17 52 0
303587 WebGL 스터디 오늘자 포스팅!@ [1] [성대아싸]갤로그로 이동합니다. 12.02.17 70 0
303586 횽들 나 닉넴 바꿈 중대아싸(203.226) 12.02.17 62 0
303585 요즘 일하면서 듣는 음악 ☎v2.0™갤로그로 이동합니다. 12.02.17 59 0
303584 앨런 웨이크... [3] ㅋㄱ(183.96) 12.02.17 70 0
303583 tcp/ip 완벽 가이드 이거... [2] ==(221.161) 12.02.17 108 0
303582 W3C 씹새끼들 [3] 호석갤로그로 이동합니다. 12.02.17 74 0
303579 ReadWriteLock 구현중인데 이게 왜 교착상태에 빠질까..? [2] SODMaster갤로그로 이동합니다. 12.02.17 69 0
303578 형들 일하느라 갤질 안하나 보1지? [3] ㅇㅇㅎ(110.70) 12.02.17 88 0
303576 게임 서버쪽 테크... [3] ==(221.161) 12.02.17 164 0
303571 TCP/IP 완벽 가이드 괜춘한가?? [16] ==(221.161) 12.02.17 312 0
303570 요리하는 프로그래머 [2] 올체갤로그로 이동합니다. 12.02.17 80 0
303568 matlab 잘 다루시는 분 있나요? [6] 핫뜨거갤로그로 이동합니다. 12.02.17 83 0
303566 SQLITE 쓸줄 아는사람 [5] f(203.237) 12.02.17 98 0
303564 우와!! 연구 그동안 몰랏던문제를 뚫어져라 보고연구햇음 근데 ..! [5] 코딩...?갤로그로 이동합니다. 12.02.17 157 0
303563 퇴갤. [1] ㅇㅇㅎ(110.47) 12.02.17 61 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2