Combiner 0.001의 소스를 짜면서...
어떻게 프로그램명과 버전정보를 가운데로 정렬할 지 막막했었는데...
문득 문자열의 길이를 int형으로 반환해주는 Strlen() 함수가 생각나서...
Strlen() 함수를 응용해보았는데, 된다 -_-b




 아래는 문자열을 가운데 정렬하는 방법의 원리이다
1. 프로그램의 가로폭(width)과 문자열(text)를 #define 으로 정해둔다.
2. Strlen() 으로 text의 길이를 훔쳐온다
(여담이지만 Strlen()이 Steal 의 p.p형인 stolen 으로 보여서 '~의 길이를 구한다' 라는 표현보단 stolen의 원형인 steal. '~의 길이를 훔치다' 라는 표현을 애용한다)
3. 가로폭의 절반에서 text 길이의 절반을 뺀 만큼 공백으로 채운다
4. text를 쓴다.


아래는 Combiner 에 적용한 소스의 일부이다..

#include <stdafx.h>
#include <string.h> // Strlen() 함수를 쓰려면 반드시 인클루드 해야한다.

// width와 text를 여기서 정해둔다.
#define width "==============================================================="
#define text "Combiner 0.001 Alpha Version"
#define text2 "Prescott (http://prescott.pe.kr)"


int main(void)
{
    int i, j;


    printf("%s\n", width);

    // 가운데정렬
    for(i=0 ; i<((strlen(width) / 2) - (strlen(text) / 2)) ; i++) printf(" ");
    printf("%s\n\n", text);
   
    // 응용하여 오른쪽 정렬
    for(j=0 ; j<(strlen(width) - strlen(text2)) ; j++) printf(" ");
    printf("%s\n\n", text2);

    printf("%s\n", width);

    return 0;
}



실행결과



참~~~~~~~~~~~~~~~~~~~~~~~ 쉽죠잉?


저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License

영상처리 관련 도서...

2009/05/16 02:05 | Posted by Prescott


Visual C++을 이용한 디지털 영상처리

강동중| 사이텍미디어| 2003.03.08 | 420p | ISBN : 8955507887

- 카메라로 물체 추적에 대한 내용도 실려있다. / 저자는 이 책을 읽고 로봇대회에 나가도 된다고함.......


DirectShow 멀티미디어 프로그래밍(IT 백두대간)
신화선 | 한빛미디어 | 2002.05.30


IT EXPERT 영상 처리 프로그래밍 by Visual C++
황선규 | 한빛미디어 | 2007.05.25

















음... 일단 생각해 본 프로그램들...

1. DV 1394출력을 PC로 받아서 화면에 변동이 없으면 캡쳐 중지, 변동이 있으면 캡쳐
 * HDV가 아닌 DV를 쓰는 이유... 이미지 프로세싱에 시간이 걸려서... 컴스펙도 딸리니 -ㅁ-;
- DV 1394 출력을 프로그램으로 받을 방법에 대해 연구해야함.
- 변동이 있는것을 확인 할 방법은 [Visual C++을 이용한 디지털 영상처리] 를 참조한다.


2. Transport Stream (.ts / .tp / .trp) 파일 편집툴 (병합은 Console Programming으로도 충분히 할수있다...)
 - 지원하는 Codec은 MPEG2와 H.264이다.
 - Preview의 경우에는 DIrectshow를 이용하면 편할 것 같다 (pc에 설치된 decoder 사용)
 - 병합의 경우 Console에서 copy 명령어를 활용한다.... 주말에 만들어 봐야지!
 - 스플리터에 대해 알아봐야한다... 자주 가는 곳에서 얻은 정보에 의하면 플레이어의 스플리터와 에디터의 스플리터는 별도. 편집툴들은 대부분 자체 개발한 스플리터를 쓴다고 한다...
 - 스플리터를 알아보기 전에 버추얼덥의 Direct Stream Copy의 원리부터 알아야 할 것 같다.
 - 추후 여러 Codec을 지원하게 하도록 한다.....


3. WM용 MPEG2 TS Decoder
 - Windows Mobile OS에는 MPEG2 TS스트림을 재생시키는 프로그램이 없다.
 - CPU 성능이 딸려서 그렇겠지만, 일단 시도는 해 봐야지 ^^;
 - 모바일 펜티엄3 650Mhz에서 QAM TP가 CPU점유 70~80%를 먹어가면서 재생이 되었었는데, 요즘 스펙이 후달달한 옴니아나 엑스페리아에선 가능하지 않을까?
 - 요즘 PDA (혹은 스마트폰) 들은 CPU말고도 GPU도 있다. 듣기로는 GPU에 하드웨어가속이 붙어져 있다고 하던데?! 활용할 수 없을까?


4. 간단한 이미지파일 보정툴
 - BMP, JPG, GIF, PNG 그리고 RAW 포맷을 지원한다
 - 샤픈, 블러, 리사이즈, 크롭을 구현해본다
 -  [참고] bitmap 파일 구조 http://www.daubnet.com/formats/BMP.html
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License

이전 1 다음