Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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_Javascript_Canvas - Fatal编程技术网

Php 从像素阵列创建图像服务器端

Php 从像素阵列创建图像服务器端,php,javascript,canvas,Php,Javascript,Canvas,好的,在一个例子中,我发现我使用的浏览器由于某种原因不支持toDataURL()。我尝试过使用类似的变通方法,但没有效果,因为它也失败了。我遇到了一种可能性,我可以让PHP根据画布上的像素数据构建一个图像,并将其保存为图像。然而,我没有太多的画布经验,也不知道如何做这样的事情。 有什么想法吗?朝正确的方向轻推也足够了。=) 如果您已经有一个像素阵列,您可以使用GD库的和函数来实现这一点: // Assume $pixelArray is a 2-dimensional array of colo

好的,在一个例子中,我发现我使用的浏览器由于某种原因不支持toDataURL()。我尝试过使用类似的变通方法,但没有效果,因为它也失败了。我遇到了一种可能性,我可以让PHP根据画布上的像素数据构建一个图像,并将其保存为图像。然而,我没有太多的画布经验,也不知道如何做这样的事情。
有什么想法吗?朝正确的方向轻推也足够了。=)

如果您已经有一个像素阵列,您可以使用GD库的和函数来实现这一点:

// Assume $pixelArray is a 2-dimensional array of colors for the pixels

// Grab the dimensions of the pixel array
$width = count($pixelArray, 0);
$height = count($pixelArray);

// Create the image resource
$img = imagecreatetruecolor($width, $height);

// Set each pixel to its corresponding color stored in $pixelArray
for ($y = 0; $y < $height; ++$y) {
    for ($x = 0; $x < $width; ++$x) {
        imagesetpixel($img, $x, $y, $pixelArray[$y][$x]);
    }
}

// Dump the image to the browser
header('Content-Type: image/png');
imagepng($img);

// Clean up after ourselves
imagedestroy($img);

如果已经有像素阵列,则可以使用GD库的和函数来完成此操作:

// Assume $pixelArray is a 2-dimensional array of colors for the pixels

// Grab the dimensions of the pixel array
$width = count($pixelArray, 0);
$height = count($pixelArray);

// Create the image resource
$img = imagecreatetruecolor($width, $height);

// Set each pixel to its corresponding color stored in $pixelArray
for ($y = 0; $y < $height; ++$y) {
    for ($x = 0; $x < $width; ++$x) {
        imagesetpixel($img, $x, $y, $pixelArray[$y][$x]);
    }
}

// Dump the image to the browser
header('Content-Type: image/png');
imagepng($img);

// Clean up after ourselves
imagedestroy($img);

不清楚您是否能够在Netfront浏览器中获取画布的像素数据

在示例页面中,更改按钮处理程序代码:

var cv=document.getElementsByTagName('canvas')[0];document.documentElement.style.background='url('+cv.toDataURL()+')';
为此:

var cv=document.getElementsByTagName('canvas')[0];alert(cv.toDataURL());
它是否在弹出的
警报()
中显示任何像素数据


如果是这样,那么您似乎无法在此浏览器上使用背景图像中的数据URL。如果不支持,则看起来您的画布不支持引擎盖下的
getImageData()

不清楚您是否能够在Netfront浏览器中获取画布的像素数据

在示例页面中,更改按钮处理程序代码:

var cv=document.getElementsByTagName('canvas')[0];document.documentElement.style.background='url('+cv.toDataURL()+')';
为此:

var cv=document.getElementsByTagName('canvas')[0];alert(cv.toDataURL());
它是否在弹出的
警报()
中显示任何像素数据


如果是这样,那么您似乎无法在此浏览器上使用背景图像中的数据URL。如果不支持,那么您的画布似乎不支持引擎盖下的
getImageData()

ToDatur png js似乎是一个不错的方向。你试了什么?怎么会失败?@Cal有一页(这里[)您可以测试一下,但是浏览器没有将背景设置为包含画布数据的图像。它在其中没有任何功能。=/使用最新的Chrome浏览器对我有任何功能。您使用的浏览器是什么?它会出现什么错误?@Cal您能单击我问题中的第一个链接吗?它包含所有信息。重新发布感觉不正确所有这些,似乎我只是在重新发布一个老问题。o.otodataur-png-js似乎是一个好的方向。你尝试了什么?怎么失败的?@Cal有一个页面(这里[)您可以测试一下,但是浏览器没有将背景设置为包含画布数据的图像。它在其中没有任何功能。=/使用最新的Chrome浏览器对我有任何功能。您使用的浏览器是什么?它会出现什么错误?@Cal您能单击我问题中的第一个链接吗?它包含所有信息。重新发布感觉不正确所有这些,就像我只是在重新发布一个旧问题一样。o.oHm,带有“imagesetpixe()”的行抛出错误“不能将字符串偏移量用作数组”。@Viewtiful:
$pixelArray
必须是任何像素数组(您在问题标题中提到您拥有像素数组)。是吗?不管怎样,我会简单地将getImageData()的值发送到服务器吗?同样,我对画布的处理经验很少。抱歉。=/Hm,带有“imagesetpixe()”的行抛出错误“不能将字符串偏移量用作数组”。@Viewtiful:
$pixelArray
必须是任何像素数组(您在问题标题中提到您拥有像素阵列)。我有?无论如何,我是否可以简单地将getImageData()的值发送到服务器?同样,我没有处理画布的经验。对不起=/