#include #define BG_VAL 0x0a0 #define Y_ADD 80 #define X_BEG 10 static void my_draw(int wid, int x, int y) { const char *str = "Sharpness ¤·¤ã¡¼¤×¤Í¤¹ ñ¾ÈÓ åöåò ê©ê« ¡ü¡û¡ú¡ù¡ß¢¨¡ý¢§¢¦¢¡¡þ¢£¢¢"; newfontset(wid,"-*-ms gothic-medium-r-normal--14-*"); drawstr(wid,x,y, FONTSET,0, "%s", str); newfontset(wid,"-*-ms gothic-medium-r-normal--20-*"); drawstr(wid,x,y+26, FONTSET,0, "%s", str); return; } static void sharp_plus(int wid, int y, int idx, int off_h, int off_v) { int val, off; newcolor(wid, "#000000"); drawstr(wid,X_BEG,y, 24,0, "[+%d]",idx); val = BG_VAL; y += 20; newcolor(wid, "#%02x%02x%02x",val,val,val); my_draw(wid,X_BEG+1,y); my_draw(wid,X_BEG-1,y); my_draw(wid,X_BEG,y+1); my_draw(wid,X_BEG,y-1); newgcfunction(wid, GXor); off = off_h ; newcolor(wid, "#%02x%02x%02x",val+off,val+off,val+off); my_draw(wid,X_BEG+1,y); off = off_h; newcolor(wid, "#%02x%02x%02x",val+off,val+off,val+off); my_draw(wid,X_BEG-1,y); off = off_v; newcolor(wid, "#%02x%02x%02x",val+off,val+off,val+off); my_draw(wid,X_BEG,y+1); my_draw(wid,X_BEG,y-1); newgcfunction(wid, GXcopy); newcolor(wid, "#000000"); my_draw(wid,X_BEG,y); } static void sharp_minus(int wid, int y, int idx, int off_h, int off_v) { int val, off; newcolor(wid, "#000000"); drawstr(wid,X_BEG,y, 24,0, "[-%d]",idx); val = BG_VAL - 1; y += 20; newgcfunction(wid, GXand); off = off_h ; newcolor(wid, "#%02x%02x%02x",val-off,val-off,val-off); my_draw(wid,X_BEG+1,y); off = off_h; newcolor(wid, "#%02x%02x%02x",val-off,val-off,val-off); my_draw(wid,X_BEG-1,y); off = off_v; newcolor(wid, "#%02x%02x%02x",val-off,val-off,val-off); my_draw(wid,X_BEG,y+1); my_draw(wid,X_BEG,y-1); newgcfunction(wid, GXcopy); newcolor(wid, "#000000"); my_draw(wid,X_BEG,y); } int main() { int wid; int val, y; gsetinitialattributes(DISABLE,BOTTOM_LEFT_ORIGIN); wid = gopen(660,730); val = BG_VAL - 1; gsetbgcolor(wid, "#%02x%02x%02x",val,val,val); gclr(wid); y = 30; /**************************************************************************/ sharp_plus(wid, y, 4, 0x04 << 2, 0x02 << 2); y += Y_ADD; /**************************************************************************/ sharp_plus(wid, y, 3, 0x0a, 0x05); y += Y_ADD; /**************************************************************************/ sharp_plus(wid, y, 2, 0x04 << 1, 0x02 << 1); y += Y_ADD; /**************************************************************************/ sharp_plus(wid, y, 1, 0x04 << 0, 0x02 << 0); y += Y_ADD; /**************************************************************************/ newcolor(wid, "#000000"); drawstr(wid,X_BEG,y, 24,0, "[0]"); newcolor(wid, "#000000"); my_draw(wid,X_BEG,y+20); y += Y_ADD; /**************************************************************************/ sharp_minus(wid, y, 1, 0x04 << 0, 0x02 << 0); y += Y_ADD; /**************************************************************************/ sharp_minus(wid, y, 2, 0x04 << 1, 0x02 << 1); y += Y_ADD; /**************************************************************************/ sharp_minus(wid, y, 3, 0x0a, 0x05); y += Y_ADD; /**************************************************************************/ sharp_minus(wid, y, 4, 0x04 << 2, 0x02 << 2); y += Y_ADD; /**************************************************************************/ saveimg( wid,0, 0,0,660-1,730-1,"pnmtopng",256, "sharpness_test.png" ); ggetch(); gclose(wid); return 0; }