고로 이제 이 블로그에서 수업은 사라져야 마땅할 것.
고로 이제 이 블로그에서 수업은 사라져야 마땅할 것.
PImage imgPoppy;
void setup () {
size(600,600);
// 이미지 객체(주머니)에 poppy.jpg라는 이미지를 불러와서 넣어준다.
// 넣어주면서 바로 width, height, pixels[]라는 값들이 생긴다.
// pixels[]가 바로 색 데이터를 가득 담고 있는 배열이다.
imgPoppy = loadImage("poppy.jpg");
}
void draw () {
background(255);
noStroke();
// imgPoppy의 픽셀 전체 개수는 가로*세로일테고,
// 그만큼 반복하면서 점을 찍으려면 아래와 같이 반복문을 작성해야한다.
for (int i=0; i<imgPoppy.width*imgPoppy.height; i++) {
// 순번에 해당하는 y좌표 위치는 순번/가로 로 알아낼 수 있다.
int y = i/imgPoppy.width;
// 순번에 해당하는 x좌표 위치는 순번%가로 로 알아낼 수 있다.
int x = i%imgPoppy.width;
// 해당 순번의 위치 색값에서 RGB값을 각각 뽑아낸다.
float r = red(imgPoppy.pixels[i]);
float g = green(imgPoppy.pixels[i]);
float b = blue(imgPoppy.pixels[i]);
// 해당 점의 6배 위치 x*6, y*6 위치에 10,10 사이즈의 원을 그린다.
fill(r,g,b);
ellipse(x*6,y*6, 10, 10);
}
}
// 이미지 객체(주머니) 하나 생성.
PImage imgPoppy;
// 백그라운드용 컬러 3개 만들기
float colorR = 255, colorG = 0, colorB = 0;
// 마우스의 위치의 이미지 색깔을 잡아내기 위해서
// 좌표 저장용 변수 생성
int positionX = 0, positionY = 0;
void setup () {
size(500,500);
// 이미지 객체(주머니)에 back.jpg라는 이미지를 불러와서 넣어준다.
// 넣어주면서 바로 width, height, pixels[]라는 값들이 생긴다.
// pixels[]가 바로 색 데이터를 가득 담고 있는 배열이다.
imgPoppy = loadImage("back.jpg");
}
void draw () {
// 마우스의 위치와 positionX의 위치를 동일화 하되,
positionX = (int)mouseX;
// 이미지판의 가로크기보다 커지지 못하도록 값을 제한한다.
if (positionX>=imgPoppy.width) positionX=imgPoppy.width-1;
// 마우스의 위치와 positionY의 위치를 동일화 하되,
positionY = (int)mouseY;
// 이미지판의 세로크기보다 커지지 못하도록 값을 제한한다.
if (positionY>=imgPoppy.height) positionY=imgPoppy.height-1;
// 가져온 위치값으로 이미지 해당 위치의 색을 받아오기 위해서
// 순번을 찾아온다.
int index = positionX + positionY * imgPoppy.width;
// 색을 red, green, blue 함수로 분리한다.
colorR = red(imgPoppy.pixels[index]);
colorG = green(imgPoppy.pixels[index]);
colorB = blue(imgPoppy.pixels[index]);
// 가져온 색으로 백그라운드 칠하기.
background(colorR, colorG, colorB);
// 이미지를 그린다.
image(imgPoppy, 0, 0);
}
PREVIOUS 

댓글을 달아 주세요
댓글 RSS 주소 : http://21dish.com/blog/class/rss/comment/229무서운 꿈을 꾸엇군요.
응 정말 괴상한 꿈이었어..
으으..
Administrator only.
Administrator only.