像素绘制算法

时间:2009-02-06 06:09:42

标签: php algorithm render pixel

我需要一个示例算法,它将在基于网格的(x,y)系统上一次绘制一个像素,并根据基于某种形式提供的二进制数据的rbg值对它们进行着色。我正在寻找用PHP编写的任何东西或像C这样的语言,但是它不使用任何类型的库或图形卡api,因为我在php编码。

这是我在php中编写的,使用随机颜色值,但在html画布中渲染需要15秒:

<?php
$r_max = 240;
$c_max = 320;
$row = -1;//-1 to offset while
while ($row<$r_max){
    ++$row;
    for($column=0; $column<=$c_max; ++$column)
    {
    echo 'ctx.fillStyle = "rgb(', rand()%255, ',', rand()%255, ',', rand()%255, ')";';
    echo 'ctx.fillRect(', $column, ',', $row, ',1,1);';
    }
}
?>

4 个答案:

答案 0 :(得分:2)

不太确定我完全理解你的问题但是.. PHP有GD功能,包括图像分配和设置像素调用,线条图等。检查here

哦和是imagemagick也用于更奇特的用途

答案 1 :(得分:0)

您似乎正在尝试输出用于在<canvas>标记上绘图的JavaScript命令。绘制像素的更快方法可能是使用moveTolineTo。顺便问一下,为什么你不是外循环for循环呢?

for($row=0; $row<=$r_max; ++$row) {
    for($column=0; $column<=$c_max; ++$column) {
        # draw pixel
    }
}

看起来更自然?

答案 2 :(得分:0)

问题在于您为每个像素生成代码。相反,为什么不让代码将像素信息写入您喜欢的图像格式,然后在页面中显示?这是最合理的(对我而言)算法解决方案......我不确定它是否适合你想要做的事情。

答案 3 :(得分:0)

我无法使用图片格式,因为它对我的使用效率不高。我正在寻找一些示例代码,其中可能会根据数据显示图像,这样我就可以了解如何按照每次渲染15秒的速度执行我正在执行的操作。我上面包含的嵌套循环是缓慢的。