phpqrcode固定二维码大小

2023-11-13

我们都知道一个二维码PHP API接口使用phpqrcode.php文件编写很容易就可以写出一个API接口,网页所出现的二维码图像一般都是随内容的增加而增加,我想要一个固定的png图像尺寸大小,怎么办?

一般网上都会给出答案说确定img的尺寸大小,虽然可以确定大小但是却变成了一个标签页面,并不是我们所需要的png页面

一般我们使用的是一下代码产生,注意请先下载phpqrcode.php

 

<?php
//载入qrcode类库
include "phpqrcode.php";
//取得GET参数
$text       = isset($_GET["text"]) ? $_GET["text"] : ''; //二维码内容
$errorLevel = isset($_GET["e"]) ? $_GET["e"] : 'H'; //容错级别 默认L
$PointSize  = isset($_GET["p"]) ? $_GET["p"] : '10.882353'; //二维码尺寸 默认12
$margin     = isset($_GET["m"]) ? $_GET["m"] : '3'; //二维码白边框尺寸 默认2
function getqrcode($value,$errorCorrectionLevel,$matrixPointSize,$margin) {
    QRcode::png($value,false, $errorCorrectionLevel, $matrixPointSize, $margin,false);
}
getqrcode($text, $errorLevel, $PointSize, $margin);
?>

关于上面的QRcode::png()这个函数的参数这里不做多解释,网络搜一下解释的比我详细,我们这里直说一下那个$matrixPointSize这个参数,因为有些人说修改这个可以改变图片的大小,这个可以改变,但是一旦你内容变了长短,你的图片照样并不会是你想要的那个尺寸,因为这个只是改变像素点的大小。

我们可以在别人的基础上增加这样的功能

当我们打开phpqrcode.php时候我们会发现,里面有很多类和类方法,我们可以在它图片的输出地方增加这样的函数(图像的放大与缩小)。

这是图像的放大与缩小函数,$im是输入的16进制图像,$maxwidth尺寸宽$maxheight尺寸长。

将下列类容增加在phpqrcode.php里面

 function resizeImage($im,$maxwidth,$maxheight)  
{  
    $pic_width = imagesx($im);  
    $pic_height = imagesy($im);  
  
    if(($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight))  
    {  
        if($maxwidth && $pic_width>$maxwidth)  
        {  
            $widthratio = $maxwidth/$pic_width;  
            $resizewidth_tag = true;  
        }  
  
        if($maxheight && $pic_height>$maxheight)  
        {  
            $heightratio = $maxheight/$pic_height;  
            $resizeheight_tag = true;  
        }  
  
        if($resizewidth_tag && $resizeheight_tag)  
        {  
            if($widthratio<$heightratio)  
                $ratio = $widthratio;  
            else  
                $ratio = $heightratio;  
        }  
  
        if($resizewidth_tag && !$resizeheight_tag)  
            $ratio = $widthratio;  
        if($resizeheight_tag && !$resizewidth_tag)  
            $ratio = $heightratio;  
  
        $newwidth = $pic_width * $ratio;  
        $newheight = $pic_height * $ratio;  
  
        if(function_exists("imagecopyresampled"))  
        {  
            $newim = imagecreatetruecolor($newwidth,$newheight);  
           imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);  
        }  
        else  
        {  
            $newim = imagecreate($newwidth,$newheight);  
           imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);  
        }  
  
        //$name = $name.$filetype; 
        Header("Content-type: image/png"); 
        imagepng($newim);  
        //return $newim;
       //imagedestroy($newim);  
    }  
    else  
    {  
       // $name = $name.$filetype;  
        //imagepng($im,$name); 
        //Header("Content-type: image/png");
        Header("Content-type: image/png"); 
        imagepng($im); 
    }             
}

下面是phpqrcode.php里面改变的内容,将class QRimge的png函数替换下列即可。

 

class QRimage {
    
        //----------------------------------------------------------------------
        public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE) 
        {
            $image = self::image($frame, $pixelPerPoint, $outerFrame);
            
            if ($filename === false) {
                $maxwidth = 300;
                $maxheight = 300;
                resizeImage($image,$maxwidth,$maxheight);

            } else {
                if($saveandprint===TRUE){
                    ImagePng($image, $filename);
                    header("Content-type: image/png");
                    ImagePng($image);
                }else{
                    ImagePng($image, $filename);
                }
            }
            ImageDestroy($image);
        }

}

 

最后你无论怎么改变信息内容都会变成一样的大小。

增加信息量

原文:https://blog.csdn.net/charmean/article/details/78623622

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

