使用Imlib2保存图像

时间:2014-06-10 03:25:30

标签: c image-processing lua

我尝试使用imlib2保存两次相同的图像,但我一直收到以下错误消息:

"错误的论点#1到'保存' (图像已被释放)"

我的Lua代码:

imglib.save(img,"PATH1",false)
imglib.save(img,"PATH2",true)

imglib.save = function(img,outpath,freeImg)
    local _,err = img.save(img,outpath)
    if (freeImg) then
        img.free(img)
    end
    return err
end

我的C代码:

static int image_save(lua_State *L)
{
  Imlib_Load_Error err;

  Image im = check_Image(L, 1);
  imlib_context_set_image(im);
  imlib_save_image_with_error_return(luaL_checkstring(L,2), &err);

  if (err == IMLIB_LOAD_ERROR_NONE)
  {
    return 0;
  }
  else
  {
    lua_pushnil(L);
    push_load_error_str(L, err, luaL_checkstring(L, 1));
    return 2;
  }
}

static int image_free(lua_State *L)
{
  Image *imp = (Image*)luaL_checkudata(L, 1, "imlib2.image");
  Image im = *imp;
  if(im)
  {
    imlib_context_set_image(im);
    imlib_free_image();
    *imp = NULL;
  }
  return 0;
} 

甚至第一张图片都没有保存。我究竟做错了什么?如果我只使用一次保存就可以完美地运行

0 个答案:

没有答案