无法从文件中加载RGB表的图像(Lua)

我一直在尝试将图片导入我用 lua 制作的程序窗口中,基本上我会获取图片的所有 RGB 信息,并在画布上绘制它。由于所有脚本都存储在在线上,并使用 LuaSocket 调用,它会大量增加我的服务器的虚拟使用率,因此我试图将图像 RGB 数据保存到文本文件中并加载它来制作画布上的图像,但无法实现它,它只会创建一个没有 RGB 信息的空白图像。这是我正在做的:

这是图片 RGB 表的一个小部分(示例)

Flower = {}
Flower[1] = {}
Flower[1][1] = 16446446
Flower[1][2] = 3552822
Flower[1][3] = 3552822
[...]
Flower[448][235] = 16446446

它非常巨大,以此结尾:

我在我的程序中所做的是:

local f = assert(io.open(MyPath.."log.txt", "r"))
content = f:read("*all")
f:close()
return content

Form = createForm(true)
Form.width = 447
Form.height = 234
image = createImage(Form);
image_stretch(image, true);
image.width = 447
image.height = 234
image.top = -10
image.left = -10

setProperty(image, 'Anchors','akTop,akLeft,akRight,akBottom');
canvas = image.getCanvas();
brush = canvas.getBrush();
brush.Color = 0xF0F0F0;
canvas.fillRect(canvas, 0, 0, Form.width, Form.width);
pen = canvas.getPen();
pen.width = 2;
pen.Color = 0x000000;
for i,table in pairs(Flower) do
   for _,color in pairs(Flower[i]) do
      canvas_setPixel(canvas, i + 5   , _ + 5, color)
   end
end
点赞
用户3038253
用户3038253

我排除问题并得到了答案,不用io.open打开文件,而是使用 dofile 直接执行文件。

因此,代码从

local f = assert(io.open(MyPath.."log.txt", "r"))
content = f:read("*all")
f:close()
return content

变成了

dofile(MyPath.."log.txt", "r")

这样就可以完美地运行了。

2014-07-25 08:50:20