示例#1
0
//参数一:原图像文件夹路径,参数2:图像保存文件夹路径,参数3:转换后的图片格式jpg
int main(int argc, char **argv)
{
	char *orig_image_folder = argv[1];
	char *conv_image_folder = argv[2];
	char *conv_image_format = argv[3];
	vector<string> image_names;
	getFiles(orig_image_folder, "", image_names);
	int i;
	for (i = 0; i < image_names.size(); i++)
	{
		char orig_image[256];
		sprintf(orig_image, "%s", image_names[i]);
		char conv_image[256];
		sprintf(conv_image, "%s/%07d.%s", conv_image_folder, i + 1, conv_image_format);
		image_convert(orig_image, conv_image);
		printf("\n Convert %s successfully.\n", image_names[i]);
	}
	return 0;
}
示例#2
0
文件: ttftest.c 项目: rsenn/tichu
void ttftest_write(const char *text, const char *font, const char *file, const char *bg, const char *color)
{
  struct image   *ttftext;
  struct image   *gradient;
  struct ttf     *ttf;
  struct color    fg;
  struct rect     drect;
  struct rect     srect;
  
  log(ttftest_log, L_status, "---------- TrueType GIF renderer ----------", text);
  log(ttftest_log, L_status, "text:  %s", text);
  log(ttftest_log, L_status, "font:  %s", font);
  log(ttftest_log, L_status, "bg:    %s", bg);
  log(ttftest_log, L_status, "file:  %s", file);
  log(ttftest_log, L_status, "color: %s", color);
  log(ttftest_log, L_status, "-------------------------------------------");
  
  ttf = ttf_new(font);
  
  if(ttf_open(ttf, font))
  {
    log(ttftest_log, L_fatal, "Could not load font: %s", font);
    return;
  }

  ttf_calc(ttf, 11);
  
  ttf->style |= TTF_STYLE_BOLD;
  
  image_color_parse(&fg, color);
    
  ttftext = ttf_text_blended(ttf, text, &fg);
  
  gradient = image_load_gif(bg);
  
  if(gradient == NULL)
  {
    log(ttftest_log, L_fatal, "Could not load background image: %s", bg);
    return;
  }  
  
  image_convert(gradient, IMAGE_TYPE_32);

  srect = ttftext->rect;

  drect = gradient->rect;
  drect.y = 1;
  drect.x = 6;
  
  image_blit_32to32(ttftext, &srect, gradient, &drect);
  
  image_convert(gradient, IMAGE_TYPE_8);
  
  if(gradient == NULL)
  {
    log(ttftest_log, L_warning, "Could not render test glyph.");
  }
  else
  {
    if(image_save_gif(gradient, file))
    {
      log(ttftest_log, L_fatal, "Could not save output: %s", file);
    }  
  
    image_delete(gradient);
  }
}
示例#3
0
文件: vaapi.c 项目: coog009/myproject
int get_image(VASurfaceID surface, Image *dst_img)
{
    VAAPIContext * const vaapi = vaapi_get_context();
    VAImage image;
    VAImageFormat *image_format = NULL;
    VAStatus status;
    Image bound_image;
    int i, is_bound_image = 0, is_derived_image = 0, error = -1;

    image.image_id = VA_INVALID_ID;
    image.buf      = VA_INVALID_ID;

    if (!image_format) {
        status = vaDeriveImage(vaapi->display, surface, &image);
        if (vaapi_check_status(status, "vaDeriveImage()")) {
            if (image.image_id != VA_INVALID_ID && image.buf != VA_INVALID_ID) {
                D(bug("using vaDeriveImage()\n"));
                is_derived_image = 1;
                image_format = &image.format;
            }
            else {
                D(bug("vaDeriveImage() returned success but VA image is invalid. Trying vaGetImage()\n"));
            }
        }
    }

    if (!image_format) {
        for (i = 0; image_formats[i] != 0; i++) {
            if (get_image_format(vaapi, image_formats[i], &image_format))
                break;
        }
    }

    if (!image_format)
        goto end;
    D(bug("selected %s image format for getimage\n",
          string_of_VAImageFormat(image_format)));

    if (!is_derived_image) {
        status = vaCreateImage(vaapi->display, image_format,
                               vaapi->picture_width, vaapi->picture_height,
                               &image);
        if (!vaapi_check_status(status, "vaCreateImage()"))
            goto end;
        D(bug("created image with id 0x%08x and buffer id 0x%08x\n",
              image.image_id, image.buf));

        VARectangle src_rect;

        src_rect.x      = 0;
        src_rect.y      = 0;
        src_rect.width  = vaapi->picture_width;
        src_rect.height = vaapi->picture_height;

        D(bug("src rect (%d,%d):%ux%u\n",
              src_rect.x, src_rect.y, src_rect.width, src_rect.height));

        status = vaGetImage(
            vaapi->display, vaapi->surface_id,
            src_rect.x, src_rect.y, src_rect.width, src_rect.height,
            image.image_id
        );
        if (!vaapi_check_status(status, "vaGetImage()")) {
            vaDestroyImage(vaapi->display, image.image_id);
            goto end;
        }
    }

    if (bind_image(&image, &bound_image) < 0)
        goto end;
    is_bound_image = 1;

    if (image_convert(dst_img, &bound_image) < 0)
        goto end;

    error = 0;
end:
    if (is_bound_image) {
        if (release_image(&image) < 0)
            error = -1;
    }

    if (image.image_id != VA_INVALID_ID) {
        status = vaDestroyImage(vaapi->display, image.image_id);
        if (!vaapi_check_status(status, "vaDestroyImage()"))
            error = -1;
    }
    return error;
}