Blame platform-demos/ko/magic-mirror.vala.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="magic-mirror.vala" xml:lang="ko">
Packit 1470ea
Packit 1470ea
  <info>
Packit 1470ea
  <title type="text">마법의 거울(Vala)</title>
Packit 1470ea
    <link type="guide" xref="vala#examples"/>
Packit 1470ea
Packit 1470ea
    <desc>지스트리머와 GTK+로 웹캠을 거울처럼 사용합니다</desc>
Packit 1470ea
Packit 1470ea
    <revision pkgversion="0.1" version="0.1" date="2011-03-19" status="review"/>
Packit 1470ea
    <credit type="author">
Packit 1470ea
      <name>Daniel G. Siegel</name>
Packit 1470ea
      <email its:translate="no">dgsiegel@gnome.org</email>
Packit 1470ea
    </credit>
Packit 1470ea
    <credit type="author">
Packit 1470ea
      <name>Johannes Schmid</name>
Packit 1470ea
      <email its:translate="no">jhs@gnome.org</email>
Packit 1470ea
    </credit>
Packit 1470ea
    <credit type="editor">
Packit 1470ea
      <name>Marta Maria Casetti</name>
Packit 1470ea
      <email its:translate="no">mmcasetti@gmail.com</email>
Packit 1470ea
      <years>2013</years>
Packit 1470ea
    </credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>조성호</mal:name>
Packit 1470ea
      <mal:email>shcho@gnome.org</mal:email>
Packit 1470ea
      <mal:years>2017</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
<title>마법의 거울</title>
Packit 1470ea
Packit 1470ea
<synopsis>
Packit 1470ea
  

거울이 벽에서 떨어져 나가 수많은 조각으로 깨졌습니다. 그러나 턱수염을 면도하거나 화장을 하려면 거울이 필요합니다! 통근 버스를 잡기까지 15분 밖에 안남았습니다. 뭘 할 수 있을까요?

Packit 1470ea
  

이 따라하기 지침을 통해 웹 캠을 거울로 사용하는 프로그램을 만들겠습니다. 다음 방법을 배워나갑니다:

Packit 1470ea
  <list>
Packit 1470ea
    <item>

GTK+ 프로그램 만들기

</item>
Packit 1470ea
    <item>

지스트리머로 웹캠에 접근해서 결과 동영상을 창에 넣기

</item>
Packit 1470ea
    <item>

웹 캠으로 사진 찍기

</item>
Packit 1470ea
  </list>
Packit 1470ea
  

이 지침을 따라갈 수 있으려면 다음이 필요합니다:

Packit 1470ea
  <list>
Packit 1470ea
    <item>

<link xref="getting-ready">안주타 IDE</link> 설치 사본

</item>
Packit 1470ea
    <item>

GTK, 지스트리머, Vala 컴파일러 설치

</item>
Packit 1470ea
    <item>

객체 지향 프로그래밍 언어 기본 지식

</item>
Packit 1470ea
  </list>
Packit 1470ea
</synopsis>
Packit 1470ea
Packit 1470ea
<media type="image" mime="image/png" src="media/magic-mirror.png"/>
Packit 1470ea
Packit 1470ea
<section id="anjuta">
Packit 1470ea
  <title>안주타에서 프로젝트 만들기</title>
Packit 1470ea
  

코딩을 시작하기 전에 안주타에서 새 프로젝트를 설정해야합니다. 이 프로그램은 빌드에 필요한 모든 파일을 만들고 그 다음 코드를 실행합니다. 또한 이 모든 상태를 유지 관리하는데 쓸만합니다.

Packit 1470ea
  <steps>
Packit 1470ea
    <item>
Packit 1470ea
    

안주타를 시작하고 <guiseq><gui>파일</gui><gui>새로 만들기</gui><gui>프로젝트</gui></guiseq> 를 눌러 프로젝트 마법사를 여십시오.

Packit 1470ea
    </item>
