示例#1
0
		input_impl ( tu_file *in )
			:
			m_compressor_opened ( false )
			// Constructor.  Read the header data from in, and
			// prepare to read data.
		{
			setup_jpeg_err ( &m_jerr );
			m_cinfo.err = &m_jerr;
			// Initialize decompression object.
			jpeg_create_decompress ( &m_cinfo );
			setup_rw_source ( &m_cinfo, in );
			start_image();
		}
示例#2
0
RImage *bilinear (int argc, char **argv, int width, int height,
                  int relief) {

    int color[4][3];
    RImage *image;
    unsigned char *cptr;
    int i, j, k;

    argc--;
    argv++;

    if (!start_image ("bilinear", argc, 4, 5, width, height, &image)) {
        return (RImage *)0;
    }

    for (i=0; i<4; i++) {
        if (!parse_color (argv[i], color[i])) {
            error ("can't parse color: \"%s\"\n", argv[i]);
            return 0;
        }
    }

    cptr = image->data;
    for (i=0; i<height; i++) {
        int b = 0xff * i / height;
        int t = 0xff - b;

        for (j=0; j<width; j++) {
            int r = 0xff * j / width;
            int l = 0xff - r;
            int f[4];

            f[0] = (l*t) >> 8;
            f[1] = (r*t) >> 8;
            f[2] = (l*b) >> 8;
            f[3] = (r*b) >> 8;

            for (k=0; k<3; k++) {
                *cptr++ =
                    ( f[0] * color[0][k] +
                      f[1] * color[1][k] +
                      f[2] * color[2][k] +
                      f[3] * color[3][k] ) >> 8;
            }

            if (RRGBAFormat==image->format)
                cptr++;
        }
    }
    return image;
}
示例#3
0
static void update_scroll(struct mb_display *disp)
{
	if (disp->scroll < scroll_steps(disp)) {
		struct mb_image img;
		int i;

		for (i = 0; i < 5; i++) {
			const struct mb_image *i1 = current_img(disp);
			const struct mb_image *i2 = next_img(disp);

			img.row[i] = ((i1->row[i] >> disp->scroll) |
				      (i2->row[i] << (scroll_steps(disp) -
						      disp->scroll)));
		}

		disp->scroll++;
		start_image(disp, &img);
	} else {
		if (disp->first) {