【问题标题】:Void to Boolean Processing无效到布尔处理
【发布时间】:2012-11-16 01:20:52
【问题描述】:

我正在尝试检查 .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);
}

【问题讨论】:

    标签: boolean processing void


    【解决方案1】:

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

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

    【讨论】:

    • 对不起,我的无知,但是如何将方法调用放入 try/catch?
    • Try { img.save(); } catch (e){ //error debugging code } ... 调用任何可能导致错误的方法或函数始终是一个好习惯...
    • 感谢您的回答,我有一个新问题。你知道我如何发送 PImage img = get();数据结果到 PHP 脚本,以便我可以将其上传到服务器?
    【解决方案2】:

    一次一件事:

    1. 您设置了填充,但之后不绘制任何东西(至少在发布的代码中)*
    2. 默认情况下,如果没有signing the applet,某些功能可能无法运行。
    3. 您不能使用 PImage 的 save() 方法为您进行上传。这是文档中的引述:

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

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

    *虽然没那么重要,你可以在 Processing IDE/locally 中试试看颜色变化:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 2020-07-30
      相关资源
      最近更新 更多