Skip to content

Make Processing

조회 수 1436 추천 수 0 댓글 1
Atachment
첨부파일 '3'
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

현재 상용화 되어 있는 프로그램의 가장 기본적인 프로그램 기능은 Drag and Drop 이다. 말그대로 끌어다가 넣으면 실행되거나 파일을 로드할 수 있는 기능을 말한다. 이러한 기능을 프로세싱에서는 어떻게 구현 할까?

 

친절하게도 이런 기능을 라이블러리로 만들어주신 분이 있습니다. Andreas Schlegel 이라는 분인데.. sojamo 아이디를 사용하신다. 1975년생으로

현재 싱가폴에서 작품 활동을 하고 있으시덴데..^^ 홈페이지 주소는 http://www.sojamo.de/ 입니다.

 

Andreas Schlegel는 프로세싱에서 controlP5 인터페이스 라이블러리와 oscP5인 OSC 통신 라이블러리를 만든 분입니다. 이것을 사용하는 사람입장에서는 그저 고마울 뿐입니다.^^;;; 조만간 라이블러리 하나 만들어 봐야겠네요..

아무튼 sDrop이라는 라이블러리가 위에 말씀드린 기능을 제공해 줍니다.

sDrop은 초기 dropP5라이블러이에서 이름을 바꿔 업데이트 된 것으로 예상됩니다.(http://www.sojamo.de/libraries/dropP5/)

예전에 소개 드렸던 Toycamera Analogcolor(http://makeprocessing.com/index.php?mid=processing_basic&page=2&document_srl=504) 프로그램을 분석해 보면 dropP5 라이블러리를 사용했음을 알 수 있습니다.

 


 

sDrop 라이블러리의 마지막 업데이트는 2010년 5월 9일로 되어 있습니다. 프로세싱 2.0b7에서 기본소스를 실행해 보니 작동은 되네요..^^

이 포스팅에서는 프로세싱 1.5.1을 기준으로 작성하도록 하겠습니다.

 

우선 sDrop 라이블러리를 다운 받아서 설치 하시면 됩니다. (설치방법은.. 아시죠?^^)

사이트에 보라색으로 표시된 부분에서 zip파일을 다운 받으시면 됩니다.

 

sdrop.PNG

 

sDrop은 일반파일, 이미지 파일, 그리고 북마크 파일 그리고 텍스트 파일 까지 드래그앤 드랍으로 가져올수 있습니다.

 

본 포스팅에서는  이미지 관련 부분에 대해서 보겠습니다.

프로세싱에서 실행한 스케치 화면에 이미지를 드래그 해서 넣으면 지정한 이미지 변수에 이미지가 자동으로 들어 갑니다.

대단하죠.^^

소스 부터 보겠습니다.

기본 샘플 소스를 조금 바꿨습니다.

 

import sojamo.drop.*;  // 라비블러리 로드

SDrop drop;  // drop 선언 드래그인 드랍 된 데이터가 drop에 저장 됩니다.
  
PImage m;  // 이미지 변수 선언

void setup()
{
  size(400,400);
  drop = new SDrop(this);
}

void draw() {
  background(255);
  if(m !=null)
  {
    image(m,5,5, 400, 400);
  }
}
/////////////  drop  변수에 저장된 데이터 처리부분  ////////////////////////////
void dropEvent(DropEvent theDropEvent)
{
  if(theDropEvent.isImage())
  {
    m = theDropEvent.loadImage();  // 드래드 앤 드랍 되서 들어온 데이터 처리
  }
}
/////////////////////////////////////////////////////////////////////////////////

실행 후에 열린 스케치 창에 이미지를 끌어다 넣으면 이미지가 스케치 화면에 출력되는 것을 볼수 있습니다.^^

 

가장 중요한 부분은 dropEvent 부분으로 drop 변수에 어떤 파일이 들어오느냐에 따라서 출력 형태를 바꾸게 됩니다.

 

이미지는

theDropEvent.loadImage();

 

링크나 북마크는

theDropEvent.isURL()

theDropEvent.url();

 

파일은

theDropEvent.isFile()

theDropEvent.file()

 

으로 받아서 사용하시면 됩니다.

 

  

드래그 앤 드롭으로 넣은 이미지를  자동으로 모자이크로 만드는 소스 코드를 보기로 하죠.

import sojamo.drop.*;  // 라비블러리 로드

SDrop drop;  // drop 선언 드래그인 드랍 된 데이터가 drop에 저장 됩니다.

PImage m;  // 이미지 변수 선언

void setup()
{
  size(640, 480);
  drop = new SDrop(this);
  noStroke();
}

void draw() {
  background(255);
  if (m !=null)   // 이미지가  비어있지 않으면 실행
  {
    if (m.width > width && m.height > height)  // 넣는 이미지의 가로, 세로 크기가 스케치의 가로, 세로 크기보다 커야 합니다.
    {
      for (int y = 0; y < m.height; y+=10)  // 가로 세로 10 픽셀 모자이크를 만듭니다.
      {
        for (int x = 0; x < m.width; x+=10)
        {
          fill(m.get(x, y));
          rect(x, y, 20, 20);
        }
      }
    }
    else
    {
      println("이미지 크기가 너무 작습니다."); 
    }
  }
}
/////////////  drop  변수에 저장된 데이터 처리부분  ////////////////////////////
void dropEvent(DropEvent theDropEvent)
{
  if (theDropEvent.isImage())
  {
    m = theDropEvent.loadImage();  // 드래드 앤 드랍 되서 들어온 데이터 처리
  }
}
/////////////////////////////////////////////////////////////////////////////////

원본 이미지 입니다. 이 이미지를 스케치 윈도우에 넣으면.

 

brave.jpg

 

 

아래와 같이 변화하게 됩니다.^^

 

brave_mo.PNG

 

 

 

  • profile
    EX867 2016.07.21 08:16
    오오오오 드래그앤드롭....이거 찾고있었어요 감사합니다

라이블러리 | library

라이블러리 활용하기

  1. pUI(A Graphical User Interface Library for Processing) 인터페이스 라이블러리

    https://github.com/martinleopold/pUI 인터페이스 빌더가 없나 검색하다가 찾은 인터페이스 라이블러 입니다. 사용해 보지는 않았는데 급할때는 이것도 나쁘지 않을 듯 합니다.~~
    Date2014.03.18 Bysmileblue Reply0 Views976
    Read More
  2. OpenCV for Processing 새로나온 openCV 라이블러리

    https://github.com/atduskgreg/opencv-processing 새로운 프로세싱 라이블러리가 나왔습니다..(약 6개월전에 알파버전이 릴리즈 되었습니다.) openCV란 computer vision 라이블러리로 이미지나 카메라로 부터 가져온 이미지 또는 영상을 처리해서 사람...
    Date2014.01.04 Bysmileblue Reply1 Views1817
    Read More
  3. SVG 파일 출력 라이블러리 Wordcram.org

    프로세싱에서 PDF 출력을 기본 라이블러리로 지원되긴 하지만. 이것이 진정한 벡터!!출력!!! http://wordcram.org/
    Date2013.11.26 Bysmileblue Reply0 Views905
    Read More
  4. [링크] unfolding - 지도를 가지고 인터렉션 작업을 할수 있는 라이브러리..

    http://unfoldingmaps.org/
    Date2013.10.09 Bysmileblue Reply0 Views1609
    Read More
  5. 드래그 엔 드롭 라이브러리 sDrop

    현재 상용화 되어 있는 프로그램의 가장 기본적인 프로그램 기능은 Drag and Drop 이다. 말그대로 끌어다가 넣으면 실행되거나 파일을 로드할 수 있는 기능을 말한다. 이러한 기능을 프로세싱에서는 어떻게 구현 할까? 친절하게도 이런 기능을 라이블러리...
    Date2013.02.28 Bysmileblue Reply1 Views1436
    Read More
  6. PDF 파일 출력

    프로세싱에는 9개의 내장 라이블러리가 있다. 라이블러리는 프로세싱 프로그램에 설치 또는 복사해서 프로세싱의 기능을 확장 시키는 기능을 하게 된다. 그 중 PDF 라이블러리는 프로세싱 기본 라이블러리로 PDF 문서 파일 형식으로 데이터를 출력할...
    Date2012.07.11 Byblue Reply0 Views1576
    Read More
  7. 키넥트와 오픈 CV (Kinect with Open CV)

    최근 고창선 작가의 작품에 참여 하게 되었다. 최근(?)에 이슈가 되고 있는 키넥트 장비이다. 솔직히 게임에는 큰 관심이 없어서. 이런것이 있구나 정도 였는데, 프로그램 제작 의뢰를 받고 자료를 찾아 보니 많은 자료들이 있었다. 마이크로 소...
    Date2012.06.12 Bysmileblue Reply6 Views3650
    Read More
Board Pagination ‹ Prev 1 Next ›
/ 1

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Copyright (c) 2012 Make Processing. All Right Reserved.

smileblue

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소