phpqrcode固定二维码大小 的相关文章

  • 使用 file_get_content 发布数据

    我已经做了一些关于如何使用的研究file get content与帖子 我也读过this one https stackoverflow com questions 2445276 how to post data in php using
  • 通过身份验证保护 CodeIgniter 2 应用程序的正确方法是什么?

    I have Ion Auth http benedmunds com ion auth 正确安装并在我的服务器上运行 我也有默认的代码点火器2 新闻 教程在同一个 CI 安装中工作 我只是在玩 并对使用身份验证系统 封闭 或保护整个应用程
  • 为什么这评估为 true

    为什么这评估结果为真
  • if/else 简写来定义变量

    我很难理解 if else 的 php 简写是如何描述的here https stackoverflow com questions 20233207 php if shorthand and echo in one line possib
  • 所有 PHP 相等比较都是对称的吗?

    Is a b总是等价于 b a 我认为在 JavaScript 中 由于强制转换 有一些奇怪的情况并非如此 I think ide https stackoverflow com questions 4752579 are all php
  • Laravel Auth:attempt() 不会持久登录

    我在网上找到了许多有类似问题的资源 但似乎没有一个解决方案可以解决我的问题 当我使用以下代码登录用户时 一切看起来都很好 email Input get email password Input get password if Auth a
  • 在 PHP 中包含 PHP 文件

    我有一个网站 它运行 PHP if 语句来根据附加文件的类型 即 Jpg Txt MP4 显示内容 所以我显示 TXT 文件的代码是 if post attachment txt display attachment div class d
  • 简单的 PHP 回显代码不起作用

    这是我的 html 和 php 脚本 h1 Bob s Auto Parts h1 table width 100 tr tr table 为什么这个输出会出现一个 gt 我希望它是 这有效 仅有的 这是输出 鲍勃的汽车零件 鲍勃
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • PHP - 类外 use 关键字和类内 use 关键字的区别

    伙计们 美好的一天 只是想问一下有什么区别use之外的class and use在 的里面class 我也用谷歌搜索过 但我的问题与答案不匹配 Example namespace App Http Controllers Auth use
  • 获取字符串中的最后一个整数

    我需要隔离包含多个整数的字符串中最新出现的整数 我怎样才能得到23代替1 for lastnum1 text 1 out of 23 lastnum1 this gt getEval eregi replace out of text 你可
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • Codeigniter - 出现 404 Not Found 错误

    我们在 godaddy 有两个托管套餐 我们的实时网站使用以下 htaccess 文件运行良好 无需在 url 中使用 index php 即可访问网站 RewriteEngine On RewriteCond REQUEST FILENA
  • 从所有会话中注销

    我有一个注销选项 这是我的代码 session start session destroy setcookie key time 60 60 24 setcookie username time 60 60 24 我想添加另一个选项来注销所
  • 如何从 Laravel 执行存储过程

    我需要在表单提交数据后执行存储过程 我让存储过程按照我想要的方式工作 并且我的表单正常工作 我只是不知道从 laravel 5 执行 sp 的语句 它应该是这样的 执行 my stored procedure 但我似乎在网上找不到类似的东西
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行

