Пример #1
0
int snapshot_write_next(struct snapshot_handle *handle, size_t count)
{
	static struct chain_allocator ca;
	int error = 0;

	/* Check if we have already loaded the entire image */
	if (handle->prev && handle->cur > nr_meta_pages + nr_copy_pages)
		return 0;

	if (!buffer) {
		/* This makes the buffer be freed by swsusp_free() */
		buffer = alloc_image_page(GFP_ATOMIC, PG_ANY);
		if (!buffer)
			return -ENOMEM;
	}
	if (!handle->offset)
		handle->buffer = buffer;
	handle->sync_read = 1;
	if (handle->prev < handle->cur) {
		if (handle->prev == 0) {
			error = load_header(buffer);
			if (error)
				return error;

			error = memory_bm_create(&copy_bm, GFP_ATOMIC, PG_ANY);
			if (error)
				return error;

		} else if (handle->prev <= nr_meta_pages) {
			unpack_orig_pfns(buffer, &copy_bm);
			if (handle->prev == nr_meta_pages) {
				error = prepare_image(&orig_bm, &copy_bm);
				if (error)
					return error;

				chain_init(&ca, GFP_ATOMIC, PG_SAFE);
				memory_bm_position_reset(&orig_bm);
				restore_pblist = NULL;
				handle->buffer = get_buffer(&orig_bm, &ca);
				handle->sync_read = 0;
				if (!handle->buffer)
					return -ENOMEM;
			}
		} else {
			handle->buffer = get_buffer(&orig_bm, &ca);
			handle->sync_read = 0;
		}
		handle->prev = handle->cur;
	}
	handle->buf_offset = handle->cur_offset;
	if (handle->cur_offset + count >= PAGE_SIZE) {
		count = PAGE_SIZE - handle->cur_offset;
		handle->cur_offset = 0;
		handle->cur++;
	} else {
		handle->cur_offset += count;
	}
	handle->offset += count;
	return count;
}
Пример #2
0
static void
update_preview_cb (GtkFileChooser *file_chooser,
                   gpointer data)
{
	GtkWidget *preview;
	gchar *filename, *file_contents = NULL;
	GdkPixbuf *pixbuf = NULL;
	gboolean have_preview;
	gsize length = 0;

	preview = GTK_WIDGET (data);
	filename = gtk_file_chooser_get_preview_filename (file_chooser);

	have_preview = filename && prepare_image (filename, &file_contents, &length, &pixbuf, FALSE);
	if (have_preview) {
		g_free (file_contents);
		have_preview = pixbuf != NULL;
	}

	g_free (filename);

	gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf);
	if (pixbuf)
		g_object_unref (pixbuf);

	gtk_file_chooser_set_preview_widget_active (file_chooser, have_preview);
}
Пример #3
0
static GdkPixbuf *
choose_new_face (void)
{
	GdkPixbuf *res = NULL;
	GtkWidget *filesel, *preview;
	GtkFileFilter *filter;

	filesel = gtk_file_chooser_dialog_new (
				_("Select a Face Picture"),
				NULL,
				GTK_FILE_CHOOSER_ACTION_OPEN,
				GTK_STOCK_CANCEL,
				GTK_RESPONSE_CANCEL,
				GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL);

	gtk_dialog_set_default_response (GTK_DIALOG (filesel), GTK_RESPONSE_OK);

	filter = gtk_file_filter_new ();
	gtk_file_filter_set_name (filter, _("Image files"));
	gtk_file_filter_add_mime_type (filter, "image/*");
	gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (filesel), filter);

	preview = gtk_image_new ();
	gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (filesel), preview);
	g_signal_connect (filesel, "update-preview", G_CALLBACK (update_preview_cb), preview);

	if (GTK_RESPONSE_OK == gtk_dialog_run (GTK_DIALOG (filesel))) {
		gchar *image_filename, *file_contents = NULL;
		gsize length = 0;

		image_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filesel));
		gtk_widget_destroy (filesel);

		if (prepare_image (image_filename, &file_contents, &length, &res, TRUE)) {
			set_face_raw (file_contents, length);
		}

		g_free (file_contents);
		g_free (image_filename);
	} else {
		gtk_widget_destroy (filesel);
	}

	return res;
}
Пример #4
0
void MatCache::rgb_from_yuv()
{
	auto it_y = images.find("gray_8u");
	auto it_u = images.find("yuv422_u_8u");
	auto it_v = images.find("yuv422_v_8u");
	if (it_y == images.end() || it_y->second.ready == false
		|| it_y == images.end() || it_y->second.ready == false
		|| it_y == images.end() || it_y->second.ready == false)
		return;

	CachedMat& rgb = prepare_image("rgb_8u");
	imgproc::rgb_from_yuv(it_y->second.mat, it_u->second.mat, it_v->second.mat, rgb.mat);
	rgb.ready = true;

//	cv::Mat bgr;
//	cv::cvtColor(rgb.mat, bgr, CV_RGB2BGR);
//	cv::imshow("test-ffmpeg", bgr);
//	cv::waitKey();
}
Пример #5
0
int	main(int ac, char **av)
{
	t_fdf	e;

	fdf_ini(&e);
	if (ac < 2 || !my_parse(&e, ac, av))
		return (0);
	e.wia = FT_MAX(e.maa - e.mia, 1);
	if (!(e.mlx = mlx_init()))
		return (fdf_quit(&e));
	if (!(e.win = mlx_new_window(e.mlx, e.wid, e.hig, "FdF")))
		return (fdf_quit(&e));
	if (!(e.img = mlx_new_image(e.mlx, e.wid, e.hig)))
		return (fdf_quit(&e));
	e.buf = mlx_get_data_addr(e.img, &e.bit, &e.lin, &e.end);
	e.bit /= 8;
	prepare_image(&e);
	mlx_key_hook(e.win, &my_key_func, &e);
	mlx_expose_hook(e.win, &my_expose_func, &e);
	mlx_loop(e.mlx);
	return (0);
}
Пример #6
0
int main(int argc, char **argv)
{
    int ret;
    const char *arch = qtest_get_arch();
    const char *genisocheck[] = { "genisoimage", "-version", NULL };

    g_test_init(&argc, &argv, NULL);

    if (exec_genisoimg(genisocheck)) {
        /* genisoimage not available - so can't run tests */
        return g_test_run();
    }

    ret = prepare_image(arch, isoimage);
    if (ret) {
        return ret;
    }

    if (g_str_equal(arch, "i386") || g_str_equal(arch, "x86_64")) {
        add_x86_tests();
    } else if (g_str_equal(arch, "s390x")) {
        add_s390x_tests();
    } else if (g_str_equal(arch, "ppc64")) {
        const char *ppcmachines[] = {
            "pseries", "mac99", "g3beige", "40p", "prep", NULL
        };
        add_cdrom_param_tests(ppcmachines);
    } else if (g_str_equal(arch, "sparc")) {
        const char *sparcmachines[] = {
            "LX", "SPARCClassic", "SPARCbook", "SS-10", "SS-20", "SS-4",
            "SS-5", "SS-600MP", "Voyager", "leon3_generic", NULL
        };
        add_cdrom_param_tests(sparcmachines);
    } else if (g_str_equal(arch, "sparc64")) {
        const char *sparc64machines[] = {
            "niagara", "sun4u", "sun4v", NULL
        };
        add_cdrom_param_tests(sparc64machines);
    } else if (!strncmp(arch, "mips64", 6)) {
        const char *mips64machines[] = {
            "magnum", "malta", "mips", "pica61", NULL
        };
        add_cdrom_param_tests(mips64machines);
    } else if (g_str_equal(arch, "arm") || g_str_equal(arch, "aarch64")) {
        const char *armmachines[] = {
            "realview-eb", "realview-eb-mpcore", "realview-pb-a8",
            "realview-pbx-a9", "versatileab", "versatilepb", "vexpress-a15",
            "vexpress-a9", "virt", NULL
        };
        add_cdrom_param_tests(armmachines);
    } else {
        const char *nonemachine[] = { "none", NULL };
        add_cdrom_param_tests(nonemachine);
    }

    ret = g_test_run();

    unlink(isoimage);

    return ret;
}
static image_reconstruct_ERROR_CODE
do_reconstruction(const image_filter_IMG* original,
                  const image_reconstruct_PARAMETERS* params,
                  image_filter_IMG* result)
{
  image_reconstruct_ERROR_CODE ret = IMAGE_RECONSTRUCT_OK;
  image_filter_FILTER row_filter = {0};
  image_filter_FILTER col_filter = {0};
  image_filter_IMG approx_row = {0};
  image_filter_IMG approx_col = {0};
  image_filter_IMG approx_diag = {0};
  image_filter_IMG tmp = {0};
  double row_mask[] = PREWITT_ROW_MASK;
  double col_mask[] = PREWITT_COL_MASK;


  image_filter_create_filter_by_mask(3,
                                     row_mask,
                                     &row_filter);
  image_filter_create_filter_by_mask(3,
                                     col_mask,
                                     &col_filter);
  image_filter_create_image(original->width,
                            original->height,
                            &approx_row);
  image_filter_create_image(original->width,
                            original->height,
                            &tmp);
  image_filter_create_image(original->width,
                            original->height,
                            &approx_col);
  image_filter_create_image(original->width,
                            original->height,
                            &approx_diag);
  if ((ret = prepare_image(original, params, &tmp))
             != IMAGE_AMPLIFIER_OK)
  {}
  else if ((ret = apply_filter(&tmp,
                               &row_filter,
                               &approx_row)) != IMAGE_RECONSTRUCT_OK)
  {}
  else if ((ret = apply_filter(&tmp,
                               &col_filter,
                               &approx_col)) != IMAGE_RECONSTRUCT_OK)
  {}

  if (ret == IMAGE_RECONSTRUCT_OK)
  {
    haar_transformation_DATA_SOURCE data;

    calculate_sum(&approx_col,
                  &approx_row,
                  NULL,
                  &approx_diag);
 
    data.width = original->width;
    data.height = original->height;
    data.original_image = result->content;
    data.avg_image = tmp.content;
    data.vertical_edges = approx_col.content;
    data.horizontal_edges = approx_row.content;
    data.diagonal_edges = approx_diag.content;

  /*  DUMPER_TRACE_IMAGE(data.avg_image, data.width, data.height);
    DUMPER_TRACE_IMAGE(data.vertical_edges, data.width, data.height);
    DUMPER_TRACE_IMAGE(data.horizontal_edges, data.width, data.height);
    DUMPER_TRACE_IMAGE(data.diagonal_edges, data.width, data.height);
    DUMPER_TRACE_IMAGE(tmp.content, data.width, data.height); */
    data.width *= 2;
    data.height *= 2;
    haar_transformation_inverse_transformation(data);
 /*   DUMPER_TRACE_IMAGE(data.original_image, data.width, data.height); */
  }

  image_filter_destroy_image(&approx_diag);
  image_filter_destroy_image(&tmp);
  image_filter_destroy_image(&approx_col);
  image_filter_destroy_image(&approx_row);
  image_filter_destroy_filter(&row_filter);
  image_filter_destroy_filter(&col_filter);

  return ret;
}