Packit 1470ea
    <item>
Packit 1470ea
    

<gui>Vala</gui> 탭에서 <gui>GTK+ (단순)</gui>를 선택하고, <gui>계속</gui>을 누른 다음, 나타난 페이지에서 몇가지 자세한 내용을 입력하십시오. 프로젝트 이름과 디렉터리에 <file>magic-mirror</file>를 입력하십시오.

Packit 1470ea
   	</item>
Packit 1470ea
   	<item>
Packit 1470ea
    

따라하기 지침을 통해 사용자 인터페이스를 직접 만들 예정이므로 <gui>사용자 인터페이스에 GtkBuilder 사용</gui> 설정을 끄십시오. 인터페이스 빌더 사용법을 알아보려면 <link xref="guitar-tuner.vala">기타 조율 프로그램</link> 따라하기 지침서를 확인하십시오.

Packit 1470ea
    </item>
Packit 1470ea
    <item>
Packit 1470ea
    

<gui>외부 패키지 설정</gui>을 <gui>켬</gui>으로 설정했는지 확인하십시오. 다음 페이지의 목록에서 gstreamer-0.10를 선택하여 프로젝트에 <app>지스트리머</app> 라이브러리를 넣으십시오.

Packit 1470ea
    </item>
Packit 1470ea
    <item>
Packit 1470ea
    

<gui>적용</gui>을 누르면 프로젝트를 만들어줍니다. <gui>프로젝트</gui>나 <gui>파일</gui>탭에서 <file>src/magic_mirror.vala</file> 파일을 여십시오. 다음 줄로 시작하는 일부 코드를 볼 수 있습니다:

Packit 1470ea
    
Packit 1470ea
using GLib;
Packit 1470ea
using Gtk;
Packit 1470ea
    </item>
Packit 1470ea
  </steps>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="build">
Packit 1470ea
  <title>첫 코드 작성</title>
Packit 1470ea
  

코드에서 (비어 있는) 창을 불러와서 보여줍니다. 자세한 내용은 아래에 있습니다. 기본을 이해하셨다면 건너뛰십시오:

Packit 1470ea
  <list>
Packit 1470ea
  <item>
Packit 1470ea
    

using 선언부 두줄은 이름 여역을 가져오므로 굳이 이름을 적어넣을 필요는 없습니다.

Packit 1470ea
   </item>
Packit 1470ea
   <item>
Packit 1470ea
    

Main 클래스 생성자에서는 새 창을 만들고 제목을 설정합니다. 그 다음 창을 보여주고, 창을 닫았을 때 어떤 프로그램을 끝낼지 시그널을 연결합니다. 다른 시그널은 나중에 살펴보겠습니다.

Packit 1470ea
   </item>
Packit 1470ea
   <item>
Packit 1470ea
    

정적 main 함수는 Vala 프로그램을 실행할 때 기본으로 동작합니다. Main 클래스를 만들고, 섲렁하며, 프로그램을 실행할 몇가지 함수를 호출합니다. Gtk.Main 함수는 사용자 인터페이스를 실행하고 이벤트(마우스 단추 누름과 키보드 키 누름) 기다림을 시작하는 GTK 메인 루프를 시작합니다.

Packit 1470ea
   </item>
Packit 1470ea
  </list>
Packit 1470ea
Packit 1470ea
  

이 코드를 사용할 준비가 됐으니 <guiseq><gui>빌드</gui><gui>프로젝트 빌드</gui></guiseq>(또는 <keyseq><key>Shift</key><key>F7</key></keyseq> 키 누름)를 눌러 코드를 컴파일할 수 있습니다.

Packit 1470ea
  

<gui>설정</gui>을 <gui>기본</gui>으로 바꾸고 <gui>실행</gui>을 눌러 빌드 디렉터리를 설정하십시오. 처음 빌드 때 한 번만 실행하면 됩니다.

Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="webcam">
Packit 1470ea
 <title>지스트리머로 웹캠 동영상 스트림 접근하기</title>
