我尝试使用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;
}
甚至第一张图片都没有保存。我究竟做错了什么?如果我只使用一次保存就可以完美地运行