소스 검색

* Make the --metal filter only change the colour, not the characters.

pull/1/head
Sam Hocevar sam 19 년 전
부모
커밋
d9bb31a40e
1개의 변경된 파일10개의 추가작업 그리고 20개의 파일을 삭제
  1. +10
    -20
      src/filters.c

+ 10
- 20
src/filters.c 파일 보기

@@ -60,23 +60,12 @@ void filter_autocrop(cucul_canvas_t *cv)

void filter_metal(cucul_canvas_t *cv)
{
static struct
static unsigned char const palette[] =
{
char ch[6];
unsigned char fg, bg;
}
const palette[] =
{
{ " ", CUCUL_COLOR_LIGHTBLUE, CUCUL_COLOR_LIGHTBLUE },
{ "░", CUCUL_COLOR_BLUE, CUCUL_COLOR_LIGHTBLUE },
{ "▒", CUCUL_COLOR_BLUE, CUCUL_COLOR_LIGHTBLUE },
{ "░", CUCUL_COLOR_LIGHTBLUE, CUCUL_COLOR_BLUE },
{ " ", CUCUL_COLOR_BLUE, CUCUL_COLOR_BLUE },
{ " ", CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_LIGHTGRAY },
{ "░", CUCUL_COLOR_DARKGRAY, CUCUL_COLOR_LIGHTGRAY },
{ "▒", CUCUL_COLOR_DARKGRAY, CUCUL_COLOR_LIGHTGRAY },
{ "░", CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_DARKGRAY },
{ " ", CUCUL_COLOR_DARKGRAY, CUCUL_COLOR_DARKGRAY },
CUCUL_COLOR_LIGHTBLUE,
CUCUL_COLOR_BLUE,
CUCUL_COLOR_LIGHTGRAY,
CUCUL_COLOR_DARKGRAY,
};

unsigned int x, y, w, h;
@@ -87,14 +76,15 @@ void filter_metal(cucul_canvas_t *cv)
for(y = 0; y < h; y++)
for(x = 0; x < w; x++)
{
unsigned long int ch = cucul_getchar(cv, x, y);
int i;

if(cucul_getchar(cv, x, y) == (unsigned char)' ')
if(ch == (unsigned char)' ')
continue;

i = y * 10 / h;
cucul_set_color(cv, palette[i].fg, palette[i].bg);
cucul_putstr(cv, x, y, palette[i].ch);
i = y * 4 / h;
cucul_set_color(cv, palette[i], CUCUL_COLOR_TRANSPARENT);
cucul_putchar(cv, x, y, ch);
}
}



불러오는 중...
취소
저장