随机推荐

  • 【翻译】ASF 法律委员会发布贡献者生成式 AI 指南

    中英文对照版请点击 ASF 法律委员会发布贡献者生成式 AI 指南 中英文对照 查看 除非你在过去一年左右的时间里一直生活在岩石之下 否则你很可能已经听说过很多关于生成式人工智能如何快速发展并正在迅速改变我们所熟知的软件行业的事情 虽然猜测
  • python 利用chinese_calendar 获取上一个工作日日期

    截止文章发布chinese calendar版本为1 8 0 大约在每年的11月份更新次年的节假日新版本 import datetime from chinese calendar import is workday def get per
  • 多线程下事务控制

    我篇文章 大数据批量新增or修改太慢太Low 线程池 CountDownLatch CompletableFuture完美解决 弊端就是无法实现事务控制 那么今天他就来啦 需求 大数据平台去获取数据 gt 通过对象组装 gt 插入到对应的表
  • Hibernate中merge()方法的坑

    标题Hibernate的merge方法的原理网上已经有很多篇文章介绍了 执行merge后 如果传入的对象有ID merge会先去数据库通过ID查 若查到则改 若查不到则增 也就是说 相比直接insert或是update 用merge的实现会
  • 执行kubeadm init 安装kubernetes时报错: [ERROR FileExisting-conntrack]: conntrack not found in system path

    使用kubeadin init安装kubernetes时报如下错误 解决方法 yum y install socat conntrack tools
  • STM32基于HAL库的开发与应用(2)GPIO口控制

    一 GPIO口是在单片机开发应用中使用最频繁的一个控制 GPIO口可作为输出高低电平也可以作为输入检测输入电平的高低 1 通常GPIO口输出控制LED灯 有源蜂鸣器等一些只需要高低电平就可以触发的模块 2 通常GPIO口作为输入 用来检测输
  • dz论坛伪静态加http跳转https遗留问题apache配置ssl

    一 首先 申请并且配置好服务器ssl证书 阿里 腾讯都有免费的 同时都有教程 下载apache格式的证书 解压后放到d ssl 目录 打开 D phpStudy Apache conf httpd conf 在最后面添加SSL配置
  • 2.基于原型的聚类方法

    基于原型的聚类方法 文章目录 一 概念 二 K Means 2 1 算法流程 2 2 超参数 2 3 特性 2 4 解析 2 5 K Means 2 6 Python实现 三 K Mediods 3 1 概念 3 2 算法对比 四 特性 一
  • android实现每天定时提醒的功能

    有时开发中有这样的需求 每天几点定时提醒等等 下面就来实现这个功能 首先新建一个广播接收者 public class AlarmReceiver extends BroadcastReceiver Override public void
  • 案例——UDP聊天

    UDP聊天案例 做一个网络编程相关的案例 想着用利用UDP的快速且不用连接的优点做一个聊天室 我们一个聊天程序需要可以接收消息 也要可以发送消息 所以我们的DatagramSocket对象不但需要调用send函数 还需要调用recieve函
  • 【C语言】qsort 快速排序函数(详解+用法+my_qsort函数模拟实现)

    本文详细讲解qsort函数用法 并包含很多知识细节 干活满满 文章目录 qsort函数功能 qsort函数声明 函数指针 qsort函数用法 整型 浮点型 字符型 字符串型 结构体型 my qsort函数模拟实现 qsort函数功能 排序是
  • 【数据分析】基于RFM模型的线上零售中的客户细分(一):客户细分

    基于RFM模型的线上零售中的客户细分 一 简介 RFM模型通常被用来衡量客户价值和客户创利能力 是商业数据分析中的重要工具和手段 这次我将使用RFM模型对线上零售数据进行客户细分 本篇博客是关于客户细分的相关介绍 具体实例项目将在下一篇博客
  • mutable和volatile

    mutable变量永远处于可变的状态 mutable在类中只能修饰非静态数据成员 即使是在const函数中 甚至是const结构体变量或类对象 其mutable成员也可以被修改 我们知道 如果类的成员函数不会改变对象的状态 那么这个成员函数
  • Feedsky 上 csdn blog 订阅数排名 (zz)

    1114356 programmer editor http blog csdn net programmer editorhttp feeds feedsky com csdn net programmer editor 23897 po
  • matlab_ga(),matlab遗传算法ga函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function optimization4 A b Aeq beq LB 0 1 0 03 0 03 0 1 0 03 0 03 UB 0 4 0 06 0 06 0 4 0 06 0 06
  • python+selenium自动化测试框架实例_顶Python+Selenium搭建UI自动化测试框架

    Python语言是非常强大的编程语言 很多时候也拿来当脚本语言用 Selenium是web应用测试工具 支持Java Python等多种语言脚本 支持Chrome Firefox等多种主流浏览器 主要实现的就是模拟人使用web应用 自动的打
  • 解决Windows11能登录QQ微信,但不可以使用浏览器上网

    解决浏览器不能上网 报错ERR PROXY CONNECTION FAILED 首先我们看到我们的以太网显示连接正常 但是 但我们打开谷歌浏览器是这样的 当我们打开IE是这样的 然后它们都报同样一个错误 ERR PROXY CONNECTI
  • 企业级Nginx+keepalived 双主架构笔记参考

    对于主备架构 始终存在一台服务器处于空闲状态 对于企业来说 资源分配就不很合理 如果要将两台服务器都利用起来 可以使用主主架构的方式 同时2台都对外服务 拥有2个VIP地址 同时接收用户的请求 双主架构的实现步骤参考 master1 反向代
  • leetcode 1812. Determine Color of a Chessboard Square(python)

    描述 You are given coordinates a string that represents the coordinates of a square of the chessboard Below is a chessboar
  • phpqrcode固定二维码大小

    我们都知道一个二维码PHP API接口使用phpqrcode php文件编写很容易就可以写出一个API接口 网页所出现的二维码图像一般都是随内容的增加而增加 我想要一个固定的png图像尺寸大小 怎么办 一般网上都会给出答案说确定img的尺寸