source of /sprout/Helpers/phpqrcode/qrimage.php<?php /* * PHP QR Code encoder * * Image output of code using GD2 * * PHP QR Code is distributed under LGPL 3 * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ class QRimage { //---------------------------------------------------------------------- public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE, $back_color, $fore_color) { $image = self::image($frame, $pixelPerPoint, $outerFrame, $back_color, $fore_color); if ($filename === false) { Header("Content-type: image/png"); } else { if($saveandprint===TRUE){ header("Content-type: image/png"); }else{ } } } //---------------------------------------------------------------------- public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85) { $image = self::image($frame, $pixelPerPoint, $outerFrame); if ($filename === false) { Header("Content-type: image/jpeg"); } else { } } //---------------------------------------------------------------------- private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4, $back_color = 0xFFFFFF, $fore_color = 0x000000) { $imgW = $w + 2*$outerFrame; $imgH = $h + 2*$outerFrame; // convert a hexadecimal color code into decimal format (red = 255 0 0, green = 0 255 0, blue = 0 0 255) $r1 = round((($fore_color & 0xFF0000) >> 16), 5); $g1 = round((($fore_color & 0x00FF00) >> 8), 5); $b1 = round(($fore_color & 0x0000FF), 5); // convert a hexadecimal color code into decimal format (red = 255 0 0, green = 0 255 0, blue = 0 0 255) $r2 = round((($back_color & 0xFF0000) >> 16), 5); $g2 = round((($back_color & 0x00FF00) >> 8), 5); $b2 = round(($back_color & 0x0000FF), 5); for($y=0; $y<$h; $y++) { for($x=0; $x<$w; $x++) { if ($frame[$y][$x] == '1') { ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]); } } } $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint); ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH); return $target_image; } }
|