手机
当前位置:查字典教程网 >编程开发 >php教程 >php制作中间带自己定义图片二维码的方法
php制作中间带自己定义图片二维码的方法
摘要:1,首先你必须生成二维码具体代码如下:复制代码代码如下:classQRCode{public$w;public$h;public$s;fun...

1,首先你必须生成二维码具体代码如下:

复制代码 代码如下:

class QRCode{

public $w;

public $h;

public $s;

function __construct($w1,$h1,$s1){

$this->w = $w1;

$this->h = $h1;

$this->s = $s1;

$this->outimgase();

}

function qrcode(){

$post_data = array();

$post_data['cht'] = 'qr';

$post_data['chs'] = $this->w."x".$this->h;

$post_data['chl'] = $this->s;

$post_data['choe'] = "UTF-8";

$url = "http://chart.apis.google.com/chart";

$data_Array = array();

foreach($post_data as $key => $value)

{

$data_Array[] = $key.'='.$value;

}

$data = implode("&",$data_Array);

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

curl_close($ch);

return $result;

}

function outimgase(){

echo $this->qrcode();

}

}

header("Content-type:image/png");

$t = new QRCode(300,300,"tianxin");

2,然后通过一个php文件将二维码和你的目的图片画在一起代码如下:

<?php

复制代码 代码如下:

$surl = $_POST["url"];

function GrabImage($url,$filename="") {

if($url==""):return false;endif;

if($filename=="") {

$ext=strrchr($url,".");

if($ext!=".gif" && $ext!=".jpg"):return false;endif;

$filename=date("dMYHis").$ext;

}

ob_start();

readfile($url);

$img = ob_get_contents();

ob_end_clean();

$size = strlen($img);

$fp2=@fopen($filename, "a");

fwrite($fp2,$img);

fclose($fp2);

return $filename;

}

$source = GrabImage("http://localhost/QRCode/QRCode.php","Myqrcode.png");

$water =GrabImage($surl,"t.png");

function getImageInfo($img){

$imageInfo = getimagesize($img);

if ($imageInfo !== false) {

$imageType = strtolower(substr(image_type_to_extension($imageInfo[2]), 1));

$imageSize = filesize($img);

$info = array(

"width" => $imageInfo[0],

"height" => $imageInfo[1],

"type" => $imageType,

"size" => $imageSize,

"mime" => $imageInfo['mime']

);

return $info;

} else {

return false;

}

}

function thumb($image, $thumbname, $type='', $maxWidth=200, $maxHeight=50, $interlace=true) {

// 获取原图信息

$info = getImageInfo($image);

if ($info !== false) {

$srcWidth = $info['width'];

$srcHeight = $info['height'];

$type = empty($type) ? $info['type'] : $type;

$type = strtolower($type);

$interlace = $interlace ? 1 : 0;

unset($info);

$scale = min($maxWidth / $srcWidth, $maxHeight / $srcHeight); // 计算缩放比例

if ($scale >= 1) {

// 超过原图大小不再缩略

$width = $srcWidth;

$height = $srcHeight;

} else {

// 缩略图尺寸

$width = (int) ($srcWidth * $scale);

$height = (int) ($srcHeight * $scale);

}

// 载入原图

$createFun = 'ImageCreateFrom' . ($type == 'jpg' ? 'jpeg' : $type);

$srcImg = $createFun($image);

//创建缩略图

if ($type != 'gif' && function_exists('imagecreatetruecolor'))

$thumbImg = imagecreatetruecolor($width, $height);

else

$thumbImg = imagecreate($width, $height);

// 复制图片

if (function_exists("ImageCopyResampled"))

imagecopyresampled($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth, $srcHeight);

else

imagecopyresized($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth, $srcHeight);

if ('gif' == $type || 'png' == $type) {

//imagealphablending($thumbImg, false);//取消默认的混色模式

//imagesavealpha($thumbImg,true);//设定保存完整的 alpha 通道信息

$background_color = imagecolorallocate($thumbImg, 0, 255, 0); // 指派一个绿色

imagecolortransparent($thumbImg, $background_color); // 设置为透明色,若注释掉该行则输出绿色的图

}

// 对jpeg图形设置隔行扫描

if ('jpg' == $type || 'jpeg' == $type)

imageinterlace($thumbImg, $interlace);

// 生成图片

$imageFun = 'image' . ($type == 'jpg' ? 'jpeg' : $type);

$imageFun($thumbImg, $thumbname);

imagedestroy($thumbImg);

imagedestroy($srcImg);

return $thumbname;

}

return false;

}

function water($source, $thumb, $savename="", $alpha=100){

//检查文件是否存在

if (!file_exists($source) || !file_exists($thumb))

return false;

//图片信息

$sInfo = getImageInfo($source);

$water = thumb($thumb,"wy.jpg","jpg",$sInfo["width"]/4,$sInfo["height"]/4);

$wInfo = getImageInfo($water);

//如果图片小于水印图片,不生成图片

if ($sInfo["width"] < $wInfo["width"] || $sInfo['height'] < $wInfo['height'])

return false;

//建立图像

$sCreateFun = "imagecreatefrom" . $sInfo['type'];

$sImage = $sCreateFun($source);

$wCreateFun = "imagecreatefrom" . $wInfo['type'];

$wImage = $wCreateFun($water);

//设定图像的混色模式

imagealphablending($wImage, true);

//图像位置,默认为右下角右对齐

// $posY = $sInfo["height"] - $wInfo["height"];

// $posX = $sInfo["width"] - $wInfo["width"];

$posY = ($sInfo["height"] - $wInfo["height"])/2;

$posX = ($sInfo["width"] - $wInfo["width"])/2;

//生成混合图像

imagecopymerge($sImage, $wImage, $posX, $posY, 0, 0, $wInfo['width'], $wInfo['height'], $alpha);

//输出图像

$ImageFun = 'Image' . $sInfo['type'];

//如果没有给出保存文件名,默认为原图像名

if (!$savename) {

$savename = $source;

@unlink($source);

}

//保存图像

$ImageFun($sImage, $savename);

imagedestroy($sImage);

}

water($source,$water);

在上面的代码中用3个函数 GrabImage()函数是将生成二维码的文件转化成图片 接下来的函数就是处理图片的缩放 将目的图片添加到二位上。

3,在来一个入口文件index.html 代码如下:

复制代码 代码如下:

<html>

<head>

<title>

中间可以自己定义图片的二维码生成器

</title>

</head>

<body>

<form action="<span><strong><span>注意提交的URL</span></strong></span>" method="post">

<div align="center">

<h1>中间可以自己定义图片的二维码生成器</h1>

<table width="500" border="0">

<tr>

<td width="250" height="40" align="center" valign="middle">二维码要生的内容:</td>

<td width="250" height="40" align="center" valign="middle">

<label>

<input type="text" name="content" value="">

</label>

</td>

</tr>

<tr>

<td width="250" height="40" align="center" valign="middle">希望能添加自己的图片地址:</td>

<td width="250" height="40" align="center" valign="middle">

<label>

<input type="text" name="url" value="">

</label>

</td>

</tr>

<tr>

<td height="40" colspan="2" align="center" valign="middle">

<label>

<input type="submit" name="Submit" value="生成我想要的二维码">

</label>

</td>

</tr>

</table>

</div>

</body>

</html>

【php制作中间带自己定义图片二维码的方法】相关文章:

php快速查找数据库中恶意代码的方法

php比较相似字符串的方法

php 类自动载入的方法

Yii实现自动加载类地图的方法

php转换颜色为其反色的方法

php中smarty区域循环的方法

php生成圆角图片的方法

php返回相对时间(如:20分钟前,3天前)的方法

PHP获取photoshop写入图片文字信息的方法

php获取网页里所有图片并存入数组的方法

精品推荐
分类导航