【问题标题】:Someone explain why this isn't filling in the square有人解释为什么这没有填满广场
【发布时间】:2012-06-24 20:11:40
【问题描述】:

它只是在顶部和左侧边缘画了一条红线,我不明白为什么。嵌套的 for 循环不应该遍历所有可能的 x,y 坐标吗?

function createSquare() {
    var height = 50;
    var width = 50;
    var img = new PNGlib(width, height, 256);
    var background = img.color(0, 0, 0, 0);

    for (var x = 0; x <= width; x ++) {
        for (var y = 0; y <= height; y ++) {
            img.buffer[img.index(x, y)] = img.color(0xFF, 0x00, 0x00);
        }
    }

    return ('<img src="data:image/png;base64,' + img.getBase64() + '">');
}

【问题讨论】:

  • 为什么&lt;=而不是&lt;用于for条件?
  • 哦...为什么是评论而不是答案? :D
  • 那么@ScottBeeson 的输出是什么?
  • 不知道为什么它在满足条件后仍然增加,所以它没有打我,所以
  • 没关系,这是我在使用的代码库中看到的最常见的错误类型之一。这就是为什么我通常几乎自动修复这些问题 - 并写一些重要的评论来解释为什么在某些特定情况下使用&lt;=,如果这不是错误的话。 )

标签: javascript libpng


【解决方案1】:

我从未使用过 PNGLib(尽管尝试一下会很有趣),但根据我的经验,&lt;=for 循环退出条件中使用几乎总是一个错误。 )

【讨论】:

  • 好收获。诚然,我很好奇为什么会产生这种行为。
猜你喜欢
  • 2015-02-21
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多