Packit 1470ea
 

지스트리머 멀티미디어 프레임워크는 웹캠 동영상을 처리할 수 있습니다. 동영상 스트림에 접근할 수 있도록 지스트리머를 프로그램에 추가해보겠습니다.

Packit 1470ea
Packit 1470ea
Packit 1470ea
using GLib;
Packit 1470ea
using Gtk;
Packit 1470ea
Packit 1470ea
public class Main : Object
Packit 1470ea
{
Packit 1470ea
	private Gst.Element camerabin;
Packit 1470ea
Packit 1470ea
	public Main () {
Packit 1470ea
		this.camerabin = Gst.ElementFactory.make ("camerabin", "camera");
Packit 1470ea
		this.camerabin.set_state (Gst.State.PLAYING);
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	static int main (string[] args) {
Packit 1470ea
		Gtk.init (ref args);
Packit 1470ea
		Gst.init (ref args);
Packit 1470ea
		var app = new Main ();
Packit 1470ea
Packit 1470ea
		Gtk.main ();
Packit 1470ea
Packit 1470ea
		return 0;
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
 <steps>
Packit 1470ea
 <item>

지스트리머에서는 화면에 그림을 띄우는 방법을 다루기 때문에 우선 앞서 만든 창을 제거하겠습니다.

Packit 1470ea
 </item>
Packit 1470ea
  <item>
Packit 1470ea
  

이제 웹 캠에 접근할 지스트리머 이벤트를 만들겠습니다. 일체형 카메라 구성요소이며 사진, 동영상, 효과적용 기능 등이 있는 Camerabin 구성 요소를 활용하겠습니다. 우리가 활용하기에 완벽하죠! 지스트리머 파이프라인에 this.camerabin.set_state (Gst.State.PLAYING)로 지스트리머 파이프라인에 재생을 시작할 거리를 만들었다고 알리겠습니다.

Packit 1470ea
  

Of course it is also possible to integrate the video more tightly into other

Packit 1470ea
  windows but that is an advanced topic that includes some details of the X Window
Packit 1470ea
  System we will omit here.
Packit 1470ea
  

Packit 1470ea
  

다시 컴파일하고 실행하십시오. 창 두개가 뜹니다. 다음 단계에서는 GTK+ 창으로 동영상을 통합하겠습니다.

Packit 1470ea
  </item>
Packit 1470ea
 </steps>
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="impl">
Packit 1470ea
 <title>참조 구현체</title>
Packit 1470ea
 

지침서를 따라하는 실행하는 과정에 문제가 있다면, <link href="magic-mirror/magic-mirror.vala">참조 코드</link>와 여러분의 코드를 비교해보십시오. 일부 고급기술을 넣어 보통 Gtk.Window에 창을 넣고, 사진 표시 시작/정지 단추를 추가한 <link href="magic-mirror/magic-mirror-advanced.vala">추가 구현체</link>가 있습니다.

Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="further">
Packit 1470ea
<title>더 읽을거리</title>
Packit 1470ea

Vala 프로그래밍 언어에 대해 더 알아보려면 <link href="http://live.gnome.org/Vala/Tutorial">Vala 따라하기 지침서</link>를 확인해보시는게 좋습니다.

Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
<section id="conclusion">
Packit 1470ea
<title>마무리</title>
Packit 1470ea
  

다 됐습니다. 15분동안 완전한 기능을 수행하는 웹캠 사진 프로그램을 열심히 만들었습니다. 이제 15분동안 열심히 만든 대단한 프로그램으로 친구나 동료에게 인상을 심어줄 수 있는 일터에서 아름다운 나날을 보내기 전 수염을 깎거나 여러분의 이쁘장한 얼굴을 화장할 수 있습니다.

Packit 1470ea
Packit 1470ea
</section>
Packit 1470ea
Packit 1470ea
</page>