2012-04-02 6 views
0

サーマルプリンタのQRコードを動的に生成しようとしています。これを行うには、サーバーにリクエストを送信する必要があります(http://domain.example.com/qr?url=など)。PHPのサーマルプリンタ用PNG to Monochromeビットマップ?

このページは、GoogleからPNG形式でQRコードを取得する必要があります。ここまでは順調ですね。

しかし、今は難しい部分です。私がそれをしたら、それをthisの行に沿って何かに変換する必要があります。

私は以前にthisという質問を見つけましたが、彼とは違って、私はウェブ上でそれを行う必要があります。私はサーバーにPHPモジュールをインストールする権限がありません。だから私の知る限りでは、私にとって最良の選択肢はphMagikですが、もう一度問題は、これが余分なパラメータをサポートしていないことです。 this documentation pageで説明されているように、ImageMagikの通常のLinuxまたはWindows版に供給することができます。

どのように私はこの問題を回避することができるか知っていますか?長期的に私はLittle Printerの自分のバージョンを作りたいと思っています。ありがとう。

答えて

0

だけではImageMagickの通常のLinuxバージョンを使用する - あなたのサーバー上で物事をインストールするためのアクセス権を持っていない場合exec()

を使用してそれを呼び出す、もう少し複雑に取得するつもりです。 GDがインストールされている場合は(おそらく)、http://php.net/imagecreatefrompngを使用してピクセルデータを取得できます。

: - あなたはURLを経由して、それをフェッチすることができいずれかのファイル・ラッパーが有効になっている場合は、まず実際のPNGを取得する必要があります

$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"; 

:あなたは、手動で、このような何かを、あなたが探しているものを作成することができます

$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); 
+0

を、私はあなたから来ている場所を確認 - しかし、確かにこれを行うには、私はLinux用のImageMagickが私のサーバーにインストールする必要があり、かつ私はそれができないのではないかと恐れている私は共有ホスティングサービスを利用しているからです。それを回避する方法はありますか? – Alfo

+0

私の回答を可能な解決策で更新しました – Cal

+0

うわー、ありがとう。私は家に帰るときにこれを試してみる。 – Alfo

関連する問題