0

我正在尝试检查 .save 方法是否已执行,但出现“无法从 void 转换为布尔值”错误。我怎么能检查它?此外,img.save()在网络小程序中也不起作用,任何线索为什么它不起作用?

PImage img  = get (180, 0, 620, 400);

if( img.save("img/111,jpg") )
{
fill(0, 255, 0);
}
else
{
 fill(255, 0, 0);
}
4

2 回答 2

0

您的 if 语句假设 true 或 false 将由img.save()函数返回。因此,您需要检查img.save()返回的内容。如果这是一种方法,那么它一旦执行就无法返回任何值,这意味着您无法比较它......

try/catch如果您预计方法可能会失败,请放入方法调用...

于 2012-11-16T01:25:15.960 回答
0

一心一意:

  1. 您设置填充,但之后不要绘制任何东西(至少在发布的代码中)*
  2. 默认情况下,如果不签署小程序,某些功能可能无法工作。
  3. 您不能使用 PImage 的 save() 方法为您进行上传。这是文档中的引用:

在 Web 浏览器中运行程序时不能使用 save()。

您将需要使用服务器端脚本来传递数据,然后将图像保存到 serser。看看Philho 的上传草图。请注意,他正在将数据传递给处理在服务器上写入文件的 php 脚本。

*虽然不那么重要,但您可以在 Processing IDE/locally 中尝试此操作以查看颜色变化:

if( img.save("img/111.jpg") )
{
fill(0, 255, 0);
}
else
{
 fill(255, 0, 0);
}
rect(0,0,width,height);
于 2012-11-16T09:15:07.527 回答