diff --git a/src/modules/image/wrap_Image.cpp b/src/modules/image/wrap_Image.cpp index 9ea219633..c9ec075a6 100644 --- a/src/modules/image/wrap_Image.cpp +++ b/src/modules/image/wrap_Image.cpp @@ -56,7 +56,13 @@ int w_newImageData(lua_State *L) size_t numbytes = 0; const char *bytes = nullptr; - if (!lua_isnoneornil(L, 4)) + if (luax_istype(L, 4, Data::type)) + { + Data *data = luax_checkdata(L, 4); + bytes = (const char *) data->getData(); + numbytes = data->getSize(); + } + else if (!lua_isnoneornil(L, 4)) bytes = luaL_checklstring(L, 4, &numbytes); ImageData *t = nullptr;