0

我正在尝试为我的热敏打印机动态生成 QR 码。为了做到这一点,我必须向我的服务器发送一个请求(比如http://domain.example.com/qr?url=)。

然后,此页面应从 Google 获取 PNG 格式的 QR 码。到目前为止,一切都很好。

但现在是困难的部分。完成此操作后,我需要将其转换为类似于this的内容。

我以前发现过这个问题,但是和他不同的是,我需要在网上做。我无权在服务器上安装 PHP 模块,因此据我所知,对我来说最好的选择是phMagik,但问题是,据我所知,这不支持额外的参数可以输入到 ImageMagik 的普通 Linux 或 Windows 版本中,详见本文档页面

那么有谁知道我该如何解决这个问题?从长远来看,我希望制作自己的Little Printer版本。谢谢。

4

1 回答 1

0

只需使用 ImageMagick 的普通 linux 版本 - 调用它使用exec()

如果您无权在您的服务器上安装东西,那么它会变得有点复杂。如果你安装了 GD(你可能已经安装了),你可以使用http://php.net/imagecreatefrompng来获取像素数据。然后,您可以手动创建您要查找的内容,如下所示:

$file = "/path/to/png.png"; 
$image = ImageCreateFromPng($file); 
list($w, $h) = GetImageSize($file); 

$pixels = array();
for ($x=0; $x<$w; $x++){
for ($y=0; $y<$h; $y++){
    $rgb = ImageColorAt($image, $x, $y); 
    $r = ($rgb >> 16) & 0xFF;
    $g = ($rgb >> 8) & 0xFF;
    $b = $rgb & 0xFF;
    $pixels = '0x'.sprintf('%02x', ($r+$g+$b)/3); # store the average of r/g/b
}
}

echo "static unsigned char __attribute__ ((progmem)) adalogo [] = {\n";
echo implode(', ', $pixels);
echo "};\n";

您需要首先获取实际的 PNG - 如果您启用了文件包装器,您可以通过 URL 获取它:

$file = "http://url.com/to/png.png"; 
$image = ImageCreateFromPng($file); 

或者先在命令行使用 PHP 抓取图像:

$file = "/path/to/png.png"; 
exec("php /path/to/script.php > $file");
$image = ImageCreateFromPng($file); 
于 2012-04-03T01:46:40.397 回答