Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 像素绘制算法_Php_Algorithm_Render_Pixel - Fatal编程技术网

Php 像素绘制算法

Php 像素绘制算法,php,algorithm,render,pixel,Php,Algorithm,Render,Pixel,我需要一个示例算法,该算法将在基于网格的(x,y)系统上一次绘制一个像素,并根据以某种形式提供的二进制数据的rbg值对其进行着色。我正在寻找用php或类似php的语言(如C)编写的任何东西,但不使用任何类型的库或图形卡api,因为我是用php编写代码的 下面是我用php编写的东西,它使用随机颜色值,但在html画布中渲染需要15秒: <?php $r_max = 240; $c_max = 320; $row = -1;//-1 to offset while while ($row<

我需要一个示例算法,该算法将在基于网格的(x,y)系统上一次绘制一个像素,并根据以某种形式提供的二进制数据的rbg值对其进行着色。我正在寻找用php或类似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);';
    }
}
?>

我不太清楚你的问题,但是。。PHP具有GD函数,包括图像分配和setpixel调用、线条绘制等。。检查


哦,是的,对于更奇特的用途,您似乎正在尝试输出JavaScript命令,以便在
标记上绘图。绘制像素的更快方法可能是使用
moveTo
lineTo
。顺便说一句,为什么你的外循环不是for循环呢

没有

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

for($row=0;$row问题是您正在为每个像素生成代码。相反,为什么不让代码将像素信息写入您最喜欢的图像格式,然后在页面中显示?这是最合理的(对我来说)算法解决方案…我不确定它是否适合您正在尝试的操作。

我不能使用图像格式,因为它对我的使用效率不高。我正在寻找一些示例代码,其中图像可能会基于数据显示,这样我就可以了解如何以比每次渲染快15秒的速度进行操作。nes我上面提到的ted循环速度很慢。

for循环的优点是,即使我使用moveTo或lineTo,也不尽相同。我的意思是,我如何做到这一点,而不必创建76800或更多javascript规则来定义每个像素。我必须定义每个像素,因为在大多数情况下,它们都是不同的。额外的细节:ge生成代码以生成像素需要花费15秒的99.9%。如果批处理,速度会快得多。在while循环中执行此工作,但将回声移到循环的外部和下方。