| 고급 프로그래밍 및 실험 11주차 실습 |
Technology 07/05/16 18:46 ( Translate this page  )
글 주소 : http://ohyung.net/382
분명 내 계산에는 12주차인데.... 왜 11주 차라고 하는지는 미지수;;;

파일 입출력입니다. 256*256의 raw파일을 제어 하는것입니다.
돌리고 막 잉 거울효과에 인버팅에 막 여러가지 작업을 하는겁니다.


소스 코드 타입 : C
#include<stdio.h>
#include<stdlib.h>

void main()
{
        FILE *read_fp, *write_fp;
        int i,j;
        unsigned char temp[256][256];
        unsigned char write[256][256];
        unsigned char write_temp[256][256];

        read_fp=fopen("Lena(256x256).raw","rb");
        if(!read_fp)
                printf("파일이 존재하지 않습니다.\n"),exit(1);
        fread(temp,sizeof(unsigned char),256*256,read_fp);
        fclose(read_fp);

       
        // 회전부 Rotate Right
        for(i=0;i<=255;i++)
                for(j=0;j<=255;j++)
                        write[j][255-i] = temp[i][j];
       
        write_fp = fopen("rotate_right.raw","wb");
        fwrite(write,sizeof(unsigned char),256*256,write_fp);
        puts("우로 회전 완료");
        fclose(write_fp);
               
        // 회전부 Rotate Left
        for(i=0;i<=255;i++)
                for(j=0;j<=255;j++)
                        write[255-j][i] = temp[i][j];
       
        write_fp = fopen("rotate_left.raw","wb");
        fwrite(write,sizeof(unsigned char),256*256,write_fp);
        puts("좌로 회전 완료");
        fclose(write_fp);


        // 인버팅부
    for(i=0;i<=255;i++)
                for(j=0;j<=255;j++)
                        write[i][j]=~temp[i][j];
                        //write[i][j]=255 - temp[i][j];

        write_fp = fopen("invert.raw","wb");
        fwrite(write,sizeof(unsigned char),256*256,write_fp);
        puts("역상 효과 완료");
        fclose(write_fp);

        // 거울 효과
        for(i=0;i<=255;i++)
                for(j=0;j<=255;j++)
                        write[i][255-j] = temp[i][j];
       
        write_fp = fopen("mirror.raw","wb");
        fwrite(write,sizeof(unsigned char),256*256,write_fp);
        puts("거울 효과 완료");
        fclose(write_fp);

        // Vertical
        for(i=0;i<=255;i++)
                for(j=0;j<=255;j++)
                        write[255-i][j] = temp[i][j];
       
        write_fp = fopen("vertical.raw","wb");
        fwrite(write,sizeof(unsigned char),256*256,write_fp);
        puts("상하 반전 완료");
        fclose(write_fp);

        // Rotation & Inverting
        for(i=0;i<=255;i++)
                for(j=0;j<=255;j++)
                        write_temp[255-j][i] = temp[i][j];
       
    for(i=0;i<=255;i++)
                for(j=0;j<=255;j++)
                        write[i][j]=255 - write_temp[i][j];

        write_fp = fopen("rotation_inverting.raw","wb");
        fwrite(write,sizeof(unsigned char),256*256,write_fp);
        puts("회전후 역상 완료");
        fclose(write_fp);

}
태그 : (올블로그 tag 검색이올린 tag 검색Technorati tag검색) , (올블로그 tag 검색이올린 tag 검색Technorati tag검색) , (올블로그 tag 검색이올린 tag 검색Technorati tag검색) , (올블로그 tag 검색이올린 tag 검색Technorati tag검색) , (올블로그 tag 검색이올린 tag 검색Technorati tag검색)
| 이 포스트에 대한 이용규약 |
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 라이센스 에 따라 이용하실 수 있습니다.
This work is licensed under a Creative Commons Attribution 2.0 Korea LicenseLink in a new window.

| 트랙백 & 댓글|
트랙백 주소 :: http://ohyung.net/tb/382
댓글을 씁니다. ( Write a comment )