나우캠퍼스 C# 언어 19강. 이미지(2/2) > c#

c#

Microsoft C# Programming 강의 리스트

나우캠퍼스 | C# 언어 19강. 이미지(2/2)

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
나우캠퍼스님의 c#강의 청각장애인을 위한 자막
15444117334503.jpg

 

이 정강이 이어서 더블 버퍼링을 보도록 하겠습니다
저희 더블 버퍼링 은요 이미지 로딩 된 이미지 가수의 이미지를 보다
빠르게 화면에 출력해서 우리가 눈으로 봤을때 아 깜빡 2막 보이지 않아요
그럼 보기 힘들죠 그래서 그런 깜빡이 니요 없도록 즉 줄여줄 수 있도록
해주는 방법이 바로 더블 버퍼링 입니다 해서 다 울먹 버리면 일반 뭐
이미지 프로그램 보다는 이 게임에서 주로 많이 쓰는 기법 중의 하나입니다
자 그러면은 같이 한번 보도록 하겠습니다
어 더블 버퍼링 은 여기에도 나오듯이 5
어 역할은 여기 왔습니다 이미지의 출력이다 이미지 출력에 깜빡 l 을
줄이기 위한 처리 다해서 만약에 하나의 화면에 12000 개
저 이미지를 하나씩 하나씩 그린다 화면은 111 물론 뭐 cpu 와 요즘
좋아져서 그런 깜빡임이 뭐 많이 그 생기지도 않고 또한 뭔가 그래픽카드도
굉장히 좋아졌죠 그래서 그런 깜빡임 에 대한 부분이 많이 없어진 했는데요
그래도 다수의 큰이미지 저희 이런 것들을 화면에 출력하려고 하면 은 아빠
이미 발생할 수 있겠죠
그래서 그것을 줄이기 위한 하나의 방법이 더블 버퍼링 2이고 이와 같은
부분들이 시사 베 도 제공되고 있습니다
그래서 그래서 보면은 어 지금 이와 같은 화면이 있습니다
화면이 뭐 1920 에 뭐 예를 써 1080 크기만큼 이 화면이 하시면은
이 화면과 특성이 똑같은 것 같은 빽 버퍼를 하나도 만듭니다
그래서 200 뽀뽀는 화면과 이때 에 대응되는 메모리 줘
그래서 이유와 같은 화면은 사실은 그래픽카드
즉 그래픽카드의 뱀 오리의
이와 같은 화면을 출력할수 있는 그 공간의 확보가 됩니다 그것도 왜 또
동일한 그게 메모리아 더 만들고
많이 출력하고자 할 때 출력하고자 하는 이미지를
어 요거 하나를 그냥 화면에 하나 하나씩 하나씩 옮겨 놓은 것니라
이 때 퍼포 에다가 요기에 관련돼 모든 이미지를 다 그려 넣습니다 그리고
놓은 다음에 무엇을 하냐면 요 화면 전환
그래서 원래는 이 메모리를 통해서 화면을 보여 줬었는데
그게 아니라 보다 200 버퍼를 통해서 화면에 짱 보여줍니다
그러므로 통해서 어이가 예 그렇게 해 주죠
그렇게 해주고 어요 100 버퍼가 출력되지 이전에 이미 이 화면은 계속
보여주고 있는 상태죠
그래서 그림 준비가 다 되면 화면을 빡쳐 단 하는 거죠
전화를 해서 화면에 출력해 주기 때문에 깜빡임 을 줄일 수가 있습니다
그래서 이와 같은 어 방법을 이용하면 은 많은 그래픽을 출력하는 경우
특히 어디에 주로 가겠습니까 당연히 게임이 겠죠 그래서 게임 같은
경우에는 이와 같은 그 기법에 필수적으로 들어가게 됩니다
그래서 용어도 보면 빽 버퍼 라는 거
백보 표는 화면과 동일한 특성을 가진 그 같은 부분 양 거다 며 오프
스크린에 뭐냐면 이렇게 조그 마한 이미지를 로딩 하더라도 이 조그만
이미지 그는 전부 다 어디 올라오니까 맥 우리 올라가자 나겠죠 그래서
고와 같은 그 작은 이미지들을 보통 스 파 이 트 또는 뭐 오프 스크린
의 하고도 얘기를 합니다 매
물이 적으로 온 오프 스크린 이안은 그 용어를 사용합니다
자 그래서 이와 같은 더블 버퍼링 있는데요
아까 2 더블 버퍼링을 할 때는 주의할 점이 있습니다 못하면 조금 좀
복잡합니다 그 구조가 요 그래서 그 구조를 어제까지 대 돌리면 쉽게
이렇게 풀이를 해 나구요
그 다음에 또 하나는 앞에서도 그래픽 같은 경우에는 그 형식이 항상
일정하다 그랬었죠
그래서 그래서 사용할 때는 잘 정리를 했다 가 그것을 그대로 가져와서
거기서 어
기본적인 포맷에 맞춰 놓고 그 다음에 내가 필요한 그 분만 사이사이에
코드를 작성하는 그런 방법으로 한 것이 좋습니다
자 그래서 이 더블 버퍼링 하고 관여된 뭐 관련된 관련된 모이게 관여된
좀 이상하다 그쳐 관련된 객체에는 요 3가지가 있습니다
그래서 버퍼 드 그래 패스 매니저 담에 어 버 퍼 링 크 스 컨텍스트
다음에 버퍼 드 그래픽스 1 클래스가 있고 그와 같은 구조가 이렇게 구조
되어 있습니다
자 가장 핵심은 뭐냐면요 지금 입어 포드 그래픽스 그저 크리스 부초
앞에서도 우리가 뭔가를 출력하거나 할 때는 전부 다 그래 팩스를 이용해
했었잖아요 줘 그래서 7 체는 입어 포드 그랬습니다 그렇게 옷을 통해서
대부분의 모든 것을 합니다
하지만 이것을 사용하기 위해서는 요런 라인을 쭉 타야 되는데요
자 먼저 이와 같은 매니저를 우리가 생성을 합니다
자 그 다음에 입어 포도 그래 또 그래프의 컨텍스트 라고 하는 용 분이
쪄서 요건은 요기에 있는 이 객체의 해서 어요 부분 즉 요를 참조를
합니다
참 2 하고 이 객체에서 몰수 합니까 생성 아 줘 무엇을 용어를 쭉
요거를 생각합니다
그쵸 그래서 요구 주로 되기 때문에 또 구조의 이까 캐서 제가 뭐 코드
적으로 설명을 드리도록 하겠습니다
그 듯이 일단 공부에 관련된 또 몇 명까지 좀 셋 업을 해야 될 부분이
있어서 앞에서 아 요런 기체 세기가 형성 그 연관을 맺는 구나
그 다음에 이런 형태가 항성 될 정해져 있기 때문에 이정현이 형태로 말
쓰면 되는구나 라고 여러분들이 * 하시면 됩니다
아 그 다음에 폼의 부분은 그 속성에 보면 더블 뭐 포드 라고 하는
속성이 있습니다
그렇죠 그래서 그거를 틀어 로 설정을 이렇게 하시 하면 해요
즉 그 다음에 얻어 불 부 포드 속성 코드로 뭐 설정 하는 뭐 방법도
있습니다
어 설정은 방법이 있는데 뭐 이거 보다는 요 속성에서 투 1
그냥 클릭해 리 훨씬 낫겠죠 그래서 요거 를 사용 해 주시고요
어도비 더블 버퍼링을 출력한 할 때는 앞에서 제가 말씀드렸듯이 애가 이제
실세를 올해 말씀 드렸었죠
그래서 그 실세를 이용해서 어머 2 이미지 그려주고 뭐 이같이 클리어를
통해서 더블 복부를 지워준다 던가 뭐 이런 부분들을 합니다 그래서 우리가
그냥 옛 으로 이미지만 해도 이미 그 같은 화면 전환 이라든가 이런
메모리 상에서 의 어떤 관련된 사항들을 싸그리 다 처리를 다 하죠
어 그리고 이제 앞에 색 뜻이 더블 버퍼링 객체를 생성하는 것
그래서 지금 여기 같은거에 1 2 색 주유 3개의 객체는 어떻게 하면
됩니까
한 번만 생성됩니다 좀 생성하고 계속 이게 재활용해서 쓰면 되는 것이죠
예 그래서 고 코드에 대한 사들을 꾸며서 이 객체간의 관계를 살펴 보도록
하겠습니다
코드 보겠습니다 자 앞에서 말씀드렸듯이 입어 포드 그래픽스 컨텍스트
다음에 어 버 포드 그래픽스 해서 이렇게 되겠습니다
자 그 다음에 개 개체 밖에 안 보이죠 먼저 일단 요 부분은 항상
이렇게 우리가 늘 그 생성된 상태에서 있게 써야만 하구요
자 초기와 에서 한 번만 해주면 됩니다
아까도 말씀드렸듯이 법보 드롭스 매니저 커런트 를 통해서 컨텍스트를
참조로 합니다
저서 어 이렇게 이렇게 되어있고 다음에 커런트 란 부분이 스테이트 이란
것을 우리가 알 수가 있는 것이죠
이것만으로도 그 다음에 요 부분에 있어서 어 요 부분에 있어서 우리가
이렇게 마우스를 이렇게 같다 되면은
저 같다 되고 그 다음에 여기에서 제가 한 번 이어서 경의를 이동해서
볼게요
타게 되면 요 앞에 뭐가 있습니까 스테이트 붙어 있는 것을 우리가 확인해
볼 수가 있죠 그래서 아 속성에 대한 부분이 이렇구나
자 그 다음에 이렇게 해서 컨텍스트를 참조로 합니다
그래서 매니저 그래버 퍼드 그래픽스 mn 절을 해 있는 그 부분을 참조
하 죠
그 다음에 의원 맥스 놈은 버 포에서 내가 지금 100 법 거죠
그 더 불법 펄이 하기은 100 버퍼의 크기를 뭐여
어 생성을 해야 됩니다 그래서 사이즈의 서 8 병이 백사이드 로고 뽀뽀를
생성 하고요
그렇게 복잡하죠 예 차 팝니다 더 큼 좀 그렇습니다
음 타구요 그 다음에
지금 용 어 잠깐만 내려 볼게요 여기서
아 어 그 다음이 0 2 4
좀 여기서 얼룩 케이트 라고 하는 부분이 있습니다 할당 하는 것이죠
그 해서 여기서 크리에이트 그래픽스 라고 하는 이것을 통해서 현재 저
폼에 있는 그래픽스 를 세덤 해줍니다
그것을 꽈 동일한 특성을 가지는 800 600 크기 만큼의 이제 버퍼를
이제 질 제로 생성 하는 것이죠
그리고 어떻게 합니까 그래픽스 를 통해서 다룰 수 있도록 같이 명시합니다
그래픽스 점 그래픽스 거죠 네 그래서 이거는 버퍼 드 그래픽스 줘 예
그래픽스의 클리 에서 어 컬러 옐로 앞에 세토 똑같죠 하게 되면은 때
법화 노란색 없이 악 지워집니다 그쵸
그 다음에 이미지 프롬 파일 통해서 포토 jpg 를 로디아 져 로딩하고
그 다음에 저 같은 경우는 새 클라이언트 사이즈 코에서 800 600
으로 유아 짓에 더블 했습니다
아 자 그다음에 화면에 이제 실제 이제 출력해주는 부분인데요 자
출력해주는 붓 반복해요
자 출력할 때 좀 좌표에 대한 부분들을 좀 그 인위적으로 랜덤하게 하기
위해서 이 왓치맨 놈 이라고 하는 저 랜덤 이라는 객체를 생성 했습니다
선유 랜덤 했구요
그 다음에 아이는 0에서 100 개의 그쵸
조금 많이 했죠 100개 하고 그 다음에 마 이미지의 즉 이미지를 에
100번을 그린 겁니다 자 그다음에 그릴 때는 아빠 있었던 버퍼 드
그래픽스의 그래픽스 를 통해서 들어오 임 1 통해 출력하고 요 그 다음에
랜더 넥스트 에서 0에서 최소 는 0에서 부터 7배 까지의 이미 의 값을
x 좌표
그 다음에 0 에서부터 500 그래서 802 60일이니까
저 800 에서 600 사이즈이고 그 다음에 지금 하는 요 이미지가 어
가로길이 100세로 otb 100 이미 라죠
그래서 그 백 길이만큼 뺀 어 그 길이만큼 해서 영역도 뭐 7 배까지 병
에서도 5배까지 의 좌표를 어 팩스의 작별을 그래서 즉 이미지가 있으면
의 이미지에 유우 좌표를 초 첨단 랜덤하게
출력할 수 있도록 이어 하지 하고 있죠 이렇게 한 후에 여기 중앙대 로케
하게 되면은 점수가 여기서 흐려지는 모든 내용들이 빽 버퍼에 전부다
그려집니다 출력할 때는 화면에 짬 그려 줘야 되겠죠
그래서 여기 나온 시 그래픽스 좀 랜더 에 다 해놓고 어디다가 현재의
화면 그립 x 에다가 즉 용서를 낸 들어 해주세요 라고 해서 앱 버퍼에
있는 내용을 착 보낼 수도 있구요
그래서 이것은 내 구조는 어떻게 되는지 모르겠어서 자 복사해 주는 경우도
있고요 아니면 그 그래피 카드에 있는 그 주 메모리와 백퍼 간에 그
메모리 주소가 있습니다 그 메모리 주소를 바꾸어 주는 형태가 있어요 것을
페이지 플리핑 이라고 얘기합니다 서 큰 방법을 쓸 수도 있고 메모리와
메모리 간의 정적인 복사 를 통해서 이루어질 수도 있습니다 서 고 부분은
제가 이것을 그랬을 뜯어 볼 수가 없잖아요 하기 때문에 잘못 했습니다
그래서 아 그 두 가지 방법 중에 하나를 썼을 것이다 라는 것만 우리가
생각해 볼 수가 있습니다
아무튼 그 정도로 기어 해 볼 수가 있습니다
이렇게 해서 실제로 으
음 이것을 가지고서
출력을 자 한번 해보면 은 이와 같이
이와 같이 예 100개를 그려줄 수 있고요
크게 뭐 이렇게 한들 뭐 이렇게 깜 빵이 보이진 않죠
또 제 노트북에 좀 성능이 조금 좋기도 해서 좀 그럴 수도 있는데요 대
처음 게 안 속해 보겠읍니다
수심 가니 그 다음에 져 천기 까지 그래 내구요
만기까지 남 어떻게 될까요 아 조금 좀
고기 신병 생긴 한데 만개 까지는 암 안개도 뭐 무난하게 그려낸 해요
예 그래서 이런 것을 받고 요렇게 해 줄 수 있는 기법이 더 불구 버린
양을 서 있습니다
요거 하실때는 요 앞에서 요거 탄 보셔야 되는데
어여 이몸 속성이 있죠 4men 은 속성을 보시면 은
어 속성을 쭉 보시게 되면 은 쭉 에 위쪽 있었던걸로 교환 되요
음 꺼져 있죠 예 동자에 보면 더블 버퍼 드가 있습니다 그렇죠
w 뽀대 보면 요게 기본값으로 볼 수 되있어요
그래서 요것을 무엇을 받고 자라 트 로 바꾸자 흐르면 더불 버퍼에 대한
속성을 뭘로 생각해 준 것이다
아 트 로 설정해 준 것이죠 물론 코드를 해줄 수 있지만 곧 좀 귀찮아요
그래서 이런것들은 간단하게 요렇게 해 준 것이 오히려 더 낫습니다
어 그 다음에 요것도 이제 설명을 아까 미리 들었던 내용인 되어
예 어 화면에 출력하기 위해서 저출력 학에서는 에 랜 들은 것을
사용하고요 그 다음에 어 내가 지금 출제 로 출력하고자 할 그래픽스 즉
액체를 셋 업을 해 준 되죠 그래서 아까 같은 경우에는 즉 위에 젊
그에는 그래픽스 를 회색 해서 현재 화면에 추적해 줘라 라고 이렇게 해
줄 수가 있습니다 해서 이미지 100번 해준 것을 우리가 쭉 한번
살펴봤습니다
자 이렇게 해서 더블 버퍼링을 이용해서 이미지를 로딩하는 방법을 살펴
봤는데요
어 더블 우퍼 링을 이용하는 얘는 어 다수의 어떤 이미지를 어 이렇게
출력하는 부분이기 때문에 어울려 그냥 일반적인 플랜맨 은 좀 사용할 일이
별로 없을 거 에서 뭐 2시 # 을 이용해서 모 게임을 만들거나 아니면
그 이미지를 다룰 수 있는 분 애니메이션을 시켜주는 뭐 이런 부분에서는
이런 더 불법 걸림을 사용할 수가 있습니다
그 다음에 이미지를 우리의 리소스의 다경 독해서 사용할 수 있는 방법이
있어요
그래서 고 부분 볼게요
어리 쑤 스 이미지 그래서 미쓰이 로고 의 형태로 이미 즐 등록해서 쓰는
경우에는 이와 같이 실행 파일의 첨가를 하게 됩니다 그렇기 때문에 당연히
실행파일이 커지겠죠
왜 그런 그 잠 단점이 있습니다 사용하기는 좀 쉬운데 실행파일이 커지는
그런 부분이 있습니다
그래서
여러분이 이와 치어 리소스의 이미지를 등록하기 위해서는 리 소스
디자이너를 실행을 하는데요
1 2 소스 디자인의 실행하는 방법은 리 소스 좀 알리 ss 라고 하는
이 같은 파일이 있습니다 그래서 여기 여러분들이 솔루션 탐색 초 빛
요소들이 왼쪽에 보면 은 오른쪽에 보면 은 쏘리 센 탐색기가 있죠
솔 쓰는 탐색기 쭙 보시게 되면 은 이 거 같지
미 소스 res 라고 하는 이 파일이 있음 데서 요거를 더블 클릭하시기
되면은 이와 같은 얼이 소스 디자이너가 이렇게 뜨게 됩니다 여기에서
여러분들이 추와 를 하고자 하는 뭐 다 어리 소스 추가해서 기존 파일
추가를 해서 이제 이미지를 등록을 시킵니다
에 등록을 지키고 요 등록시키는 과장 볼까요 예 볼게요
어 빚은 스튜디오에서 쏜 셤 탐색기를 여러분들이 쭉 보시면요
여기 보시게 되면 은 아 어 여기 여기에 보시게 되면 은 리 소스 res
x 라고 하는 요 파일 있어서 이걸 더블 클릭하시고 되면 이와 같이 소스
저 디자이너가 이렇게 뜹니다
자 여기에서 여러분들이 추가를 하고자 할 때는 기존의 파일이 있잖아요
파리 에서는 기존 파일 추가 클릭하고 그 다음에 여러분들이 원하는
이미지를 선택합니다
정 선택을 어 뭐 아무나 할수 있는데요 그래서 선택을 하게 되면은 버튼
선택된 이미지가 이와 같이 저희 이렇게 등록이 되어 그 다음에 그 이름이
테스트와 한 몫 포토 이렇게 등 동의 됩니다
그래서 요 이름을 가지고 와서 이제 출력을 할 수 있게 되는 것이죠
그래서 이렇게 여러분들이 해 보시면 되구요
아 그 다음에 실행 파일에 포함 할 때는 어이 그리 소스에서 요 같은 항
항목이 있습니다 그래서 거기에서 is 에 포함 이렇게 명실 해줘야 되는데
이것은 이미지 의 속성을 보시면 됩니다
다 아까 했던 여기에서 저희가 와 같은 이미지 였을때 여기서 마우스
오른쪽 버튼을 누르게 되면은 요 클릭하게 되면 은 그 옆에 보면 은 그
속성창이 있잖아요 그죠
계속 순창 했습니다 계속 승차 있는데 클릭하면 속성 창이 나오죠
속성창이 보면은 여기에 보시게 되면 은
예 요금 없는 욕 한 몫 있어요 그렇죠
펄시스터즈 센스 라고 하는 이 같은 항목이 있는데 여기에서 이런데
어플리 글 해 보시게 되면 은 여기 조금 좀 클릭을 하게 되면 두 가지
형태가 있습니다 컴파일 시간 링크 댐 그 res x 포함된 데 알겠어 에
포함된 이렇게 선택하셔야 되면은 실행파일이 라고
어 실행 파일의 여태 이미지가 같이 에 들어가서 이제 하나의 그 그
프로그램 형태로 이 동작을 하게 된 것이죠
예 아 어 리소스 이미지를 다룰 때도 운문 줘 똑같습니다 해서요 bit
의 아주 이용을 수정해서 뭐 이미지보다는 뭐 비트맵 하나만 잘 기억하시면
될것 같아요
하지만 이미지도 알아 두셔야 됩니다 그래서 비트맵 이 이미지를 상속하고
있다는 거고 고무 공급시 가장 중요한 것 같아요
자 그래서 비트맵 테고 다 메어 이미지 며 이렇게 명시합니다 그 다음에
출력할 때는 그래픽 스토어에서 이렇게 출력하면 되죠
예 그래서 소스를 뭐 보시면은
음 용이나 어디 c 어 클라이언트 크기를 이미리 소스가 미디 로딩이 되기
때문에 저는 계획 3 스프라이트 사이즈 여기를 통해서 제가 3 러브 하도
되어 3 더블 하도록 클라이드 크기를 미리 확정 하도
이와 같이 코드를 작성했습니다 해서 보니까 아 어엿한 리소스 같은
경우에는 4t 라고 하는 어
그쵸 프로퍼티 이즈 라고 하는 이 것을 이용합니다 해서 거기에 좀
리소스의 좀 테스트와 아니라고 하는 같은 이미지 그 가 있었죠 그래서
여기 보시게 되면 지금 여기 와 같이
저 지금
요 아 티 미소 수명이 이렇게 어
대응 것을 볼 수가 있습니다 되어 있고 그 다음에 여기에는 미 싸와
이슬을 이와 같이 지정해 줘야 합니다
그래서 그 다음에 우리가 그와 같은 그 리소스를 쓸 때 비트맵으로 우리가
해주죠
그래서 할 때 이런 형태로 점에서 어 어 이런 형태로 비트맵 2 참조 를
할 수 있도록 해주시구요
그 다음에 출력할 때는 그쵸 그래픽을 통해서
그저 드로우 이미지를 통해서 출력을 합니다
죠 출력 하구요 그 다음에 어
부토 에서 비트맵 이틈에 하나 말씀 되죠
예 하나의 비트맵 객주 어차피 지금 현재 보면은 이름
요런 개념이죠 요거요거 유보에 대한 제 초 용어에 대한 이미 리소스에
대한 이미지 객체를 무얼로 비트 핵으로 참조 한다.는 얘기죠
참조 라는 것은 뭡니까 여기에 이미 있다는게 객체 있다는 얘깁니다 이거
또 어떻습니까
거기에 관련된 이미 객체가 이 내 부분에 이딴 병입니다 그것을 물로 대뜸

댓글 0개

등록된 댓글이 없습니다.

본 사이트의 컨텐츠는 명시적으로 공유기능을 제공하고 있는 공개된 자료를 수집하여 게시하고 있습니다.

저작권, 강의등록, 광고, 제휴등은 "관리자에게 문의"로 메세지 주시면 확인후 답변드립니다.

Menu