QB64 无法加载图像,说“非法函数调用”

Posted

技术标签:

【中文标题】QB64 无法加载图像,说“非法函数调用”【英文标题】:QB64 unable to load image, saying "illegal function call" 【发布时间】:2019-04-15 19:09:26 【问题描述】:

我试图为我的游戏标题而不是 ASCII 加载图像,但是当我尝试加载图像时,它说 _PUTIMAGE, i&. 0 是一个非法的函数调用。 _PUTIMAGE,i& 是否不适用于某些文件类型?

我已经尝试了内置帮助建议我加载图像的所有方法,但它们都不起作用。

menu:
CLS
PRINT
i& = _LOADIMAGE("FOrest.jpg")
_PUTIMAGE, i&
PRINT ""
PRINT "What Will Your Heros Name be?:";
Name$ = Ask$(5, 1, CSRLIN, POS(0), 11, 0)
CLS
check_1% = 0 'placeholder for debugingg
COLOR 15, 0
PRINT Name$ + "How Old will Your Hero be?: ";: age% = VAL(Ask$(3, 0, CSRLIN, POS(0), 15, 0))
'INPUT "", age%

我想加载这张图片

【问题讨论】:

【参考方案1】:

sourceHandle&destHandle&不能相同,否则会出现Illegal Function Call错误

尝试指定一个明确的目标句柄。你想要屏幕所以选择 0。

方法一

i& = _LOADIMAGE("forest.jpg")
_PUTIMAGE , i&, 0

方法二

i& = _LOADIMAGE("forest.jpg")
_SOURCE i&
_DEST 0
_PUTIMAGE

最好验证加载图像是否成功。检查i& 是否小于-1。


您是否至少为您的 .jpg 图片设置了图形屏幕?

SCREEN 13
i& = _LOADIMAGE("forest.jpg")
_PUTIMAGE , i&, 0

【讨论】:

@Sep_Ronland 我还没有验证它的加载,但我会这样做并回复,谢谢你的帮助,我会看看这是否对我有用 如何检查i& 是否为-1? 如果无法加载图像,则返回 -1 作为无效句柄。有效的 LONG 句柄返回值小于 -1。 检查i& 是否为-1 因某种原因不起作用说illegal function call【参考方案2】:

您是处于 SCREEN 0 还是图形模式?

【讨论】:

我正在使用SCREEN 12【参考方案3】:

在做

SCREEN _NEWIMAGE(640, 480, 32) 
i = _LOADIMAGE("FOrest.jpg.png") 'this filename was the only one that worked
_PUTIMAGE (0, 0), i

工作,但我不能做我在图像加载时的其他输入。 这是在内置帮助中,但以前没有用。所以这很奇怪,我猜它什么时候可以工作

【讨论】:

因为它不在screen 12 中了【参考方案4】:

检查图片是否加载正确:

SCREEN _NEWIMAGE(640, 480, 32)
CLS , _RGB(0, 255, 0)
i& = _LOADIMAGE("FOREST.JPG")
IF i& = -1 THEN PRINT "invalid image": END
_PUTIMAGE (0, 0), i&, 0
END

【讨论】:

以上是关于QB64 无法加载图像,说“非法函数调用”的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 BitmapFactory.decodeFile 加载 JPEG 图像。返回空

为 javascript 运行本地服务器,但仍无法加载网站图标图像

图片加载到 UIWebView 时无法放大

无法加载4S拍摄的图像,但可以加载5S

如何将图像加载到操场

Dlib 图像加载错误,无法加载图像