GIF 이미지 생성 함수 설명
gif_open
함수는 빈 GIF 형식의 이미지를 생성하여 데이터를 추가할 준비를 합니다. 이 함수를 호출할 때는 GIF의 너비와 높이를 픽셀 단위로 지정해야 하며, 메모리의 사용 가능량을 제외하고는 크기에 대한 상한선이 없습니다. 함수는 GIF를 식별하는 데 사용되는 고유 ID 값을 반환하며, GIF 초기화에 실패할 경우(-1 반환)도 있습니다. 초기화 실패는 주로 너비나 높이가 메모리의 한계를 초과할 때 발생합니다.
또한, GIF의 "클리어 색상"을 설정하는 선택적 인수를 지정할 수 있습니다. 이 색상은 RGB 값으로, 알파 컴포넌트는 포함되지 않습니다. 데이터를 추가하기 전에 GIF를 이 색상으로 초기화합니다. 클리어 색상을 제공하지 않으면 기본 색상인 검정색이 사용됩니다.
이 함수를 사용할 때는 gif_save
를 호출하여 GIF 생성 작업을 종료해야 하며, 다른 파일을 기록하기 위해서는 gif_open
에 대한 호출이 있어야 합니다. 즉, 각 gif_open
호출에는 반드시 gif_save
가 있어야 합니다.
문법
gif_open(width, height, [clear_colour]);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
width | Real | 생성할 GIF의 너비 |
height | Real | 생성할 GIF의 높이 |
[clear_colour] | Colour | GIF를 초기화할 색상 (RGB) |
반환값
- GIF ID
예제 코드
if (save_gif == true) {
if (count == 0) {
gif_image = gif_open(room_width, room_height);
} else if (count < 30) {
gif_add_surface(gif_image, application_surface, 6/100);
} else {
gif_save(gif_image, "GameCapture.gif");
count = 0;
save_gif = false;
}
count++;
}
위의 코드는 애플리케이션 표면에서 30개의 프레임을 가져와 GIF 이미지 파일을 생성한 후 저장합니다.
활용 예제
예제 1: 기본 GIF 생성
gif_image = gif_open(800, 600);
예제 2: 클리어 색상 지정
gif_image = gif_open(800, 600, make_colour(255, 255, 255)); // 흰색으로 초기화
예제 3: GIF에 프레임 추가
gif_add_surface(gif_image, application_surface, 1/30); // 30fps로 추가
예제 4: GIF 저장
gif_save(gif_image, "MyAnimation.gif");
예제 5: 반복적인 GIF 생성
for (var i = 0; i < 10; i++) {
gif_image = gif_open(640, 480);
// 프레임 추가 코드
gif_save(gif_image, "Animation" + string(i) + ".gif");
}