29 #define FIXP (1 << 16)
30 #define MY_PI 205887 // (M_PI * FIX)
50 if (a >=
MY_PI * 3 / 2)
58 static unsigned char tab_r[256 * 256];
59 static unsigned char tab_g[256 * 256];
60 static unsigned char tab_b[256 * 256];
69 int frac_x = x & 0xFFFF;
70 int frac_y = y & 0xFFFF;
71 int s00 = src[( int_x & 255) + 256 * ( int_y & 255)];
72 int s01 = src[((int_x + 1) & 255) + 256 * ( int_y & 255)];
73 int s10 = src[( int_x & 255) + 256 * ((int_y + 1) & 255)];
74 int s11 = src[((int_x + 1) & 255) + 256 * ((int_y + 1) & 255)];
75 int s0 = (((1 << 16) - frac_x) * s00 + frac_x * s01) >> 8;
76 int s1 = (((1 << 16) - frac_x) * s10 + frac_x * s11) >> 8;
78 return (((1 << 16) - frac_y) * s0 + frac_y * s1) >> 24;
83 const int c =
h_cos[num % 360];
84 const int s =
h_sin[num % 360];
86 const int xi = -(w / 2) * c;
87 const int yi = (w / 2) * s;
89 const int xj = -(h / 2) * s;
90 const int yj = -(h / 2) * c;
97 for (j = 0; j < h; j++) {
98 x = xprime + xi +
FIXP * w / 2;
101 y = yprime + yi +
FIXP * h / 2;
104 for (i = 0; i < w; i++) {
127 input_file = fopen(filename,
"rb");
133 if (fread(line, 1, 15, input_file) != 15)
135 for (i = 0; i <
H; i++) {
136 if (fread(line, 1, 3 *
W, input_file) != 3 *
W)
138 for (j = 0; j <
W; j++) {
139 tab_r[W * i + j] = line[3 * j ];
140 tab_g[W * i + j] = line[3 * j + 1];
141 tab_b[W * i + j] = line[3 * j + 2];
147 for (i = 0; i < 360; i++) {
148 radian = 2 * i *
MY_PI / 360;
157 int main(
int argc,
char **argv)
164 printf(
"usage: %s image.pnm file|dir\n"
165 "generate a test video stream\n", argv[0]);
169 if (!freopen(argv[2],
"wb", stdout))
186 snprintf(buf,
sizeof(buf),
"%s%02d.pgm", argv[2], i);